From 8c26144a100c6251a385332a1869945ab9ec9b75 Mon Sep 17 00:00:00 2001 From: Armand Bahi <armand.bahi@veremes.com> Date: Thu, 15 Nov 2018 10:46:30 +0100 Subject: [PATCH 1/3] Squashed 'src/vitis/' changes from 40e7d46e..856dbd25 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 856dbd25 Pull subtrees 56c7bd96 Merge branch 'next_version' b7a05cd9 pull subtree 25238a11 Update conf/_install/dependency.xml 5587ac0b Correction SQL 7d3686e6 Ajout du sendMail si le contrôle échoue b5f02176 Déplacement du fichier et récupération du format pour le contrôle 472bf5ce Correction pour l'insert order de qualigéo e1182bcb Modification des paramètres de lancement du contrôle ceffc230 Changement d'état bloqué si mauvais fichier dépôsé 6c7a0eeb Ajout dossier Storage et du template de mail 73b107e0 Modification install.sh fb7cb3fa Auto stash before merge of "next_version" and "origin/next_version" f174e325 Ajout des configurations 3c168a0a Dépôt interdit si mauvaise extension e6da1c85 Correction d'anomalie sur les require_once 8f7d8ff6 Mise à jour des require_once afed7c52 update utils a45308c9 update utils a172ed7f update utils 94bfb8c4 Resolve git ignore on properties.json 2203c387 Update properties.json f4cf0d23 Update conf/properties.json bcd0a441 Add windows install doc on README.md d85eb2a8 add install/update.bat 257deb71 Add utils for windows install 09369e7a Modify symlinks strategy b8263ffb Update Readme 7b40add7 Grunt with symlinks 0c03b20a Grunt with symlinks 8f330c1c add subtree 7bbf9fce Squashed 'src/module_extraction/' content from commit fa99d32 065a4ef0 add subtree c82fe09b Squashed 'src/closure/' content from commit 622066d dc10cbaf add subtree 7b113ede Squashed 'src/vitis/' content from commit 355b5f8 f6f748a6 edit dependency bc1e046a add subtree 42fed54d Squashed 'src/module_extraction/' content from commit c3060a5 4045a0f5 add subtree 38b4f6f5 Squashed 'src/closure/' content from commit 622066d cf3f0aa2 add subtree f15e264f Squashed 'src/vitis/' content from commit 7a1818a 66ae7aee Add files from template f772eff2 Initial commit git-subtree-dir: src/vitis git-subtree-split: 856dbd255138dd102f26122bbaf43404c6bfc684 --- .gitignore | 2 + README.md | 14 +- conf/Gruntfile.js | 112 + conf/_install/apache.conf | 6 + conf/_install/dependency.xml | 16 + conf/_install/fileToDelete.txt | 2 + conf/_install/folderToDelete.txt | 1 + conf/credits.json | 156 + conf/less/variables.less | 35 + conf/package.json | 4 + conf/requires/config.js | 66 + conf/requires/requiresApp.js | 11 + install.bat | 18 + install.sh | 25 + pull_subtrees.sh | 13 + push_subtrees.sh | 13 + src/closure/README.md | 1 + src/closure/conf/depswriter/closurebuilder.py | 293 + src/closure/conf/depswriter/depstree.py | 189 + src/closure/conf/depswriter/depstree_test.py | 127 + src/closure/conf/depswriter/depswriter.py | 212 + .../conf/depswriter/depswriter_test.py | 62 + src/closure/conf/depswriter/jscompiler.py | 162 + .../conf/depswriter/jscompiler_test.py | 114 + src/closure/conf/depswriter/source.py | 132 + src/closure/conf/depswriter/source_test.py | 152 + src/closure/conf/depswriter/treescan.py | 78 + src/closure/conf/externs/angular-1.3.js | 2392 ++++++++ src/closure/conf/externs/bingmaps.js | 176 + src/closure/conf/externs/bootstrap.js | 242 + src/closure/conf/externs/geojson.js | 171 + src/closure/conf/externs/html2canvas.js | 8 + src/closure/conf/externs/jquery-1.9.js | 2166 ++++++++ src/closure/conf/externs/jspdf.js | 51 + src/closure/conf/externs/vmap.js | 75 + src/module_extraction/README.md | 3 + src/module_extraction/_install/dependency.xml | 19 + .../_install/fileToDelete.txt | 6 + .../_install/folderToDelete.txt | 2 + ..._vitis_configuration_extractionConfig.json | 1 + .../extraction_extraction_extraction.js | 500 ++ .../extraction_extraction_extraction.json | 4838 +++++++++++++++++ ...ction_depot_extraction_extraction_depot.js | 253 + ...ion_depot_extraction_extraction_depot.json | 291 + .../extraction_ref_extraction_coordsys.json | 240 + .../extraction_ref_extraction_format.json | 393 ++ .../extraction_ref_extraction_layer.json | 355 ++ .../module/forms/login/sign_up.json | 230 + .../module/javascript/script_module.js | 412 ++ .../module/lang/lang-en.json | 111 + .../module/lang/lang-fr.json | 123 + src/module_extraction/module/less/main.less | 5 + .../module/templates/depositDirectoryTpl.html | 16 + .../storage}/Accounts.class.mail.inc | 1237 ++--- .../web_service/conf/properties.inc | 7 + .../web_service/conf/properties_server.inc | 3 + .../web_service/conf/selected_properties.inc | 18 + .../web_service/conf/version.inc | 7 + .../web_service/sql/sqlQueries.xml | 493 ++ .../web_service/ws/Coordsys.class.inc | 91 + .../web_service/ws/Coordsyss.class.inc | 268 + .../web_service/ws/Extraction.class.inc | 147 + .../ws/ExtractionExtraction.class.inc | 44 + .../ws/ExtractionExtraction.class.sql.inc | 22 + .../web_service/ws/Extraction_depot.class.inc | 81 + .../ws/Extraction_depots.class.inc | 440 ++ .../web_service/ws/Extractions.class.inc | 650 +++ .../web_service/ws/Format.class.inc | 91 + .../web_service/ws/Formats.class.inc | 269 + .../web_service/ws/Layer.class.inc | 91 + .../web_service/ws/Layers.class.inc | 269 + .../web_service/ws/overview.phtml | 24 + .../A/B/C/abc.dat => src/vitis/.gitignore | 0 src/vitis/README.md | 1 + src/vitis/_install/client/fileToDelete.txt | 4 + src/vitis/_install/client/folderToDelete.txt | 8 + .../_install/client/listModuleApache.txt | 5 + .../dependencies/mapserver/.htaccess | 0 .../dependencies/mapserver/linux/apache.conf | 0 .../mapserver/windows/apache.conf | 0 .../dependencies/php/linux/apache.conf | 0 .../vitis/_install}/dependencies/php/php.ini | 0 .../dependencies/php/windows/apache.conf | 0 .../_install}/dependencies/pycron/crontab.txt | 0 .../dependencies/websocket/apache.conf | 0 .../websocket/linux/websocket_vitis | 0 .../dependencies/websocket/websocket.cfg | 0 .../vitis/_install}/dependency.xml | 0 src/vitis/_install/vas/apache.conf | 70 + src/vitis/_install/vas/listModuleApache.txt | 16 + {client => src/vitis/client}/.htaccess | 0 .../vitis/client}/css/icons/fonts/veremes.eot | Bin .../vitis/client}/css/icons/fonts/veremes.svg | 0 .../vitis/client}/css/icons/fonts/veremes.ttf | Bin .../client}/css/icons/fonts/veremes.woff | Bin .../vitis/client}/css/icons/selection.json | 0 .../vitis/client}/css/icons/style.css | 0 .../css/lib/awesome-bootstrap-checkbox.css | 0 .../css/lib/bootstrap-checkbox/build.css | 0 .../lib/bootstrap-checkbox/font-awesome.css | 0 .../bootstrap-checkbox/font-awesome.min.css | 0 .../css/lib/bootstrap/css/bootstrap-theme.css | 0 .../lib/bootstrap/css/bootstrap-theme.css.map | 0 .../lib/bootstrap/css/bootstrap-theme.min.css | 0 .../css/lib/bootstrap/css/bootstrap.css | 0 .../css/lib/bootstrap/css/bootstrap.css.map | 0 .../css/lib/bootstrap/css/bootstrap.min.css | 0 .../fonts/glyphicons-halflings-regular.eot | Bin .../fonts/glyphicons-halflings-regular.svg | 0 .../fonts/glyphicons-halflings-regular.ttf | Bin .../fonts/glyphicons-halflings-regular.woff | Bin .../fonts/glyphicons-halflings-regular.woff2 | Bin .../client}/css/lib/codemirror/codemirror.css | 0 .../lib/codemirror/codemirror_foldgutter.css | 0 .../client}/css/lib/codemirror/dialog.css | 0 .../vitis/client}/css/lib/codemirror/docs.css | 0 .../vitis/client}/css/lib/codemirror/map.css | 0 .../client}/css/lib/codemirror/show-hint.css | 0 .../css/lib/codemirror/theme/3024-day.css | 0 .../css/lib/codemirror/theme/3024-night.css | 0 .../css/lib/codemirror/theme/Veremes.css | 0 .../css/lib/codemirror/theme/abcdef.css | 0 .../lib/codemirror/theme/ambiance-mobile.css | 0 .../css/lib/codemirror/theme/ambiance.css | 0 .../css/lib/codemirror/theme/base16-dark.css | 0 .../css/lib/codemirror/theme/base16-light.css | 0 .../css/lib/codemirror/theme/bespin.css | 0 .../css/lib/codemirror/theme/blackboard.css | 0 .../css/lib/codemirror/theme/cobalt.css | 0 .../css/lib/codemirror/theme/colorforth.css | 0 .../css/lib/codemirror/theme/dracula.css | 0 .../css/lib/codemirror/theme/eclipse.css | 0 .../css/lib/codemirror/theme/elegant.css | 0 .../css/lib/codemirror/theme/erlang-dark.css | 0 .../css/lib/codemirror/theme/hopscotch.css | 0 .../css/lib/codemirror/theme/icecoder.css | 0 .../css/lib/codemirror/theme/isotope.css | 0 .../css/lib/codemirror/theme/lesser-dark.css | 0 .../css/lib/codemirror/theme/liquibyte.css | 0 .../css/lib/codemirror/theme/material.css | 0 .../client}/css/lib/codemirror/theme/mbo.css | 0 .../css/lib/codemirror/theme/mdn-like.css | 0 .../css/lib/codemirror/theme/midnight.css | 0 .../css/lib/codemirror/theme/monokai.css | 0 .../client}/css/lib/codemirror/theme/neat.css | 0 .../client}/css/lib/codemirror/theme/neo.css | 0 .../css/lib/codemirror/theme/night.css | 0 .../css/lib/codemirror/theme/paraiso-dark.css | 0 .../lib/codemirror/theme/paraiso-light.css | 0 .../lib/codemirror/theme/pastel-on-dark.css | 0 .../css/lib/codemirror/theme/railscasts.css | 0 .../css/lib/codemirror/theme/rubyblue.css | 0 .../client}/css/lib/codemirror/theme/seti.css | 0 .../css/lib/codemirror/theme/solarized.css | 0 .../css/lib/codemirror/theme/the-matrix.css | 0 .../theme/tomorrow-night-bright.css | 0 .../theme/tomorrow-night-eighties.css | 0 .../client}/css/lib/codemirror/theme/ttcn.css | 0 .../css/lib/codemirror/theme/twilight.css | 0 .../css/lib/codemirror/theme/vibrant-ink.css | 0 .../css/lib/codemirror/theme/xq-dark.css | 0 .../css/lib/codemirror/theme/xq-light.css | 0 .../client}/css/lib/codemirror/theme/yeti.css | 0 .../css/lib/codemirror/theme/zenburn.css | 0 .../css/lib/font-awesome/HELP-US-OUT.txt | 0 .../css/lib/font-awesome/css/font-awesome.css | 0 .../lib/font-awesome/css/font-awesome.min.css | 0 .../lib/font-awesome/fonts/FontAwesome.otf | Bin .../fonts/fontawesome-webfont.eot | Bin .../fonts/fontawesome-webfont.svg | 0 .../fonts/fontawesome-webfont.ttf | Bin .../fonts/fontawesome-webfont.woff | Bin .../fonts/fontawesome-webfont.woff2 | Bin .../css/lib/font-awesome/less/animated.less | 0 .../font-awesome/less/bordered-pulled.less | 0 .../css/lib/font-awesome/less/core.less | 0 .../lib/font-awesome/less/fixed-width.less | 0 .../lib/font-awesome/less/font-awesome.less | 0 .../css/lib/font-awesome/less/icons.less | 0 .../css/lib/font-awesome/less/larger.less | 0 .../css/lib/font-awesome/less/list.less | 0 .../css/lib/font-awesome/less/mixins.less | 0 .../css/lib/font-awesome/less/path.less | 0 .../font-awesome/less/rotated-flipped.less | 0 .../css/lib/font-awesome/less/stacked.less | 0 .../css/lib/font-awesome/less/variables.less | 0 .../css/lib/font-awesome/scss/_animated.scss | 0 .../font-awesome/scss/_bordered-pulled.scss | 0 .../css/lib/font-awesome/scss/_core.scss | 0 .../lib/font-awesome/scss/_fixed-width.scss | 0 .../css/lib/font-awesome/scss/_icons.scss | 0 .../css/lib/font-awesome/scss/_larger.scss | 0 .../css/lib/font-awesome/scss/_list.scss | 0 .../css/lib/font-awesome/scss/_mixins.scss | 0 .../css/lib/font-awesome/scss/_path.scss | 0 .../font-awesome/scss/_rotated-flipped.scss | 0 .../css/lib/font-awesome/scss/_stacked.scss | 0 .../css/lib/font-awesome/scss/_variables.scss | 0 .../lib/font-awesome/scss/font-awesome.scss | 0 .../client}/css/lib/fonts/FontAwesome.otf | Bin .../css/lib/fonts/fontawesome-webfont.eot | Bin .../css/lib/fonts/fontawesome-webfont.svg | 0 .../css/lib/fonts/fontawesome-webfont.ttf | Bin .../css/lib/fonts/fontawesome-webfont.woff | Bin .../css/lib/fonts/fontawesome-webfont.woff2 | Bin .../fonts/glyphicons-halflings-regular.eot | Bin .../fonts/glyphicons-halflings-regular.svg | 0 .../fonts/glyphicons-halflings-regular.ttf | Bin .../fonts/glyphicons-halflings-regular.woff | Bin .../fonts/glyphicons-halflings-regular.woff2 | Bin .../css/bootstrap-colorpicker.min.css | 0 .../alpha-horizontal.png | Bin .../img/bootstrap-colorpicker/alpha.png | Bin .../bootstrap-colorpicker/hue-horizontal.png | Bin .../img/bootstrap-colorpicker/hue.png | Bin .../img/bootstrap-colorpicker/saturation.png | Bin .../bootstrap-datepicker3.css | 0 .../bootstrap-datepicker3.min.css | 0 .../bootstrap-fileinput/css/fileinput.css | 0 .../bootstrap-fileinput/css/fileinput.min.css | 0 .../bootstrap-fileinput/img/loading-sm.gif | Bin .../bootstrap-fileinput/img/loading.gif | Bin .../bootstrap-slider/bootstrap-slider.min.css | 0 .../bootstrap-tagsinput.css | 0 .../bootstrap-treeview/bootstrap-treeview.css | 0 .../bootstrap-treeview.min.css | 0 .../jquery.mCustomScrollbar.min.css | 0 .../css/lib/materialize/materialize.css | 0 .../css/lib/materialize/materialize.min.css | 0 .../vitis/client}/css/lib/openlayers/ol.css | 0 .../lib/ui-grid/plugins/draggable-rows.less | 0 .../vitis/client}/css/lib/ui-grid/ui-grid.css | 0 .../vitis/client}/css/lib/ui-grid/ui-grid.eot | Bin .../client}/css/lib/ui-grid/ui-grid.min.css | 0 .../vitis/client}/css/lib/ui-grid/ui-grid.svg | 0 .../vitis/client}/css/lib/ui-grid/ui-grid.ttf | Bin .../client}/css/lib/ui-grid/ui-grid.woff | Bin .../client}/css/lib/viewer/viewer.min.css | 0 .../client}/forms/forgotten_password.json | 0 {client => src/vitis/client}/forms/login.js | 0 {client => src/vitis/client}/forms/login.json | 0 .../vitis/client}/forms/sign_up.json | 0 .../vitis/client}/images/ajax-big-loader.GIF | Bin .../vitis/client}/images/ajax-load-big.gif | Bin .../vitis/client}/images/ajax-load.gif | Bin .../vitis/client}/images/bandeau.png | Bin .../vitis/client}/images/custom.png | Bin .../client}/images/disconnect_button.png | Bin .../vitis/client}/images/download.png | Bin .../vitis/client}/images/editer.png | Bin .../vitis/client}/images/enveloppe.png | Bin {client => src/vitis/client}/images/false.png | Bin .../vitis/client}/images/favicon.ico | Bin {client => src/vitis/client}/images/i.png | Bin .../images/icons/geolocation_marker.png | Bin .../icons/geolocation_marker_heading.png | Bin .../client}/images/icons/icon-arrow-FME.png | Bin .../client}/images/icons/icon-arrow-FME2.png | Bin .../client}/images/icons/icon-filtrage.png | Bin .../images/icons/icons-down-search-arrow.png | Bin .../images/icons/icons-right-search-arrow.png | Bin .../vitis/client}/images/logo-veremes.jpg | Bin .../vitis/client}/images/logo-veremes.png | Bin .../client}/images/mode/configuration.png | Bin .../vitis/client}/images/mode/development.png | Bin .../vitis/client}/images/mode/engine.png | Bin .../vitis/client}/images/mode/help.png | Bin .../vitis/client}/images/mode/logs.png | Bin .../vitis/client}/images/mode/my_work.png | Bin .../vitis/client}/images/mode/publication.png | Bin .../vitis/client}/images/mode/statistics.png | Bin .../vitis/client}/images/mode/supervision.png | Bin .../vitis/client}/images/mode/user.png | Bin .../vitis/client}/images/mode/users.png | Bin .../vitis/client}/images/mode/vmap.png | Bin {client => src/vitis/client}/images/page.png | Bin .../vitis/client}/images/sql_list/st1.gif | Bin .../vitis/client}/images/sql_list/st1.png | Bin .../vitis/client}/images/sql_list/st2.png | Bin .../vitis/client}/images/sql_list/st3.png | Bin .../vitis/client}/images/sql_list/st4.png | Bin .../vitis/client}/images/sql_list/st5.gif | Bin .../vitis/client}/images/sql_list/st6.png | Bin {client => src/vitis/client}/images/true.png | Bin .../vitis/client}/images/ui-grid/wbg.gif | Bin .../vitis/client}/images/visualiser.png | Bin .../vitis/client}/images/wk_params.png | Bin {client => src/vitis/client}/index.html | 0 .../vitis/client}/javascript/app/app.js | 0 .../vitis/client}/javascript/app/config.js | 0 .../app/controllers/doubleFormCtrl.js | 0 .../app/controllers/htmlFormCtrl.js | 0 .../javascript/app/controllers/initCtrl.js | 46 + .../javascript/app/controllers/loginCtrl.js | 7 + .../javascript/app/controllers/mainCtrl.js | 0 .../app/controllers/sectionFormCtrl.js | 0 .../app/controllers/simpleFormCtrl.js | 0 .../app/controllers/workspaceListCtrl.js | 0 .../app/directives/doubleFormDrtv.js | 0 .../javascript/app/directives/htmlFormDrtv.js | 0 .../javascript/app/directives/initDrtv.js | 0 .../javascript/app/directives/loginDrtv.js | 0 .../javascript/app/directives/mainDrtv.js | 0 .../app/directives/sectionFormDrtv.js | 0 .../app/directives/simpleFormDrtv.js | 0 .../app/directives/workspaceListDrtv.js | 0 .../vitis/client}/javascript/app/loadApp.js | 0 .../javascript/app/loadExternalFiles.js | 0 .../client}/javascript/app/modules/mainMod.js | 0 .../client}/javascript/app/script_client.js | 30 + .../javascript/app/services/formSrvc.js | 0 .../javascript/app/services/mainSrvc.js | 0 .../client}/javascript/app/vitiswebsocket.js | 0 .../vitis/client}/javascript/externs/LICENSE | 0 .../javascript/externs/alasql/alasql.min.js | 0 .../externs/alasql/xlsx.core.min.js | 0 .../externs/angular-bind-notifier/LICENSE | 0 .../angular-bind-notifier/bindNotifier.js | 0 .../externs/angular-ui-codemirror/LICENSE | 0 .../angular-ui-codemirror/ui-codemirror.js | 0 .../ui-codemirror.min.js | 0 .../javascript/externs/angular/LICENSE | 0 .../javascript/externs/angular/angular.js | 0 .../javascript/externs/angular/angular.min.js | 0 .../externs/angular/angular.min.js.map | 0 .../angular/modules/angular-translate/LICENSE | 0 .../angular-translate-loader-partial.js | 0 .../angular-translate-loader-partial.min.js | 0 .../angular-translate-loader-static-files.js | 0 ...gular-translate-loader-static-files.min.js | 0 .../angular-translate/angular-translate.js | 0 .../angular-translate.min.js | 0 .../modules/sanitize/angular-sanitize.js | 0 .../modules/sanitize/angular-sanitize.min.js | 0 .../sanitize/angular-sanitize.min.js.map | 0 .../angular/modules/ui-codemirror/LICENSE | 0 .../ui-codemirror/ui-codemirror.min.js | 0 .../angular/modules/ui-grid/LICENSE.md | 0 .../modules/ui-grid/plugins/draggable-rows.js | 0 .../angular/modules/ui-grid/ui-grid.js | 0 .../angular/modules/ui-grid/ui-grid.min.js | 0 .../angular/modules/ui-tinymce/LICENSE | 0 .../angular/modules/ui-tinymce/tinymce.js | 0 .../javascript/externs/bootbox/LICENSE.md | 0 .../javascript/externs/bootbox/bootbox.min.js | 0 .../javascript/externs/bootstrap/LICENSE | 0 .../javascript/externs/bootstrap/bootstrap.js | 0 .../externs/bootstrap/bootstrap.min.js | 0 .../javascript/externs/codemirror/LICENSE | 0 .../codemirror/addon/comment/comment.js | 0 .../addon/comment/continuecomment.js | 0 .../codemirror/addon/dialog/dialog.css | 0 .../externs/codemirror/addon/dialog/dialog.js | 0 .../codemirror/addon/display/autorefresh.js | 0 .../codemirror/addon/display/fullscreen.css | 0 .../codemirror/addon/display/fullscreen.js | 0 .../externs/codemirror/addon/display/panel.js | 0 .../codemirror/addon/display/placeholder.js | 0 .../codemirror/addon/display/rulers.js | 0 .../codemirror/addon/edit/closebrackets.js | 0 .../externs/codemirror/addon/edit/closetag.js | 0 .../codemirror/addon/edit/continuelist.js | 0 .../codemirror/addon/edit/matchbrackets.js | 0 .../codemirror/addon/edit/matchtags.js | 0 .../codemirror/addon/edit/trailingspace.js | 0 .../codemirror/addon/fold/brace-fold.js | 0 .../codemirror/addon/fold/comment-fold.js | 0 .../externs/codemirror/addon/fold/foldcode.js | 0 .../codemirror/addon/fold/foldgutter.css | 0 .../codemirror/addon/fold/foldgutter.js | 0 .../codemirror/addon/fold/indent-fold.js | 0 .../codemirror/addon/fold/markdown-fold.js | 0 .../externs/codemirror/addon/fold/xml-fold.js | 0 .../codemirror/addon/hint/anyword-hint.js | 0 .../externs/codemirror/addon/hint/css-hint.js | 0 .../codemirror/addon/hint/html-hint.js | 0 .../codemirror/addon/hint/javascript-hint.js | 0 .../codemirror/addon/hint/show-hint.css | 0 .../codemirror/addon/hint/show-hint.js | 0 .../externs/codemirror/addon/hint/sql-hint.js | 0 .../externs/codemirror/addon/hint/xml-hint.js | 0 .../codemirror/addon/keymap/sublime.js | 0 .../addon/lint/coffeescript-lint.js | 0 .../externs/codemirror/addon/lint/css-lint.js | 0 .../codemirror/addon/lint/html-lint.js | 0 .../codemirror/addon/lint/javascript-lint.js | 0 .../codemirror/addon/lint/json-lint.js | 0 .../externs/codemirror/addon/lint/lint.css | 0 .../externs/codemirror/addon/lint/lint.js | 0 .../codemirror/addon/lint/yaml-lint.js | 0 .../externs/codemirror/addon/merge/merge.css | 0 .../externs/codemirror/addon/merge/merge.js | 0 .../externs/codemirror/addon/mode/loadmode.js | 0 .../codemirror/addon/mode/multiplex.js | 0 .../codemirror/addon/mode/multiplex_test.js | 0 .../externs/codemirror/addon/mode/overlay.js | 0 .../externs/codemirror/addon/mode/simple.js | 0 .../codemirror/addon/runmode/colorize.js | 0 .../addon/runmode/runmode-standalone.js | 0 .../codemirror/addon/runmode/runmode.js | 0 .../codemirror/addon/runmode/runmode.node.js | 0 .../addon/scroll/annotatescrollbar.js | 0 .../codemirror/addon/scroll/scrollpastend.js | 0 .../addon/scroll/simplescrollbars.css | 0 .../addon/scroll/simplescrollbars.js | 0 .../codemirror/addon/search/jump-to-line.js | 0 .../addon/search/match-highlighter.js | 0 .../addon/search/matchesonscrollbar.css | 0 .../addon/search/matchesonscrollbar.js | 0 .../externs/codemirror/addon/search/search.js | 0 .../codemirror/addon/search/searchcursor.js | 0 .../codemirror/addon/selection/active-line.js | 0 .../addon/selection/mark-selection.js | 0 .../addon/selection/selection-pointer.js | 0 .../externs/codemirror/addon/tern/tern.css | 0 .../externs/codemirror/addon/tern/tern.js | 0 .../externs/codemirror/addon/tern/worker.js | 0 .../externs/codemirror/addon/wrap/hardwrap.js | 0 .../javascript/externs/codemirror/clike.js | 0 .../externs/codemirror/codemirror.js | 0 .../externs/codemirror/codemirror.min.js | 0 .../javascript/externs/codemirror/css.js | 0 .../externs/codemirror/htmlmixed.js | 0 .../externs/codemirror/javascript.js | 0 .../javascript/externs/codemirror/map.js | 0 .../javascript/externs/codemirror/php.js | 0 .../externs/codemirror/show-hint.js | 0 .../javascript/externs/codemirror/sql.js | 0 .../javascript/externs/codemirror/xml.js | 0 .../externs/formReader/component/component.js | 0 .../externs/formReader/component/map.js | 0 .../map_workbench/map_workbench.html | 0 .../component/map_workbench/map_workbench.js | 0 .../externs/formReader/formReader.html | 0 .../externs/formReader/formReader.js | 0 .../externs/formReader/formReaderCtrl.js | 0 .../externs/formReader/formReaderDrtv.js | 0 .../externs/formReader/formReaderSrvc.js | 0 .../javascript/externs/jquery/LICENSE.txt | 0 .../externs/jquery/jquery-1.11.3.js | 0 .../externs/jquery/jquery-1.11.3.min.js | 0 .../externs/jquery/jquery-1.11.3.min.map | 0 .../externs/jquery/plugins/bootbox/bootbox.js | 0 .../jquery/plugins/bootbox/bootbox.min.js | 0 .../bootstrap-colorpicker.min.js | 0 .../js/bootstrap-colorpicker.js | 0 .../js/bootstrap-colorpicker.min.js | 0 .../bootstrap-confirmation.min.js | 0 .../bootstrap-datepicker.js | 0 .../bootstrap-datepicker.min.js | 0 .../locales/bootstrap-datepicker.fr.min.js | 0 .../bootstrap-datetimepicker.min.js | 0 .../plugins/bootstrap-fileinput/fileinput.js | 0 .../bootstrap-fileinput/fileinput.min.js | 0 .../fileinput_locale_fr.js | 0 .../bootstrap-slider/bootstrap-slider.min.js | 0 .../bootstrap-tagsinput.min.js | 0 .../bootstrap-treeview/bootstrap-treeview.js | 0 .../bootstrap-treeview.min.js | 0 .../jquery.mCustomScrollbar.concat.min.js | 0 .../externs/jquery/plugins/notify/notify.js | 0 .../jquery/plugins/notify/notify.min.js | 0 .../client}/javascript/externs/less/LICENSE | 0 .../javascript/externs/less/less.min.js | 0 .../externs/letter-avatar/ngletteravatar.js | 0 .../letter-avatar/ngletteravatar.min.js | 0 .../javascript/externs/mapJSON/MapJSON.js | 0 .../externs/materialize/materialize.js | 0 .../externs/materialize/materialize.min.js | 0 .../javascript/externs/mobile-detect/LICENSE | 0 .../externs/mobile-detect/mobile-detect.js | 0 .../mobile-detect/mobile-detect.min.js | 0 .../client}/javascript/externs/moment/LICENSE | 0 .../javascript/externs/moment/locale/af.js | 0 .../javascript/externs/moment/locale/ar-ma.js | 0 .../javascript/externs/moment/locale/ar-sa.js | 0 .../javascript/externs/moment/locale/ar-tn.js | 0 .../javascript/externs/moment/locale/ar.js | 0 .../javascript/externs/moment/locale/az.js | 0 .../javascript/externs/moment/locale/be.js | 0 .../javascript/externs/moment/locale/bg.js | 0 .../javascript/externs/moment/locale/bn.js | 0 .../javascript/externs/moment/locale/bo.js | 0 .../javascript/externs/moment/locale/br.js | 0 .../javascript/externs/moment/locale/bs.js | 0 .../javascript/externs/moment/locale/ca.js | 0 .../javascript/externs/moment/locale/cs.js | 0 .../javascript/externs/moment/locale/cv.js | 0 .../javascript/externs/moment/locale/cy.js | 0 .../javascript/externs/moment/locale/da.js | 0 .../javascript/externs/moment/locale/de-at.js | 0 .../javascript/externs/moment/locale/de.js | 0 .../javascript/externs/moment/locale/dv.js | 0 .../javascript/externs/moment/locale/el.js | 0 .../javascript/externs/moment/locale/en-au.js | 0 .../javascript/externs/moment/locale/en-ca.js | 0 .../javascript/externs/moment/locale/en-gb.js | 0 .../javascript/externs/moment/locale/en-ie.js | 0 .../javascript/externs/moment/locale/en-nz.js | 0 .../javascript/externs/moment/locale/eo.js | 0 .../javascript/externs/moment/locale/es.js | 0 .../javascript/externs/moment/locale/et.js | 0 .../javascript/externs/moment/locale/eu.js | 0 .../javascript/externs/moment/locale/fa.js | 0 .../javascript/externs/moment/locale/fi.js | 0 .../javascript/externs/moment/locale/fo.js | 0 .../javascript/externs/moment/locale/fr-ca.js | 0 .../javascript/externs/moment/locale/fr-ch.js | 0 .../javascript/externs/moment/locale/fr.js | 0 .../javascript/externs/moment/locale/fy.js | 0 .../javascript/externs/moment/locale/gd.js | 0 .../javascript/externs/moment/locale/gl.js | 0 .../javascript/externs/moment/locale/he.js | 0 .../javascript/externs/moment/locale/hi.js | 0 .../javascript/externs/moment/locale/hr.js | 0 .../javascript/externs/moment/locale/hu.js | 0 .../javascript/externs/moment/locale/hy-am.js | 0 .../javascript/externs/moment/locale/id.js | 0 .../javascript/externs/moment/locale/is.js | 0 .../javascript/externs/moment/locale/it.js | 0 .../javascript/externs/moment/locale/ja.js | 0 .../javascript/externs/moment/locale/jv.js | 0 .../javascript/externs/moment/locale/ka.js | 0 .../javascript/externs/moment/locale/kk.js | 0 .../javascript/externs/moment/locale/km.js | 0 .../javascript/externs/moment/locale/ko.js | 0 .../javascript/externs/moment/locale/lb.js | 0 .../javascript/externs/moment/locale/lo.js | 0 .../javascript/externs/moment/locale/lt.js | 0 .../javascript/externs/moment/locale/lv.js | 0 .../javascript/externs/moment/locale/me.js | 0 .../javascript/externs/moment/locale/mk.js | 0 .../javascript/externs/moment/locale/ml.js | 0 .../javascript/externs/moment/locale/mr.js | 0 .../javascript/externs/moment/locale/ms-my.js | 0 .../javascript/externs/moment/locale/ms.js | 0 .../javascript/externs/moment/locale/my.js | 0 .../javascript/externs/moment/locale/nb.js | 0 .../javascript/externs/moment/locale/ne.js | 0 .../javascript/externs/moment/locale/nl.js | 0 .../javascript/externs/moment/locale/nn.js | 0 .../javascript/externs/moment/locale/pl.js | 0 .../javascript/externs/moment/locale/pt-br.js | 0 .../javascript/externs/moment/locale/pt.js | 0 .../javascript/externs/moment/locale/ro.js | 0 .../javascript/externs/moment/locale/ru.js | 0 .../javascript/externs/moment/locale/se.js | 0 .../javascript/externs/moment/locale/si.js | 0 .../javascript/externs/moment/locale/sk.js | 0 .../javascript/externs/moment/locale/sl.js | 0 .../javascript/externs/moment/locale/sq.js | 0 .../externs/moment/locale/sr-cyrl.js | 0 .../javascript/externs/moment/locale/sr.js | 0 .../javascript/externs/moment/locale/sv.js | 0 .../javascript/externs/moment/locale/sw.js | 0 .../javascript/externs/moment/locale/ta.js | 0 .../javascript/externs/moment/locale/te.js | 0 .../javascript/externs/moment/locale/th.js | 0 .../javascript/externs/moment/locale/tl-ph.js | 0 .../javascript/externs/moment/locale/tlh.js | 0 .../javascript/externs/moment/locale/tr.js | 0 .../javascript/externs/moment/locale/tzl.js | 0 .../externs/moment/locale/tzm-latn.js | 0 .../javascript/externs/moment/locale/tzm.js | 0 .../javascript/externs/moment/locale/uk.js | 0 .../javascript/externs/moment/locale/uz.js | 0 .../javascript/externs/moment/locale/vi.js | 0 .../javascript/externs/moment/locale/zh-cn.js | 0 .../javascript/externs/moment/locale/zh-tw.js | 0 .../javascript/externs/moment/min/locales.js | 0 .../externs/moment/min/locales.min.js | 0 .../externs/moment/min/moment-with-locales.js | 0 .../moment/min/moment-with-locales.min.js | 0 .../externs/moment/min/moment.min.js | 0 .../javascript/externs/moment/min/tests.js | 0 .../javascript/externs/moment/moment.min.js | 0 .../moment/src/lib/create/check-overflow.js | 0 .../moment/src/lib/create/date-from-array.js | 0 .../moment/src/lib/create/from-anything.js | 0 .../moment/src/lib/create/from-array.js | 0 .../moment/src/lib/create/from-object.js | 0 .../src/lib/create/from-string-and-array.js | 0 .../src/lib/create/from-string-and-format.js | 0 .../moment/src/lib/create/from-string.js | 0 .../externs/moment/src/lib/create/local.js | 0 .../moment/src/lib/create/parsing-flags.js | 0 .../externs/moment/src/lib/create/utc.js | 0 .../externs/moment/src/lib/create/valid.js | 0 .../externs/moment/src/lib/duration/abs.js | 0 .../moment/src/lib/duration/add-subtract.js | 0 .../externs/moment/src/lib/duration/as.js | 0 .../externs/moment/src/lib/duration/bubble.js | 0 .../moment/src/lib/duration/constructor.js | 0 .../externs/moment/src/lib/duration/create.js | 0 .../moment/src/lib/duration/duration.js | 0 .../externs/moment/src/lib/duration/get.js | 0 .../moment/src/lib/duration/humanize.js | 0 .../moment/src/lib/duration/iso-string.js | 0 .../moment/src/lib/duration/prototype.js | 0 .../externs/moment/src/lib/format/format.js | 0 .../externs/moment/src/lib/locale/calendar.js | 0 .../moment/src/lib/locale/constructor.js | 0 .../externs/moment/src/lib/locale/en.js | 0 .../externs/moment/src/lib/locale/formats.js | 0 .../externs/moment/src/lib/locale/invalid.js | 0 .../externs/moment/src/lib/locale/lists.js | 0 .../externs/moment/src/lib/locale/locale.js | 0 .../externs/moment/src/lib/locale/locales.js | 0 .../externs/moment/src/lib/locale/ordinal.js | 0 .../moment/src/lib/locale/pre-post-format.js | 0 .../moment/src/lib/locale/prototype.js | 0 .../externs/moment/src/lib/locale/relative.js | 0 .../externs/moment/src/lib/locale/set.js | 0 .../moment/src/lib/moment/add-subtract.js | 0 .../externs/moment/src/lib/moment/calendar.js | 0 .../externs/moment/src/lib/moment/clone.js | 0 .../externs/moment/src/lib/moment/compare.js | 0 .../moment/src/lib/moment/constructor.js | 0 .../moment/src/lib/moment/creation-data.js | 0 .../externs/moment/src/lib/moment/diff.js | 0 .../externs/moment/src/lib/moment/format.js | 0 .../externs/moment/src/lib/moment/from.js | 0 .../externs/moment/src/lib/moment/get-set.js | 0 .../externs/moment/src/lib/moment/locale.js | 0 .../externs/moment/src/lib/moment/min-max.js | 0 .../externs/moment/src/lib/moment/moment.js | 0 .../externs/moment/src/lib/moment/now.js | 0 .../moment/src/lib/moment/prototype.js | 0 .../moment/src/lib/moment/start-end-of.js | 0 .../externs/moment/src/lib/moment/to-type.js | 0 .../externs/moment/src/lib/moment/to.js | 0 .../externs/moment/src/lib/moment/valid.js | 0 .../externs/moment/src/lib/parse/regex.js | 0 .../externs/moment/src/lib/parse/token.js | 0 .../externs/moment/src/lib/units/aliases.js | 0 .../externs/moment/src/lib/units/constants.js | 0 .../moment/src/lib/units/day-of-month.js | 0 .../moment/src/lib/units/day-of-week.js | 0 .../moment/src/lib/units/day-of-year.js | 0 .../externs/moment/src/lib/units/hour.js | 0 .../moment/src/lib/units/millisecond.js | 0 .../externs/moment/src/lib/units/minute.js | 0 .../externs/moment/src/lib/units/month.js | 0 .../externs/moment/src/lib/units/offset.js | 0 .../externs/moment/src/lib/units/quarter.js | 0 .../externs/moment/src/lib/units/second.js | 0 .../externs/moment/src/lib/units/timestamp.js | 0 .../externs/moment/src/lib/units/timezone.js | 0 .../externs/moment/src/lib/units/units.js | 0 .../src/lib/units/week-calendar-utils.js | 0 .../externs/moment/src/lib/units/week-year.js | 0 .../externs/moment/src/lib/units/week.js | 0 .../externs/moment/src/lib/units/year.js | 0 .../externs/moment/src/lib/utils/abs-ceil.js | 0 .../externs/moment/src/lib/utils/abs-floor.js | 0 .../moment/src/lib/utils/compare-arrays.js | 0 .../externs/moment/src/lib/utils/defaults.js | 0 .../externs/moment/src/lib/utils/deprecate.js | 0 .../externs/moment/src/lib/utils/extend.js | 0 .../moment/src/lib/utils/has-own-prop.js | 0 .../externs/moment/src/lib/utils/hooks.js | 0 .../externs/moment/src/lib/utils/is-array.js | 0 .../externs/moment/src/lib/utils/is-date.js | 0 .../moment/src/lib/utils/is-function.js | 0 .../moment/src/lib/utils/is-undefined.js | 0 .../externs/moment/src/lib/utils/map.js | 0 .../externs/moment/src/lib/utils/to-int.js | 0 .../externs/moment/src/lib/utils/zero-fill.js | 0 .../externs/moment/src/locale/af.js | 0 .../externs/moment/src/locale/ar-ma.js | 0 .../externs/moment/src/locale/ar-sa.js | 0 .../externs/moment/src/locale/ar-tn.js | 0 .../externs/moment/src/locale/ar.js | 0 .../externs/moment/src/locale/az.js | 0 .../externs/moment/src/locale/be.js | 0 .../externs/moment/src/locale/bg.js | 0 .../externs/moment/src/locale/bn.js | 0 .../externs/moment/src/locale/bo.js | 0 .../externs/moment/src/locale/br.js | 0 .../externs/moment/src/locale/bs.js | 0 .../externs/moment/src/locale/ca.js | 0 .../externs/moment/src/locale/cs.js | 0 .../externs/moment/src/locale/cv.js | 0 .../externs/moment/src/locale/cy.js | 0 .../externs/moment/src/locale/da.js | 0 .../externs/moment/src/locale/de-at.js | 0 .../externs/moment/src/locale/de.js | 0 .../externs/moment/src/locale/dv.js | 0 .../externs/moment/src/locale/el.js | 0 .../externs/moment/src/locale/en-au.js | 0 .../externs/moment/src/locale/en-ca.js | 0 .../externs/moment/src/locale/en-gb.js | 0 .../externs/moment/src/locale/en-ie.js | 0 .../externs/moment/src/locale/en-nz.js | 0 .../externs/moment/src/locale/eo.js | 0 .../externs/moment/src/locale/es.js | 0 .../externs/moment/src/locale/et.js | 0 .../externs/moment/src/locale/eu.js | 0 .../externs/moment/src/locale/fa.js | 0 .../externs/moment/src/locale/fi.js | 0 .../externs/moment/src/locale/fo.js | 0 .../externs/moment/src/locale/fr-ca.js | 0 .../externs/moment/src/locale/fr-ch.js | 0 .../externs/moment/src/locale/fr.js | 0 .../externs/moment/src/locale/fy.js | 0 .../externs/moment/src/locale/gd.js | 0 .../externs/moment/src/locale/gl.js | 0 .../externs/moment/src/locale/he.js | 0 .../externs/moment/src/locale/hi.js | 0 .../externs/moment/src/locale/hr.js | 0 .../externs/moment/src/locale/hu.js | 0 .../externs/moment/src/locale/hy-am.js | 0 .../externs/moment/src/locale/id.js | 0 .../externs/moment/src/locale/is.js | 0 .../externs/moment/src/locale/it.js | 0 .../externs/moment/src/locale/ja.js | 0 .../externs/moment/src/locale/jv.js | 0 .../externs/moment/src/locale/ka.js | 0 .../externs/moment/src/locale/kk.js | 0 .../externs/moment/src/locale/km.js | 0 .../externs/moment/src/locale/ko.js | 0 .../externs/moment/src/locale/lb.js | 0 .../externs/moment/src/locale/lo.js | 0 .../externs/moment/src/locale/lt.js | 0 .../externs/moment/src/locale/lv.js | 0 .../externs/moment/src/locale/me.js | 0 .../externs/moment/src/locale/mk.js | 0 .../externs/moment/src/locale/ml.js | 0 .../externs/moment/src/locale/mr.js | 0 .../externs/moment/src/locale/ms-my.js | 0 .../externs/moment/src/locale/ms.js | 0 .../externs/moment/src/locale/my.js | 0 .../externs/moment/src/locale/nb.js | 0 .../externs/moment/src/locale/ne.js | 0 .../externs/moment/src/locale/nl.js | 0 .../externs/moment/src/locale/nn.js | 0 .../externs/moment/src/locale/pl.js | 0 .../externs/moment/src/locale/pt-br.js | 0 .../externs/moment/src/locale/pt.js | 0 .../externs/moment/src/locale/ro.js | 0 .../externs/moment/src/locale/ru.js | 0 .../externs/moment/src/locale/se.js | 0 .../externs/moment/src/locale/si.js | 0 .../externs/moment/src/locale/sk.js | 0 .../externs/moment/src/locale/sl.js | 0 .../externs/moment/src/locale/sq.js | 0 .../externs/moment/src/locale/sr-cyrl.js | 0 .../externs/moment/src/locale/sr.js | 0 .../externs/moment/src/locale/sv.js | 0 .../externs/moment/src/locale/sw.js | 0 .../externs/moment/src/locale/ta.js | 0 .../externs/moment/src/locale/te.js | 0 .../externs/moment/src/locale/th.js | 0 .../externs/moment/src/locale/tl-ph.js | 0 .../externs/moment/src/locale/tlh.js | 0 .../externs/moment/src/locale/tr.js | 0 .../externs/moment/src/locale/tzl.js | 0 .../externs/moment/src/locale/tzm-latn.js | 0 .../externs/moment/src/locale/tzm.js | 0 .../externs/moment/src/locale/uk.js | 0 .../externs/moment/src/locale/uz.js | 0 .../externs/moment/src/locale/vi.js | 0 .../externs/moment/src/locale/zh-cn.js | 0 .../externs/moment/src/locale/zh-tw.js | 0 .../javascript/externs/moment/src/moment.js | 0 .../externs/moment/templates/amd-named.js | 0 .../externs/moment/templates/amd.js | 0 .../externs/moment/templates/default.js | 0 .../externs/moment/templates/globals.js | 0 .../externs/moment/templates/locale-header.js | 0 .../externs/moment/templates/test-header.js | 0 .../openLayers/licenses/APACHE-2.0.txt | 0 .../openLayers/licenses/BSD-LICENSE.txt | 0 .../openLayers/licenses/MIT-LICENSE.txt | 0 .../externs/openLayers/ol.ext/pbf.js | 0 .../externs/openLayers/ol.ext/pixelworks.js | 0 .../externs/openLayers/ol.ext/rbush.js | 0 .../externs/openLayers/ol.ext/vectortile.js | 0 .../externs/openLayers/ol/ol/array.js | 0 .../openLayers/ol/ol/assertionerror.js | 0 .../externs/openLayers/ol/ol/asserts.js | 0 .../externs/openLayers/ol/ol/attribution.js | 0 .../externs/openLayers/ol/ol/canvasmap.js | 0 .../openLayers/ol/ol/centerconstraint.js | 0 .../externs/openLayers/ol/ol/collection.js | 0 .../openLayers/ol/ol/collectioneventtype.js | 0 .../externs/openLayers/ol/ol/color.js | 0 .../externs/openLayers/ol/ol/color.jsdoc | 0 .../externs/openLayers/ol/ol/colorlike.js | 0 .../externs/openLayers/ol/ol/colorlike.jsdoc | 0 .../externs/openLayers/ol/ol/control.js | 0 .../openLayers/ol/ol/control/attribution.js | 0 .../openLayers/ol/ol/control/control.js | 0 .../openLayers/ol/ol/control/fullscreen.js | 0 .../openLayers/ol/ol/control/index.jsdoc | 0 .../openLayers/ol/ol/control/mouseposition.js | 0 .../openLayers/ol/ol/control/overviewmap.js | 0 .../openLayers/ol/ol/control/rotate.js | 0 .../openLayers/ol/ol/control/scaleline.js | 0 .../ol/ol/control/scalelineunits.js | 0 .../externs/openLayers/ol/ol/control/zoom.js | 0 .../openLayers/ol/ol/control/zoomslider.js | 0 .../openLayers/ol/ol/control/zoomtoextent.js | 0 .../externs/openLayers/ol/ol/coordinate.js | 0 .../externs/openLayers/ol/ol/coordinate.jsdoc | 0 .../externs/openLayers/ol/ol/css.js | 0 .../openLayers/ol/ol/deviceorientation.js | 0 .../externs/openLayers/ol/ol/disposable.js | 0 .../externs/openLayers/ol/ol/dom.js | 0 .../externs/openLayers/ol/ol/easing.js | 0 .../externs/openLayers/ol/ol/easing.jsdoc | 0 .../externs/openLayers/ol/ol/events.js | 0 .../openLayers/ol/ol/events/condition.js | 0 .../openLayers/ol/ol/events/condition.jsdoc | 0 .../externs/openLayers/ol/ol/events/event.js | 0 .../openLayers/ol/ol/events/eventtarget.js | 0 .../openLayers/ol/ol/events/eventtype.js | 0 .../openLayers/ol/ol/events/keycode.js | 0 .../externs/openLayers/ol/ol/extent.js | 0 .../externs/openLayers/ol/ol/extent.jsdoc | 0 .../externs/openLayers/ol/ol/extent/corner.js | 0 .../openLayers/ol/ol/extent/relationship.js | 0 .../externs/openLayers/ol/ol/feature.js | 0 .../externs/openLayers/ol/ol/featureloader.js | 0 .../openLayers/ol/ol/featureloader.jsdoc | 0 .../openLayers/ol/ol/format/esrijson.js | 0 .../openLayers/ol/ol/format/feature.js | 0 .../externs/openLayers/ol/ol/format/filter.js | 0 .../openLayers/ol/ol/format/filter/and.js | 0 .../openLayers/ol/ol/format/filter/bbox.js | 0 .../ol/ol/format/filter/comparison.js | 0 .../ol/ol/format/filter/comparisonbinary.js | 0 .../ol/ol/format/filter/contains.js | 0 .../openLayers/ol/ol/format/filter/during.js | 0 .../openLayers/ol/ol/format/filter/equalto.js | 0 .../openLayers/ol/ol/format/filter/filter.js | 0 .../ol/ol/format/filter/greaterthan.js | 0 .../ol/format/filter/greaterthanorequalto.js | 0 .../ol/ol/format/filter/index.jsdoc | 0 .../ol/ol/format/filter/intersects.js | 0 .../ol/ol/format/filter/isbetween.js | 0 .../openLayers/ol/ol/format/filter/islike.js | 0 .../openLayers/ol/ol/format/filter/isnull.js | 0 .../ol/ol/format/filter/lessthan.js | 0 .../ol/ol/format/filter/lessthanorequalto.js | 0 .../ol/ol/format/filter/logicalnary.js | 0 .../openLayers/ol/ol/format/filter/not.js | 0 .../ol/ol/format/filter/notequalto.js | 0 .../openLayers/ol/ol/format/filter/or.js | 0 .../openLayers/ol/ol/format/filter/spatial.js | 0 .../openLayers/ol/ol/format/filter/within.js | 0 .../openLayers/ol/ol/format/formattype.js | 0 .../openLayers/ol/ol/format/geojson.js | 0 .../externs/openLayers/ol/ol/format/gml.js | 0 .../externs/openLayers/ol/ol/format/gml2.js | 0 .../externs/openLayers/ol/ol/format/gml3.js | 0 .../openLayers/ol/ol/format/gmlbase.js | 0 .../externs/openLayers/ol/ol/format/gpx.js | 0 .../externs/openLayers/ol/ol/format/igc.js | 0 .../externs/openLayers/ol/ol/format/igcz.js | 0 .../openLayers/ol/ol/format/index.jsdoc | 0 .../openLayers/ol/ol/format/jsonfeature.js | 0 .../externs/openLayers/ol/ol/format/kml.js | 0 .../externs/openLayers/ol/ol/format/mvt.js | 0 .../externs/openLayers/ol/ol/format/osmxml.js | 0 .../externs/openLayers/ol/ol/format/ows.js | 0 .../openLayers/ol/ol/format/polyline.js | 0 .../externs/openLayers/ol/ol/format/readme.md | 0 .../openLayers/ol/ol/format/textfeature.js | 0 .../openLayers/ol/ol/format/topojson.js | 0 .../externs/openLayers/ol/ol/format/wfs.js | 0 .../externs/openLayers/ol/ol/format/wkt.js | 0 .../ol/ol/format/wmscapabilities.js | 0 .../ol/ol/format/wmsgetfeatureinfo.js | 0 .../ol/ol/format/wmtscapabilities.js | 0 .../externs/openLayers/ol/ol/format/xlink.js | 0 .../externs/openLayers/ol/ol/format/xml.js | 0 .../openLayers/ol/ol/format/xmlfeature.js | 0 .../externs/openLayers/ol/ol/format/xsd.js | 0 .../externs/openLayers/ol/ol/functions.js | 0 .../externs/openLayers/ol/ol/geolocation.js | 0 .../openLayers/ol/ol/geolocationproperty.js | 0 .../externs/openLayers/ol/ol/geom/circle.js | 0 .../openLayers/ol/ol/geom/flat/area.js | 0 .../openLayers/ol/ol/geom/flat/center.js | 0 .../openLayers/ol/ol/geom/flat/closest.js | 0 .../openLayers/ol/ol/geom/flat/contains.js | 0 .../openLayers/ol/ol/geom/flat/deflate.js | 0 .../openLayers/ol/ol/geom/flat/flip.js | 0 .../openLayers/ol/ol/geom/flat/geodesic.js | 0 .../openLayers/ol/ol/geom/flat/inflate.js | 0 .../ol/ol/geom/flat/interiorpoint.js | 0 .../openLayers/ol/ol/geom/flat/interpolate.js | 0 .../ol/ol/geom/flat/intersectsextent.js | 0 .../openLayers/ol/ol/geom/flat/length.js | 0 .../openLayers/ol/ol/geom/flat/orient.js | 0 .../openLayers/ol/ol/geom/flat/reverse.js | 0 .../openLayers/ol/ol/geom/flat/segments.js | 0 .../openLayers/ol/ol/geom/flat/simplify.js | 0 .../ol/ol/geom/flat/straightchunk.js | 0 .../openLayers/ol/ol/geom/flat/textpath.js | 0 .../openLayers/ol/ol/geom/flat/topology.js | 0 .../openLayers/ol/ol/geom/flat/transform.js | 0 .../externs/openLayers/ol/ol/geom/geom.jsdoc | 0 .../externs/openLayers/ol/ol/geom/geometry.js | 0 .../ol/ol/geom/geometrycollection.js | 0 .../openLayers/ol/ol/geom/geometrylayout.js | 0 .../openLayers/ol/ol/geom/geometrytype.js | 0 .../openLayers/ol/ol/geom/linearring.js | 0 .../openLayers/ol/ol/geom/linestring.js | 0 .../openLayers/ol/ol/geom/multilinestring.js | 0 .../openLayers/ol/ol/geom/multipoint.js | 0 .../openLayers/ol/ol/geom/multipolygon.js | 0 .../externs/openLayers/ol/ol/geom/point.js | 0 .../externs/openLayers/ol/ol/geom/polygon.js | 0 .../openLayers/ol/ol/geom/simplegeometry.js | 0 .../externs/openLayers/ol/ol/graticule.js | 0 .../externs/openLayers/ol/ol/has.js | 0 .../externs/openLayers/ol/ol/has.jsdoc | 0 .../externs/openLayers/ol/ol/image.js | 0 .../externs/openLayers/ol/ol/imagebase.js | 0 .../externs/openLayers/ol/ol/imagecanvas.js | 0 .../externs/openLayers/ol/ol/imagestate.js | 0 .../externs/openLayers/ol/ol/imagetile.js | 0 .../externs/openLayers/ol/ol/index.js | 0 .../externs/openLayers/ol/ol/interaction.js | 0 .../ol/ol/interaction/doubleclickzoom.js | 0 .../ol/ol/interaction/draganddrop.js | 0 .../openLayers/ol/ol/interaction/dragbox.js | 0 .../openLayers/ol/ol/interaction/dragpan.js | 0 .../ol/ol/interaction/dragrotate.js | 0 .../ol/ol/interaction/dragrotateandzoom.js | 0 .../openLayers/ol/ol/interaction/dragzoom.js | 0 .../openLayers/ol/ol/interaction/draw.js | 0 .../ol/ol/interaction/draweventtype.js | 0 .../openLayers/ol/ol/interaction/extent.js | 0 .../ol/ol/interaction/extenteventtype.js | 0 .../ol/ol/interaction/interaction.js | 0 .../ol/ol/interaction/interaction.jsdoc | 0 .../ol/ol/interaction/keyboardpan.js | 0 .../ol/ol/interaction/keyboardzoom.js | 0 .../openLayers/ol/ol/interaction/modify.js | 0 .../ol/ol/interaction/modifyeventtype.js | 0 .../ol/ol/interaction/mousewheelzoom.js | 0 .../ol/ol/interaction/pinchrotate.js | 0 .../openLayers/ol/ol/interaction/pinchzoom.js | 0 .../openLayers/ol/ol/interaction/pointer.js | 0 .../openLayers/ol/ol/interaction/property.js | 0 .../openLayers/ol/ol/interaction/select.js | 0 .../openLayers/ol/ol/interaction/snap.js | 0 .../openLayers/ol/ol/interaction/translate.js | 0 .../ol/ol/interaction/translateeventtype.js | 0 .../externs/openLayers/ol/ol/kinetic.js | 0 .../externs/openLayers/ol/ol/layer/base.js | 0 .../externs/openLayers/ol/ol/layer/group.js | 0 .../externs/openLayers/ol/ol/layer/heatmap.js | 0 .../externs/openLayers/ol/ol/layer/image.js | 0 .../externs/openLayers/ol/ol/layer/layer.js | 0 .../openLayers/ol/ol/layer/layer.jsdoc | 0 .../openLayers/ol/ol/layer/property.js | 0 .../externs/openLayers/ol/ol/layer/tile.js | 0 .../openLayers/ol/ol/layer/tileproperty.js | 0 .../externs/openLayers/ol/ol/layer/vector.js | 0 .../ol/ol/layer/vectorrendertype.js | 0 .../openLayers/ol/ol/layer/vectortile.js | 0 .../ol/ol/layer/vectortilerendertype.js | 0 .../externs/openLayers/ol/ol/layertype.js | 0 .../openLayers/ol/ol/loadingstrategy.js | 0 .../openLayers/ol/ol/loadingstrategy.jsdoc | 0 .../externs/openLayers/ol/ol/map.js | 0 .../openLayers/ol/ol/mapbrowserevent.js | 0 .../ol/ol/mapbrowsereventhandler.js | 0 .../openLayers/ol/ol/mapbrowsereventtype.js | 0 .../ol/ol/mapbrowserpointerevent.js | 0 .../externs/openLayers/ol/ol/mapevent.js | 0 .../externs/openLayers/ol/ol/mapeventtype.js | 0 .../externs/openLayers/ol/ol/mapproperty.js | 0 .../externs/openLayers/ol/ol/math.js | 0 .../externs/openLayers/ol/ol/net.js | 0 .../externs/openLayers/ol/ol/obj.js | 0 .../externs/openLayers/ol/ol/object.js | 0 .../openLayers/ol/ol/objecteventtype.js | 0 .../externs/openLayers/ol/ol/observable.js | 0 .../externs/openLayers/ol/ol/overlay.js | 0 .../openLayers/ol/ol/overlaypositioning.js | 0 .../externs/openLayers/ol/ol/pluggablemap.js | 0 .../externs/openLayers/ol/ol/plugins.js | 0 .../externs/openLayers/ol/ol/plugintype.js | 0 .../openLayers/ol/ol/pointer/eventsource.js | 0 .../openLayers/ol/ol/pointer/eventtype.js | 0 .../openLayers/ol/ol/pointer/mousesource.js | 0 .../openLayers/ol/ol/pointer/mssource.js | 0 .../openLayers/ol/ol/pointer/nativesource.js | 0 .../openLayers/ol/ol/pointer/pointerevent.js | 0 .../ol/ol/pointer/pointereventhandler.js | 0 .../openLayers/ol/ol/pointer/touchsource.js | 0 .../externs/openLayers/ol/ol/proj.js | 0 .../externs/openLayers/ol/ol/proj/common.js | 0 .../externs/openLayers/ol/ol/proj/epsg3857.js | 0 .../externs/openLayers/ol/ol/proj/epsg4326.js | 0 .../externs/openLayers/ol/ol/proj/index.jsdoc | 0 .../externs/openLayers/ol/ol/proj/proj4.js | 0 .../openLayers/ol/ol/proj/projection.js | 0 .../openLayers/ol/ol/proj/projections.js | 0 .../openLayers/ol/ol/proj/transforms.js | 0 .../externs/openLayers/ol/ol/proj/units.js | 0 .../externs/openLayers/ol/ol/render.js | 0 .../externs/openLayers/ol/ol/render.jsdoc | 0 .../externs/openLayers/ol/ol/render/box.js | 0 .../externs/openLayers/ol/ol/render/canvas.js | 0 .../ol/ol/render/canvas/imagereplay.js | 0 .../ol/ol/render/canvas/immediate.js | 0 .../ol/ol/render/canvas/index.jsdoc | 0 .../ol/ol/render/canvas/instruction.js | 0 .../ol/ol/render/canvas/linestringreplay.js | 0 .../ol/ol/render/canvas/polygonreplay.js | 0 .../openLayers/ol/ol/render/canvas/replay.js | 0 .../ol/ol/render/canvas/replaygroup.js | 0 .../ol/ol/render/canvas/textreplay.js | 0 .../externs/openLayers/ol/ol/render/event.js | 0 .../openLayers/ol/ol/render/eventtype.js | 0 .../openLayers/ol/ol/render/feature.js | 0 .../externs/openLayers/ol/ol/render/replay.js | 0 .../openLayers/ol/ol/render/replaygroup.js | 0 .../openLayers/ol/ol/render/replaytype.js | 0 .../openLayers/ol/ol/render/vectorcontext.js | 0 .../externs/openLayers/ol/ol/render/webgl.js | 0 .../ol/ol/render/webgl/circlereplay.js | 0 .../webgl/circlereplay/defaultshader.glsl | 0 .../webgl/circlereplay/defaultshader.js | 0 .../circlereplay/defaultshader/locations.js | 0 .../ol/ol/render/webgl/imagereplay.js | 0 .../ol/ol/render/webgl/immediate.js | 0 .../openLayers/ol/ol/render/webgl/index.jsdoc | 0 .../ol/ol/render/webgl/linestringreplay.js | 0 .../webgl/linestringreplay/defaultshader.glsl | 0 .../webgl/linestringreplay/defaultshader.js | 0 .../defaultshader/locations.js | 0 .../ol/ol/render/webgl/polygonreplay.js | 0 .../webgl/polygonreplay/defaultshader.glsl | 0 .../webgl/polygonreplay/defaultshader.js | 0 .../polygonreplay/defaultshader/locations.js | 0 .../openLayers/ol/ol/render/webgl/replay.js | 0 .../ol/ol/render/webgl/replaygroup.js | 0 .../ol/ol/render/webgl/textreplay.js | 0 .../ol/ol/render/webgl/texturereplay.js | 0 .../webgl/texturereplay/defaultshader.glsl | 0 .../webgl/texturereplay/defaultshader.js | 0 .../texturereplay/defaultshader/locations.js | 0 .../ol/ol/renderer/canvas/imagelayer.js | 0 .../ol/renderer/canvas/intermediatecanvas.js | 0 .../openLayers/ol/ol/renderer/canvas/layer.js | 0 .../openLayers/ol/ol/renderer/canvas/map.js | 0 .../ol/ol/renderer/canvas/tilelayer.js | 0 .../ol/ol/renderer/canvas/vectorlayer.js | 0 .../ol/ol/renderer/canvas/vectortilelayer.js | 0 .../openLayers/ol/ol/renderer/index.jsdoc | 0 .../openLayers/ol/ol/renderer/layer.js | 0 .../externs/openLayers/ol/ol/renderer/map.js | 0 .../externs/openLayers/ol/ol/renderer/type.js | 0 .../openLayers/ol/ol/renderer/vector.js | 0 .../ol/renderer/webgl/defaultmapshader.glsl | 0 .../ol/ol/renderer/webgl/defaultmapshader.js | 0 .../webgl/defaultmapshader/locations.js | 0 .../ol/ol/renderer/webgl/imagelayer.js | 0 .../openLayers/ol/ol/renderer/webgl/layer.js | 0 .../openLayers/ol/ol/renderer/webgl/map.js | 0 .../ol/ol/renderer/webgl/tilelayer.js | 0 .../ol/ol/renderer/webgl/tilelayershader.glsl | 0 .../ol/ol/renderer/webgl/tilelayershader.js | 0 .../webgl/tilelayershader/locations.js | 0 .../ol/ol/renderer/webgl/vectorlayer.js | 0 .../externs/openLayers/ol/ol/reproj.js | 0 .../externs/openLayers/ol/ol/reproj/image.js | 0 .../externs/openLayers/ol/ol/reproj/tile.js | 0 .../openLayers/ol/ol/reproj/triangulation.js | 0 .../openLayers/ol/ol/resolutionconstraint.js | 0 .../openLayers/ol/ol/rotationconstraint.js | 0 .../externs/openLayers/ol/ol/size.js | 0 .../externs/openLayers/ol/ol/source.jsdoc | 0 .../openLayers/ol/ol/source/bingmaps.js | 0 .../openLayers/ol/ol/source/cartodb.js | 0 .../openLayers/ol/ol/source/cluster.js | 0 .../externs/openLayers/ol/ol/source/image.js | 0 .../ol/ol/source/imagearcgisrest.js | 0 .../openLayers/ol/ol/source/imagecanvas.js | 0 .../openLayers/ol/ol/source/imagemapguide.js | 0 .../openLayers/ol/ol/source/imagestatic.js | 0 .../openLayers/ol/ol/source/imagevector.js | 0 .../openLayers/ol/ol/source/imagewms.js | 0 .../externs/openLayers/ol/ol/source/osm.js | 0 .../externs/openLayers/ol/ol/source/raster.js | 0 .../ol/ol/source/rasteroperationtype.js | 0 .../externs/openLayers/ol/ol/source/source.js | 0 .../externs/openLayers/ol/ol/source/stamen.js | 0 .../externs/openLayers/ol/ol/source/state.js | 0 .../externs/openLayers/ol/ol/source/tile.js | 0 .../openLayers/ol/ol/source/tilearcgisrest.js | 0 .../openLayers/ol/ol/source/tiledebug.js | 0 .../openLayers/ol/ol/source/tileeventtype.js | 0 .../openLayers/ol/ol/source/tileimage.js | 0 .../openLayers/ol/ol/source/tilejson.js | 0 .../openLayers/ol/ol/source/tileutfgrid.js | 0 .../openLayers/ol/ol/source/tilewms.js | 0 .../openLayers/ol/ol/source/urltile.js | 0 .../externs/openLayers/ol/ol/source/vector.js | 0 .../ol/ol/source/vectoreventtype.js | 0 .../openLayers/ol/ol/source/vectortile.js | 0 .../openLayers/ol/ol/source/wmsservertype.js | 0 .../externs/openLayers/ol/ol/source/wmts.js | 0 .../ol/ol/source/wmtsrequestencoding.js | 0 .../externs/openLayers/ol/ol/source/xyz.js | 0 .../openLayers/ol/ol/source/zoomify.js | 0 .../externs/openLayers/ol/ol/sphere.js | 0 .../externs/openLayers/ol/ol/string.js | 0 .../openLayers/ol/ol/structs/linkedlist.js | 0 .../openLayers/ol/ol/structs/lrucache.js | 0 .../openLayers/ol/ol/structs/priorityqueue.js | 0 .../externs/openLayers/ol/ol/structs/rbush.js | 0 .../externs/openLayers/ol/ol/style.js | 0 .../externs/openLayers/ol/ol/style/atlas.js | 0 .../openLayers/ol/ol/style/atlasmanager.js | 0 .../externs/openLayers/ol/ol/style/circle.js | 0 .../externs/openLayers/ol/ol/style/fill.js | 0 .../externs/openLayers/ol/ol/style/icon.js | 0 .../openLayers/ol/ol/style/iconanchorunits.js | 0 .../openLayers/ol/ol/style/iconimage.js | 0 .../openLayers/ol/ol/style/iconimagecache.js | 0 .../openLayers/ol/ol/style/iconorigin.js | 0 .../externs/openLayers/ol/ol/style/image.js | 0 .../openLayers/ol/ol/style/index.jsdoc | 0 .../openLayers/ol/ol/style/regularshape.js | 0 .../externs/openLayers/ol/ol/style/stroke.js | 0 .../externs/openLayers/ol/ol/style/style.js | 0 .../externs/openLayers/ol/ol/style/text.js | 0 .../openLayers/ol/ol/style/textplacement.js | 0 .../externs/openLayers/ol/ol/tile.js | 0 .../externs/openLayers/ol/ol/tilecache.js | 0 .../externs/openLayers/ol/ol/tilecoord.js | 0 .../externs/openLayers/ol/ol/tilegrid.js | 0 .../openLayers/ol/ol/tilegrid/index.jsdoc | 0 .../openLayers/ol/ol/tilegrid/tilegrid.js | 0 .../externs/openLayers/ol/ol/tilegrid/wmts.js | 0 .../externs/openLayers/ol/ol/tilequeue.js | 0 .../externs/openLayers/ol/ol/tilerange.js | 0 .../externs/openLayers/ol/ol/tilestate.js | 0 .../openLayers/ol/ol/tileurlfunction.js | 0 .../externs/openLayers/ol/ol/transform.js | 0 .../externs/openLayers/ol/ol/typedefs.js | 0 .../externs/openLayers/ol/ol/uri.js | 0 .../externs/openLayers/ol/ol/vec/mat4.js | 0 .../openLayers/ol/ol/vectorimagetile.js | 0 .../externs/openLayers/ol/ol/vectortile.js | 0 .../externs/openLayers/ol/ol/view.js | 0 .../externs/openLayers/ol/ol/viewhint.js | 0 .../externs/openLayers/ol/ol/viewproperty.js | 0 .../externs/openLayers/ol/ol/webgl.js | 0 .../externs/openLayers/ol/ol/webgl/buffer.js | 0 .../externs/openLayers/ol/ol/webgl/context.js | 0 .../ol/ol/webgl/contexteventtype.js | 0 .../openLayers/ol/ol/webgl/fragment.js | 0 .../externs/openLayers/ol/ol/webgl/shader.js | 0 .../openLayers/ol/ol/webgl/shader.mustache | 0 .../ol/ol/webgl/shaderlocations.mustache | 0 .../externs/openLayers/ol/ol/webgl/vertex.js | 0 .../externs/openLayers/ol/ol/xml.js | 0 .../externs/openLayers/ol3-ext/licence.txt | 0 .../externs/openLayers/ol3-ext/readme.txt | 0 .../ol3-ext/style/fonts/fontanc.def.js | 0 .../ol3-ext/style/fonts/fontawesome.def.js | 0 .../ol3-ext/style/fonts/fontveremes.def.js | 0 .../openLayers/ol3-ext/style/fontsymbol.js | 0 .../openLayers/ol3-ext/style/shadowstyle.js | 0 .../openLayers/ol3-ext/utils/ol.ordering.js | 0 .../openLayers/ol3-veremes/mobilemodify.js | 0 .../openLayers/ol3-veremes/ol.veremes.js | 0 .../externs/rgraph/RGraph.bar_min.js | 0 .../rgraph/RGraph.common.context_min.js | 0 .../externs/rgraph/RGraph.common.core_min.js | 0 .../rgraph/RGraph.common.dynamic_min.js | 0 .../rgraph/RGraph.common.effects_min.js | 0 .../externs/rgraph/RGraph.common.key_min.js | 0 .../rgraph/RGraph.common.tooltips_min.js | 0 .../externs/rgraph/RGraph.drawing.rect_min.js | 0 .../externs/rgraph/RGraph.drawing.text_min.js | 0 .../externs/rgraph/RGraph.pie_min.js | 0 .../externs/rgraph/RGraph.scatter_min.js | 0 .../javascript/externs/scripts_cryptage.js | 0 .../javascript/externs/showdown/showdown.js | 0 .../externs/showdown/showdown.js.map | 0 .../externs/showdown/showdown.min.js | 0 .../externs/showdown/showdown.min.js.map | 0 .../studio/javascript/app/ElementForm.js | 0 .../studio/javascript/app/FormBuilder.js | 0 .../studio/javascript/app/FormTools.js | 0 .../studio/javascript/app/JsonLoader.js | 0 .../externs/studio/javascript/app/Utils.js | 0 .../studio/javascript/app/Visualizer.js | 0 .../javascript/app/VisualizerMode/CssMode.js | 0 .../javascript/app/VisualizerMode/FormMode.js | 0 .../javascript/app/VisualizerMode/JsMode.js | 0 .../javascript/app/VisualizerMode/JsonMode.js | 0 .../externs/studio/lang/lang-en.json | 0 .../externs/studio/lang/lang-fr.json | 0 .../externs/studio/less/CodeMirror.less | 0 .../externs/studio/less/studio.less | 0 .../externs/studio/properties/properties.js | 0 .../studio/templates/Componant/Map.html | 0 .../externs/studio/templates/ElementForm.html | 0 .../externs/studio/templates/FormTools.html | 0 .../externs/studio/templates/JsonLoader.html | 0 .../studio/templates/MainTemplate.html | 0 .../externs/studio/templates/Visualizer.html | 0 .../templates/VisualizerMode/CssMode.html | 0 .../templates/VisualizerMode/FormMode.html | 0 .../templates/VisualizerMode/JsMode.html | 0 .../templates/VisualizerMode/JsonMode.html | 0 .../javascript/externs/tinymce/LICENSE.TXT | 0 .../javascript/externs/tinymce/langs/fr_FR.js | 0 .../tinymce/plugins/image/plugin.min.js | 0 .../skins/lightgray/content.inline.min.css | 0 .../tinymce/skins/lightgray/content.min.css | 0 .../skins/lightgray/fonts/tinymce-small.eot | Bin .../skins/lightgray/fonts/tinymce-small.svg | 0 .../skins/lightgray/fonts/tinymce-small.ttf | Bin .../skins/lightgray/fonts/tinymce-small.woff | Bin .../tinymce/skins/lightgray/fonts/tinymce.eot | Bin .../tinymce/skins/lightgray/fonts/tinymce.svg | 0 .../tinymce/skins/lightgray/fonts/tinymce.ttf | Bin .../skins/lightgray/fonts/tinymce.woff | Bin .../tinymce/skins/lightgray/img/anchor.gif | Bin .../tinymce/skins/lightgray/img/loader.gif | Bin .../tinymce/skins/lightgray/img/object.gif | Bin .../tinymce/skins/lightgray/img/trans.gif | Bin .../tinymce/skins/lightgray/skin.ie7.min.css | 0 .../tinymce/skins/lightgray/skin.min.css | 0 .../tinymce/themes/modern/theme.min.js | 0 .../javascript/externs/tinymce/tinymce.min.js | 0 .../javascript/externs/underscore-min.js | 0 .../client}/javascript/externs/underscore.js | 0 .../externs/viewer/Apache-License-2.0.txt | 0 .../javascript/externs/viewer/viewer.min.js | 0 .../javascript/require/requireVitis.js | 0 .../test/e2e/Output/order/htmlReport.html | 0 .../1fe7143891469e980d1fcca05a66b3a2.png | Bin .../22a14751fa17bd62335ee88ba6c6f9e6.png | Bin .../286dc054fdb1ed4e3c1a14730da91fe3.png | Bin .../446e6e12b1a4a349745acaa42b1fd65d.png | Bin .../4e6851a1377af65074210820d5903ea4.png | Bin .../52280521fa920cd916802fa7bf0752c1.png | Bin .../565819f55fb9493820b1f462eb1469af.png | Bin .../5ef9ed38ebad6379a04897ec6f383aeb.png | Bin .../6c0be7e24610a0144c94df2e1c691718.png | Bin .../85bd21280813079f2797df7a66b953ec.png | Bin .../9d224f9d204337458fa46ab0f4b4a3f9.png | Bin .../a971981cadcc1dafd26000f39ea8a68a.png | Bin .../aa05ad4c25af482047fb6ea3951a4ed9.png | Bin .../cb30486ebf3bd7f9aaa687cc51e07134.png | Bin .../d236806b20deffd8ce0f6393acda549e.png | Bin .../e11cf5a8b029208fb74fb66c82acc314.png | Bin .../fd3ebf7f15da963e0243b0763ccf4888.png | Bin .../e2e/Output/publication/htmlReport.html | 0 .../1a593987e7ca4240d8dfa7d6611b79e7.png | Bin .../29ff6bceadd409d2da0d4e1ffe3146ec.png | Bin .../31d7ecf9dd49ad85104ef4b491582c27.png | Bin .../3d588c2cc178ebbc6085fdbac873049b.png | Bin .../66864911363c5dfa802360f4cd169d15.png | Bin .../71acb5849026bc31c2e1a3efaf750c8c.png | Bin .../859d507231ab559be0caa350c33361b0.png | Bin .../9bbbcfee24b1eeadfe4cbebce3d68f37.png | Bin .../ac9d916cef66cf3b0c6dc04361fc8c7a.png | Bin .../b9c0bafaae0a695509eb679f32d7bbc4.png | Bin .../b9ddfa35957bf67b37ae22b31d8d2467.png | Bin .../c4beb465fd449624d359f3471d6ee4c1.png | Bin .../d044896b4c0e135963e4cc03d2381d56.png | Bin .../e0eec7bfffe9f6b747cb85db357889a0.png | Bin .../e589e1728c06bfa8de1a8a9ce5a24b4d.png | Bin .../e630b1b432c5ec391a0625040a7b7ba8.png | Bin .../ff2cdf03ef3a270449425608d47b23a0.png | Bin .../javascript/test/e2e/VeremesTest.js | 0 .../test/e2e/cu_vitis_abonnement.bat | 0 .../javascript/test/e2e/cu_vitis_ad.bat | 0 .../test/e2e/cu_vitis_categorie.bat | 0 .../javascript/test/e2e/cu_vitis_depot.bat | 0 .../test/e2e/cu_vitis_fichiers_interdits.bat | 0 .../javascript/test/e2e/cu_vitis_filter.bat | 0 .../test/e2e/cu_vitis_formulaire.bat | 0 .../test/e2e/cu_vitis_import_export.bat | 0 .../javascript/test/e2e/cu_vitis_ip.bat | 0 .../javascript/test/e2e/cu_vitis_lot.bat | 0 .../javascript/test/e2e/cu_vitis_metadata.bat | 0 .../javascript/test/e2e/cu_vitis_moteurs.bat | 0 .../javascript/test/e2e/cu_vitis_order.bat | 0 .../test/e2e/cu_vitis_publication.bat | 0 .../javascript/test/e2e/cu_vitis_unicite.bat | 0 .../javascript/test/e2e/cu_vitis_upload.bat | 0 .../test/e2e/cu_vitis_upload_fmw.bat | 0 .../test/e2e/cu_vitis_upload_zip.bat | 0 .../test/e2e/cu_vitis_user_existant.bat | 0 .../javascript/test/e2e/cu_vitis_users.bat | 0 .../test/e2e/cu_vitis_users_linux.bat | 0 .../test/e2e/cu_vitis_users_speciaux.bat | 0 .../test/e2e/cu_vitis_verrouillage_projet.bat | 0 .../.npmignore | 0 .../README.md | 0 .../index.js | 0 .../node_modules/.bin/mkdirp | 0 .../node_modules/.bin/mkdirp.cmd | 0 .../node_modules/hat/README.markdown | 0 .../node_modules/hat/example/hat.js | 0 .../node_modules/hat/example/rack.js | 0 .../node_modules/hat/index.js | 0 .../node_modules/hat/package.json | 0 .../node_modules/hat/test/id.js | 0 .../node_modules/hat/test/rack.js | 0 .../node_modules/lodash/LICENSE | 0 .../node_modules/lodash/README.md | 0 .../node_modules/lodash/array.js | 0 .../node_modules/lodash/array/chunk.js | 0 .../node_modules/lodash/array/compact.js | 0 .../node_modules/lodash/array/difference.js | 0 .../node_modules/lodash/array/drop.js | 0 .../node_modules/lodash/array/dropRight.js | 0 .../lodash/array/dropRightWhile.js | 0 .../node_modules/lodash/array/dropWhile.js | 0 .../node_modules/lodash/array/fill.js | 0 .../node_modules/lodash/array/findIndex.js | 0 .../lodash/array/findLastIndex.js | 0 .../node_modules/lodash/array/first.js | 0 .../node_modules/lodash/array/flatten.js | 0 .../node_modules/lodash/array/flattenDeep.js | 0 .../node_modules/lodash/array/head.js | 0 .../node_modules/lodash/array/indexOf.js | 0 .../node_modules/lodash/array/initial.js | 0 .../node_modules/lodash/array/intersection.js | 0 .../node_modules/lodash/array/last.js | 0 .../node_modules/lodash/array/lastIndexOf.js | 0 .../node_modules/lodash/array/object.js | 0 .../node_modules/lodash/array/pull.js | 0 .../node_modules/lodash/array/pullAt.js | 0 .../node_modules/lodash/array/remove.js | 0 .../node_modules/lodash/array/rest.js | 0 .../node_modules/lodash/array/slice.js | 0 .../node_modules/lodash/array/sortedIndex.js | 0 .../lodash/array/sortedLastIndex.js | 0 .../node_modules/lodash/array/tail.js | 0 .../node_modules/lodash/array/take.js | 0 .../node_modules/lodash/array/takeRight.js | 0 .../lodash/array/takeRightWhile.js | 0 .../node_modules/lodash/array/takeWhile.js | 0 .../node_modules/lodash/array/union.js | 0 .../node_modules/lodash/array/uniq.js | 0 .../node_modules/lodash/array/unique.js | 0 .../node_modules/lodash/array/unzip.js | 0 .../node_modules/lodash/array/unzipWith.js | 0 .../node_modules/lodash/array/without.js | 0 .../node_modules/lodash/array/xor.js | 0 .../node_modules/lodash/array/zip.js | 0 .../node_modules/lodash/array/zipObject.js | 0 .../node_modules/lodash/array/zipWith.js | 0 .../node_modules/lodash/chain.js | 0 .../node_modules/lodash/chain/chain.js | 0 .../node_modules/lodash/chain/commit.js | 0 .../node_modules/lodash/chain/concat.js | 0 .../node_modules/lodash/chain/lodash.js | 0 .../node_modules/lodash/chain/plant.js | 0 .../node_modules/lodash/chain/reverse.js | 0 .../node_modules/lodash/chain/run.js | 0 .../node_modules/lodash/chain/tap.js | 0 .../node_modules/lodash/chain/thru.js | 0 .../node_modules/lodash/chain/toJSON.js | 0 .../node_modules/lodash/chain/toString.js | 0 .../node_modules/lodash/chain/value.js | 0 .../node_modules/lodash/chain/valueOf.js | 0 .../node_modules/lodash/chain/wrapperChain.js | 0 .../lodash/chain/wrapperCommit.js | 0 .../lodash/chain/wrapperConcat.js | 0 .../node_modules/lodash/chain/wrapperPlant.js | 0 .../lodash/chain/wrapperReverse.js | 0 .../lodash/chain/wrapperToString.js | 0 .../node_modules/lodash/chain/wrapperValue.js | 0 .../node_modules/lodash/collection.js | 0 .../node_modules/lodash/collection/all.js | 0 .../node_modules/lodash/collection/any.js | 0 .../node_modules/lodash/collection/at.js | 0 .../node_modules/lodash/collection/collect.js | 0 .../lodash/collection/contains.js | 0 .../node_modules/lodash/collection/countBy.js | 0 .../node_modules/lodash/collection/detect.js | 0 .../node_modules/lodash/collection/each.js | 0 .../lodash/collection/eachRight.js | 0 .../node_modules/lodash/collection/every.js | 0 .../node_modules/lodash/collection/filter.js | 0 .../node_modules/lodash/collection/find.js | 0 .../lodash/collection/findLast.js | 0 .../lodash/collection/findWhere.js | 0 .../node_modules/lodash/collection/foldl.js | 0 .../node_modules/lodash/collection/foldr.js | 0 .../node_modules/lodash/collection/forEach.js | 0 .../lodash/collection/forEachRight.js | 0 .../node_modules/lodash/collection/groupBy.js | 0 .../node_modules/lodash/collection/include.js | 0 .../lodash/collection/includes.js | 0 .../node_modules/lodash/collection/indexBy.js | 0 .../node_modules/lodash/collection/inject.js | 0 .../node_modules/lodash/collection/invoke.js | 0 .../node_modules/lodash/collection/map.js | 0 .../node_modules/lodash/collection/max.js | 0 .../node_modules/lodash/collection/min.js | 0 .../lodash/collection/partition.js | 0 .../node_modules/lodash/collection/pluck.js | 0 .../node_modules/lodash/collection/reduce.js | 0 .../lodash/collection/reduceRight.js | 0 .../node_modules/lodash/collection/reject.js | 0 .../node_modules/lodash/collection/sample.js | 0 .../node_modules/lodash/collection/select.js | 0 .../node_modules/lodash/collection/shuffle.js | 0 .../node_modules/lodash/collection/size.js | 0 .../node_modules/lodash/collection/some.js | 0 .../node_modules/lodash/collection/sortBy.js | 0 .../lodash/collection/sortByAll.js | 0 .../lodash/collection/sortByOrder.js | 0 .../node_modules/lodash/collection/sum.js | 0 .../node_modules/lodash/collection/where.js | 0 .../node_modules/lodash/date.js | 0 .../node_modules/lodash/date/now.js | 0 .../node_modules/lodash/function.js | 0 .../node_modules/lodash/function/after.js | 0 .../node_modules/lodash/function/ary.js | 0 .../node_modules/lodash/function/backflow.js | 0 .../node_modules/lodash/function/before.js | 0 .../node_modules/lodash/function/bind.js | 0 .../node_modules/lodash/function/bindAll.js | 0 .../node_modules/lodash/function/bindKey.js | 0 .../node_modules/lodash/function/compose.js | 0 .../node_modules/lodash/function/curry.js | 0 .../lodash/function/curryRight.js | 0 .../node_modules/lodash/function/debounce.js | 0 .../node_modules/lodash/function/defer.js | 0 .../node_modules/lodash/function/delay.js | 0 .../node_modules/lodash/function/flow.js | 0 .../node_modules/lodash/function/flowRight.js | 0 .../node_modules/lodash/function/memoize.js | 0 .../node_modules/lodash/function/modArgs.js | 0 .../node_modules/lodash/function/negate.js | 0 .../node_modules/lodash/function/once.js | 0 .../node_modules/lodash/function/partial.js | 0 .../lodash/function/partialRight.js | 0 .../node_modules/lodash/function/rearg.js | 0 .../node_modules/lodash/function/restParam.js | 0 .../node_modules/lodash/function/spread.js | 0 .../node_modules/lodash/function/throttle.js | 0 .../node_modules/lodash/function/wrap.js | 0 .../node_modules/lodash/index.js | 0 .../lodash/internal/LazyWrapper.js | 0 .../lodash/internal/LodashWrapper.js | 0 .../node_modules/lodash/internal/MapCache.js | 0 .../node_modules/lodash/internal/SetCache.js | 0 .../lodash/internal/arrayConcat.js | 0 .../node_modules/lodash/internal/arrayCopy.js | 0 .../node_modules/lodash/internal/arrayEach.js | 0 .../lodash/internal/arrayEachRight.js | 0 .../lodash/internal/arrayEvery.js | 0 .../lodash/internal/arrayExtremum.js | 0 .../lodash/internal/arrayFilter.js | 0 .../node_modules/lodash/internal/arrayMap.js | 0 .../node_modules/lodash/internal/arrayPush.js | 0 .../lodash/internal/arrayReduce.js | 0 .../lodash/internal/arrayReduceRight.js | 0 .../node_modules/lodash/internal/arraySome.js | 0 .../node_modules/lodash/internal/arraySum.js | 0 .../lodash/internal/assignDefaults.js | 0 .../lodash/internal/assignOwnDefaults.js | 0 .../lodash/internal/assignWith.js | 0 .../lodash/internal/baseAssign.js | 0 .../node_modules/lodash/internal/baseAt.js | 0 .../lodash/internal/baseCallback.js | 0 .../node_modules/lodash/internal/baseClone.js | 0 .../lodash/internal/baseCompareAscending.js | 0 .../node_modules/lodash/internal/baseCopy.js | 0 .../lodash/internal/baseCreate.js | 0 .../node_modules/lodash/internal/baseDelay.js | 0 .../lodash/internal/baseDifference.js | 0 .../node_modules/lodash/internal/baseEach.js | 0 .../lodash/internal/baseEachRight.js | 0 .../node_modules/lodash/internal/baseEvery.js | 0 .../lodash/internal/baseExtremum.js | 0 .../node_modules/lodash/internal/baseFill.js | 0 .../lodash/internal/baseFilter.js | 0 .../node_modules/lodash/internal/baseFind.js | 0 .../lodash/internal/baseFindIndex.js | 0 .../lodash/internal/baseFlatten.js | 0 .../node_modules/lodash/internal/baseFor.js | 0 .../node_modules/lodash/internal/baseForIn.js | 0 .../lodash/internal/baseForOwn.js | 0 .../lodash/internal/baseForOwnRight.js | 0 .../lodash/internal/baseForRight.js | 0 .../lodash/internal/baseFunctions.js | 0 .../node_modules/lodash/internal/baseGet.js | 0 .../lodash/internal/baseIndexOf.js | 0 .../lodash/internal/baseIsEqual.js | 0 .../lodash/internal/baseIsEqualDeep.js | 0 .../lodash/internal/baseIsFunction.js | 0 .../lodash/internal/baseIsMatch.js | 0 .../lodash/internal/baseLodash.js | 0 .../node_modules/lodash/internal/baseMap.js | 0 .../lodash/internal/baseMatches.js | 0 .../lodash/internal/baseMatchesProperty.js | 0 .../node_modules/lodash/internal/baseMerge.js | 0 .../lodash/internal/baseMergeDeep.js | 0 .../lodash/internal/baseProperty.js | 0 .../lodash/internal/basePropertyDeep.js | 0 .../lodash/internal/basePullAt.js | 0 .../lodash/internal/baseRandom.js | 0 .../lodash/internal/baseReduce.js | 0 .../lodash/internal/baseSetData.js | 0 .../node_modules/lodash/internal/baseSlice.js | 0 .../node_modules/lodash/internal/baseSome.js | 0 .../lodash/internal/baseSortBy.js | 0 .../lodash/internal/baseSortByOrder.js | 0 .../node_modules/lodash/internal/baseSum.js | 0 .../lodash/internal/baseToString.js | 0 .../node_modules/lodash/internal/baseUniq.js | 0 .../lodash/internal/baseValues.js | 0 .../node_modules/lodash/internal/baseWhile.js | 0 .../lodash/internal/baseWrapperValue.js | 0 .../lodash/internal/binaryIndex.js | 0 .../lodash/internal/binaryIndexBy.js | 0 .../lodash/internal/bindCallback.js | 0 .../lodash/internal/bufferClone.js | 0 .../lodash/internal/cacheIndexOf.js | 0 .../node_modules/lodash/internal/cachePush.js | 0 .../lodash/internal/charsLeftIndex.js | 0 .../lodash/internal/charsRightIndex.js | 0 .../lodash/internal/compareAscending.js | 0 .../lodash/internal/compareMultiple.js | 0 .../lodash/internal/composeArgs.js | 0 .../lodash/internal/composeArgsRight.js | 0 .../lodash/internal/createAggregator.js | 0 .../lodash/internal/createAssigner.js | 0 .../lodash/internal/createBaseEach.js | 0 .../lodash/internal/createBaseFor.js | 0 .../lodash/internal/createBindWrapper.js | 0 .../lodash/internal/createCache.js | 0 .../lodash/internal/createCompounder.js | 0 .../lodash/internal/createCtorWrapper.js | 0 .../lodash/internal/createCurry.js | 0 .../lodash/internal/createDefaults.js | 0 .../lodash/internal/createExtremum.js | 0 .../lodash/internal/createFind.js | 0 .../lodash/internal/createFindIndex.js | 0 .../lodash/internal/createFindKey.js | 0 .../lodash/internal/createFlow.js | 0 .../lodash/internal/createForEach.js | 0 .../lodash/internal/createForIn.js | 0 .../lodash/internal/createForOwn.js | 0 .../lodash/internal/createHybridWrapper.js | 0 .../lodash/internal/createObjectMapper.js | 0 .../lodash/internal/createPadDir.js | 0 .../lodash/internal/createPadding.js | 0 .../lodash/internal/createPartial.js | 0 .../lodash/internal/createPartialWrapper.js | 0 .../lodash/internal/createReduce.js | 0 .../lodash/internal/createRound.js | 0 .../lodash/internal/createSortedIndex.js | 0 .../lodash/internal/createWrapper.js | 0 .../lodash/internal/deburrLetter.js | 0 .../lodash/internal/equalArrays.js | 0 .../lodash/internal/equalByTag.js | 0 .../lodash/internal/equalObjects.js | 0 .../lodash/internal/escapeHtmlChar.js | 0 .../lodash/internal/escapeRegExpChar.js | 0 .../lodash/internal/escapeStringChar.js | 0 .../node_modules/lodash/internal/getData.js | 0 .../lodash/internal/getFuncName.js | 0 .../node_modules/lodash/internal/getLength.js | 0 .../lodash/internal/getMatchData.js | 0 .../node_modules/lodash/internal/getNative.js | 0 .../node_modules/lodash/internal/getView.js | 0 .../lodash/internal/indexOfNaN.js | 0 .../lodash/internal/initCloneArray.js | 0 .../lodash/internal/initCloneByTag.js | 0 .../lodash/internal/initCloneObject.js | 0 .../lodash/internal/invokePath.js | 0 .../lodash/internal/isArrayLike.js | 0 .../node_modules/lodash/internal/isIndex.js | 0 .../lodash/internal/isIterateeCall.js | 0 .../node_modules/lodash/internal/isKey.js | 0 .../lodash/internal/isLaziable.js | 0 .../node_modules/lodash/internal/isLength.js | 0 .../lodash/internal/isObjectLike.js | 0 .../node_modules/lodash/internal/isSpace.js | 0 .../lodash/internal/isStrictComparable.js | 0 .../node_modules/lodash/internal/lazyClone.js | 0 .../lodash/internal/lazyReverse.js | 0 .../node_modules/lodash/internal/lazyValue.js | 0 .../node_modules/lodash/internal/mapDelete.js | 0 .../node_modules/lodash/internal/mapGet.js | 0 .../node_modules/lodash/internal/mapHas.js | 0 .../node_modules/lodash/internal/mapSet.js | 0 .../node_modules/lodash/internal/mergeData.js | 0 .../lodash/internal/mergeDefaults.js | 0 .../node_modules/lodash/internal/metaMap.js | 0 .../lodash/internal/pickByArray.js | 0 .../lodash/internal/pickByCallback.js | 0 .../node_modules/lodash/internal/reEscape.js | 0 .../lodash/internal/reEvaluate.js | 0 .../lodash/internal/reInterpolate.js | 0 .../node_modules/lodash/internal/realNames.js | 0 .../node_modules/lodash/internal/reorder.js | 0 .../lodash/internal/replaceHolders.js | 0 .../node_modules/lodash/internal/setData.js | 0 .../node_modules/lodash/internal/shimKeys.js | 0 .../lodash/internal/sortedUniq.js | 0 .../lodash/internal/toIterable.js | 0 .../node_modules/lodash/internal/toObject.js | 0 .../node_modules/lodash/internal/toPath.js | 0 .../lodash/internal/trimmedLeftIndex.js | 0 .../lodash/internal/trimmedRightIndex.js | 0 .../lodash/internal/unescapeHtmlChar.js | 0 .../lodash/internal/wrapperClone.js | 0 .../node_modules/lodash/lang.js | 0 .../node_modules/lodash/lang/clone.js | 0 .../node_modules/lodash/lang/cloneDeep.js | 0 .../node_modules/lodash/lang/eq.js | 0 .../node_modules/lodash/lang/gt.js | 0 .../node_modules/lodash/lang/gte.js | 0 .../node_modules/lodash/lang/isArguments.js | 0 .../node_modules/lodash/lang/isArray.js | 0 .../node_modules/lodash/lang/isBoolean.js | 0 .../node_modules/lodash/lang/isDate.js | 0 .../node_modules/lodash/lang/isElement.js | 0 .../node_modules/lodash/lang/isEmpty.js | 0 .../node_modules/lodash/lang/isEqual.js | 0 .../node_modules/lodash/lang/isError.js | 0 .../node_modules/lodash/lang/isFinite.js | 0 .../node_modules/lodash/lang/isFunction.js | 0 .../node_modules/lodash/lang/isMatch.js | 0 .../node_modules/lodash/lang/isNaN.js | 0 .../node_modules/lodash/lang/isNative.js | 0 .../node_modules/lodash/lang/isNull.js | 0 .../node_modules/lodash/lang/isNumber.js | 0 .../node_modules/lodash/lang/isObject.js | 0 .../node_modules/lodash/lang/isPlainObject.js | 0 .../node_modules/lodash/lang/isRegExp.js | 0 .../node_modules/lodash/lang/isString.js | 0 .../node_modules/lodash/lang/isTypedArray.js | 0 .../node_modules/lodash/lang/isUndefined.js | 0 .../node_modules/lodash/lang/lt.js | 0 .../node_modules/lodash/lang/lte.js | 0 .../node_modules/lodash/lang/toArray.js | 0 .../node_modules/lodash/lang/toPlainObject.js | 0 .../node_modules/lodash/math.js | 0 .../node_modules/lodash/math/add.js | 0 .../node_modules/lodash/math/ceil.js | 0 .../node_modules/lodash/math/floor.js | 0 .../node_modules/lodash/math/max.js | 0 .../node_modules/lodash/math/min.js | 0 .../node_modules/lodash/math/round.js | 0 .../node_modules/lodash/math/sum.js | 0 .../node_modules/lodash/number.js | 0 .../node_modules/lodash/number/inRange.js | 0 .../node_modules/lodash/number/random.js | 0 .../node_modules/lodash/object.js | 0 .../node_modules/lodash/object/assign.js | 0 .../node_modules/lodash/object/create.js | 0 .../node_modules/lodash/object/defaults.js | 0 .../lodash/object/defaultsDeep.js | 0 .../node_modules/lodash/object/extend.js | 0 .../node_modules/lodash/object/findKey.js | 0 .../node_modules/lodash/object/findLastKey.js | 0 .../node_modules/lodash/object/forIn.js | 0 .../node_modules/lodash/object/forInRight.js | 0 .../node_modules/lodash/object/forOwn.js | 0 .../node_modules/lodash/object/forOwnRight.js | 0 .../node_modules/lodash/object/functions.js | 0 .../node_modules/lodash/object/get.js | 0 .../node_modules/lodash/object/has.js | 0 .../node_modules/lodash/object/invert.js | 0 .../node_modules/lodash/object/keys.js | 0 .../node_modules/lodash/object/keysIn.js | 0 .../node_modules/lodash/object/mapKeys.js | 0 .../node_modules/lodash/object/mapValues.js | 0 .../node_modules/lodash/object/merge.js | 0 .../node_modules/lodash/object/methods.js | 0 .../node_modules/lodash/object/omit.js | 0 .../node_modules/lodash/object/pairs.js | 0 .../node_modules/lodash/object/pick.js | 0 .../node_modules/lodash/object/result.js | 0 .../node_modules/lodash/object/set.js | 0 .../node_modules/lodash/object/transform.js | 0 .../node_modules/lodash/object/values.js | 0 .../node_modules/lodash/object/valuesIn.js | 0 .../node_modules/lodash/package.json | 0 .../node_modules/lodash/string.js | 0 .../node_modules/lodash/string/camelCase.js | 0 .../node_modules/lodash/string/capitalize.js | 0 .../node_modules/lodash/string/deburr.js | 0 .../node_modules/lodash/string/endsWith.js | 0 .../node_modules/lodash/string/escape.js | 0 .../lodash/string/escapeRegExp.js | 0 .../node_modules/lodash/string/kebabCase.js | 0 .../node_modules/lodash/string/pad.js | 0 .../node_modules/lodash/string/padLeft.js | 0 .../node_modules/lodash/string/padRight.js | 0 .../node_modules/lodash/string/parseInt.js | 0 .../node_modules/lodash/string/repeat.js | 0 .../node_modules/lodash/string/snakeCase.js | 0 .../node_modules/lodash/string/startCase.js | 0 .../node_modules/lodash/string/startsWith.js | 0 .../node_modules/lodash/string/template.js | 0 .../lodash/string/templateSettings.js | 0 .../node_modules/lodash/string/trim.js | 0 .../node_modules/lodash/string/trimLeft.js | 0 .../node_modules/lodash/string/trimRight.js | 0 .../node_modules/lodash/string/trunc.js | 0 .../node_modules/lodash/string/unescape.js | 0 .../node_modules/lodash/string/words.js | 0 .../node_modules/lodash/support.js | 0 .../node_modules/lodash/utility.js | 0 .../node_modules/lodash/utility/attempt.js | 0 .../node_modules/lodash/utility/callback.js | 0 .../node_modules/lodash/utility/constant.js | 0 .../node_modules/lodash/utility/identity.js | 0 .../node_modules/lodash/utility/iteratee.js | 0 .../node_modules/lodash/utility/matches.js | 0 .../lodash/utility/matchesProperty.js | 0 .../node_modules/lodash/utility/method.js | 0 .../node_modules/lodash/utility/methodOf.js | 0 .../node_modules/lodash/utility/mixin.js | 0 .../node_modules/lodash/utility/noop.js | 0 .../node_modules/lodash/utility/property.js | 0 .../node_modules/lodash/utility/propertyOf.js | 0 .../node_modules/lodash/utility/range.js | 0 .../node_modules/lodash/utility/times.js | 0 .../node_modules/lodash/utility/uniqueId.js | 0 .../node_modules/mkdirp/.travis.yml | 0 .../node_modules/mkdirp/LICENSE | 0 .../node_modules/mkdirp/bin/cmd.js | 0 .../node_modules/mkdirp/bin/usage.txt | 0 .../node_modules/mkdirp/examples/pow.js | 0 .../node_modules/mkdirp/index.js | 0 .../mkdirp/node_modules/minimist/.travis.yml | 0 .../mkdirp/node_modules/minimist/LICENSE | 0 .../node_modules/minimist/example/parse.js | 0 .../mkdirp/node_modules/minimist/index.js | 0 .../mkdirp/node_modules/minimist/package.json | 0 .../node_modules/minimist/readme.markdown | 0 .../mkdirp/node_modules/minimist/test/dash.js | 0 .../minimist/test/default_bool.js | 0 .../node_modules/minimist/test/dotted.js | 0 .../mkdirp/node_modules/minimist/test/long.js | 0 .../node_modules/minimist/test/parse.js | 0 .../minimist/test/parse_modified.js | 0 .../node_modules/minimist/test/short.js | 0 .../node_modules/minimist/test/whitespace.js | 0 .../node_modules/mkdirp/package.json | 0 .../node_modules/mkdirp/readme.markdown | 0 .../node_modules/mkdirp/test/chmod.js | 0 .../node_modules/mkdirp/test/clobber.js | 0 .../node_modules/mkdirp/test/mkdirp.js | 0 .../node_modules/mkdirp/test/opts_fs.js | 0 .../node_modules/mkdirp/test/opts_fs_sync.js | 0 .../node_modules/mkdirp/test/perm.js | 0 .../node_modules/mkdirp/test/perm_sync.js | 0 .../node_modules/mkdirp/test/race.js | 0 .../node_modules/mkdirp/test/rel.js | 0 .../node_modules/mkdirp/test/return.js | 0 .../node_modules/mkdirp/test/return_sync.js | 0 .../node_modules/mkdirp/test/root.js | 0 .../node_modules/mkdirp/test/sync.js | 0 .../node_modules/mkdirp/test/umask.js | 0 .../node_modules/mkdirp/test/umask_sync.js | 0 .../LICENSE-MIT.txt | 0 .../string.prototype.startswith/README.md | 0 .../string.prototype.startswith/package.json | 0 .../string.prototype.startswith/startswith.js | 0 .../package.json | 0 .../protractor.config.js | 0 .../template.html | 0 .../test/test2Spec.js | 0 .../test/testSpec.js | 0 .../test/e2e/protractor.conf.abonnement.js | 0 .../javascript/test/e2e/protractor.conf.ad.js | 0 .../test/e2e/protractor.conf.categorie.js | 0 .../test/e2e/protractor.conf.depot.js | 0 .../e2e/protractor.conf.fichiers_interdits.js | 0 .../test/e2e/protractor.conf.filter.js | 0 .../test/e2e/protractor.conf.formulaire.js | 0 .../test/e2e/protractor.conf.import.export.js | 0 .../javascript/test/e2e/protractor.conf.ip.js | 0 .../javascript/test/e2e/protractor.conf.js | 0 .../test/e2e/protractor.conf.lot.js | 0 .../test/e2e/protractor.conf.metada.js | 0 .../test/e2e/protractor.conf.metadata.js | 0 .../test/e2e/protractor.conf.moteurs.js | 0 .../test/e2e/protractor.conf.order.js | 0 .../test/e2e/protractor.conf.publication.js | 0 .../test/e2e/protractor.conf.unicite.js | 0 .../test/e2e/protractor.conf.upload.js | 0 .../test/e2e/protractor.conf.upload_fmw.js | 0 .../test/e2e/protractor.conf.upload_zip.js | 0 .../test/e2e/protractor.conf.user_existant.js | 0 .../test/e2e/protractor.conf.users.js | 0 .../e2e/protractor.conf.users_speciaux.js | 0 .../protractor.conf.users_speciaux.linux.js | 0 .../protractor.conf.verrouillage_projet.js | 0 .../javascript/test/e2e/resource/DATE.gex | Bin .../javascript/test/e2e/resource/DPT.DBF | Bin .../javascript/test/e2e/resource/DPT.SHP | Bin .../javascript/test/e2e/resource/DPT.SHX | Bin .../javascript/test/e2e/resource/DPT.prj | 0 .../javascript/test/e2e/resource/DPT.zip | Bin .../test/e2e/resource/choix_multiple.fmw | 0 .../test/e2e/resource/choix_multiple.log | 0 .../test/e2e/resource/controle_quali.gex | Bin .../javascript/test/e2e/resource/dep dep.zip | Bin .../javascript/test/e2e/resource/depts.zip | Bin .../javascript/test/e2e/resource/dpt2.dbf | Bin .../javascript/test/e2e/resource/dpt2.prj | 0 .../javascript/test/e2e/resource/dpt2.shp | Bin .../javascript/test/e2e/resource/dpt2.shx | Bin .../javascript/test/e2e/resource/dpt2.zip | Bin .../test/e2e/resource/d\303\251p.zip" | Bin .../javascript/test/e2e/resource/ee aa.fmw | 0 .../javascript/test/e2e/resource/exemples.gex | Bin ...raction_geofla_par_d\303\251partement.gex" | Bin .../test/e2e/resource/import_export.gex | Bin .../test/e2e/resource/import_export2.gex | Bin .../test/e2e/resource/it3/ARDECHE.dbf | Bin .../test/e2e/resource/it3/ARDECHE.prj | 0 .../test/e2e/resource/it3/ARDECHE.shp | Bin .../test/e2e/resource/it3/ARDECHE.shx | Bin .../javascript/test/e2e/resource/metadata.fmw | 0 .../javascript/test/e2e/resource/metadata.log | 0 .../test/e2e/resource/metadata2.fmw | 0 .../test/e2e/resource/selection_villes.gex | Bin .../javascript/test/e2e/resource/shp2mif.fmw | 0 .../test/e2e/resource/t_abonnement.fmw | 0 .../test/e2e/resource/t_formulaire.fmw | 0 .../test/e2e/resource/t_importparlot1.fmw | 0 .../test/e2e/resource/t_importparlot2.fmw | 0 .../test/e2e/resource/t_unicite.fmw | 0 .../javascript/test/e2e/resource/test_gex.gex | Bin .../e2e/resource/test_param_choice_villes.fmw | 0 .../test/e2e/resource/test_param_couleur.fmw | 0 .../e2e/resource/test_param_date_time.fmw | 0 .../e2e/resource/test_param_date_time.log | 0 .../javascript/test/e2e/resource/villes.zip | Bin .../javascript/test/e2e/resource/vse.jpg | Bin .../test/e2e/resource/\303\251\303\240.fmw" | 0 .../test/e2e/scenario/sc_vitis_abonnement.js | 0 .../test/e2e/scenario/sc_vitis_ad.js | 0 .../test/e2e/scenario/sc_vitis_categorie.js | 0 .../test/e2e/scenario/sc_vitis_depot.js | 0 .../scenario/sc_vitis_fichiers_interdits.js | 0 .../test/e2e/scenario/sc_vitis_filter.js | 0 .../test/e2e/scenario/sc_vitis_fme_params.js | 0 .../test/e2e/scenario/sc_vitis_formulaire.js | 0 .../e2e/scenario/sc_vitis_import_export.js | 0 .../test/e2e/scenario/sc_vitis_ip.js | 0 .../test/e2e/scenario/sc_vitis_lot.js | 0 .../test/e2e/scenario/sc_vitis_metadata.js | 0 .../test/e2e/scenario/sc_vitis_moteurs.js | 0 .../test/e2e/scenario/sc_vitis_order.js | 0 .../test/e2e/scenario/sc_vitis_publication.js | 0 .../test/e2e/scenario/sc_vitis_unicite.js | 0 .../test/e2e/scenario/sc_vitis_upload.js | 0 .../test/e2e/scenario/sc_vitis_upload_fmw.js | 0 .../test/e2e/scenario/sc_vitis_upload_zip.js | 0 .../e2e/scenario/sc_vitis_user_existant.js | 0 .../test/e2e/scenario/sc_vitis_users.js | 0 .../test/e2e/scenario/sc_vitis_users_linux.js | 0 .../e2e/scenario/sc_vitis_users_speciaux.js | 0 .../scenario/sc_vitis_users_speciaux_linux.js | 0 .../scenario/sc_vitis_verrouillage_projet.js | 0 .../vitis/client}/lang/lang-en.json | 1 + .../vitis/client}/lang/lang-fr.json | 1 + .../vitis/client}/less/doubleForm.less | 0 .../vitis/client}/less/htmlForm.less | 13 + {client => src/vitis/client}/less/login.less | 0 {client => src/vitis/client}/less/main.less | 0 {client => src/vitis/client}/less/mobile.less | 0 .../vitis/client}/less/sectionForm.less | 0 .../vitis/client}/less/simpleForm.less | 0 .../vitis/client}/less/workspaceList.less | 0 .../client}/modules/vitis/data/proj.json | 0 .../configuration_vitis_configuration.json | 0 .../exploitation_exploitation.json | 160 + .../vitis/forms/logs/logs_vitis_log.json | 0 .../vitis/forms/user/user_vitis_user.js | 0 .../vitis/forms/user/user_vitis_user.json | 0 .../users/active_directory_connection.json | 0 .../users/search_active_directory_group.json | 0 .../users/search_active_directory_person.json | 0 .../forms/users/users_vitis_billinggroup.json | 0 .../vitis/forms/users/users_vitis_domain.json | 0 .../vitis/forms/users/users_vitis_group.json | 0 .../forms/users/users_vitis_privilege.json | 0 .../vitis/forms/users/users_vitis_users.json | 0 .../modules/vitis/images/administrator.png | Bin .../modules/vitis/images/button_green.gif | Bin .../modules/vitis/images/button_red.gif | Bin .../client}/modules/vitis/images/user.png | Bin .../controllers/activeDirectoryTreeCtrl.js | 0 .../vitis/javascript/controllers/logsCtrl.js | 0 .../controllers/versionConfigurationCtrl.js | 0 .../controllers/webServiceHelpCtrl.js | 0 .../controllers/websocketConfigurationCtrl.js | 0 .../client}/modules/vitis/javascript/deps.js | 0 .../directives/activeDirectoryTreeDrtv.js | 0 .../vitis/javascript/directives/logsDrtv.js | 0 .../directives/phpInfoConfigurationDrtv.js | 0 .../directives/versionConfigurationDrtv.js | 0 .../directives/webServiceHelpDrtv.js | 0 .../directives/websocketConfigurationDrtv.js | 0 .../modules/vitis/javascript/script_module.js | 261 +- .../client}/modules/vitis/lang/lang-en.json | 18 +- .../client}/modules/vitis/lang/lang-fr.json | 18 +- .../vitis/less/activeDirectoryTree.less | 0 .../client}/modules/vitis/less/logs.less | 0 .../client}/modules/vitis/less/main.less | 3 +- .../vitis/less/phpInfoConfiguration.less | 0 .../modules/vitis/less/sharedDirectory.less | 3 + .../vitis/less/updateConfiguration.less | 0 .../client}/modules/vitis/less/users.less | 0 .../vitis/less/versionConfiguration.less | 0 .../modules/vitis/less/webServiceHelp.less | 0 .../templates/activeDirectoryTreeLeftTpl.html | 0 .../activeDirectoryTreeRightTpl.html | 0 .../modules/vitis/templates/logsLeftTpl.html | 0 .../modules/vitis/templates/logsRightTpl.html | 0 .../templates/phpInfoConfigurationTpl.html | 0 .../templates/updateConfigurationTpl.html | 0 .../templates/versionConfigurationTpl.html | 0 .../vitis/templates/webServiceHelpTpl.html | 0 .../templates/websocketConfigurationTpl.html | 0 .../templates/clientDocumentationTpl.html | 0 .../vitis/client}/templates/creditsTpl.html | 0 .../client}/templates/doubleFormTpl.html | 0 .../vitis/client}/templates/formTpl.html | 0 .../vitis/client}/templates/loginTpl.html | 0 .../vitis/client}/templates/mainTpl.html | 0 .../client}/templates/sectionFormTpl.html | 0 .../client}/templates/simpleFormTpl.html | 0 .../client}/templates/uiGridActionTpl.html | 0 .../templates/uiGridPaginationTpl.html | 0 .../client}/templates/workspaceListTpl.html | 0 {vas => src/vitis/vas}/doc/composer.json | 0 {vas => src/vitis/vas}/doc/composer.lock | 0 {vas => src/vitis/vas}/doc/css/reset.css | 0 {vas => src/vitis/vas}/doc/css/screen.css | 0 {vas => src/vitis/vas}/doc/css/style.css | 0 {vas => src/vitis/vas}/doc/images/gtf_ws.png | Bin {vas => src/vitis/vas}/doc/images/order.png | Bin .../vitis/vas}/doc/images/overview.png | Bin {vas => src/vitis/vas}/doc/images/rest.png | Bin .../vitis/vas}/doc/images/throbber.gif | Bin {vas => src/vitis/vas}/doc/images/token.png | Bin .../vitis/vas}/doc/images/workspace.png | Bin {vas => src/vitis/vas}/doc/index.phtml | 0 .../vitis/vas}/doc/javascript/backbone-min.js | 0 .../vas}/doc/javascript/handlebars-1.0.0.js | 0 .../vas}/doc/javascript/handlebars-2.0.0.js | 0 .../vas}/doc/javascript/highlight.7.3.pack.js | 0 .../vas}/doc/javascript/jquery-1.8.0.min.js | 0 .../vas}/doc/javascript/jquery.ba-bbq.min.js | 0 .../vas}/doc/javascript/jquery.slideto.min.js | 0 .../vas}/doc/javascript/jquery.wiggle.min.js | 0 .../vitis/vas}/doc/javascript/marked.js | 0 .../vitis/vas}/doc/javascript/shred.bundle.js | 0 .../vas}/doc/javascript/shred/content.js | 0 .../vas}/doc/javascript/swagger-oauth.js | 0 .../vitis/vas}/doc/javascript/swagger-ui.js | 0 .../vas}/doc/javascript/swagger-ui.min.js | 0 .../vas}/doc/javascript/underscore-min.js | 0 .../vas}/doc/javascript/underscore-min.map | 0 {vas => src/vitis/vas}/doc/swagger.php | 0 .../vitis/vas}/doc/vendor/autoload.php | 0 {vas => src/vitis/vas}/doc/vendor/bin/swagger | 0 .../vas}/doc/vendor/composer/ClassLoader.php | 0 .../vitis/vas}/doc/vendor/composer/LICENSE | 0 .../doc/vendor/composer/autoload_classmap.php | 0 .../doc/vendor/composer/autoload_files.php | 0 .../vendor/composer/autoload_namespaces.php | 0 .../doc/vendor/composer/autoload_psr4.php | 0 .../doc/vendor/composer/autoload_real.php | 0 .../doc/vendor/composer/autoload_static.php | 0 .../vas}/doc/vendor/composer/installed.json | 0 .../doc/vendor/doctrine/annotations/LICENSE | 0 .../doc/vendor/doctrine/annotations/README.md | 0 .../vendor/doctrine/annotations/composer.json | 0 .../Common/Annotations/Annotation.php | 0 .../Annotations/Annotation/Attribute.php | 0 .../Annotations/Annotation/Attributes.php | 0 .../Common/Annotations/Annotation/Enum.php | 0 .../Annotation/IgnoreAnnotation.php | 0 .../Annotations/Annotation/Required.php | 0 .../Common/Annotations/Annotation/Target.php | 0 .../Annotations/AnnotationException.php | 0 .../Common/Annotations/AnnotationReader.php | 0 .../Common/Annotations/AnnotationRegistry.php | 0 .../Common/Annotations/CachedReader.php | 0 .../Doctrine/Common/Annotations/DocLexer.php | 0 .../Doctrine/Common/Annotations/DocParser.php | 0 .../Common/Annotations/FileCacheReader.php | 0 .../Common/Annotations/IndexedReader.php | 0 .../Doctrine/Common/Annotations/PhpParser.php | 0 .../Doctrine/Common/Annotations/Reader.php | 0 .../Annotations/SimpleAnnotationReader.php | 0 .../Common/Annotations/TokenParser.php | 0 .../vas}/doc/vendor/doctrine/lexer/LICENSE | 0 .../vas}/doc/vendor/doctrine/lexer/README.md | 0 .../doc/vendor/doctrine/lexer/composer.json | 0 .../Doctrine/Common/Lexer/AbstractLexer.php | 0 .../vas}/doc/vendor/symfony/finder/.gitignore | 0 .../finder/Adapter/AbstractAdapter.php | 0 .../finder/Adapter/AbstractFindAdapter.php | 0 .../finder/Adapter/AdapterInterface.php | 0 .../symfony/finder/Adapter/BsdFindAdapter.php | 0 .../symfony/finder/Adapter/GnuFindAdapter.php | 0 .../symfony/finder/Adapter/PhpAdapter.php | 0 .../doc/vendor/symfony/finder/CHANGELOG.md | 0 .../symfony/finder/Comparator/Comparator.php | 0 .../finder/Comparator/DateComparator.php | 0 .../finder/Comparator/NumberComparator.php | 0 .../Exception/AccessDeniedException.php | 0 .../Exception/AdapterFailureException.php | 0 .../finder/Exception/ExceptionInterface.php | 0 .../OperationNotPermitedException.php | 0 .../ShellCommandFailureException.php | 0 .../symfony/finder/Expression/Expression.php | 0 .../vendor/symfony/finder/Expression/Glob.php | 0 .../symfony/finder/Expression/Regex.php | 0 .../finder/Expression/ValueInterface.php | 0 .../vas}/doc/vendor/symfony/finder/Finder.php | 0 .../vas}/doc/vendor/symfony/finder/Glob.php | 0 .../finder/Iterator/CustomFilterIterator.php | 0 .../Iterator/DateRangeFilterIterator.php | 0 .../Iterator/DepthRangeFilterIterator.php | 0 .../ExcludeDirectoryFilterIterator.php | 0 .../finder/Iterator/FilePathsIterator.php | 0 .../Iterator/FileTypeFilterIterator.php | 0 .../Iterator/FilecontentFilterIterator.php | 0 .../Iterator/FilenameFilterIterator.php | 0 .../finder/Iterator/FilterIterator.php | 0 .../Iterator/MultiplePcreFilterIterator.php | 0 .../finder/Iterator/PathFilterIterator.php | 0 .../Iterator/RecursiveDirectoryIterator.php | 0 .../Iterator/SizeRangeFilterIterator.php | 0 .../finder/Iterator/SortableIterator.php | 0 .../vas}/doc/vendor/symfony/finder/LICENSE | 0 .../vas}/doc/vendor/symfony/finder/README.md | 0 .../vendor/symfony/finder/Shell/Command.php | 0 .../doc/vendor/symfony/finder/Shell/Shell.php | 0 .../doc/vendor/symfony/finder/SplFileInfo.php | 0 .../symfony/finder/Tests/BsdFinderTest.php | 0 .../Tests/Comparator/ComparatorTest.php | 0 .../Tests/Comparator/DateComparatorTest.php | 0 .../Tests/Comparator/NumberComparatorTest.php | 0 .../Tests/Expression/ExpressionTest.php | 0 .../finder/Tests/Expression/GlobTest.php | 0 .../finder/Tests/Expression/RegexTest.php | 0 .../finder/Tests/FakeAdapter/DummyAdapter.php | 0 .../Tests/FakeAdapter/FailingAdapter.php | 0 .../finder/Tests/FakeAdapter/NamedAdapter.php | 0 .../Tests/FakeAdapter/UnsupportedAdapter.php | 0 .../symfony/finder/Tests/FinderTest.php | 0 .../finder/Tests/Fixtures/A/B/C/abc.dat | 0 .../symfony/finder/Tests/Fixtures/A/B/ab.dat | 0 .../symfony/finder/Tests/Fixtures/A/a.dat | 0 .../Tests/Fixtures/copy/A/B/C/abc.dat.copy | 0 .../Tests/Fixtures/copy/A/B/ab.dat.copy | 0 .../finder/Tests/Fixtures/copy/A/a.dat.copy | 0 .../symfony/finder/Tests/Fixtures/dolor.txt | 0 .../symfony/finder/Tests/Fixtures/ipsum.txt | 0 .../symfony/finder/Tests/Fixtures/lorem.txt | 0 .../symfony/finder/Tests/Fixtures/one/a | 0 .../finder/Tests/Fixtures/one/b/c.neon | 0 .../finder/Tests/Fixtures/one/b/d.neon | 0 .../Fixtures/r+e.gex[c]a(r)s/dir/bar.dat | 0 .../finder/Tests/Fixtures/with space/foo.txt | 0 .../vendor/symfony/finder/Tests/GlobTest.php | 0 .../symfony/finder/Tests/GnuFinderTest.php | 0 .../Iterator/CustomFilterIteratorTest.php | 0 .../Iterator/DateRangeFilterIteratorTest.php | 0 .../Iterator/DepthRangeFilterIteratorTest.php | 0 .../ExcludeDirectoryFilterIteratorTest.php | 0 .../Tests/Iterator/FilePathsIteratorTest.php | 0 .../Iterator/FileTypeFilterIteratorTest.php | 0 .../FilecontentFilterIteratorTest.php | 0 .../Iterator/FilenameFilterIteratorTest.php | 0 .../Tests/Iterator/FilterIteratorTest.php | 0 .../finder/Tests/Iterator/Iterator.php | 0 .../Tests/Iterator/IteratorTestCase.php | 0 .../Tests/Iterator/MockFileListIterator.php | 0 .../finder/Tests/Iterator/MockSplFileInfo.php | 0 .../MultiplePcreFilterIteratorTest.php | 0 .../Tests/Iterator/PathFilterIteratorTest.php | 0 .../Tests/Iterator/RealIteratorTestCase.php | 0 .../RecursiveDirectoryIteratorTest.php | 0 .../Iterator/SizeRangeFilterIteratorTest.php | 0 .../Tests/Iterator/SortableIteratorTest.php | 0 .../finder/Tests/Shell/CommandTest.php | 0 .../doc/vendor/symfony/finder/composer.json | 0 .../vendor/symfony/finder/phpunit.xml.dist | 0 .../doc/vendor/zircote/swagger-php/.gitignore | 0 .../vendor/zircote/swagger-php/.travis.yml | 0 .../vendor/zircote/swagger-php/Changelog.md | 0 .../zircote/swagger-php/Examples/Examples.md | 0 .../petstore.swagger.io/ApiResponse.php | 0 .../controllers/PetController.php | 0 .../controllers/StoreController.php | 0 .../controllers/UserController.php | 0 .../petstore.swagger.io/models/Category.php | 0 .../petstore.swagger.io/models/Order.php | 0 .../petstore.swagger.io/models/Pet.php | 0 .../petstore.swagger.io/models/Tag.php | 0 .../petstore.swagger.io/models/User.php | 0 .../Examples/petstore.swagger.io/security.php | 0 .../petstore.swagger.io/swagger-v2.php | 0 .../Examples/petstore.swagger.io/tags.php | 0 .../petstore-simple/SimplePet.php | 0 .../petstore-simple/SimplePetsController.php | 0 .../swagger-spec/petstore-simple/api.php | 0 .../controllers/PetWithDocsController.php | 0 .../petstore-with-external-docs/docs.php | 0 .../models/ErrorModel.php | 0 .../models/Pet.php | 0 .../Examples/swagger-spec/petstore/Pet.php | 0 .../swagger-spec/petstore/PetsController.php | 0 .../Examples/swagger-spec/petstore/api.php | 0 .../zircote/swagger-php/LICENSE-2.0.txt | 0 .../doc/vendor/zircote/swagger-php/README.md | 0 .../doc/vendor/zircote/swagger-php/VERSION | 0 .../vendor/zircote/swagger-php/bin/swagger | 0 .../vendor/zircote/swagger-php/composer.json | 0 .../zircote/swagger-php/docs/Advanced.md | 0 .../swagger-php/docs/Getting-started.md | 0 .../swagger-php/docs/Migrating-to-v2.md | 0 .../swagger-php/docs/Related-projects.md | 0 .../zircote/swagger-php/phpunit.xml.dist | 0 .../zircote/swagger-php/src/Analyser.php | 0 .../zircote/swagger-php/src/Analysis.php | 0 .../src/Annotations/AbstractAnnotation.php | 0 .../swagger-php/src/Annotations/Contact.php | 0 .../src/Annotations/Definition.php | 0 .../swagger-php/src/Annotations/Delete.php | 0 .../src/Annotations/ExternalDocumentation.php | 0 .../swagger-php/src/Annotations/Get.php | 0 .../swagger-php/src/Annotations/Head.php | 0 .../swagger-php/src/Annotations/Header.php | 0 .../swagger-php/src/Annotations/Info.php | 0 .../swagger-php/src/Annotations/Items.php | 0 .../swagger-php/src/Annotations/License.php | 0 .../swagger-php/src/Annotations/Operation.php | 0 .../swagger-php/src/Annotations/Options.php | 0 .../swagger-php/src/Annotations/Parameter.php | 0 .../swagger-php/src/Annotations/Patch.php | 0 .../swagger-php/src/Annotations/Path.php | 0 .../swagger-php/src/Annotations/Post.php | 0 .../swagger-php/src/Annotations/Property.php | 0 .../swagger-php/src/Annotations/Put.php | 0 .../swagger-php/src/Annotations/Response.php | 0 .../swagger-php/src/Annotations/Schema.php | 0 .../src/Annotations/SecurityScheme.php | 0 .../swagger-php/src/Annotations/Swagger.php | 0 .../swagger-php/src/Annotations/Tag.php | 0 .../swagger-php/src/Annotations/Xml.php | 0 .../zircote/swagger-php/src/Context.php | 0 .../vendor/zircote/swagger-php/src/Logger.php | 0 .../src/Processors/AugmentDefinitions.php | 0 .../src/Processors/AugmentOperations.php | 0 .../src/Processors/AugmentParameters.php | 0 .../src/Processors/AugmentProperties.php | 0 .../swagger-php/src/Processors/BuildPaths.php | 0 .../src/Processors/CleanUnmerged.php | 0 .../src/Processors/HandleReferences.php | 0 .../src/Processors/InheritProperties.php | 0 .../src/Processors/MergeIntoSwagger.php | 0 .../zircote/swagger-php/src/Serializer.php | 0 .../swagger-php/src/StaticAnalyser.php | 0 .../vendor/zircote/swagger-php/src/Util.php | 0 .../zircote/swagger-php/src/functions.php | 0 .../tests/AbstractAnnotationTest.php | 0 .../swagger-php/tests/AnalyserTest.php | 0 .../swagger-php/tests/AnalysisTest.php | 0 .../tests/AugmentDefinitionsTest.php | 0 .../tests/AugmentOperationTest.php | 0 .../tests/AugmentParameterTest.php | 0 .../tests/AugmentPropertiesTest.php | 0 .../swagger-php/tests/BuildPathsTest.php | 0 .../swagger-php/tests/CleanUnmergedTest.php | 0 .../tests/CommandlineInterfaceTest.php | 0 .../swagger-php/tests/ConstantsTest.php | 0 .../zircote/swagger-php/tests/ContextTest.php | 0 .../tests/ExamplesOutput/petstore-simple.json | 0 .../petstore-with-external-docs.json | 0 .../tests/ExamplesOutput/petstore.json | 0 .../ExamplesOutput/petstore.swagger.io.json | 0 .../swagger-php/tests/ExamplesTest.php | 0 .../swagger-php/tests/Fixtures/Ancestor.php | 0 .../Fixtures/AncestorWithoutDocBlocks.php | 0 .../swagger-php/tests/Fixtures/Child.php | 0 .../tests/Fixtures/ChildWithDocBlocks.php | 0 .../swagger-php/tests/Fixtures/Customer.php | 0 .../tests/Fixtures/GrandAncestor.php | 0 .../swagger-php/tests/Fixtures/HelloTrait.php | 0 .../tests/Fixtures/NestedProperty.php | 0 .../tests/Fixtures/ThirdPartyAnnotations.php | 0 .../tests/Fixtures/UsingPhpDoc.php | 0 .../swagger-php/tests/Fixtures/UsingRefs.php | 0 .../swagger-php/tests/Fixtures/routes.php | 0 .../tests/InheritPropertiesTest.php | 0 .../zircote/swagger-php/tests/ItemsTest.php | 0 .../tests/MergeIntoSwaggerTest.php | 0 .../swagger-php/tests/NestedPropertyTest.php | 0 .../swagger-php/tests/ResponseTest.php | 0 .../swagger-php/tests/SerializerTest.php | 0 .../swagger-php/tests/StaticAnalyserTest.php | 0 .../swagger-php/tests/SwaggerTestCase.php | 0 .../zircote/swagger-php/tests/UtilTest.php | 0 .../tests/ValidateRelationsTest.php | 0 .../vitis/vas}/public/studio/default.js | 0 {vas => src/vitis/vas}/rest/.htaccess | 0 {vas => src/vitis/vas}/rest/class/.htaccess | 0 .../vitis/vas}/rest/class/Ldap.class.inc | 0 .../vitis/vas}/rest/class/PEAR/Autoloader.php | 0 .../vitis/vas}/rest/class/PEAR/Builder.php | 0 .../vas}/rest/class/PEAR/ChannelFile.php | 0 .../rest/class/PEAR/ChannelFile/Parser.php | 0 .../vitis/vas}/rest/class/PEAR/Command.php | 0 .../vas}/rest/class/PEAR/Command/Auth.php | 0 .../vas}/rest/class/PEAR/Command/Auth.xml | 0 .../vas}/rest/class/PEAR/Command/Build.php | 0 .../vas}/rest/class/PEAR/Command/Build.xml | 0 .../vas}/rest/class/PEAR/Command/Channels.php | 0 .../vas}/rest/class/PEAR/Command/Channels.xml | 0 .../vas}/rest/class/PEAR/Command/Common.php | 0 .../vas}/rest/class/PEAR/Command/Config.php | 0 .../vas}/rest/class/PEAR/Command/Config.xml | 0 .../vas}/rest/class/PEAR/Command/Install.php | 0 .../vas}/rest/class/PEAR/Command/Install.xml | 0 .../vas}/rest/class/PEAR/Command/Mirror.php | 0 .../vas}/rest/class/PEAR/Command/Mirror.xml | 0 .../vas}/rest/class/PEAR/Command/Package.php | 0 .../vas}/rest/class/PEAR/Command/Package.xml | 0 .../vas}/rest/class/PEAR/Command/Pickle.php | 0 .../vas}/rest/class/PEAR/Command/Pickle.xml | 0 .../vas}/rest/class/PEAR/Command/Registry.php | 0 .../vas}/rest/class/PEAR/Command/Registry.xml | 0 .../vas}/rest/class/PEAR/Command/Remote.php | 0 .../vas}/rest/class/PEAR/Command/Remote.xml | 0 .../vas}/rest/class/PEAR/Command/Test.php | 0 .../vas}/rest/class/PEAR/Command/Test.xml | 0 .../vitis/vas}/rest/class/PEAR/Common.php | 0 .../vitis/vas}/rest/class/PEAR/Config.php | 0 .../vitis/vas}/rest/class/PEAR/Dependency.php | 0 .../vas}/rest/class/PEAR/Dependency2.php | 0 .../vas}/rest/class/PEAR/DependencyDB.php | 0 .../vitis/vas}/rest/class/PEAR/Downloader.php | 0 .../rest/class/PEAR/Downloader/Package.php | 0 .../vitis/vas}/rest/class/PEAR/ErrorStack.php | 0 .../vitis/vas}/rest/class/PEAR/Exception.php | 0 .../rest/class/PEAR/FixPHP5PEARWarnings.php | 0 .../vitis/vas}/rest/class/PEAR/Frontend.php | 0 .../vas}/rest/class/PEAR/Frontend/CLI.php | 0 .../vitis/vas}/rest/class/PEAR/Installer.php | 0 .../vas}/rest/class/PEAR/Installer/Role.php | 0 .../rest/class/PEAR/Installer/Role/Cfg.php | 0 .../rest/class/PEAR/Installer/Role/Cfg.xml | 0 .../rest/class/PEAR/Installer/Role/Common.php | 0 .../rest/class/PEAR/Installer/Role/Data.php | 0 .../rest/class/PEAR/Installer/Role/Data.xml | 0 .../rest/class/PEAR/Installer/Role/Doc.php | 0 .../rest/class/PEAR/Installer/Role/Doc.xml | 0 .../rest/class/PEAR/Installer/Role/Ext.php | 0 .../rest/class/PEAR/Installer/Role/Ext.xml | 0 .../rest/class/PEAR/Installer/Role/Php.php | 0 .../rest/class/PEAR/Installer/Role/Php.xml | 0 .../rest/class/PEAR/Installer/Role/Script.php | 0 .../rest/class/PEAR/Installer/Role/Script.xml | 0 .../rest/class/PEAR/Installer/Role/Src.php | 0 .../rest/class/PEAR/Installer/Role/Src.xml | 0 .../rest/class/PEAR/Installer/Role/Test.php | 0 .../rest/class/PEAR/Installer/Role/Test.xml | 0 .../rest/class/PEAR/Installer/Role/Www.php | 0 .../rest/class/PEAR/Installer/Role/Www.xml | 0 .../vitis/vas}/rest/class/PEAR/Mail.php | 0 .../vas}/rest/class/PEAR/Mail/RFC822.php | 0 .../vitis/vas}/rest/class/PEAR/Mail/mail.php | 0 .../vitis/vas}/rest/class/PEAR/Mail/mime.php | 0 .../vas}/rest/class/PEAR/Mail/mimePart.php | 0 .../vitis/vas}/rest/class/PEAR/Mail/mock.php | 0 .../vas}/rest/class/PEAR/Mail/net/SMTP.php | 0 .../vas}/rest/class/PEAR/Mail/net/Socket.php | 0 .../rest/class/PEAR/Mail/net/docs/guide.txt | 0 .../class/PEAR/Mail/net/examples/basic.php | 0 .../rest/class/PEAR/Mail/net/tests/auth.phpt | 0 .../rest/class/PEAR/Mail/net/tests/basic.phpt | 0 .../class/PEAR/Mail/net/tests/config.php.dist | 0 .../class/PEAR/Mail/net/tests/quotedata.phpt | 0 .../vitis/vas}/rest/class/PEAR/Mail/null.php | 0 .../vas}/rest/class/PEAR/Mail/sendmail.php | 0 .../vitis/vas}/rest/class/PEAR/Mail/smtp.php | 0 .../vas}/rest/class/PEAR/Mail/smtpmx.php | 0 .../vitis/vas}/rest/class/PEAR/PEAR.php | 0 .../vas}/rest/class/PEAR/PackageFile.php | 0 .../class/PEAR/PackageFile/Generator/v1.php | 0 .../class/PEAR/PackageFile/Generator/v2.php | 0 .../rest/class/PEAR/PackageFile/Parser/v1.php | 0 .../rest/class/PEAR/PackageFile/Parser/v2.php | 0 .../vas}/rest/class/PEAR/PackageFile/v1.php | 0 .../vas}/rest/class/PEAR/PackageFile/v2.php | 0 .../class/PEAR/PackageFile/v2/Validator.php | 0 .../rest/class/PEAR/PackageFile/v2/rw.php | 0 .../vitis/vas}/rest/class/PEAR/Packager.php | 0 .../vitis/vas}/rest/class/PEAR/REST.php | 0 .../vitis/vas}/rest/class/PEAR/REST/10.php | 0 .../vitis/vas}/rest/class/PEAR/REST/11.php | 0 .../vitis/vas}/rest/class/PEAR/REST/13.php | 0 .../vitis/vas}/rest/class/PEAR/Registry.php | 0 .../vitis/vas}/rest/class/PEAR/Remote.php | 0 .../vitis/vas}/rest/class/PEAR/RunTest.php | 0 .../vas}/rest/class/PEAR/Task/Common.php | 0 .../class/PEAR/Task/Postinstallscript.php | 0 .../class/PEAR/Task/Postinstallscript/rw.php | 0 .../vas}/rest/class/PEAR/Task/Replace.php | 0 .../vas}/rest/class/PEAR/Task/Replace/rw.php | 0 .../vas}/rest/class/PEAR/Task/Unixeol.php | 0 .../vas}/rest/class/PEAR/Task/Unixeol/rw.php | 0 .../vas}/rest/class/PEAR/Task/Windowseol.php | 0 .../rest/class/PEAR/Task/Windowseol/rw.php | 0 .../vitis/vas}/rest/class/PEAR/Validate.php | 0 .../vas}/rest/class/PEAR/Validator/PECL.php | 0 .../vitis/vas}/rest/class/PEAR/XMLParser.php | 0 .../class/PHPMailer/extras/EasyPeasyICS.php | 0 .../rest/class/PHPMailer/extras/README.md | 0 .../class/PHPMailer/extras/htmlfilter.php | 0 .../PHPMailer/extras/ntlm_sasl_client.php | 0 .../PHPMailer/language/phpmailer.lang-am.php | 0 .../PHPMailer/language/phpmailer.lang-ar.php | 0 .../PHPMailer/language/phpmailer.lang-az.php | 0 .../PHPMailer/language/phpmailer.lang-ba.php | 0 .../PHPMailer/language/phpmailer.lang-be.php | 0 .../PHPMailer/language/phpmailer.lang-bg.php | 0 .../PHPMailer/language/phpmailer.lang-ca.php | 0 .../PHPMailer/language/phpmailer.lang-ch.php | 0 .../PHPMailer/language/phpmailer.lang-cs.php | 0 .../PHPMailer/language/phpmailer.lang-da.php | 0 .../PHPMailer/language/phpmailer.lang-de.php | 0 .../PHPMailer/language/phpmailer.lang-el.php | 0 .../PHPMailer/language/phpmailer.lang-eo.php | 0 .../PHPMailer/language/phpmailer.lang-es.php | 0 .../PHPMailer/language/phpmailer.lang-et.php | 0 .../PHPMailer/language/phpmailer.lang-fa.php | 0 .../PHPMailer/language/phpmailer.lang-fi.php | 0 .../PHPMailer/language/phpmailer.lang-fo.php | 0 .../PHPMailer/language/phpmailer.lang-fr.php | 0 .../PHPMailer/language/phpmailer.lang-gl.php | 0 .../PHPMailer/language/phpmailer.lang-he.php | 0 .../PHPMailer/language/phpmailer.lang-hi.php | 0 .../PHPMailer/language/phpmailer.lang-hr.php | 0 .../PHPMailer/language/phpmailer.lang-hu.php | 0 .../PHPMailer/language/phpmailer.lang-id.php | 0 .../PHPMailer/language/phpmailer.lang-it.php | 0 .../PHPMailer/language/phpmailer.lang-ja.php | 0 .../PHPMailer/language/phpmailer.lang-ka.php | 0 .../PHPMailer/language/phpmailer.lang-ko.php | 0 .../PHPMailer/language/phpmailer.lang-lt.php | 0 .../PHPMailer/language/phpmailer.lang-lv.php | 0 .../PHPMailer/language/phpmailer.lang-ms.php | 0 .../PHPMailer/language/phpmailer.lang-nb.php | 0 .../PHPMailer/language/phpmailer.lang-nl.php | 0 .../PHPMailer/language/phpmailer.lang-pl.php | 0 .../PHPMailer/language/phpmailer.lang-pt.php | 0 .../language/phpmailer.lang-pt_br.php | 0 .../PHPMailer/language/phpmailer.lang-ro.php | 0 .../PHPMailer/language/phpmailer.lang-rs.php | 0 .../PHPMailer/language/phpmailer.lang-ru.php | 0 .../PHPMailer/language/phpmailer.lang-sk.php | 0 .../PHPMailer/language/phpmailer.lang-sl.php | 0 .../PHPMailer/language/phpmailer.lang-sr.php | 0 .../PHPMailer/language/phpmailer.lang-sv.php | 0 .../PHPMailer/language/phpmailer.lang-tr.php | 0 .../PHPMailer/language/phpmailer.lang-uk.php | 0 .../PHPMailer/language/phpmailer.lang-vi.php | 0 .../PHPMailer/language/phpmailer.lang-zh.php | 0 .../language/phpmailer.lang-zh_cn.php | 0 .../rest/class/PHPMailer/src/Exception.php | 0 .../vas}/rest/class/PHPMailer/src/OAuth.php | 0 .../rest/class/PHPMailer/src/PHPMailer.php | 0 .../vas}/rest/class/PHPMailer/src/POP3.php | 0 .../vas}/rest/class/PHPMailer/src/SMTP.php | 0 .../AWS_Notification/AWS_SMS.class.inc | 0 .../AWS_notification.class.inc | 0 .../rest/class/aws_lib/AmazonAWS.class.inc | 14 + .../class/aws_lib/AmazonApiGateway.class.inc | 0 .../rest/class/aws_lib/AmazonS3.class.inc | 72 +- .../vas}/rest/class/treeview/LdapTree.php | 0 .../vitis/vas}/rest/class/treeview/Tree.php | 0 .../vas}/rest/class/treeview/aciTree.php | 0 .../rest/class/vitis_lib/Connection.class.inc | 0 .../rest/class/vitis_lib/DbClass.class.inc | 0 .../vas}/rest/class/vitis_lib/Form.class.inc | 0 .../rest/class/vitis_lib/VitisError.class.inc | 12 +- .../class/vitis_lib/XmlAbstract.class.inc | 0 .../vitis/vas}/rest/class/vmlib/BD.class.inc | 0 .../vas}/rest/class/vmlib/BdDataAccess.inc | 0 .../vas}/rest/class/vmlib/Email.class.inc | 0 .../rest/class/vmlib/EmailTemplate.class.inc | 0 .../class/vmlib/EmailTemplate.class.sql.inc | 0 .../vas}/rest/class/vmlib/Ldap.class.inc | 0 .../class/vmlib/PgsqlDataAccess.class.inc | 0 .../rest/class/vmlib/PostgisUtil.class.inc | 0 .../vitis/vas}/rest/class/vmlib/Vm.class.inc | 0 .../vas}/rest/class/vmlib/Vm.class.sql.inc | 0 .../class/vmlib/class.websocket_client.php | 0 .../vmlib/coffeescript/class.jstocoffee.php | 0 .../vmlib/coffeescript/classes/errors.php | 0 .../vmlib/coffeescript/classes/helpers.php | 0 .../vmlib/coffeescript/classes/lexer.php | 0 .../vmlib/coffeescript/classes/nodes.php | 0 .../coffeescript/classes/nodes/access.php | 0 .../vmlib/coffeescript/classes/nodes/arr.php | 0 .../coffeescript/classes/nodes/assign.php | 0 .../vmlib/coffeescript/classes/nodes/base.php | 0 .../coffeescript/classes/nodes/block.php | 0 .../vmlib/coffeescript/classes/nodes/call.php | 0 .../coffeescript/classes/nodes/class.php | 0 .../coffeescript/classes/nodes/closure.php | 0 .../vmlib/coffeescript/classes/nodes/code.php | 0 .../coffeescript/classes/nodes/comment.php | 0 .../coffeescript/classes/nodes/existence.php | 0 .../coffeescript/classes/nodes/extends.php | 0 .../vmlib/coffeescript/classes/nodes/for.php | 0 .../vmlib/coffeescript/classes/nodes/if.php | 0 .../vmlib/coffeescript/classes/nodes/in.php | 0 .../coffeescript/classes/nodes/index.php | 0 .../coffeescript/classes/nodes/literal.php | 0 .../vmlib/coffeescript/classes/nodes/obj.php | 0 .../vmlib/coffeescript/classes/nodes/op.php | 0 .../coffeescript/classes/nodes/param.php | 0 .../coffeescript/classes/nodes/parens.php | 0 .../vmlib/coffeescript/classes/nodes/push.php | 0 .../coffeescript/classes/nodes/range.php | 0 .../coffeescript/classes/nodes/return.php | 0 .../coffeescript/classes/nodes/slice.php | 0 .../coffeescript/classes/nodes/splat.php | 0 .../coffeescript/classes/nodes/switch.php | 0 .../coffeescript/classes/nodes/throw.php | 0 .../vmlib/coffeescript/classes/nodes/try.php | 0 .../coffeescript/classes/nodes/value.php | 0 .../coffeescript/classes/nodes/while.php | 0 .../vmlib/coffeescript/classes/parser.php | 0 .../vmlib/coffeescript/classes/rewriter.php | 0 .../vmlib/coffeescript/classes/scope.php | 0 .../class/vmlib/coffeescript/coffeescript.php | 0 .../rest/class/vmlib/coffeescript/jsmaker.php | 0 .../vas}/rest/class/vmlib/context/covage.inc | 0 .../vas}/rest/class/vmlib/context/gtf.inc | 0 .../vas}/rest/class/vmlib/context/message.inc | 0 .../vitis/vas}/rest/class/vmlib/cryptUtil.inc | 0 .../vas}/rest/class/vmlib/dateUtil.class.inc | 0 .../vitis/vas}/rest/class/vmlib/dbUtil.inc | 0 .../vitis/vas}/rest/class/vmlib/error.inc | 4 + .../rest/class/vmlib/lang_vmlib/en-lang.inc | 0 .../rest/class/vmlib/lang_vmlib/fr-lang.inc | 0 .../vitis/vas}/rest/class/vmlib/logUtil.inc | 37 +- .../vitis/vas}/rest/class/vmlib/phpUtil.inc | 21 +- .../vas}/rest/class/vmlib/stringUtil.inc | 0 .../class/wab_lib/BusinessObject.class.inc | 297 +- .../wab_lib/BusinessObject.class.sql.inc | 3 +- .../vitis/vas}/rest/conf/constants.inc | 0 {vas => src/vitis/vas}/rest/conf/php_conf.inc | 0 .../vitis/vas}/rest/conf/properties.inc | 0 .../vas}/rest/conf/properties_domain.inc | 0 .../vitis/vas}/rest/conf/properties_post.inc | 0 .../vas}/rest/conf/properties_server.inc | 0 .../vas}/rest/conf/selected_properties.inc | 0 {vas => src/vitis/vas}/rest/conf/version.inc | 0 .../vas}/rest/inc/MetadataAccess.class.inc | 0 .../vas}/rest/inc/MetadataAccess.sql.inc | 0 {vas => src/vitis/vas}/rest/index.phtml | 0 {vas => src/vitis/vas}/rest/index.vhtml | 0 .../vas}/rest/ws/vitis/Accounts.class.inc | 0 .../vas/rest/ws/vitis/Accounts.class.mail.inc | 622 +++ .../vas}/rest/ws/vitis/Accounts.class.sql.inc | 0 .../vitis/vas}/rest/ws/vitis/Action.class.inc | 0 .../vas}/rest/ws/vitis/Actions.class.inc | 0 .../rest/ws/vitis/ActiveDirectory.class.inc | 0 .../vas}/rest/ws/vitis/BillingGroup.class.inc | 0 .../rest/ws/vitis/BillingGroups.class.inc | 0 .../vitis/vas}/rest/ws/vitis/Column.class.inc | 0 .../vas}/rest/ws/vitis/Columns.class.inc | 0 .../vas}/rest/ws/vitis/Database.class.inc | 0 .../vitis/vas}/rest/ws/vitis/Domain.class.inc | 0 .../vas}/rest/ws/vitis/Domains.class.inc | 0 .../vas/rest/ws/vitis/Exploitations.class.inc | 362 ++ .../vas}/rest/ws/vitis/FormatDate.class.inc | 0 .../vas}/rest/ws/vitis/FormatDates.class.inc | 0 .../vas}/rest/ws/vitis/GenericQuery.class.inc | 0 .../rest/ws/vitis/GenericQuerys.class.inc | 0 .../rest/ws/vitis/GenericQuerys.class.sql.inc | 0 .../vitis/vas}/rest/ws/vitis/Group.class.inc | 0 .../vitis/vas}/rest/ws/vitis/Groups.class.inc | 0 .../vitis/vas}/rest/ws/vitis/Logs.class.inc | 0 .../vitis/vas}/rest/ws/vitis/Mode.class.inc | 0 .../vitis/vas}/rest/ws/vitis/Modes.class.inc | 9 +- .../vas}/rest/ws/vitis/PhpInfo.class.inc | 0 .../vas}/rest/ws/vitis/PrivateToken.class.inc | 115 +- .../vas}/rest/ws/vitis/Privilege.class.inc | 0 .../vas}/rest/ws/vitis/Privileges.class.inc | 0 .../vas}/rest/ws/vitis/Properties.class.inc | 0 .../vas}/rest/ws/vitis/PublicToken.class.inc | 0 .../vas}/rest/ws/vitis/Ressources.class.inc | 0 .../vitis/vas}/rest/ws/vitis/Schema.class.inc | 0 .../vas}/rest/ws/vitis/SmtpServer.class.inc | 0 .../vitis/vas}/rest/ws/vitis/Tab.class.inc | 0 .../vitis/vas}/rest/ws/vitis/Table.class.inc | 0 .../vitis/vas}/rest/ws/vitis/Tabs.class.inc | 0 .../vas}/rest/ws/vitis/TimeZone.class.inc | 0 .../vas}/rest/ws/vitis/TimeZones.class.inc | 0 .../vitis/vas}/rest/ws/vitis/User.class.inc | 0 .../vitis/vas}/rest/ws/vitis/Users.class.inc | 0 .../vas}/rest/ws/vitis/Versions.class.inc | 0 .../vitis/vas}/rest/ws/vitis/Vitis.class.inc | 0 .../vas}/rest/ws/vitis/Vitis.class.sql.inc | 0 .../vas}/rest/ws/vitis/VitisSection.class.inc | 2 +- .../rest/ws/vitis/VitisSections.class.inc | 2 +- .../vas}/rest/ws/vitis/WebServices.class.inc | 0 .../vitis/vas}/rest/ws/vitis/overview.phtml | 0 {vas => src/vitis/vas}/sql/sqlQueries.xml | 0 src/vitis/vas/tmp/file_to_delete.txt | 0 {vas => src/vitis/vas}/util/coordsys.txt | 0 .../vas}/util/migration/anc/SplitAddress.fmx | Bin .../vas}/util/migration/anc/lisez-moi.txt | 0 .../anc/migration_anc_veremap__vmap.fmw | Bin .../migration/migration_user_and_group.fmw | 0 .../migration/migration_veremap_layer.fmw | 0 .../printserver/client/lib/angular/LICENSE | 0 .../printserver/client/lib/angular/angular.js | 0 .../client/lib/angular/angular.min.js | 0 .../client/lib/angular/angular.min.js.map | 0 .../modules/angular-route/angular-route.js | 0 .../angular/modules/angular-translate/LICENSE | 0 .../angular-translate-loader-partial.js | 0 .../angular-translate-loader-partial.min.js | 0 .../angular-translate-loader-static-files.js | 0 ...gular-translate-loader-static-files.min.js | 0 .../angular-translate/angular-translate.js | 0 .../angular-translate.min.js | 0 .../modules/sanitize/angular-sanitize.js | 0 .../modules/sanitize/angular-sanitize.min.js | 0 .../sanitize/angular-sanitize.min.js.map | 0 .../lib/angular/modules/ui-codemirror/LICENSE | 0 .../ui-codemirror/ui-codemirror.min.js | 0 .../lib/angular/modules/ui-grid/LICENSE.md | 0 .../modules/ui-grid/plugins/draggable-rows.js | 0 .../lib/angular/modules/ui-grid/ui-grid.js | 0 .../angular/modules/ui-grid/ui-grid.min.js | 0 .../lib/angular/modules/ui-tinymce/LICENSE | 0 .../lib/angular/modules/ui-tinymce/tinymce.js | 0 .../printserver/client/lib/bootstrap/LICENSE | 0 .../lib/bootstrap/css/bootstrap-theme.css | 0 .../lib/bootstrap/css/bootstrap-theme.css.map | 0 .../lib/bootstrap/css/bootstrap-theme.min.css | 0 .../bootstrap/css/bootstrap-theme.min.css.map | 0 .../client/lib/bootstrap/css/bootstrap.css | 0 .../lib/bootstrap/css/bootstrap.css.map | 0 .../lib/bootstrap/css/bootstrap.min.css | 0 .../lib/bootstrap/css/bootstrap.min.css.map | 0 .../fonts/glyphicons-halflings-regular.eot | Bin .../fonts/glyphicons-halflings-regular.svg | 0 .../fonts/glyphicons-halflings-regular.ttf | Bin .../fonts/glyphicons-halflings-regular.woff | Bin .../fonts/glyphicons-halflings-regular.woff2 | Bin .../client/lib/bootstrap/js/bootstrap.js | 0 .../client/lib/bootstrap/js/bootstrap.min.js | 0 .../client/lib/bootstrap/js/npm.js | 0 .../client/lib/closure/goog/base.js | 0 .../printserver/client/lib/jquery/LICENSE.txt | 0 .../client/lib/jquery/jquery-1.11.3.js | 0 .../client/lib/jquery/jquery-1.11.3.min.js | 0 .../client/lib/jquery/jquery-1.11.3.min.map | 0 .../printserver/client/lib/mapJSON/MapJSON.js | 0 .../printserver/client/lib/ol/ol-debug.js | 0 .../util/printserver/client/lib/ol/ol.css | 0 .../vas}/util/printserver/client/lib/ol/ol.js | 0 .../client/lib/ol/ol3-ext/licence.txt | 0 .../client/lib/ol/ol3-ext/readme.txt | 0 .../ol/ol3-ext/style/fonts/fontawesome.def.js | 0 .../client/lib/ol/ol3-ext/style/fontsymbol.js | 0 .../lib/ol/ol3-ext/style/shadowstyle.js | 0 .../lib/ol/ol3-ext/utils/ol.ordering.js | 0 .../client/lib/ol/ol3-veremes/ol.veremes.js | 0 .../util/printserver/client/map/index.html | 0 .../vas}/util/printserver/client/map/index.js | 0 .../vas}/util/printserver/client/map/map.js | 0 .../util/printserver/client/map/progress.js | 0 .../printserver/client/map/projections.js | 0 .../vas}/util/printserver/client/map/scale.js | 0 .../util/printserver/client/report/index.html | 0 .../util/printserver/client/report/index.js | 0 .../util/printserver/client/report/report.js | 0 .../printserver/client/template/index.html | 0 .../util/printserver/client/template/index.js | 0 .../printserver/client/template/template.js | 0 .../util/printserver/client/utils/http.js | 0 .../printserver/client/utils/properties.js | 0 .../util/printserver/client/utils/utils.js | 0 .../vas}/util/printserver/server/printmap.js | 0 .../util/printserver/server/printreport.js | 0 .../util/printserver/server/printtemplate.js | 0 .../vas}/util/printserver/server/saveimage.js | 0 .../util/printserver/server/targetsize.js | 0 {vas => src/vitis/vas}/util/proxy/proxy.php | 0 .../webSocket/server/lib/SplClassLoader.php | 0 .../lib/WebSocket/Application/Application.php | 0 .../WebSocket/Application/DemoApplication.php | 0 .../lib/WebSocket/Application/GtfEvents.php | 0 .../lib/WebSocket/Application/Status.php | 0 .../Application/StatusApplication.php | 0 .../Application/VitisApplication.php | 0 .../lib/WebSocket/Application/VmapEvents.php | 0 .../server/lib/WebSocket/Connection.php | 0 .../webSocket/server/lib/WebSocket/Server.php | 0 .../webSocket/server/lib/WebSocket/Socket.php | 0 .../vas}/util/webSocket/server/server.pem | 0 .../vas}/util/webSocket/server/server.php | 0 {vas => src/vitis/vas}/util/writerpick.txt | 0 update.bat | 10 + utils/copy_hooks.sh | 14 + utils/get_deps.sh | 48 + utils/githooks/post-merge | 18 + utils/githooks/pre-push | 21 + utils/init_subtrees.sh | 48 + utils/init_symlinks.sh | 129 + utils/pull_subtrees.sh | 46 + utils/push_subtrees.sh | 37 + utils/utils/copy_hooks.bat | 3 + utils/utils/copy_hooks.sh | 14 + utils/utils/get_deps.sh | 47 + utils/utils/githooks/post-merge | 19 + utils/utils/githooks/pre-push | 22 + utils/utils/init_subtrees.sh | 48 + utils/utils/init_symlinks.sh | 159 + utils/utils/init_tree.bat | 99 + utils/utils/pull_subtrees.sh | 32 + utils/utils/push_subtrees.sh | 41 + utils/utils/update_tree.bat | 80 + 2651 files changed, 21581 insertions(+), 938 deletions(-) create mode 100755 conf/Gruntfile.js create mode 100755 conf/_install/apache.conf create mode 100755 conf/_install/dependency.xml create mode 100755 conf/_install/fileToDelete.txt create mode 100755 conf/_install/folderToDelete.txt create mode 100755 conf/credits.json create mode 100755 conf/less/variables.less create mode 100755 conf/package.json create mode 100755 conf/requires/config.js create mode 100755 conf/requires/requiresApp.js create mode 100644 install.bat create mode 100755 install.sh create mode 100755 pull_subtrees.sh create mode 100644 push_subtrees.sh create mode 100644 src/closure/README.md create mode 100755 src/closure/conf/depswriter/closurebuilder.py create mode 100755 src/closure/conf/depswriter/depstree.py create mode 100755 src/closure/conf/depswriter/depstree_test.py create mode 100755 src/closure/conf/depswriter/depswriter.py create mode 100755 src/closure/conf/depswriter/depswriter_test.py create mode 100755 src/closure/conf/depswriter/jscompiler.py create mode 100755 src/closure/conf/depswriter/jscompiler_test.py create mode 100755 src/closure/conf/depswriter/source.py create mode 100755 src/closure/conf/depswriter/source_test.py create mode 100755 src/closure/conf/depswriter/treescan.py create mode 100755 src/closure/conf/externs/angular-1.3.js create mode 100755 src/closure/conf/externs/bingmaps.js create mode 100755 src/closure/conf/externs/bootstrap.js create mode 100755 src/closure/conf/externs/geojson.js create mode 100755 src/closure/conf/externs/html2canvas.js create mode 100755 src/closure/conf/externs/jquery-1.9.js create mode 100755 src/closure/conf/externs/jspdf.js create mode 100755 src/closure/conf/externs/vmap.js create mode 100644 src/module_extraction/README.md create mode 100755 src/module_extraction/_install/dependency.xml create mode 100755 src/module_extraction/_install/fileToDelete.txt create mode 100755 src/module_extraction/_install/folderToDelete.txt create mode 100644 src/module_extraction/module/forms/configuration/configuration_vitis_configuration_extractionConfig.json create mode 100755 src/module_extraction/module/forms/extraction/extraction_extraction_extraction.js create mode 100755 src/module_extraction/module/forms/extraction/extraction_extraction_extraction.json create mode 100755 src/module_extraction/module/forms/extraction_depot/extraction_depot_extraction_extraction_depot.js create mode 100755 src/module_extraction/module/forms/extraction_depot/extraction_depot_extraction_extraction_depot.json create mode 100755 src/module_extraction/module/forms/extraction_ref/extraction_ref_extraction_coordsys.json create mode 100755 src/module_extraction/module/forms/extraction_ref/extraction_ref_extraction_format.json create mode 100755 src/module_extraction/module/forms/extraction_ref/extraction_ref_extraction_layer.json create mode 100755 src/module_extraction/module/forms/login/sign_up.json create mode 100755 src/module_extraction/module/javascript/script_module.js create mode 100755 src/module_extraction/module/lang/lang-en.json create mode 100755 src/module_extraction/module/lang/lang-fr.json create mode 100755 src/module_extraction/module/less/main.less create mode 100755 src/module_extraction/module/templates/depositDirectoryTpl.html rename {vas/rest/ws/vitis => src/module_extraction/storage}/Accounts.class.mail.inc (98%) mode change 100755 => 100644 create mode 100755 src/module_extraction/web_service/conf/properties.inc create mode 100644 src/module_extraction/web_service/conf/properties_server.inc create mode 100644 src/module_extraction/web_service/conf/selected_properties.inc create mode 100755 src/module_extraction/web_service/conf/version.inc create mode 100755 src/module_extraction/web_service/sql/sqlQueries.xml create mode 100755 src/module_extraction/web_service/ws/Coordsys.class.inc create mode 100755 src/module_extraction/web_service/ws/Coordsyss.class.inc create mode 100755 src/module_extraction/web_service/ws/Extraction.class.inc create mode 100755 src/module_extraction/web_service/ws/ExtractionExtraction.class.inc create mode 100755 src/module_extraction/web_service/ws/ExtractionExtraction.class.sql.inc create mode 100755 src/module_extraction/web_service/ws/Extraction_depot.class.inc create mode 100755 src/module_extraction/web_service/ws/Extraction_depots.class.inc create mode 100755 src/module_extraction/web_service/ws/Extractions.class.inc create mode 100755 src/module_extraction/web_service/ws/Format.class.inc create mode 100755 src/module_extraction/web_service/ws/Formats.class.inc create mode 100755 src/module_extraction/web_service/ws/Layer.class.inc create mode 100755 src/module_extraction/web_service/ws/Layers.class.inc create mode 100755 src/module_extraction/web_service/ws/overview.phtml rename vas/doc/vendor/symfony/finder/Tests/Fixtures/A/B/C/abc.dat => src/vitis/.gitignore (100%) mode change 100755 => 100644 create mode 100644 src/vitis/README.md create mode 100644 src/vitis/_install/client/fileToDelete.txt create mode 100644 src/vitis/_install/client/folderToDelete.txt create mode 100644 src/vitis/_install/client/listModuleApache.txt rename {_install => src/vitis/_install}/dependencies/mapserver/.htaccess (100%) rename {_install => src/vitis/_install}/dependencies/mapserver/linux/apache.conf (100%) rename {_install => src/vitis/_install}/dependencies/mapserver/windows/apache.conf (100%) rename {_install => src/vitis/_install}/dependencies/php/linux/apache.conf (100%) rename {_install => src/vitis/_install}/dependencies/php/php.ini (100%) rename {_install => src/vitis/_install}/dependencies/php/windows/apache.conf (100%) rename {_install => src/vitis/_install}/dependencies/pycron/crontab.txt (100%) rename {_install => src/vitis/_install}/dependencies/websocket/apache.conf (100%) rename {_install => src/vitis/_install}/dependencies/websocket/linux/websocket_vitis (100%) rename {_install => src/vitis/_install}/dependencies/websocket/websocket.cfg (100%) rename {_install => src/vitis/_install}/dependency.xml (100%) create mode 100644 src/vitis/_install/vas/apache.conf create mode 100644 src/vitis/_install/vas/listModuleApache.txt rename {client => src/vitis/client}/.htaccess (100%) rename {client => src/vitis/client}/css/icons/fonts/veremes.eot (100%) rename {client => src/vitis/client}/css/icons/fonts/veremes.svg (100%) rename {client => src/vitis/client}/css/icons/fonts/veremes.ttf (100%) rename {client => src/vitis/client}/css/icons/fonts/veremes.woff (100%) rename {client => src/vitis/client}/css/icons/selection.json (100%) rename {client => src/vitis/client}/css/icons/style.css (100%) rename {client => src/vitis/client}/css/lib/awesome-bootstrap-checkbox.css (100%) rename {client => src/vitis/client}/css/lib/bootstrap-checkbox/build.css (100%) rename {client => src/vitis/client}/css/lib/bootstrap-checkbox/font-awesome.css (100%) rename {client => src/vitis/client}/css/lib/bootstrap-checkbox/font-awesome.min.css (100%) rename {client => src/vitis/client}/css/lib/bootstrap/css/bootstrap-theme.css (100%) rename {client => src/vitis/client}/css/lib/bootstrap/css/bootstrap-theme.css.map (100%) rename {client => src/vitis/client}/css/lib/bootstrap/css/bootstrap-theme.min.css (100%) rename {client => src/vitis/client}/css/lib/bootstrap/css/bootstrap.css (100%) rename {client => src/vitis/client}/css/lib/bootstrap/css/bootstrap.css.map (100%) rename {client => src/vitis/client}/css/lib/bootstrap/css/bootstrap.min.css (100%) rename {client => src/vitis/client}/css/lib/bootstrap/fonts/glyphicons-halflings-regular.eot (100%) rename {client => src/vitis/client}/css/lib/bootstrap/fonts/glyphicons-halflings-regular.svg (100%) rename {client => src/vitis/client}/css/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf (100%) rename {client => src/vitis/client}/css/lib/bootstrap/fonts/glyphicons-halflings-regular.woff (100%) rename {client => src/vitis/client}/css/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2 (100%) rename {client => src/vitis/client}/css/lib/codemirror/codemirror.css (100%) rename {client => src/vitis/client}/css/lib/codemirror/codemirror_foldgutter.css (100%) rename {client => src/vitis/client}/css/lib/codemirror/dialog.css (100%) rename {client => src/vitis/client}/css/lib/codemirror/docs.css (100%) rename {client => src/vitis/client}/css/lib/codemirror/map.css (100%) rename {client => src/vitis/client}/css/lib/codemirror/show-hint.css (100%) rename {client => src/vitis/client}/css/lib/codemirror/theme/3024-day.css (100%) rename {client => src/vitis/client}/css/lib/codemirror/theme/3024-night.css (100%) rename {client => src/vitis/client}/css/lib/codemirror/theme/Veremes.css (100%) rename {client => src/vitis/client}/css/lib/codemirror/theme/abcdef.css (100%) rename {client => src/vitis/client}/css/lib/codemirror/theme/ambiance-mobile.css (100%) rename {client => src/vitis/client}/css/lib/codemirror/theme/ambiance.css (100%) rename {client => src/vitis/client}/css/lib/codemirror/theme/base16-dark.css (100%) rename {client => src/vitis/client}/css/lib/codemirror/theme/base16-light.css (100%) rename {client => src/vitis/client}/css/lib/codemirror/theme/bespin.css (100%) rename {client => src/vitis/client}/css/lib/codemirror/theme/blackboard.css (100%) rename {client => src/vitis/client}/css/lib/codemirror/theme/cobalt.css (100%) rename {client => src/vitis/client}/css/lib/codemirror/theme/colorforth.css (100%) rename {client => src/vitis/client}/css/lib/codemirror/theme/dracula.css (100%) rename {client => src/vitis/client}/css/lib/codemirror/theme/eclipse.css (100%) rename {client => src/vitis/client}/css/lib/codemirror/theme/elegant.css (100%) rename {client => src/vitis/client}/css/lib/codemirror/theme/erlang-dark.css (100%) rename {client => src/vitis/client}/css/lib/codemirror/theme/hopscotch.css (100%) rename {client => src/vitis/client}/css/lib/codemirror/theme/icecoder.css (100%) rename {client => src/vitis/client}/css/lib/codemirror/theme/isotope.css (100%) rename {client => src/vitis/client}/css/lib/codemirror/theme/lesser-dark.css (100%) rename {client => src/vitis/client}/css/lib/codemirror/theme/liquibyte.css (100%) rename {client => src/vitis/client}/css/lib/codemirror/theme/material.css (100%) rename {client => src/vitis/client}/css/lib/codemirror/theme/mbo.css (100%) rename {client => src/vitis/client}/css/lib/codemirror/theme/mdn-like.css (100%) rename {client => src/vitis/client}/css/lib/codemirror/theme/midnight.css (100%) rename {client => src/vitis/client}/css/lib/codemirror/theme/monokai.css (100%) rename {client => src/vitis/client}/css/lib/codemirror/theme/neat.css (100%) rename {client => src/vitis/client}/css/lib/codemirror/theme/neo.css (100%) rename {client => src/vitis/client}/css/lib/codemirror/theme/night.css (100%) rename {client => src/vitis/client}/css/lib/codemirror/theme/paraiso-dark.css (100%) rename {client => src/vitis/client}/css/lib/codemirror/theme/paraiso-light.css (100%) rename {client => src/vitis/client}/css/lib/codemirror/theme/pastel-on-dark.css (100%) rename {client => src/vitis/client}/css/lib/codemirror/theme/railscasts.css (100%) rename {client => src/vitis/client}/css/lib/codemirror/theme/rubyblue.css (100%) rename {client => src/vitis/client}/css/lib/codemirror/theme/seti.css (100%) rename {client => src/vitis/client}/css/lib/codemirror/theme/solarized.css (100%) rename {client => src/vitis/client}/css/lib/codemirror/theme/the-matrix.css (100%) rename {client => src/vitis/client}/css/lib/codemirror/theme/tomorrow-night-bright.css (100%) rename {client => src/vitis/client}/css/lib/codemirror/theme/tomorrow-night-eighties.css (100%) rename {client => src/vitis/client}/css/lib/codemirror/theme/ttcn.css (100%) rename {client => src/vitis/client}/css/lib/codemirror/theme/twilight.css (100%) rename {client => src/vitis/client}/css/lib/codemirror/theme/vibrant-ink.css (100%) rename {client => src/vitis/client}/css/lib/codemirror/theme/xq-dark.css (100%) rename {client => src/vitis/client}/css/lib/codemirror/theme/xq-light.css (100%) rename {client => src/vitis/client}/css/lib/codemirror/theme/yeti.css (100%) rename {client => src/vitis/client}/css/lib/codemirror/theme/zenburn.css (100%) rename {client => src/vitis/client}/css/lib/font-awesome/HELP-US-OUT.txt (100%) rename {client => src/vitis/client}/css/lib/font-awesome/css/font-awesome.css (100%) rename {client => src/vitis/client}/css/lib/font-awesome/css/font-awesome.min.css (100%) rename {client => src/vitis/client}/css/lib/font-awesome/fonts/FontAwesome.otf (100%) rename {client => src/vitis/client}/css/lib/font-awesome/fonts/fontawesome-webfont.eot (100%) rename {client => src/vitis/client}/css/lib/font-awesome/fonts/fontawesome-webfont.svg (100%) rename {client => src/vitis/client}/css/lib/font-awesome/fonts/fontawesome-webfont.ttf (100%) rename {client => src/vitis/client}/css/lib/font-awesome/fonts/fontawesome-webfont.woff (100%) rename {client => src/vitis/client}/css/lib/font-awesome/fonts/fontawesome-webfont.woff2 (100%) rename {client => src/vitis/client}/css/lib/font-awesome/less/animated.less (100%) rename {client => src/vitis/client}/css/lib/font-awesome/less/bordered-pulled.less (100%) rename {client => src/vitis/client}/css/lib/font-awesome/less/core.less (100%) rename {client => src/vitis/client}/css/lib/font-awesome/less/fixed-width.less (100%) rename {client => src/vitis/client}/css/lib/font-awesome/less/font-awesome.less (100%) rename {client => src/vitis/client}/css/lib/font-awesome/less/icons.less (100%) rename {client => src/vitis/client}/css/lib/font-awesome/less/larger.less (100%) rename {client => src/vitis/client}/css/lib/font-awesome/less/list.less (100%) rename {client => src/vitis/client}/css/lib/font-awesome/less/mixins.less (100%) rename {client => src/vitis/client}/css/lib/font-awesome/less/path.less (100%) rename {client => src/vitis/client}/css/lib/font-awesome/less/rotated-flipped.less (100%) rename {client => src/vitis/client}/css/lib/font-awesome/less/stacked.less (100%) rename {client => src/vitis/client}/css/lib/font-awesome/less/variables.less (100%) rename {client => src/vitis/client}/css/lib/font-awesome/scss/_animated.scss (100%) rename {client => src/vitis/client}/css/lib/font-awesome/scss/_bordered-pulled.scss (100%) rename {client => src/vitis/client}/css/lib/font-awesome/scss/_core.scss (100%) rename {client => src/vitis/client}/css/lib/font-awesome/scss/_fixed-width.scss (100%) rename {client => src/vitis/client}/css/lib/font-awesome/scss/_icons.scss (100%) rename {client => src/vitis/client}/css/lib/font-awesome/scss/_larger.scss (100%) rename {client => src/vitis/client}/css/lib/font-awesome/scss/_list.scss (100%) rename {client => src/vitis/client}/css/lib/font-awesome/scss/_mixins.scss (100%) rename {client => src/vitis/client}/css/lib/font-awesome/scss/_path.scss (100%) rename {client => src/vitis/client}/css/lib/font-awesome/scss/_rotated-flipped.scss (100%) rename {client => src/vitis/client}/css/lib/font-awesome/scss/_stacked.scss (100%) rename {client => src/vitis/client}/css/lib/font-awesome/scss/_variables.scss (100%) rename {client => src/vitis/client}/css/lib/font-awesome/scss/font-awesome.scss (100%) rename {client => src/vitis/client}/css/lib/fonts/FontAwesome.otf (100%) rename {client => src/vitis/client}/css/lib/fonts/fontawesome-webfont.eot (100%) rename {client => src/vitis/client}/css/lib/fonts/fontawesome-webfont.svg (100%) rename {client => src/vitis/client}/css/lib/fonts/fontawesome-webfont.ttf (100%) rename {client => src/vitis/client}/css/lib/fonts/fontawesome-webfont.woff (100%) rename {client => src/vitis/client}/css/lib/fonts/fontawesome-webfont.woff2 (100%) rename {client => src/vitis/client}/css/lib/fonts/glyphicons-halflings-regular.eot (100%) rename {client => src/vitis/client}/css/lib/fonts/glyphicons-halflings-regular.svg (100%) rename {client => src/vitis/client}/css/lib/fonts/glyphicons-halflings-regular.ttf (100%) rename {client => src/vitis/client}/css/lib/fonts/glyphicons-halflings-regular.woff (100%) rename {client => src/vitis/client}/css/lib/fonts/glyphicons-halflings-regular.woff2 (100%) rename {client => src/vitis/client}/css/lib/jquery/plugins/bootstrap-colorpicker/css/bootstrap-colorpicker.min.css (100%) rename {client => src/vitis/client}/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/alpha-horizontal.png (100%) rename {client => src/vitis/client}/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/alpha.png (100%) rename {client => src/vitis/client}/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/hue-horizontal.png (100%) rename {client => src/vitis/client}/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/hue.png (100%) rename {client => src/vitis/client}/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/saturation.png (100%) rename {client => src/vitis/client}/css/lib/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker3.css (100%) rename {client => src/vitis/client}/css/lib/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker3.min.css (100%) rename {client => src/vitis/client}/css/lib/jquery/plugins/bootstrap-fileinput/css/fileinput.css (100%) rename {client => src/vitis/client}/css/lib/jquery/plugins/bootstrap-fileinput/css/fileinput.min.css (100%) rename {client => src/vitis/client}/css/lib/jquery/plugins/bootstrap-fileinput/img/loading-sm.gif (100%) rename {client => src/vitis/client}/css/lib/jquery/plugins/bootstrap-fileinput/img/loading.gif (100%) rename {client => src/vitis/client}/css/lib/jquery/plugins/bootstrap-slider/bootstrap-slider.min.css (100%) rename {client => src/vitis/client}/css/lib/jquery/plugins/bootstrap-tagsinput/bootstrap-tagsinput.css (100%) rename {client => src/vitis/client}/css/lib/jquery/plugins/bootstrap-treeview/bootstrap-treeview.css (100%) rename {client => src/vitis/client}/css/lib/jquery/plugins/bootstrap-treeview/bootstrap-treeview.min.css (100%) rename {client => src/vitis/client}/css/lib/jquery/plugins/malihu-custom-scrollbar/jquery.mCustomScrollbar.min.css (100%) rename {client => src/vitis/client}/css/lib/materialize/materialize.css (100%) rename {client => src/vitis/client}/css/lib/materialize/materialize.min.css (100%) rename {client => src/vitis/client}/css/lib/openlayers/ol.css (100%) rename {client => src/vitis/client}/css/lib/ui-grid/plugins/draggable-rows.less (100%) rename {client => src/vitis/client}/css/lib/ui-grid/ui-grid.css (100%) rename {client => src/vitis/client}/css/lib/ui-grid/ui-grid.eot (100%) rename {client => src/vitis/client}/css/lib/ui-grid/ui-grid.min.css (100%) rename {client => src/vitis/client}/css/lib/ui-grid/ui-grid.svg (100%) rename {client => src/vitis/client}/css/lib/ui-grid/ui-grid.ttf (100%) rename {client => src/vitis/client}/css/lib/ui-grid/ui-grid.woff (100%) rename {client => src/vitis/client}/css/lib/viewer/viewer.min.css (100%) rename {client => src/vitis/client}/forms/forgotten_password.json (100%) rename {client => src/vitis/client}/forms/login.js (100%) rename {client => src/vitis/client}/forms/login.json (100%) rename {client => src/vitis/client}/forms/sign_up.json (100%) rename {client => src/vitis/client}/images/ajax-big-loader.GIF (100%) rename {client => src/vitis/client}/images/ajax-load-big.gif (100%) rename {client => src/vitis/client}/images/ajax-load.gif (100%) rename {client => src/vitis/client}/images/bandeau.png (100%) rename {client => src/vitis/client}/images/custom.png (100%) rename {client => src/vitis/client}/images/disconnect_button.png (100%) rename {client => src/vitis/client}/images/download.png (100%) rename {client => src/vitis/client}/images/editer.png (100%) rename {client => src/vitis/client}/images/enveloppe.png (100%) rename {client => src/vitis/client}/images/false.png (100%) rename {client => src/vitis/client}/images/favicon.ico (100%) rename {client => src/vitis/client}/images/i.png (100%) rename {client => src/vitis/client}/images/icons/geolocation_marker.png (100%) rename {client => src/vitis/client}/images/icons/geolocation_marker_heading.png (100%) rename {client => src/vitis/client}/images/icons/icon-arrow-FME.png (100%) rename {client => src/vitis/client}/images/icons/icon-arrow-FME2.png (100%) rename {client => src/vitis/client}/images/icons/icon-filtrage.png (100%) rename {client => src/vitis/client}/images/icons/icons-down-search-arrow.png (100%) rename {client => src/vitis/client}/images/icons/icons-right-search-arrow.png (100%) rename {client => src/vitis/client}/images/logo-veremes.jpg (100%) rename {client => src/vitis/client}/images/logo-veremes.png (100%) rename {client => src/vitis/client}/images/mode/configuration.png (100%) rename {client => src/vitis/client}/images/mode/development.png (100%) rename {client => src/vitis/client}/images/mode/engine.png (100%) rename {client => src/vitis/client}/images/mode/help.png (100%) rename {client => src/vitis/client}/images/mode/logs.png (100%) rename {client => src/vitis/client}/images/mode/my_work.png (100%) rename {client => src/vitis/client}/images/mode/publication.png (100%) rename {client => src/vitis/client}/images/mode/statistics.png (100%) rename {client => src/vitis/client}/images/mode/supervision.png (100%) rename {client => src/vitis/client}/images/mode/user.png (100%) rename {client => src/vitis/client}/images/mode/users.png (100%) rename {client => src/vitis/client}/images/mode/vmap.png (100%) rename {client => src/vitis/client}/images/page.png (100%) rename {client => src/vitis/client}/images/sql_list/st1.gif (100%) rename {client => src/vitis/client}/images/sql_list/st1.png (100%) rename {client => src/vitis/client}/images/sql_list/st2.png (100%) rename {client => src/vitis/client}/images/sql_list/st3.png (100%) rename {client => src/vitis/client}/images/sql_list/st4.png (100%) rename {client => src/vitis/client}/images/sql_list/st5.gif (100%) rename {client => src/vitis/client}/images/sql_list/st6.png (100%) rename {client => src/vitis/client}/images/true.png (100%) rename {client => src/vitis/client}/images/ui-grid/wbg.gif (100%) rename {client => src/vitis/client}/images/visualiser.png (100%) rename {client => src/vitis/client}/images/wk_params.png (100%) rename {client => src/vitis/client}/index.html (100%) rename {client => src/vitis/client}/javascript/app/app.js (100%) rename {client => src/vitis/client}/javascript/app/config.js (100%) rename {client => src/vitis/client}/javascript/app/controllers/doubleFormCtrl.js (100%) rename {client => src/vitis/client}/javascript/app/controllers/htmlFormCtrl.js (100%) mode change 100755 => 100644 rename {client => src/vitis/client}/javascript/app/controllers/initCtrl.js (85%) mode change 100755 => 100644 rename {client => src/vitis/client}/javascript/app/controllers/loginCtrl.js (98%) rename {client => src/vitis/client}/javascript/app/controllers/mainCtrl.js (100%) rename {client => src/vitis/client}/javascript/app/controllers/sectionFormCtrl.js (100%) rename {client => src/vitis/client}/javascript/app/controllers/simpleFormCtrl.js (100%) rename {client => src/vitis/client}/javascript/app/controllers/workspaceListCtrl.js (100%) rename {client => src/vitis/client}/javascript/app/directives/doubleFormDrtv.js (100%) rename {client => src/vitis/client}/javascript/app/directives/htmlFormDrtv.js (100%) rename {client => src/vitis/client}/javascript/app/directives/initDrtv.js (100%) rename {client => src/vitis/client}/javascript/app/directives/loginDrtv.js (100%) rename {client => src/vitis/client}/javascript/app/directives/mainDrtv.js (100%) rename {client => src/vitis/client}/javascript/app/directives/sectionFormDrtv.js (100%) rename {client => src/vitis/client}/javascript/app/directives/simpleFormDrtv.js (100%) rename {client => src/vitis/client}/javascript/app/directives/workspaceListDrtv.js (100%) rename {client => src/vitis/client}/javascript/app/loadApp.js (100%) rename {client => src/vitis/client}/javascript/app/loadExternalFiles.js (100%) rename {client => src/vitis/client}/javascript/app/modules/mainMod.js (100%) rename {client => src/vitis/client}/javascript/app/script_client.js (98%) rename {client => src/vitis/client}/javascript/app/services/formSrvc.js (100%) rename {client => src/vitis/client}/javascript/app/services/mainSrvc.js (100%) rename {client => src/vitis/client}/javascript/app/vitiswebsocket.js (100%) rename {client => src/vitis/client}/javascript/externs/LICENSE (100%) rename {client => src/vitis/client}/javascript/externs/alasql/alasql.min.js (100%) rename {client => src/vitis/client}/javascript/externs/alasql/xlsx.core.min.js (100%) rename {client => src/vitis/client}/javascript/externs/angular-bind-notifier/LICENSE (100%) rename {client => src/vitis/client}/javascript/externs/angular-bind-notifier/bindNotifier.js (100%) rename {client => src/vitis/client}/javascript/externs/angular-ui-codemirror/LICENSE (100%) rename {client => src/vitis/client}/javascript/externs/angular-ui-codemirror/ui-codemirror.js (100%) rename {client => src/vitis/client}/javascript/externs/angular-ui-codemirror/ui-codemirror.min.js (100%) rename {client => src/vitis/client}/javascript/externs/angular/LICENSE (100%) rename {client => src/vitis/client}/javascript/externs/angular/angular.js (100%) rename {client => src/vitis/client}/javascript/externs/angular/angular.min.js (100%) rename {client => src/vitis/client}/javascript/externs/angular/angular.min.js.map (100%) rename {client => src/vitis/client}/javascript/externs/angular/modules/angular-translate/LICENSE (100%) rename {client => src/vitis/client}/javascript/externs/angular/modules/angular-translate/angular-translate-loader-partial.js (100%) rename {client => src/vitis/client}/javascript/externs/angular/modules/angular-translate/angular-translate-loader-partial.min.js (100%) rename {client => src/vitis/client}/javascript/externs/angular/modules/angular-translate/angular-translate-loader-static-files.js (100%) rename {client => src/vitis/client}/javascript/externs/angular/modules/angular-translate/angular-translate-loader-static-files.min.js (100%) rename {client => src/vitis/client}/javascript/externs/angular/modules/angular-translate/angular-translate.js (100%) rename {client => src/vitis/client}/javascript/externs/angular/modules/angular-translate/angular-translate.min.js (100%) rename {client => src/vitis/client}/javascript/externs/angular/modules/sanitize/angular-sanitize.js (100%) rename {client => src/vitis/client}/javascript/externs/angular/modules/sanitize/angular-sanitize.min.js (100%) rename {client => src/vitis/client}/javascript/externs/angular/modules/sanitize/angular-sanitize.min.js.map (100%) rename {client => src/vitis/client}/javascript/externs/angular/modules/ui-codemirror/LICENSE (100%) rename {client => src/vitis/client}/javascript/externs/angular/modules/ui-codemirror/ui-codemirror.min.js (100%) rename {client => src/vitis/client}/javascript/externs/angular/modules/ui-grid/LICENSE.md (100%) rename {client => src/vitis/client}/javascript/externs/angular/modules/ui-grid/plugins/draggable-rows.js (100%) rename {client => src/vitis/client}/javascript/externs/angular/modules/ui-grid/ui-grid.js (100%) rename {client => src/vitis/client}/javascript/externs/angular/modules/ui-grid/ui-grid.min.js (100%) rename {client => src/vitis/client}/javascript/externs/angular/modules/ui-tinymce/LICENSE (100%) rename {client => src/vitis/client}/javascript/externs/angular/modules/ui-tinymce/tinymce.js (100%) rename {client => src/vitis/client}/javascript/externs/bootbox/LICENSE.md (100%) rename {client => src/vitis/client}/javascript/externs/bootbox/bootbox.min.js (100%) rename {client => src/vitis/client}/javascript/externs/bootstrap/LICENSE (100%) rename {client => src/vitis/client}/javascript/externs/bootstrap/bootstrap.js (100%) rename {client => src/vitis/client}/javascript/externs/bootstrap/bootstrap.min.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/LICENSE (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/comment/comment.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/comment/continuecomment.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/dialog/dialog.css (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/dialog/dialog.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/display/autorefresh.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/display/fullscreen.css (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/display/fullscreen.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/display/panel.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/display/placeholder.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/display/rulers.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/edit/closebrackets.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/edit/closetag.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/edit/continuelist.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/edit/matchbrackets.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/edit/matchtags.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/edit/trailingspace.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/fold/brace-fold.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/fold/comment-fold.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/fold/foldcode.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/fold/foldgutter.css (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/fold/foldgutter.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/fold/indent-fold.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/fold/markdown-fold.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/fold/xml-fold.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/hint/anyword-hint.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/hint/css-hint.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/hint/html-hint.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/hint/javascript-hint.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/hint/show-hint.css (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/hint/show-hint.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/hint/sql-hint.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/hint/xml-hint.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/keymap/sublime.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/lint/coffeescript-lint.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/lint/css-lint.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/lint/html-lint.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/lint/javascript-lint.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/lint/json-lint.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/lint/lint.css (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/lint/lint.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/lint/yaml-lint.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/merge/merge.css (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/merge/merge.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/mode/loadmode.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/mode/multiplex.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/mode/multiplex_test.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/mode/overlay.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/mode/simple.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/runmode/colorize.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/runmode/runmode-standalone.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/runmode/runmode.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/runmode/runmode.node.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/scroll/annotatescrollbar.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/scroll/scrollpastend.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/scroll/simplescrollbars.css (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/scroll/simplescrollbars.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/search/jump-to-line.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/search/match-highlighter.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/search/matchesonscrollbar.css (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/search/matchesonscrollbar.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/search/search.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/search/searchcursor.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/selection/active-line.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/selection/mark-selection.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/selection/selection-pointer.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/tern/tern.css (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/tern/tern.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/tern/worker.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/addon/wrap/hardwrap.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/clike.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/codemirror.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/codemirror.min.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/css.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/htmlmixed.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/javascript.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/map.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/php.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/show-hint.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/sql.js (100%) rename {client => src/vitis/client}/javascript/externs/codemirror/xml.js (100%) rename {client => src/vitis/client}/javascript/externs/formReader/component/component.js (100%) rename {client => src/vitis/client}/javascript/externs/formReader/component/map.js (100%) rename {client => src/vitis/client}/javascript/externs/formReader/component/map_workbench/map_workbench.html (100%) rename {client => src/vitis/client}/javascript/externs/formReader/component/map_workbench/map_workbench.js (100%) rename {client => src/vitis/client}/javascript/externs/formReader/formReader.html (100%) rename {client => src/vitis/client}/javascript/externs/formReader/formReader.js (100%) rename {client => src/vitis/client}/javascript/externs/formReader/formReaderCtrl.js (100%) mode change 100755 => 100644 rename {client => src/vitis/client}/javascript/externs/formReader/formReaderDrtv.js (100%) rename {client => src/vitis/client}/javascript/externs/formReader/formReaderSrvc.js (100%) rename {client => src/vitis/client}/javascript/externs/jquery/LICENSE.txt (100%) rename {client => src/vitis/client}/javascript/externs/jquery/jquery-1.11.3.js (100%) rename {client => src/vitis/client}/javascript/externs/jquery/jquery-1.11.3.min.js (100%) rename {client => src/vitis/client}/javascript/externs/jquery/jquery-1.11.3.min.map (100%) rename {client => src/vitis/client}/javascript/externs/jquery/plugins/bootbox/bootbox.js (100%) rename {client => src/vitis/client}/javascript/externs/jquery/plugins/bootbox/bootbox.min.js (100%) rename {client => src/vitis/client}/javascript/externs/jquery/plugins/bootstrap-colorpicker/bootstrap-colorpicker.min.js (100%) rename {client => src/vitis/client}/javascript/externs/jquery/plugins/bootstrap-colorpicker/js/bootstrap-colorpicker.js (100%) rename {client => src/vitis/client}/javascript/externs/jquery/plugins/bootstrap-colorpicker/js/bootstrap-colorpicker.min.js (100%) rename {client => src/vitis/client}/javascript/externs/jquery/plugins/bootstrap-confirmation/bootstrap-confirmation.min.js (100%) rename {client => src/vitis/client}/javascript/externs/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker.js (100%) rename {client => src/vitis/client}/javascript/externs/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker.min.js (100%) rename {client => src/vitis/client}/javascript/externs/jquery/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.fr.min.js (100%) rename {client => src/vitis/client}/javascript/externs/jquery/plugins/bootstrap-datetimepicker/bootstrap-datetimepicker.min.js (100%) rename {client => src/vitis/client}/javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput.js (100%) rename {client => src/vitis/client}/javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput.min.js (100%) rename {client => src/vitis/client}/javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput_locale_fr.js (100%) rename {client => src/vitis/client}/javascript/externs/jquery/plugins/bootstrap-slider/bootstrap-slider.min.js (100%) rename {client => src/vitis/client}/javascript/externs/jquery/plugins/bootstrap-tagsinput/bootstrap-tagsinput.min.js (100%) rename {client => src/vitis/client}/javascript/externs/jquery/plugins/bootstrap-treeview/bootstrap-treeview.js (100%) rename {client => src/vitis/client}/javascript/externs/jquery/plugins/bootstrap-treeview/bootstrap-treeview.min.js (100%) rename {client => src/vitis/client}/javascript/externs/jquery/plugins/malihu-custom-scrollbar/jquery.mCustomScrollbar.concat.min.js (100%) rename {client => src/vitis/client}/javascript/externs/jquery/plugins/notify/notify.js (100%) rename {client => src/vitis/client}/javascript/externs/jquery/plugins/notify/notify.min.js (100%) rename {client => src/vitis/client}/javascript/externs/less/LICENSE (100%) rename {client => src/vitis/client}/javascript/externs/less/less.min.js (100%) rename {client => src/vitis/client}/javascript/externs/letter-avatar/ngletteravatar.js (100%) rename {client => src/vitis/client}/javascript/externs/letter-avatar/ngletteravatar.min.js (100%) rename {client => src/vitis/client}/javascript/externs/mapJSON/MapJSON.js (100%) rename {client => src/vitis/client}/javascript/externs/materialize/materialize.js (100%) rename {client => src/vitis/client}/javascript/externs/materialize/materialize.min.js (100%) rename {client => src/vitis/client}/javascript/externs/mobile-detect/LICENSE (100%) rename {client => src/vitis/client}/javascript/externs/mobile-detect/mobile-detect.js (100%) rename {client => src/vitis/client}/javascript/externs/mobile-detect/mobile-detect.min.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/LICENSE (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/af.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/ar-ma.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/ar-sa.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/ar-tn.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/ar.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/az.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/be.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/bg.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/bn.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/bo.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/br.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/bs.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/ca.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/cs.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/cv.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/cy.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/da.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/de-at.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/de.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/dv.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/el.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/en-au.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/en-ca.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/en-gb.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/en-ie.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/en-nz.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/eo.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/es.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/et.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/eu.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/fa.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/fi.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/fo.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/fr-ca.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/fr-ch.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/fr.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/fy.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/gd.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/gl.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/he.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/hi.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/hr.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/hu.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/hy-am.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/id.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/is.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/it.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/ja.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/jv.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/ka.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/kk.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/km.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/ko.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/lb.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/lo.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/lt.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/lv.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/me.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/mk.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/ml.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/mr.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/ms-my.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/ms.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/my.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/nb.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/ne.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/nl.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/nn.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/pl.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/pt-br.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/pt.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/ro.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/ru.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/se.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/si.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/sk.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/sl.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/sq.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/sr-cyrl.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/sr.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/sv.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/sw.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/ta.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/te.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/th.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/tl-ph.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/tlh.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/tr.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/tzl.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/tzm-latn.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/tzm.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/uk.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/uz.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/vi.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/zh-cn.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/locale/zh-tw.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/min/locales.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/min/locales.min.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/min/moment-with-locales.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/min/moment-with-locales.min.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/min/moment.min.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/min/tests.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/moment.min.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/create/check-overflow.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/create/date-from-array.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/create/from-anything.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/create/from-array.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/create/from-object.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/create/from-string-and-array.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/create/from-string-and-format.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/create/from-string.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/create/local.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/create/parsing-flags.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/create/utc.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/create/valid.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/duration/abs.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/duration/add-subtract.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/duration/as.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/duration/bubble.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/duration/constructor.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/duration/create.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/duration/duration.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/duration/get.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/duration/humanize.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/duration/iso-string.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/duration/prototype.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/format/format.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/locale/calendar.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/locale/constructor.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/locale/en.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/locale/formats.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/locale/invalid.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/locale/lists.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/locale/locale.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/locale/locales.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/locale/ordinal.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/locale/pre-post-format.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/locale/prototype.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/locale/relative.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/locale/set.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/moment/add-subtract.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/moment/calendar.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/moment/clone.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/moment/compare.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/moment/constructor.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/moment/creation-data.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/moment/diff.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/moment/format.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/moment/from.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/moment/get-set.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/moment/locale.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/moment/min-max.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/moment/moment.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/moment/now.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/moment/prototype.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/moment/start-end-of.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/moment/to-type.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/moment/to.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/moment/valid.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/parse/regex.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/parse/token.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/units/aliases.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/units/constants.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/units/day-of-month.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/units/day-of-week.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/units/day-of-year.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/units/hour.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/units/millisecond.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/units/minute.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/units/month.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/units/offset.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/units/quarter.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/units/second.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/units/timestamp.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/units/timezone.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/units/units.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/units/week-calendar-utils.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/units/week-year.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/units/week.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/units/year.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/utils/abs-ceil.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/utils/abs-floor.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/utils/compare-arrays.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/utils/defaults.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/utils/deprecate.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/utils/extend.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/utils/has-own-prop.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/utils/hooks.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/utils/is-array.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/utils/is-date.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/utils/is-function.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/utils/is-undefined.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/utils/map.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/utils/to-int.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/lib/utils/zero-fill.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/af.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/ar-ma.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/ar-sa.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/ar-tn.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/ar.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/az.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/be.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/bg.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/bn.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/bo.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/br.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/bs.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/ca.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/cs.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/cv.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/cy.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/da.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/de-at.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/de.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/dv.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/el.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/en-au.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/en-ca.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/en-gb.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/en-ie.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/en-nz.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/eo.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/es.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/et.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/eu.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/fa.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/fi.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/fo.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/fr-ca.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/fr-ch.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/fr.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/fy.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/gd.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/gl.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/he.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/hi.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/hr.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/hu.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/hy-am.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/id.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/is.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/it.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/ja.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/jv.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/ka.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/kk.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/km.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/ko.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/lb.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/lo.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/lt.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/lv.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/me.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/mk.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/ml.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/mr.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/ms-my.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/ms.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/my.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/nb.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/ne.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/nl.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/nn.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/pl.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/pt-br.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/pt.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/ro.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/ru.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/se.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/si.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/sk.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/sl.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/sq.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/sr-cyrl.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/sr.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/sv.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/sw.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/ta.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/te.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/th.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/tl-ph.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/tlh.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/tr.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/tzl.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/tzm-latn.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/tzm.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/uk.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/uz.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/vi.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/zh-cn.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/locale/zh-tw.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/src/moment.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/templates/amd-named.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/templates/amd.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/templates/default.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/templates/globals.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/templates/locale-header.js (100%) rename {client => src/vitis/client}/javascript/externs/moment/templates/test-header.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/licenses/APACHE-2.0.txt (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/licenses/BSD-LICENSE.txt (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/licenses/MIT-LICENSE.txt (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol.ext/pbf.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol.ext/pixelworks.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol.ext/rbush.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol.ext/vectortile.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/array.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/assertionerror.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/asserts.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/attribution.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/canvasmap.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/centerconstraint.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/collection.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/collectioneventtype.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/color.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/color.jsdoc (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/colorlike.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/colorlike.jsdoc (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/control.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/control/attribution.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/control/control.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/control/fullscreen.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/control/index.jsdoc (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/control/mouseposition.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/control/overviewmap.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/control/rotate.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/control/scaleline.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/control/scalelineunits.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/control/zoom.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/control/zoomslider.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/control/zoomtoextent.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/coordinate.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/coordinate.jsdoc (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/css.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/deviceorientation.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/disposable.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/dom.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/easing.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/easing.jsdoc (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/events.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/events/condition.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/events/condition.jsdoc (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/events/event.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/events/eventtarget.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/events/eventtype.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/events/keycode.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/extent.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/extent.jsdoc (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/extent/corner.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/extent/relationship.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/feature.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/featureloader.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/featureloader.jsdoc (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/format/esrijson.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/format/feature.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/format/filter.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/format/filter/and.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/format/filter/bbox.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/format/filter/comparison.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/format/filter/comparisonbinary.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/format/filter/contains.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/format/filter/during.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/format/filter/equalto.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/format/filter/filter.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/format/filter/greaterthan.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/format/filter/greaterthanorequalto.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/format/filter/index.jsdoc (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/format/filter/intersects.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/format/filter/isbetween.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/format/filter/islike.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/format/filter/isnull.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/format/filter/lessthan.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/format/filter/lessthanorequalto.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/format/filter/logicalnary.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/format/filter/not.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/format/filter/notequalto.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/format/filter/or.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/format/filter/spatial.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/format/filter/within.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/format/formattype.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/format/geojson.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/format/gml.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/format/gml2.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/format/gml3.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/format/gmlbase.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/format/gpx.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/format/igc.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/format/igcz.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/format/index.jsdoc (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/format/jsonfeature.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/format/kml.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/format/mvt.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/format/osmxml.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/format/ows.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/format/polyline.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/format/readme.md (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/format/textfeature.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/format/topojson.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/format/wfs.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/format/wkt.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/format/wmscapabilities.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/format/wmsgetfeatureinfo.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/format/wmtscapabilities.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/format/xlink.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/format/xml.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/format/xmlfeature.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/format/xsd.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/functions.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/geolocation.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/geolocationproperty.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/geom/circle.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/geom/flat/area.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/geom/flat/center.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/geom/flat/closest.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/geom/flat/contains.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/geom/flat/deflate.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/geom/flat/flip.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/geom/flat/geodesic.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/geom/flat/inflate.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/geom/flat/interiorpoint.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/geom/flat/interpolate.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/geom/flat/intersectsextent.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/geom/flat/length.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/geom/flat/orient.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/geom/flat/reverse.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/geom/flat/segments.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/geom/flat/simplify.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/geom/flat/straightchunk.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/geom/flat/textpath.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/geom/flat/topology.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/geom/flat/transform.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/geom/geom.jsdoc (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/geom/geometry.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/geom/geometrycollection.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/geom/geometrylayout.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/geom/geometrytype.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/geom/linearring.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/geom/linestring.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/geom/multilinestring.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/geom/multipoint.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/geom/multipolygon.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/geom/point.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/geom/polygon.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/geom/simplegeometry.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/graticule.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/has.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/has.jsdoc (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/image.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/imagebase.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/imagecanvas.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/imagestate.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/imagetile.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/index.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/interaction.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/interaction/doubleclickzoom.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/interaction/draganddrop.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/interaction/dragbox.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/interaction/dragpan.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/interaction/dragrotate.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/interaction/dragrotateandzoom.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/interaction/dragzoom.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/interaction/draw.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/interaction/draweventtype.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/interaction/extent.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/interaction/extenteventtype.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/interaction/interaction.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/interaction/interaction.jsdoc (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/interaction/keyboardpan.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/interaction/keyboardzoom.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/interaction/modify.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/interaction/modifyeventtype.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/interaction/mousewheelzoom.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/interaction/pinchrotate.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/interaction/pinchzoom.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/interaction/pointer.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/interaction/property.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/interaction/select.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/interaction/snap.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/interaction/translate.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/interaction/translateeventtype.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/kinetic.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/layer/base.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/layer/group.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/layer/heatmap.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/layer/image.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/layer/layer.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/layer/layer.jsdoc (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/layer/property.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/layer/tile.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/layer/tileproperty.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/layer/vector.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/layer/vectorrendertype.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/layer/vectortile.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/layer/vectortilerendertype.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/layertype.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/loadingstrategy.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/loadingstrategy.jsdoc (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/map.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/mapbrowserevent.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/mapbrowsereventhandler.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/mapbrowsereventtype.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/mapbrowserpointerevent.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/mapevent.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/mapeventtype.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/mapproperty.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/math.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/net.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/obj.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/object.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/objecteventtype.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/observable.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/overlay.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/overlaypositioning.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/pluggablemap.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/plugins.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/plugintype.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/pointer/eventsource.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/pointer/eventtype.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/pointer/mousesource.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/pointer/mssource.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/pointer/nativesource.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/pointer/pointerevent.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/pointer/pointereventhandler.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/pointer/touchsource.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/proj.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/proj/common.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/proj/epsg3857.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/proj/epsg4326.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/proj/index.jsdoc (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/proj/proj4.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/proj/projection.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/proj/projections.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/proj/transforms.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/proj/units.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/render.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/render.jsdoc (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/render/box.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/render/canvas.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/render/canvas/imagereplay.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/render/canvas/immediate.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/render/canvas/index.jsdoc (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/render/canvas/instruction.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/render/canvas/linestringreplay.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/render/canvas/polygonreplay.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/render/canvas/replay.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/render/canvas/replaygroup.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/render/canvas/textreplay.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/render/event.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/render/eventtype.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/render/feature.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/render/replay.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/render/replaygroup.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/render/replaytype.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/render/vectorcontext.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/render/webgl.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay/defaultshader.glsl (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay/defaultshader.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay/defaultshader/locations.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/render/webgl/imagereplay.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/render/webgl/immediate.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/render/webgl/index.jsdoc (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay/defaultshader.glsl (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay/defaultshader.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay/defaultshader/locations.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay/defaultshader.glsl (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay/defaultshader.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay/defaultshader/locations.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/render/webgl/replay.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/render/webgl/replaygroup.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/render/webgl/textreplay.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay/defaultshader.glsl (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay/defaultshader.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay/defaultshader/locations.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/renderer/canvas/imagelayer.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/renderer/canvas/intermediatecanvas.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/renderer/canvas/layer.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/renderer/canvas/map.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/renderer/canvas/tilelayer.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/renderer/canvas/vectorlayer.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/renderer/canvas/vectortilelayer.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/renderer/index.jsdoc (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/renderer/layer.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/renderer/map.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/renderer/type.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/renderer/vector.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/renderer/webgl/defaultmapshader.glsl (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/renderer/webgl/defaultmapshader.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/renderer/webgl/defaultmapshader/locations.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/renderer/webgl/imagelayer.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/renderer/webgl/layer.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/renderer/webgl/map.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayer.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayershader.glsl (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayershader.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayershader/locations.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/renderer/webgl/vectorlayer.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/reproj.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/reproj/image.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/reproj/tile.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/reproj/triangulation.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/resolutionconstraint.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/rotationconstraint.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/size.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/source.jsdoc (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/source/bingmaps.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/source/cartodb.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/source/cluster.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/source/image.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/source/imagearcgisrest.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/source/imagecanvas.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/source/imagemapguide.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/source/imagestatic.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/source/imagevector.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/source/imagewms.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/source/osm.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/source/raster.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/source/rasteroperationtype.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/source/source.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/source/stamen.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/source/state.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/source/tile.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/source/tilearcgisrest.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/source/tiledebug.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/source/tileeventtype.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/source/tileimage.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/source/tilejson.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/source/tileutfgrid.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/source/tilewms.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/source/urltile.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/source/vector.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/source/vectoreventtype.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/source/vectortile.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/source/wmsservertype.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/source/wmts.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/source/wmtsrequestencoding.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/source/xyz.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/source/zoomify.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/sphere.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/string.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/structs/linkedlist.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/structs/lrucache.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/structs/priorityqueue.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/structs/rbush.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/style.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/style/atlas.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/style/atlasmanager.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/style/circle.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/style/fill.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/style/icon.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/style/iconanchorunits.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/style/iconimage.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/style/iconimagecache.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/style/iconorigin.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/style/image.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/style/index.jsdoc (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/style/regularshape.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/style/stroke.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/style/style.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/style/text.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/style/textplacement.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/tile.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/tilecache.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/tilecoord.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/tilegrid.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/tilegrid/index.jsdoc (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/tilegrid/tilegrid.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/tilegrid/wmts.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/tilequeue.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/tilerange.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/tilestate.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/tileurlfunction.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/transform.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/typedefs.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/uri.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/vec/mat4.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/vectorimagetile.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/vectortile.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/view.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/viewhint.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/viewproperty.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/webgl.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/webgl/buffer.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/webgl/context.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/webgl/contexteventtype.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/webgl/fragment.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/webgl/shader.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/webgl/shader.mustache (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/webgl/shaderlocations.mustache (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/webgl/vertex.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol/ol/xml.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol3-ext/licence.txt (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol3-ext/readme.txt (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol3-ext/style/fonts/fontanc.def.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol3-ext/style/fonts/fontawesome.def.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol3-ext/style/fonts/fontveremes.def.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol3-ext/style/fontsymbol.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol3-ext/style/shadowstyle.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol3-ext/utils/ol.ordering.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol3-veremes/mobilemodify.js (100%) rename {client => src/vitis/client}/javascript/externs/openLayers/ol3-veremes/ol.veremes.js (100%) rename {client => src/vitis/client}/javascript/externs/rgraph/RGraph.bar_min.js (100%) rename {client => src/vitis/client}/javascript/externs/rgraph/RGraph.common.context_min.js (100%) rename {client => src/vitis/client}/javascript/externs/rgraph/RGraph.common.core_min.js (100%) rename {client => src/vitis/client}/javascript/externs/rgraph/RGraph.common.dynamic_min.js (100%) rename {client => src/vitis/client}/javascript/externs/rgraph/RGraph.common.effects_min.js (100%) rename {client => src/vitis/client}/javascript/externs/rgraph/RGraph.common.key_min.js (100%) rename {client => src/vitis/client}/javascript/externs/rgraph/RGraph.common.tooltips_min.js (100%) rename {client => src/vitis/client}/javascript/externs/rgraph/RGraph.drawing.rect_min.js (100%) rename {client => src/vitis/client}/javascript/externs/rgraph/RGraph.drawing.text_min.js (100%) rename {client => src/vitis/client}/javascript/externs/rgraph/RGraph.pie_min.js (100%) rename {client => src/vitis/client}/javascript/externs/rgraph/RGraph.scatter_min.js (100%) rename {client => src/vitis/client}/javascript/externs/scripts_cryptage.js (100%) rename {client => src/vitis/client}/javascript/externs/showdown/showdown.js (100%) rename {client => src/vitis/client}/javascript/externs/showdown/showdown.js.map (100%) rename {client => src/vitis/client}/javascript/externs/showdown/showdown.min.js (100%) rename {client => src/vitis/client}/javascript/externs/showdown/showdown.min.js.map (100%) rename {client => src/vitis/client}/javascript/externs/studio/javascript/app/ElementForm.js (100%) rename {client => src/vitis/client}/javascript/externs/studio/javascript/app/FormBuilder.js (100%) rename {client => src/vitis/client}/javascript/externs/studio/javascript/app/FormTools.js (100%) rename {client => src/vitis/client}/javascript/externs/studio/javascript/app/JsonLoader.js (100%) rename {client => src/vitis/client}/javascript/externs/studio/javascript/app/Utils.js (100%) rename {client => src/vitis/client}/javascript/externs/studio/javascript/app/Visualizer.js (100%) rename {client => src/vitis/client}/javascript/externs/studio/javascript/app/VisualizerMode/CssMode.js (100%) rename {client => src/vitis/client}/javascript/externs/studio/javascript/app/VisualizerMode/FormMode.js (100%) rename {client => src/vitis/client}/javascript/externs/studio/javascript/app/VisualizerMode/JsMode.js (100%) rename {client => src/vitis/client}/javascript/externs/studio/javascript/app/VisualizerMode/JsonMode.js (100%) rename {client => src/vitis/client}/javascript/externs/studio/lang/lang-en.json (100%) rename {client => src/vitis/client}/javascript/externs/studio/lang/lang-fr.json (100%) rename {client => src/vitis/client}/javascript/externs/studio/less/CodeMirror.less (100%) rename {client => src/vitis/client}/javascript/externs/studio/less/studio.less (100%) rename {client => src/vitis/client}/javascript/externs/studio/properties/properties.js (100%) rename {client => src/vitis/client}/javascript/externs/studio/templates/Componant/Map.html (100%) rename {client => src/vitis/client}/javascript/externs/studio/templates/ElementForm.html (100%) rename {client => src/vitis/client}/javascript/externs/studio/templates/FormTools.html (100%) rename {client => src/vitis/client}/javascript/externs/studio/templates/JsonLoader.html (100%) rename {client => src/vitis/client}/javascript/externs/studio/templates/MainTemplate.html (100%) rename {client => src/vitis/client}/javascript/externs/studio/templates/Visualizer.html (100%) rename {client => src/vitis/client}/javascript/externs/studio/templates/VisualizerMode/CssMode.html (100%) rename {client => src/vitis/client}/javascript/externs/studio/templates/VisualizerMode/FormMode.html (100%) rename {client => src/vitis/client}/javascript/externs/studio/templates/VisualizerMode/JsMode.html (100%) rename {client => src/vitis/client}/javascript/externs/studio/templates/VisualizerMode/JsonMode.html (100%) rename {client => src/vitis/client}/javascript/externs/tinymce/LICENSE.TXT (100%) rename {client => src/vitis/client}/javascript/externs/tinymce/langs/fr_FR.js (100%) rename {client => src/vitis/client}/javascript/externs/tinymce/plugins/image/plugin.min.js (100%) rename {client => src/vitis/client}/javascript/externs/tinymce/skins/lightgray/content.inline.min.css (100%) rename {client => src/vitis/client}/javascript/externs/tinymce/skins/lightgray/content.min.css (100%) rename {client => src/vitis/client}/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.eot (100%) rename {client => src/vitis/client}/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.svg (100%) rename {client => src/vitis/client}/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.ttf (100%) rename {client => src/vitis/client}/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.woff (100%) rename {client => src/vitis/client}/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.eot (100%) rename {client => src/vitis/client}/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.svg (100%) rename {client => src/vitis/client}/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.ttf (100%) rename {client => src/vitis/client}/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.woff (100%) rename {client => src/vitis/client}/javascript/externs/tinymce/skins/lightgray/img/anchor.gif (100%) rename {client => src/vitis/client}/javascript/externs/tinymce/skins/lightgray/img/loader.gif (100%) rename {client => src/vitis/client}/javascript/externs/tinymce/skins/lightgray/img/object.gif (100%) rename {client => src/vitis/client}/javascript/externs/tinymce/skins/lightgray/img/trans.gif (100%) rename {client => src/vitis/client}/javascript/externs/tinymce/skins/lightgray/skin.ie7.min.css (100%) rename {client => src/vitis/client}/javascript/externs/tinymce/skins/lightgray/skin.min.css (100%) rename {client => src/vitis/client}/javascript/externs/tinymce/themes/modern/theme.min.js (100%) rename {client => src/vitis/client}/javascript/externs/tinymce/tinymce.min.js (100%) rename {client => src/vitis/client}/javascript/externs/underscore-min.js (100%) rename {client => src/vitis/client}/javascript/externs/underscore.js (100%) rename {client => src/vitis/client}/javascript/externs/viewer/Apache-License-2.0.txt (100%) rename {client => src/vitis/client}/javascript/externs/viewer/viewer.min.js (100%) rename {client => src/vitis/client}/javascript/require/requireVitis.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/Output/order/htmlReport.html (100%) rename {client => src/vitis/client}/javascript/test/e2e/Output/order/images/1fe7143891469e980d1fcca05a66b3a2.png (100%) rename {client => src/vitis/client}/javascript/test/e2e/Output/order/images/22a14751fa17bd62335ee88ba6c6f9e6.png (100%) rename {client => src/vitis/client}/javascript/test/e2e/Output/order/images/286dc054fdb1ed4e3c1a14730da91fe3.png (100%) rename {client => src/vitis/client}/javascript/test/e2e/Output/order/images/446e6e12b1a4a349745acaa42b1fd65d.png (100%) rename {client => src/vitis/client}/javascript/test/e2e/Output/order/images/4e6851a1377af65074210820d5903ea4.png (100%) rename {client => src/vitis/client}/javascript/test/e2e/Output/order/images/52280521fa920cd916802fa7bf0752c1.png (100%) rename {client => src/vitis/client}/javascript/test/e2e/Output/order/images/565819f55fb9493820b1f462eb1469af.png (100%) rename {client => src/vitis/client}/javascript/test/e2e/Output/order/images/5ef9ed38ebad6379a04897ec6f383aeb.png (100%) rename {client => src/vitis/client}/javascript/test/e2e/Output/order/images/6c0be7e24610a0144c94df2e1c691718.png (100%) rename {client => src/vitis/client}/javascript/test/e2e/Output/order/images/85bd21280813079f2797df7a66b953ec.png (100%) rename {client => src/vitis/client}/javascript/test/e2e/Output/order/images/9d224f9d204337458fa46ab0f4b4a3f9.png (100%) rename {client => src/vitis/client}/javascript/test/e2e/Output/order/images/a971981cadcc1dafd26000f39ea8a68a.png (100%) rename {client => src/vitis/client}/javascript/test/e2e/Output/order/images/aa05ad4c25af482047fb6ea3951a4ed9.png (100%) rename {client => src/vitis/client}/javascript/test/e2e/Output/order/images/cb30486ebf3bd7f9aaa687cc51e07134.png (100%) rename {client => src/vitis/client}/javascript/test/e2e/Output/order/images/d236806b20deffd8ce0f6393acda549e.png (100%) rename {client => src/vitis/client}/javascript/test/e2e/Output/order/images/e11cf5a8b029208fb74fb66c82acc314.png (100%) rename {client => src/vitis/client}/javascript/test/e2e/Output/order/images/fd3ebf7f15da963e0243b0763ccf4888.png (100%) rename {client => src/vitis/client}/javascript/test/e2e/Output/publication/htmlReport.html (100%) rename {client => src/vitis/client}/javascript/test/e2e/Output/publication/images/1a593987e7ca4240d8dfa7d6611b79e7.png (100%) rename {client => src/vitis/client}/javascript/test/e2e/Output/publication/images/29ff6bceadd409d2da0d4e1ffe3146ec.png (100%) rename {client => src/vitis/client}/javascript/test/e2e/Output/publication/images/31d7ecf9dd49ad85104ef4b491582c27.png (100%) rename {client => src/vitis/client}/javascript/test/e2e/Output/publication/images/3d588c2cc178ebbc6085fdbac873049b.png (100%) rename {client => src/vitis/client}/javascript/test/e2e/Output/publication/images/66864911363c5dfa802360f4cd169d15.png (100%) rename {client => src/vitis/client}/javascript/test/e2e/Output/publication/images/71acb5849026bc31c2e1a3efaf750c8c.png (100%) rename {client => src/vitis/client}/javascript/test/e2e/Output/publication/images/859d507231ab559be0caa350c33361b0.png (100%) rename {client => src/vitis/client}/javascript/test/e2e/Output/publication/images/9bbbcfee24b1eeadfe4cbebce3d68f37.png (100%) rename {client => src/vitis/client}/javascript/test/e2e/Output/publication/images/ac9d916cef66cf3b0c6dc04361fc8c7a.png (100%) rename {client => src/vitis/client}/javascript/test/e2e/Output/publication/images/b9c0bafaae0a695509eb679f32d7bbc4.png (100%) rename {client => src/vitis/client}/javascript/test/e2e/Output/publication/images/b9ddfa35957bf67b37ae22b31d8d2467.png (100%) rename {client => src/vitis/client}/javascript/test/e2e/Output/publication/images/c4beb465fd449624d359f3471d6ee4c1.png (100%) rename {client => src/vitis/client}/javascript/test/e2e/Output/publication/images/d044896b4c0e135963e4cc03d2381d56.png (100%) rename {client => src/vitis/client}/javascript/test/e2e/Output/publication/images/e0eec7bfffe9f6b747cb85db357889a0.png (100%) rename {client => src/vitis/client}/javascript/test/e2e/Output/publication/images/e589e1728c06bfa8de1a8a9ce5a24b4d.png (100%) rename {client => src/vitis/client}/javascript/test/e2e/Output/publication/images/e630b1b432c5ec391a0625040a7b7ba8.png (100%) rename {client => src/vitis/client}/javascript/test/e2e/Output/publication/images/ff2cdf03ef3a270449425608d47b23a0.png (100%) rename {client => src/vitis/client}/javascript/test/e2e/VeremesTest.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/cu_vitis_abonnement.bat (100%) rename {client => src/vitis/client}/javascript/test/e2e/cu_vitis_ad.bat (100%) rename {client => src/vitis/client}/javascript/test/e2e/cu_vitis_categorie.bat (100%) rename {client => src/vitis/client}/javascript/test/e2e/cu_vitis_depot.bat (100%) rename {client => src/vitis/client}/javascript/test/e2e/cu_vitis_fichiers_interdits.bat (100%) rename {client => src/vitis/client}/javascript/test/e2e/cu_vitis_filter.bat (100%) rename {client => src/vitis/client}/javascript/test/e2e/cu_vitis_formulaire.bat (100%) rename {client => src/vitis/client}/javascript/test/e2e/cu_vitis_import_export.bat (100%) rename {client => src/vitis/client}/javascript/test/e2e/cu_vitis_ip.bat (100%) rename {client => src/vitis/client}/javascript/test/e2e/cu_vitis_lot.bat (100%) rename {client => src/vitis/client}/javascript/test/e2e/cu_vitis_metadata.bat (100%) rename {client => src/vitis/client}/javascript/test/e2e/cu_vitis_moteurs.bat (100%) rename {client => src/vitis/client}/javascript/test/e2e/cu_vitis_order.bat (100%) rename {client => src/vitis/client}/javascript/test/e2e/cu_vitis_publication.bat (100%) rename {client => src/vitis/client}/javascript/test/e2e/cu_vitis_unicite.bat (100%) rename {client => src/vitis/client}/javascript/test/e2e/cu_vitis_upload.bat (100%) rename {client => src/vitis/client}/javascript/test/e2e/cu_vitis_upload_fmw.bat (100%) rename {client => src/vitis/client}/javascript/test/e2e/cu_vitis_upload_zip.bat (100%) rename {client => src/vitis/client}/javascript/test/e2e/cu_vitis_user_existant.bat (100%) rename {client => src/vitis/client}/javascript/test/e2e/cu_vitis_users.bat (100%) rename {client => src/vitis/client}/javascript/test/e2e/cu_vitis_users_linux.bat (100%) rename {client => src/vitis/client}/javascript/test/e2e/cu_vitis_users_speciaux.bat (100%) rename {client => src/vitis/client}/javascript/test/e2e/cu_vitis_verrouillage_projet.bat (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/.npmignore (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/README.md (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/index.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/.bin/mkdirp (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/.bin/mkdirp.cmd (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/README.markdown (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/example/hat.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/example/rack.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/index.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/package.json (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/test/id.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/test/rack.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/LICENSE (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/README.md (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/chunk.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/compact.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/difference.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/drop.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/dropRight.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/dropRightWhile.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/dropWhile.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/fill.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/findIndex.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/findLastIndex.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/first.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/flatten.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/flattenDeep.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/head.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/indexOf.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/initial.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/intersection.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/last.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/lastIndexOf.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/object.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/pull.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/pullAt.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/remove.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/rest.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/slice.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/sortedIndex.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/sortedLastIndex.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/tail.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/take.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/takeRight.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/takeRightWhile.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/takeWhile.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/union.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/uniq.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/unique.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/unzip.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/unzipWith.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/without.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/xor.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/zip.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/zipObject.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/zipWith.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/chain.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/commit.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/concat.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/lodash.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/plant.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/reverse.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/run.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/tap.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/thru.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/toJSON.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/toString.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/value.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/valueOf.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperChain.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperCommit.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperConcat.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperPlant.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperReverse.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperToString.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperValue.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/all.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/any.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/at.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/collect.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/contains.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/countBy.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/detect.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/each.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/eachRight.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/every.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/filter.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/find.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/findLast.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/findWhere.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/foldl.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/foldr.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/forEach.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/forEachRight.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/groupBy.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/include.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/includes.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/indexBy.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/inject.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/invoke.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/map.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/max.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/min.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/partition.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/pluck.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/reduce.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/reduceRight.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/reject.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sample.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/select.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/shuffle.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/size.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/some.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sortBy.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sortByAll.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sortByOrder.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sum.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/where.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/date.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/date/now.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/after.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/ary.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/backflow.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/before.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/bind.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/bindAll.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/bindKey.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/compose.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/curry.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/curryRight.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/debounce.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/defer.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/delay.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/flow.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/flowRight.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/memoize.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/modArgs.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/negate.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/once.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/partial.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/partialRight.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/rearg.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/restParam.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/spread.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/throttle.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/wrap.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/index.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/LazyWrapper.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/LodashWrapper.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/MapCache.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/SetCache.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayConcat.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayCopy.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayEach.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayEachRight.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayEvery.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayExtremum.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayFilter.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayMap.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayPush.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayReduce.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayReduceRight.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arraySome.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arraySum.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/assignDefaults.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/assignOwnDefaults.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/assignWith.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseAssign.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseAt.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCallback.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseClone.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCompareAscending.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCopy.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCreate.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseDelay.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseDifference.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseEach.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseEachRight.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseEvery.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseExtremum.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFill.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFilter.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFind.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFindIndex.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFlatten.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFor.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForIn.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForOwn.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForOwnRight.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForRight.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFunctions.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseGet.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIndexOf.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsEqual.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsEqualDeep.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsFunction.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsMatch.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseLodash.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMap.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMatches.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMatchesProperty.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMerge.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMergeDeep.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseProperty.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/basePropertyDeep.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/basePullAt.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseRandom.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseReduce.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSetData.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSlice.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSome.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSortBy.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSortByOrder.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSum.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseToString.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseUniq.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseValues.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseWhile.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseWrapperValue.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/binaryIndex.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/binaryIndexBy.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/bindCallback.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/bufferClone.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/cacheIndexOf.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/cachePush.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/charsLeftIndex.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/charsRightIndex.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/compareAscending.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/compareMultiple.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/composeArgs.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/composeArgsRight.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createAggregator.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createAssigner.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createBaseEach.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createBaseFor.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createBindWrapper.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCache.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCompounder.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCtorWrapper.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCurry.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createDefaults.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createExtremum.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFind.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFindIndex.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFindKey.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFlow.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createForEach.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createForIn.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createForOwn.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createHybridWrapper.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createObjectMapper.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPadDir.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPadding.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPartial.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPartialWrapper.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createReduce.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createRound.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createSortedIndex.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createWrapper.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/deburrLetter.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/equalArrays.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/equalByTag.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/equalObjects.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/escapeHtmlChar.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/escapeRegExpChar.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/escapeStringChar.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getData.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getFuncName.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getLength.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getMatchData.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getNative.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getView.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/indexOfNaN.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/initCloneArray.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/initCloneByTag.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/initCloneObject.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/invokePath.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isArrayLike.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isIndex.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isIterateeCall.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isKey.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isLaziable.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isLength.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isObjectLike.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isSpace.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isStrictComparable.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/lazyClone.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/lazyReverse.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/lazyValue.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapDelete.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapGet.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapHas.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapSet.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mergeData.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mergeDefaults.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/metaMap.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/pickByArray.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/pickByCallback.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reEscape.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reEvaluate.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reInterpolate.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/realNames.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reorder.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/replaceHolders.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/setData.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/shimKeys.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/sortedUniq.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/toIterable.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/toObject.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/toPath.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/trimmedLeftIndex.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/trimmedRightIndex.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/unescapeHtmlChar.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/wrapperClone.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/clone.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/cloneDeep.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/eq.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/gt.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/gte.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isArguments.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isArray.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isBoolean.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isDate.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isElement.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isEmpty.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isEqual.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isError.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isFinite.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isFunction.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isMatch.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNaN.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNative.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNull.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNumber.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isObject.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isPlainObject.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isRegExp.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isString.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isTypedArray.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isUndefined.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/lt.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/lte.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/toArray.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/toPlainObject.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/add.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/ceil.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/floor.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/max.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/min.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/round.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/sum.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/number.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/number/inRange.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/number/random.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/assign.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/create.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/defaults.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/defaultsDeep.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/extend.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/findKey.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/findLastKey.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forIn.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forInRight.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forOwn.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forOwnRight.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/functions.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/get.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/has.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/invert.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/keys.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/keysIn.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/mapKeys.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/mapValues.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/merge.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/methods.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/omit.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/pairs.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/pick.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/result.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/set.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/transform.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/values.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/valuesIn.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/package.json (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/camelCase.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/capitalize.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/deburr.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/endsWith.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/escape.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/escapeRegExp.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/kebabCase.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/pad.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/padLeft.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/padRight.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/parseInt.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/repeat.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/snakeCase.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/startCase.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/startsWith.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/template.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/templateSettings.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trim.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trimLeft.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trimRight.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trunc.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/unescape.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/words.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/support.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/attempt.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/callback.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/constant.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/identity.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/iteratee.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/matches.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/matchesProperty.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/method.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/methodOf.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/mixin.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/noop.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/property.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/propertyOf.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/range.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/times.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/uniqueId.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/.travis.yml (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/LICENSE (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/bin/cmd.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/bin/usage.txt (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/examples/pow.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/index.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/.travis.yml (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/LICENSE (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/example/parse.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/index.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/package.json (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/readme.markdown (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/dash.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/default_bool.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/dotted.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/long.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/parse.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/parse_modified.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/short.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/whitespace.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/package.json (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/readme.markdown (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/chmod.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/clobber.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/mkdirp.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/opts_fs.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/opts_fs_sync.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/perm.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/perm_sync.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/race.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/rel.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/return.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/return_sync.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/root.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/sync.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/umask.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/umask_sync.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/LICENSE-MIT.txt (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/README.md (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/package.json (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/startswith.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/package.json (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/protractor.config.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/template.html (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/test/test2Spec.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/test/testSpec.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/protractor.conf.abonnement.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/protractor.conf.ad.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/protractor.conf.categorie.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/protractor.conf.depot.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/protractor.conf.fichiers_interdits.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/protractor.conf.filter.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/protractor.conf.formulaire.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/protractor.conf.import.export.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/protractor.conf.ip.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/protractor.conf.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/protractor.conf.lot.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/protractor.conf.metada.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/protractor.conf.metadata.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/protractor.conf.moteurs.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/protractor.conf.order.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/protractor.conf.publication.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/protractor.conf.unicite.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/protractor.conf.upload.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/protractor.conf.upload_fmw.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/protractor.conf.upload_zip.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/protractor.conf.user_existant.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/protractor.conf.users.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/protractor.conf.users_speciaux.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/protractor.conf.users_speciaux.linux.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/protractor.conf.verrouillage_projet.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/resource/DATE.gex (100%) rename {client => src/vitis/client}/javascript/test/e2e/resource/DPT.DBF (100%) rename {client => src/vitis/client}/javascript/test/e2e/resource/DPT.SHP (100%) rename {client => src/vitis/client}/javascript/test/e2e/resource/DPT.SHX (100%) rename {client => src/vitis/client}/javascript/test/e2e/resource/DPT.prj (100%) rename {client => src/vitis/client}/javascript/test/e2e/resource/DPT.zip (100%) rename {client => src/vitis/client}/javascript/test/e2e/resource/choix_multiple.fmw (100%) rename {client => src/vitis/client}/javascript/test/e2e/resource/choix_multiple.log (100%) rename {client => src/vitis/client}/javascript/test/e2e/resource/controle_quali.gex (100%) rename {client => src/vitis/client}/javascript/test/e2e/resource/dep dep.zip (100%) rename {client => src/vitis/client}/javascript/test/e2e/resource/depts.zip (100%) rename {client => src/vitis/client}/javascript/test/e2e/resource/dpt2.dbf (100%) rename {client => src/vitis/client}/javascript/test/e2e/resource/dpt2.prj (100%) rename {client => src/vitis/client}/javascript/test/e2e/resource/dpt2.shp (100%) rename {client => src/vitis/client}/javascript/test/e2e/resource/dpt2.shx (100%) rename {client => src/vitis/client}/javascript/test/e2e/resource/dpt2.zip (100%) rename "client/javascript/test/e2e/resource/d\303\251p.zip" => "src/vitis/client/javascript/test/e2e/resource/d\303\251p.zip" (100%) rename {client => src/vitis/client}/javascript/test/e2e/resource/ee aa.fmw (100%) rename {client => src/vitis/client}/javascript/test/e2e/resource/exemples.gex (100%) rename "client/javascript/test/e2e/resource/extraction_geofla_par_d\303\251partement.gex" => "src/vitis/client/javascript/test/e2e/resource/extraction_geofla_par_d\303\251partement.gex" (100%) rename {client => src/vitis/client}/javascript/test/e2e/resource/import_export.gex (100%) rename {client => src/vitis/client}/javascript/test/e2e/resource/import_export2.gex (100%) rename {client => src/vitis/client}/javascript/test/e2e/resource/it3/ARDECHE.dbf (100%) rename {client => src/vitis/client}/javascript/test/e2e/resource/it3/ARDECHE.prj (100%) rename {client => src/vitis/client}/javascript/test/e2e/resource/it3/ARDECHE.shp (100%) rename {client => src/vitis/client}/javascript/test/e2e/resource/it3/ARDECHE.shx (100%) rename {client => src/vitis/client}/javascript/test/e2e/resource/metadata.fmw (100%) rename {client => src/vitis/client}/javascript/test/e2e/resource/metadata.log (100%) rename {client => src/vitis/client}/javascript/test/e2e/resource/metadata2.fmw (100%) rename {client => src/vitis/client}/javascript/test/e2e/resource/selection_villes.gex (100%) rename {client => src/vitis/client}/javascript/test/e2e/resource/shp2mif.fmw (100%) rename {client => src/vitis/client}/javascript/test/e2e/resource/t_abonnement.fmw (100%) rename {client => src/vitis/client}/javascript/test/e2e/resource/t_formulaire.fmw (100%) rename {client => src/vitis/client}/javascript/test/e2e/resource/t_importparlot1.fmw (100%) rename {client => src/vitis/client}/javascript/test/e2e/resource/t_importparlot2.fmw (100%) rename {client => src/vitis/client}/javascript/test/e2e/resource/t_unicite.fmw (100%) rename {client => src/vitis/client}/javascript/test/e2e/resource/test_gex.gex (100%) rename {client => src/vitis/client}/javascript/test/e2e/resource/test_param_choice_villes.fmw (100%) rename {client => src/vitis/client}/javascript/test/e2e/resource/test_param_couleur.fmw (100%) rename {client => src/vitis/client}/javascript/test/e2e/resource/test_param_date_time.fmw (100%) rename {client => src/vitis/client}/javascript/test/e2e/resource/test_param_date_time.log (100%) rename {client => src/vitis/client}/javascript/test/e2e/resource/villes.zip (100%) rename {client => src/vitis/client}/javascript/test/e2e/resource/vse.jpg (100%) rename "client/javascript/test/e2e/resource/\303\251\303\240.fmw" => "src/vitis/client/javascript/test/e2e/resource/\303\251\303\240.fmw" (100%) rename {client => src/vitis/client}/javascript/test/e2e/scenario/sc_vitis_abonnement.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/scenario/sc_vitis_ad.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/scenario/sc_vitis_categorie.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/scenario/sc_vitis_depot.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/scenario/sc_vitis_fichiers_interdits.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/scenario/sc_vitis_filter.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/scenario/sc_vitis_fme_params.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/scenario/sc_vitis_formulaire.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/scenario/sc_vitis_import_export.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/scenario/sc_vitis_ip.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/scenario/sc_vitis_lot.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/scenario/sc_vitis_metadata.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/scenario/sc_vitis_moteurs.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/scenario/sc_vitis_order.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/scenario/sc_vitis_publication.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/scenario/sc_vitis_unicite.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/scenario/sc_vitis_upload.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/scenario/sc_vitis_upload_fmw.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/scenario/sc_vitis_upload_zip.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/scenario/sc_vitis_user_existant.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/scenario/sc_vitis_users.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/scenario/sc_vitis_users_linux.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/scenario/sc_vitis_users_speciaux.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/scenario/sc_vitis_users_speciaux_linux.js (100%) rename {client => src/vitis/client}/javascript/test/e2e/scenario/sc_vitis_verrouillage_projet.js (100%) rename {client => src/vitis/client}/lang/lang-en.json (95%) rename {client => src/vitis/client}/lang/lang-fr.json (96%) rename {client => src/vitis/client}/less/doubleForm.less (100%) rename {client => src/vitis/client}/less/htmlForm.less (97%) rename {client => src/vitis/client}/less/login.less (100%) rename {client => src/vitis/client}/less/main.less (100%) mode change 100755 => 100644 rename {client => src/vitis/client}/less/mobile.less (100%) rename {client => src/vitis/client}/less/sectionForm.less (100%) rename {client => src/vitis/client}/less/simpleForm.less (100%) rename {client => src/vitis/client}/less/workspaceList.less (100%) rename {client => src/vitis/client}/modules/vitis/data/proj.json (100%) rename {client => src/vitis/client}/modules/vitis/forms/configuration/configuration_vitis_configuration.json (100%) mode change 100755 => 100644 create mode 100755 src/vitis/client/modules/vitis/forms/exploitation/exploitation_exploitation.json rename {client => src/vitis/client}/modules/vitis/forms/logs/logs_vitis_log.json (100%) rename {client => src/vitis/client}/modules/vitis/forms/user/user_vitis_user.js (100%) rename {client => src/vitis/client}/modules/vitis/forms/user/user_vitis_user.json (100%) mode change 100755 => 100644 rename {client => src/vitis/client}/modules/vitis/forms/users/active_directory_connection.json (100%) rename {client => src/vitis/client}/modules/vitis/forms/users/search_active_directory_group.json (100%) rename {client => src/vitis/client}/modules/vitis/forms/users/search_active_directory_person.json (100%) rename {client => src/vitis/client}/modules/vitis/forms/users/users_vitis_billinggroup.json (100%) rename {client => src/vitis/client}/modules/vitis/forms/users/users_vitis_domain.json (100%) rename {client => src/vitis/client}/modules/vitis/forms/users/users_vitis_group.json (100%) rename {client => src/vitis/client}/modules/vitis/forms/users/users_vitis_privilege.json (100%) rename {client => src/vitis/client}/modules/vitis/forms/users/users_vitis_users.json (100%) mode change 100755 => 100644 rename {client => src/vitis/client}/modules/vitis/images/administrator.png (100%) rename {client => src/vitis/client}/modules/vitis/images/button_green.gif (100%) rename {client => src/vitis/client}/modules/vitis/images/button_red.gif (100%) rename {client => src/vitis/client}/modules/vitis/images/user.png (100%) rename {client => src/vitis/client}/modules/vitis/javascript/controllers/activeDirectoryTreeCtrl.js (100%) rename {client => src/vitis/client}/modules/vitis/javascript/controllers/logsCtrl.js (100%) rename {client => src/vitis/client}/modules/vitis/javascript/controllers/versionConfigurationCtrl.js (100%) rename {client => src/vitis/client}/modules/vitis/javascript/controllers/webServiceHelpCtrl.js (100%) rename {client => src/vitis/client}/modules/vitis/javascript/controllers/websocketConfigurationCtrl.js (100%) rename {client => src/vitis/client}/modules/vitis/javascript/deps.js (100%) rename {client => src/vitis/client}/modules/vitis/javascript/directives/activeDirectoryTreeDrtv.js (100%) rename {client => src/vitis/client}/modules/vitis/javascript/directives/logsDrtv.js (100%) rename {client => src/vitis/client}/modules/vitis/javascript/directives/phpInfoConfigurationDrtv.js (100%) rename {client => src/vitis/client}/modules/vitis/javascript/directives/versionConfigurationDrtv.js (100%) rename {client => src/vitis/client}/modules/vitis/javascript/directives/webServiceHelpDrtv.js (100%) rename {client => src/vitis/client}/modules/vitis/javascript/directives/websocketConfigurationDrtv.js (100%) rename {client => src/vitis/client}/modules/vitis/javascript/script_module.js (85%) mode change 100755 => 100644 rename {client => src/vitis/client}/modules/vitis/lang/lang-en.json (93%) mode change 100755 => 100644 rename {client => src/vitis/client}/modules/vitis/lang/lang-fr.json (93%) mode change 100755 => 100644 rename {client => src/vitis/client}/modules/vitis/less/activeDirectoryTree.less (100%) rename {client => src/vitis/client}/modules/vitis/less/logs.less (100%) rename {client => src/vitis/client}/modules/vitis/less/main.less (81%) rename {client => src/vitis/client}/modules/vitis/less/phpInfoConfiguration.less (100%) create mode 100755 src/vitis/client/modules/vitis/less/sharedDirectory.less rename {client => src/vitis/client}/modules/vitis/less/updateConfiguration.less (100%) rename {client => src/vitis/client}/modules/vitis/less/users.less (100%) rename {client => src/vitis/client}/modules/vitis/less/versionConfiguration.less (100%) rename {client => src/vitis/client}/modules/vitis/less/webServiceHelp.less (100%) rename {client => src/vitis/client}/modules/vitis/templates/activeDirectoryTreeLeftTpl.html (100%) rename {client => src/vitis/client}/modules/vitis/templates/activeDirectoryTreeRightTpl.html (100%) rename {client => src/vitis/client}/modules/vitis/templates/logsLeftTpl.html (100%) rename {client => src/vitis/client}/modules/vitis/templates/logsRightTpl.html (100%) rename {client => src/vitis/client}/modules/vitis/templates/phpInfoConfigurationTpl.html (100%) rename {client => src/vitis/client}/modules/vitis/templates/updateConfigurationTpl.html (100%) rename {client => src/vitis/client}/modules/vitis/templates/versionConfigurationTpl.html (100%) rename {client => src/vitis/client}/modules/vitis/templates/webServiceHelpTpl.html (100%) rename {client => src/vitis/client}/modules/vitis/templates/websocketConfigurationTpl.html (100%) rename {client => src/vitis/client}/templates/clientDocumentationTpl.html (100%) rename {client => src/vitis/client}/templates/creditsTpl.html (100%) rename {client => src/vitis/client}/templates/doubleFormTpl.html (100%) rename {client => src/vitis/client}/templates/formTpl.html (100%) rename {client => src/vitis/client}/templates/loginTpl.html (100%) rename {client => src/vitis/client}/templates/mainTpl.html (100%) rename {client => src/vitis/client}/templates/sectionFormTpl.html (100%) rename {client => src/vitis/client}/templates/simpleFormTpl.html (100%) rename {client => src/vitis/client}/templates/uiGridActionTpl.html (100%) rename {client => src/vitis/client}/templates/uiGridPaginationTpl.html (100%) rename {client => src/vitis/client}/templates/workspaceListTpl.html (100%) rename {vas => src/vitis/vas}/doc/composer.json (100%) rename {vas => src/vitis/vas}/doc/composer.lock (100%) rename {vas => src/vitis/vas}/doc/css/reset.css (100%) rename {vas => src/vitis/vas}/doc/css/screen.css (100%) rename {vas => src/vitis/vas}/doc/css/style.css (100%) rename {vas => src/vitis/vas}/doc/images/gtf_ws.png (100%) rename {vas => src/vitis/vas}/doc/images/order.png (100%) rename {vas => src/vitis/vas}/doc/images/overview.png (100%) rename {vas => src/vitis/vas}/doc/images/rest.png (100%) rename {vas => src/vitis/vas}/doc/images/throbber.gif (100%) rename {vas => src/vitis/vas}/doc/images/token.png (100%) rename {vas => src/vitis/vas}/doc/images/workspace.png (100%) rename {vas => src/vitis/vas}/doc/index.phtml (100%) rename {vas => src/vitis/vas}/doc/javascript/backbone-min.js (100%) rename {vas => src/vitis/vas}/doc/javascript/handlebars-1.0.0.js (100%) rename {vas => src/vitis/vas}/doc/javascript/handlebars-2.0.0.js (100%) rename {vas => src/vitis/vas}/doc/javascript/highlight.7.3.pack.js (100%) rename {vas => src/vitis/vas}/doc/javascript/jquery-1.8.0.min.js (100%) rename {vas => src/vitis/vas}/doc/javascript/jquery.ba-bbq.min.js (100%) rename {vas => src/vitis/vas}/doc/javascript/jquery.slideto.min.js (100%) rename {vas => src/vitis/vas}/doc/javascript/jquery.wiggle.min.js (100%) rename {vas => src/vitis/vas}/doc/javascript/marked.js (100%) rename {vas => src/vitis/vas}/doc/javascript/shred.bundle.js (100%) rename {vas => src/vitis/vas}/doc/javascript/shred/content.js (100%) rename {vas => src/vitis/vas}/doc/javascript/swagger-oauth.js (100%) rename {vas => src/vitis/vas}/doc/javascript/swagger-ui.js (100%) rename {vas => src/vitis/vas}/doc/javascript/swagger-ui.min.js (100%) rename {vas => src/vitis/vas}/doc/javascript/underscore-min.js (100%) rename {vas => src/vitis/vas}/doc/javascript/underscore-min.map (100%) rename {vas => src/vitis/vas}/doc/swagger.php (100%) rename {vas => src/vitis/vas}/doc/vendor/autoload.php (100%) rename {vas => src/vitis/vas}/doc/vendor/bin/swagger (100%) rename {vas => src/vitis/vas}/doc/vendor/composer/ClassLoader.php (100%) rename {vas => src/vitis/vas}/doc/vendor/composer/LICENSE (100%) rename {vas => src/vitis/vas}/doc/vendor/composer/autoload_classmap.php (100%) rename {vas => src/vitis/vas}/doc/vendor/composer/autoload_files.php (100%) rename {vas => src/vitis/vas}/doc/vendor/composer/autoload_namespaces.php (100%) rename {vas => src/vitis/vas}/doc/vendor/composer/autoload_psr4.php (100%) rename {vas => src/vitis/vas}/doc/vendor/composer/autoload_real.php (100%) rename {vas => src/vitis/vas}/doc/vendor/composer/autoload_static.php (100%) rename {vas => src/vitis/vas}/doc/vendor/composer/installed.json (100%) rename {vas => src/vitis/vas}/doc/vendor/doctrine/annotations/LICENSE (100%) rename {vas => src/vitis/vas}/doc/vendor/doctrine/annotations/README.md (100%) rename {vas => src/vitis/vas}/doc/vendor/doctrine/annotations/composer.json (100%) rename {vas => src/vitis/vas}/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation.php (100%) rename {vas => src/vitis/vas}/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attribute.php (100%) rename {vas => src/vitis/vas}/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attributes.php (100%) rename {vas => src/vitis/vas}/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Enum.php (100%) rename {vas => src/vitis/vas}/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/IgnoreAnnotation.php (100%) rename {vas => src/vitis/vas}/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Required.php (100%) rename {vas => src/vitis/vas}/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Target.php (100%) rename {vas => src/vitis/vas}/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationException.php (100%) rename {vas => src/vitis/vas}/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationReader.php (100%) rename {vas => src/vitis/vas}/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationRegistry.php (100%) rename {vas => src/vitis/vas}/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/CachedReader.php (100%) rename {vas => src/vitis/vas}/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocLexer.php (100%) rename {vas => src/vitis/vas}/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocParser.php (100%) rename {vas => src/vitis/vas}/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/FileCacheReader.php (100%) rename {vas => src/vitis/vas}/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/IndexedReader.php (100%) rename {vas => src/vitis/vas}/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/PhpParser.php (100%) rename {vas => src/vitis/vas}/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Reader.php (100%) rename {vas => src/vitis/vas}/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/SimpleAnnotationReader.php (100%) rename {vas => src/vitis/vas}/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/TokenParser.php (100%) rename {vas => src/vitis/vas}/doc/vendor/doctrine/lexer/LICENSE (100%) rename {vas => src/vitis/vas}/doc/vendor/doctrine/lexer/README.md (100%) rename {vas => src/vitis/vas}/doc/vendor/doctrine/lexer/composer.json (100%) rename {vas => src/vitis/vas}/doc/vendor/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/.gitignore (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Adapter/AbstractAdapter.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Adapter/AbstractFindAdapter.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Adapter/AdapterInterface.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Adapter/BsdFindAdapter.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Adapter/GnuFindAdapter.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Adapter/PhpAdapter.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/CHANGELOG.md (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Comparator/Comparator.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Comparator/DateComparator.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Comparator/NumberComparator.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Exception/AccessDeniedException.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Exception/AdapterFailureException.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Exception/ExceptionInterface.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Exception/OperationNotPermitedException.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Exception/ShellCommandFailureException.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Expression/Expression.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Expression/Glob.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Expression/Regex.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Expression/ValueInterface.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Finder.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Glob.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Iterator/CustomFilterIterator.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Iterator/DateRangeFilterIterator.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Iterator/DepthRangeFilterIterator.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Iterator/FilePathsIterator.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Iterator/FileTypeFilterIterator.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Iterator/FilecontentFilterIterator.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Iterator/FilenameFilterIterator.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Iterator/FilterIterator.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Iterator/PathFilterIterator.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Iterator/SizeRangeFilterIterator.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Iterator/SortableIterator.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/LICENSE (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/README.md (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Shell/Command.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Shell/Shell.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/SplFileInfo.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Tests/BsdFinderTest.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Tests/Comparator/ComparatorTest.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Tests/Comparator/DateComparatorTest.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Tests/Comparator/NumberComparatorTest.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Tests/Expression/ExpressionTest.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Tests/Expression/GlobTest.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Tests/Expression/RegexTest.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Tests/FakeAdapter/DummyAdapter.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Tests/FakeAdapter/FailingAdapter.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Tests/FakeAdapter/NamedAdapter.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Tests/FakeAdapter/UnsupportedAdapter.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Tests/FinderTest.php (100%) rename vas/doc/vendor/symfony/finder/Tests/Fixtures/A/B/ab.dat => src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/A/B/C/abc.dat (100%) rename vas/doc/vendor/symfony/finder/Tests/Fixtures/A/a.dat => src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/A/B/ab.dat (100%) rename vas/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/B/C/abc.dat.copy => src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/A/a.dat (100%) rename vas/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/B/ab.dat.copy => src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/B/C/abc.dat.copy (100%) rename vas/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/a.dat.copy => src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/B/ab.dat.copy (100%) rename vas/doc/vendor/symfony/finder/Tests/Fixtures/one/a => src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/a.dat.copy (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Tests/Fixtures/dolor.txt (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Tests/Fixtures/ipsum.txt (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Tests/Fixtures/lorem.txt (100%) rename vas/doc/vendor/symfony/finder/Tests/Fixtures/one/b/c.neon => src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/one/a (100%) rename vas/doc/vendor/symfony/finder/Tests/Fixtures/one/b/d.neon => src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/one/b/c.neon (100%) rename vas/doc/vendor/symfony/finder/Tests/Fixtures/r+e.gex[c]a(r)s/dir/bar.dat => src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/one/b/d.neon (100%) rename vas/doc/vendor/symfony/finder/Tests/Fixtures/with space/foo.txt => src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/r+e.gex[c]a(r)s/dir/bar.dat (100%) rename vas/tmp/file_to_delete.txt => src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/with space/foo.txt (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Tests/GlobTest.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Tests/GnuFinderTest.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Tests/Iterator/CustomFilterIteratorTest.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Tests/Iterator/DateRangeFilterIteratorTest.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Tests/Iterator/DepthRangeFilterIteratorTest.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Tests/Iterator/ExcludeDirectoryFilterIteratorTest.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Tests/Iterator/FilePathsIteratorTest.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Tests/Iterator/FileTypeFilterIteratorTest.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Tests/Iterator/FilecontentFilterIteratorTest.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Tests/Iterator/FilenameFilterIteratorTest.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Tests/Iterator/FilterIteratorTest.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Tests/Iterator/Iterator.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Tests/Iterator/IteratorTestCase.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Tests/Iterator/MockFileListIterator.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Tests/Iterator/MockSplFileInfo.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Tests/Iterator/MultiplePcreFilterIteratorTest.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Tests/Iterator/PathFilterIteratorTest.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Tests/Iterator/RealIteratorTestCase.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Tests/Iterator/RecursiveDirectoryIteratorTest.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Tests/Iterator/SizeRangeFilterIteratorTest.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Tests/Iterator/SortableIteratorTest.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/Tests/Shell/CommandTest.php (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/composer.json (100%) rename {vas => src/vitis/vas}/doc/vendor/symfony/finder/phpunit.xml.dist (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/.gitignore (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/.travis.yml (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/Changelog.md (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/Examples/Examples.md (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/ApiResponse.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/controllers/PetController.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/controllers/StoreController.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/controllers/UserController.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Category.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Order.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Pet.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Tag.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/User.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/security.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/swagger-v2.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/tags.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-simple/SimplePet.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-simple/SimplePetsController.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-simple/api.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/controllers/PetWithDocsController.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/docs.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/models/ErrorModel.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/models/Pet.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore/Pet.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore/PetsController.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore/api.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/LICENSE-2.0.txt (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/README.md (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/VERSION (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/bin/swagger (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/composer.json (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/docs/Advanced.md (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/docs/Getting-started.md (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/docs/Migrating-to-v2.md (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/docs/Related-projects.md (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/phpunit.xml.dist (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/src/Analyser.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/src/Analysis.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/src/Annotations/AbstractAnnotation.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/src/Annotations/Contact.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/src/Annotations/Definition.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/src/Annotations/Delete.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/src/Annotations/ExternalDocumentation.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/src/Annotations/Get.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/src/Annotations/Head.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/src/Annotations/Header.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/src/Annotations/Info.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/src/Annotations/Items.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/src/Annotations/License.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/src/Annotations/Operation.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/src/Annotations/Options.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/src/Annotations/Parameter.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/src/Annotations/Patch.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/src/Annotations/Path.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/src/Annotations/Post.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/src/Annotations/Property.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/src/Annotations/Put.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/src/Annotations/Response.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/src/Annotations/Schema.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/src/Annotations/SecurityScheme.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/src/Annotations/Swagger.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/src/Annotations/Tag.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/src/Annotations/Xml.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/src/Context.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/src/Logger.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/src/Processors/AugmentDefinitions.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/src/Processors/AugmentOperations.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/src/Processors/AugmentParameters.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/src/Processors/AugmentProperties.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/src/Processors/BuildPaths.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/src/Processors/CleanUnmerged.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/src/Processors/HandleReferences.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/src/Processors/InheritProperties.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/src/Processors/MergeIntoSwagger.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/src/Serializer.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/src/StaticAnalyser.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/src/Util.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/src/functions.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/tests/AbstractAnnotationTest.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/tests/AnalyserTest.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/tests/AnalysisTest.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/tests/AugmentDefinitionsTest.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/tests/AugmentOperationTest.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/tests/AugmentParameterTest.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/tests/AugmentPropertiesTest.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/tests/BuildPathsTest.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/tests/CleanUnmergedTest.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/tests/CommandlineInterfaceTest.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/tests/ConstantsTest.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/tests/ContextTest.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore-simple.json (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore-with-external-docs.json (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore.json (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore.swagger.io.json (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/tests/ExamplesTest.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/tests/Fixtures/Ancestor.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/tests/Fixtures/AncestorWithoutDocBlocks.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/tests/Fixtures/Child.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/tests/Fixtures/ChildWithDocBlocks.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/tests/Fixtures/Customer.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/tests/Fixtures/GrandAncestor.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/tests/Fixtures/HelloTrait.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/tests/Fixtures/NestedProperty.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/tests/Fixtures/ThirdPartyAnnotations.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/tests/Fixtures/UsingPhpDoc.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/tests/Fixtures/UsingRefs.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/tests/Fixtures/routes.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/tests/InheritPropertiesTest.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/tests/ItemsTest.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/tests/MergeIntoSwaggerTest.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/tests/NestedPropertyTest.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/tests/ResponseTest.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/tests/SerializerTest.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/tests/StaticAnalyserTest.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/tests/SwaggerTestCase.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/tests/UtilTest.php (100%) rename {vas => src/vitis/vas}/doc/vendor/zircote/swagger-php/tests/ValidateRelationsTest.php (100%) rename {vas => src/vitis/vas}/public/studio/default.js (100%) rename {vas => src/vitis/vas}/rest/.htaccess (100%) rename {vas => src/vitis/vas}/rest/class/.htaccess (100%) rename {vas => src/vitis/vas}/rest/class/Ldap.class.inc (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Autoloader.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Builder.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/ChannelFile.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/ChannelFile/Parser.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Command.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Command/Auth.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Command/Auth.xml (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Command/Build.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Command/Build.xml (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Command/Channels.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Command/Channels.xml (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Command/Common.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Command/Config.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Command/Config.xml (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Command/Install.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Command/Install.xml (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Command/Mirror.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Command/Mirror.xml (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Command/Package.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Command/Package.xml (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Command/Pickle.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Command/Pickle.xml (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Command/Registry.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Command/Registry.xml (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Command/Remote.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Command/Remote.xml (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Command/Test.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Command/Test.xml (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Common.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Config.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Dependency.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Dependency2.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/DependencyDB.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Downloader.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Downloader/Package.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/ErrorStack.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Exception.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/FixPHP5PEARWarnings.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Frontend.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Frontend/CLI.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Installer.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Installer/Role.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Installer/Role/Cfg.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Installer/Role/Cfg.xml (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Installer/Role/Common.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Installer/Role/Data.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Installer/Role/Data.xml (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Installer/Role/Doc.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Installer/Role/Doc.xml (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Installer/Role/Ext.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Installer/Role/Ext.xml (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Installer/Role/Php.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Installer/Role/Php.xml (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Installer/Role/Script.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Installer/Role/Script.xml (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Installer/Role/Src.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Installer/Role/Src.xml (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Installer/Role/Test.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Installer/Role/Test.xml (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Installer/Role/Www.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Installer/Role/Www.xml (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Mail.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Mail/RFC822.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Mail/mail.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Mail/mime.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Mail/mimePart.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Mail/mock.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Mail/net/SMTP.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Mail/net/Socket.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Mail/net/docs/guide.txt (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Mail/net/examples/basic.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Mail/net/tests/auth.phpt (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Mail/net/tests/basic.phpt (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Mail/net/tests/config.php.dist (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Mail/net/tests/quotedata.phpt (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Mail/null.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Mail/sendmail.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Mail/smtp.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Mail/smtpmx.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/PEAR.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/PackageFile.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/PackageFile/Generator/v1.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/PackageFile/Generator/v2.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/PackageFile/Parser/v1.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/PackageFile/Parser/v2.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/PackageFile/v1.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/PackageFile/v2.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/PackageFile/v2/Validator.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/PackageFile/v2/rw.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Packager.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/REST.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/REST/10.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/REST/11.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/REST/13.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Registry.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Remote.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/RunTest.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Task/Common.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Task/Postinstallscript.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Task/Postinstallscript/rw.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Task/Replace.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Task/Replace/rw.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Task/Unixeol.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Task/Unixeol/rw.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Task/Windowseol.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Task/Windowseol/rw.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Validate.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/Validator/PECL.php (100%) rename {vas => src/vitis/vas}/rest/class/PEAR/XMLParser.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/extras/EasyPeasyICS.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/extras/README.md (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/extras/htmlfilter.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/extras/ntlm_sasl_client.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/language/phpmailer.lang-am.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/language/phpmailer.lang-ar.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/language/phpmailer.lang-az.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/language/phpmailer.lang-ba.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/language/phpmailer.lang-be.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/language/phpmailer.lang-bg.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/language/phpmailer.lang-ca.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/language/phpmailer.lang-ch.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/language/phpmailer.lang-cs.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/language/phpmailer.lang-da.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/language/phpmailer.lang-de.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/language/phpmailer.lang-el.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/language/phpmailer.lang-eo.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/language/phpmailer.lang-es.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/language/phpmailer.lang-et.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/language/phpmailer.lang-fa.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/language/phpmailer.lang-fi.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/language/phpmailer.lang-fo.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/language/phpmailer.lang-fr.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/language/phpmailer.lang-gl.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/language/phpmailer.lang-he.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/language/phpmailer.lang-hi.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/language/phpmailer.lang-hr.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/language/phpmailer.lang-hu.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/language/phpmailer.lang-id.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/language/phpmailer.lang-it.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/language/phpmailer.lang-ja.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/language/phpmailer.lang-ka.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/language/phpmailer.lang-ko.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/language/phpmailer.lang-lt.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/language/phpmailer.lang-lv.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/language/phpmailer.lang-ms.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/language/phpmailer.lang-nb.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/language/phpmailer.lang-nl.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/language/phpmailer.lang-pl.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/language/phpmailer.lang-pt.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/language/phpmailer.lang-pt_br.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/language/phpmailer.lang-ro.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/language/phpmailer.lang-rs.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/language/phpmailer.lang-ru.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/language/phpmailer.lang-sk.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/language/phpmailer.lang-sl.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/language/phpmailer.lang-sr.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/language/phpmailer.lang-sv.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/language/phpmailer.lang-tr.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/language/phpmailer.lang-uk.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/language/phpmailer.lang-vi.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/language/phpmailer.lang-zh.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/language/phpmailer.lang-zh_cn.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/src/Exception.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/src/OAuth.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/src/PHPMailer.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/src/POP3.php (100%) rename {vas => src/vitis/vas}/rest/class/PHPMailer/src/SMTP.php (100%) rename {vas => src/vitis/vas}/rest/class/aws_lib/AWS_Notification/AWS_SMS.class.inc (100%) rename {vas => src/vitis/vas}/rest/class/aws_lib/AWS_Notification/AWS_notification.class.inc (100%) rename {vas => src/vitis/vas}/rest/class/aws_lib/AmazonAWS.class.inc (94%) mode change 100755 => 100644 rename {vas => src/vitis/vas}/rest/class/aws_lib/AmazonApiGateway.class.inc (100%) rename {vas => src/vitis/vas}/rest/class/aws_lib/AmazonS3.class.inc (85%) mode change 100755 => 100644 rename {vas => src/vitis/vas}/rest/class/treeview/LdapTree.php (100%) rename {vas => src/vitis/vas}/rest/class/treeview/Tree.php (100%) rename {vas => src/vitis/vas}/rest/class/treeview/aciTree.php (100%) rename {vas => src/vitis/vas}/rest/class/vitis_lib/Connection.class.inc (100%) rename {vas => src/vitis/vas}/rest/class/vitis_lib/DbClass.class.inc (100%) rename {vas => src/vitis/vas}/rest/class/vitis_lib/Form.class.inc (100%) rename {vas => src/vitis/vas}/rest/class/vitis_lib/VitisError.class.inc (75%) rename {vas => src/vitis/vas}/rest/class/vitis_lib/XmlAbstract.class.inc (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/BD.class.inc (100%) mode change 100755 => 100644 rename {vas => src/vitis/vas}/rest/class/vmlib/BdDataAccess.inc (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/Email.class.inc (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/EmailTemplate.class.inc (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/EmailTemplate.class.sql.inc (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/Ldap.class.inc (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/PgsqlDataAccess.class.inc (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/PostgisUtil.class.inc (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/Vm.class.inc (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/Vm.class.sql.inc (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/class.websocket_client.php (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/coffeescript/class.jstocoffee.php (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/coffeescript/classes/errors.php (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/coffeescript/classes/helpers.php (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/coffeescript/classes/lexer.php (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/coffeescript/classes/nodes.php (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/coffeescript/classes/nodes/access.php (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/coffeescript/classes/nodes/arr.php (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/coffeescript/classes/nodes/assign.php (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/coffeescript/classes/nodes/base.php (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/coffeescript/classes/nodes/block.php (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/coffeescript/classes/nodes/call.php (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/coffeescript/classes/nodes/class.php (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/coffeescript/classes/nodes/closure.php (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/coffeescript/classes/nodes/code.php (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/coffeescript/classes/nodes/comment.php (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/coffeescript/classes/nodes/existence.php (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/coffeescript/classes/nodes/extends.php (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/coffeescript/classes/nodes/for.php (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/coffeescript/classes/nodes/if.php (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/coffeescript/classes/nodes/in.php (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/coffeescript/classes/nodes/index.php (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/coffeescript/classes/nodes/literal.php (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/coffeescript/classes/nodes/obj.php (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/coffeescript/classes/nodes/op.php (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/coffeescript/classes/nodes/param.php (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/coffeescript/classes/nodes/parens.php (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/coffeescript/classes/nodes/push.php (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/coffeescript/classes/nodes/range.php (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/coffeescript/classes/nodes/return.php (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/coffeescript/classes/nodes/slice.php (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/coffeescript/classes/nodes/splat.php (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/coffeescript/classes/nodes/switch.php (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/coffeescript/classes/nodes/throw.php (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/coffeescript/classes/nodes/try.php (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/coffeescript/classes/nodes/value.php (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/coffeescript/classes/nodes/while.php (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/coffeescript/classes/parser.php (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/coffeescript/classes/rewriter.php (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/coffeescript/classes/scope.php (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/coffeescript/coffeescript.php (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/coffeescript/jsmaker.php (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/context/covage.inc (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/context/gtf.inc (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/context/message.inc (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/cryptUtil.inc (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/dateUtil.class.inc (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/dbUtil.inc (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/error.inc (89%) mode change 100755 => 100644 rename {vas => src/vitis/vas}/rest/class/vmlib/lang_vmlib/en-lang.inc (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/lang_vmlib/fr-lang.inc (100%) rename {vas => src/vitis/vas}/rest/class/vmlib/logUtil.inc (75%) mode change 100755 => 100644 rename {vas => src/vitis/vas}/rest/class/vmlib/phpUtil.inc (94%) rename {vas => src/vitis/vas}/rest/class/vmlib/stringUtil.inc (100%) rename {vas => src/vitis/vas}/rest/class/wab_lib/BusinessObject.class.inc (54%) rename {vas => src/vitis/vas}/rest/class/wab_lib/BusinessObject.class.sql.inc (56%) rename {vas => src/vitis/vas}/rest/conf/constants.inc (100%) rename {vas => src/vitis/vas}/rest/conf/php_conf.inc (100%) rename {vas => src/vitis/vas}/rest/conf/properties.inc (100%) mode change 100755 => 100644 rename {vas => src/vitis/vas}/rest/conf/properties_domain.inc (100%) rename {vas => src/vitis/vas}/rest/conf/properties_post.inc (100%) rename {vas => src/vitis/vas}/rest/conf/properties_server.inc (100%) rename {vas => src/vitis/vas}/rest/conf/selected_properties.inc (100%) mode change 100755 => 100644 rename {vas => src/vitis/vas}/rest/conf/version.inc (100%) rename {vas => src/vitis/vas}/rest/inc/MetadataAccess.class.inc (100%) rename {vas => src/vitis/vas}/rest/inc/MetadataAccess.sql.inc (100%) rename {vas => src/vitis/vas}/rest/index.phtml (100%) rename {vas => src/vitis/vas}/rest/index.vhtml (100%) rename {vas => src/vitis/vas}/rest/ws/vitis/Accounts.class.inc (100%) create mode 100755 src/vitis/vas/rest/ws/vitis/Accounts.class.mail.inc rename {vas => src/vitis/vas}/rest/ws/vitis/Accounts.class.sql.inc (100%) rename {vas => src/vitis/vas}/rest/ws/vitis/Action.class.inc (100%) rename {vas => src/vitis/vas}/rest/ws/vitis/Actions.class.inc (100%) rename {vas => src/vitis/vas}/rest/ws/vitis/ActiveDirectory.class.inc (100%) rename {vas => src/vitis/vas}/rest/ws/vitis/BillingGroup.class.inc (100%) rename {vas => src/vitis/vas}/rest/ws/vitis/BillingGroups.class.inc (100%) rename {vas => src/vitis/vas}/rest/ws/vitis/Column.class.inc (100%) rename {vas => src/vitis/vas}/rest/ws/vitis/Columns.class.inc (100%) rename {vas => src/vitis/vas}/rest/ws/vitis/Database.class.inc (100%) rename {vas => src/vitis/vas}/rest/ws/vitis/Domain.class.inc (100%) rename {vas => src/vitis/vas}/rest/ws/vitis/Domains.class.inc (100%) create mode 100755 src/vitis/vas/rest/ws/vitis/Exploitations.class.inc rename {vas => src/vitis/vas}/rest/ws/vitis/FormatDate.class.inc (100%) rename {vas => src/vitis/vas}/rest/ws/vitis/FormatDates.class.inc (100%) rename {vas => src/vitis/vas}/rest/ws/vitis/GenericQuery.class.inc (100%) rename {vas => src/vitis/vas}/rest/ws/vitis/GenericQuerys.class.inc (100%) mode change 100755 => 100644 rename {vas => src/vitis/vas}/rest/ws/vitis/GenericQuerys.class.sql.inc (100%) rename {vas => src/vitis/vas}/rest/ws/vitis/Group.class.inc (100%) rename {vas => src/vitis/vas}/rest/ws/vitis/Groups.class.inc (100%) rename {vas => src/vitis/vas}/rest/ws/vitis/Logs.class.inc (100%) rename {vas => src/vitis/vas}/rest/ws/vitis/Mode.class.inc (100%) rename {vas => src/vitis/vas}/rest/ws/vitis/Modes.class.inc (93%) mode change 100755 => 100644 rename {vas => src/vitis/vas}/rest/ws/vitis/PhpInfo.class.inc (100%) rename {vas => src/vitis/vas}/rest/ws/vitis/PrivateToken.class.inc (66%) rename {vas => src/vitis/vas}/rest/ws/vitis/Privilege.class.inc (100%) rename {vas => src/vitis/vas}/rest/ws/vitis/Privileges.class.inc (100%) rename {vas => src/vitis/vas}/rest/ws/vitis/Properties.class.inc (100%) rename {vas => src/vitis/vas}/rest/ws/vitis/PublicToken.class.inc (100%) rename {vas => src/vitis/vas}/rest/ws/vitis/Ressources.class.inc (100%) rename {vas => src/vitis/vas}/rest/ws/vitis/Schema.class.inc (100%) rename {vas => src/vitis/vas}/rest/ws/vitis/SmtpServer.class.inc (100%) rename {vas => src/vitis/vas}/rest/ws/vitis/Tab.class.inc (100%) rename {vas => src/vitis/vas}/rest/ws/vitis/Table.class.inc (100%) rename {vas => src/vitis/vas}/rest/ws/vitis/Tabs.class.inc (100%) rename {vas => src/vitis/vas}/rest/ws/vitis/TimeZone.class.inc (100%) rename {vas => src/vitis/vas}/rest/ws/vitis/TimeZones.class.inc (100%) rename {vas => src/vitis/vas}/rest/ws/vitis/User.class.inc (100%) rename {vas => src/vitis/vas}/rest/ws/vitis/Users.class.inc (100%) rename {vas => src/vitis/vas}/rest/ws/vitis/Versions.class.inc (100%) rename {vas => src/vitis/vas}/rest/ws/vitis/Vitis.class.inc (100%) mode change 100755 => 100644 rename {vas => src/vitis/vas}/rest/ws/vitis/Vitis.class.sql.inc (100%) rename {vas => src/vitis/vas}/rest/ws/vitis/VitisSection.class.inc (96%) rename {vas => src/vitis/vas}/rest/ws/vitis/VitisSections.class.inc (95%) rename {vas => src/vitis/vas}/rest/ws/vitis/WebServices.class.inc (100%) rename {vas => src/vitis/vas}/rest/ws/vitis/overview.phtml (100%) rename {vas => src/vitis/vas}/sql/sqlQueries.xml (100%) mode change 100755 => 100644 create mode 100755 src/vitis/vas/tmp/file_to_delete.txt rename {vas => src/vitis/vas}/util/coordsys.txt (100%) rename {vas => src/vitis/vas}/util/migration/anc/SplitAddress.fmx (100%) rename {vas => src/vitis/vas}/util/migration/anc/lisez-moi.txt (100%) rename {vas => src/vitis/vas}/util/migration/anc/migration_anc_veremap__vmap.fmw (100%) rename {vas => src/vitis/vas}/util/migration/migration_user_and_group.fmw (100%) rename {vas => src/vitis/vas}/util/migration/migration_veremap_layer.fmw (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/angular/LICENSE (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/angular/angular.js (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/angular/angular.min.js (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/angular/angular.min.js.map (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/angular/modules/angular-route/angular-route.js (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/angular/modules/angular-translate/LICENSE (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-partial.js (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-partial.min.js (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-static-files.js (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-static-files.min.js (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/angular/modules/angular-translate/angular-translate.js (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/angular/modules/angular-translate/angular-translate.min.js (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/angular/modules/sanitize/angular-sanitize.js (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/angular/modules/sanitize/angular-sanitize.min.js (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/angular/modules/sanitize/angular-sanitize.min.js.map (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/angular/modules/ui-codemirror/LICENSE (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/angular/modules/ui-codemirror/ui-codemirror.min.js (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/angular/modules/ui-grid/LICENSE.md (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/angular/modules/ui-grid/plugins/draggable-rows.js (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/angular/modules/ui-grid/ui-grid.js (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/angular/modules/ui-grid/ui-grid.min.js (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/angular/modules/ui-tinymce/LICENSE (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/angular/modules/ui-tinymce/tinymce.js (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/bootstrap/LICENSE (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/bootstrap/css/bootstrap-theme.css (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/bootstrap/css/bootstrap-theme.css.map (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/bootstrap/css/bootstrap-theme.min.css (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/bootstrap/css/bootstrap-theme.min.css.map (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/bootstrap/css/bootstrap.css (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/bootstrap/css/bootstrap.css.map (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/bootstrap/css/bootstrap.min.css (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/bootstrap/css/bootstrap.min.css.map (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.eot (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.svg (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.woff (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2 (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/bootstrap/js/bootstrap.js (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/bootstrap/js/bootstrap.min.js (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/bootstrap/js/npm.js (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/closure/goog/base.js (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/jquery/LICENSE.txt (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/jquery/jquery-1.11.3.js (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/jquery/jquery-1.11.3.min.js (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/jquery/jquery-1.11.3.min.map (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/mapJSON/MapJSON.js (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/ol/ol-debug.js (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/ol/ol.css (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/ol/ol.js (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/ol/ol3-ext/licence.txt (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/ol/ol3-ext/readme.txt (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/ol/ol3-ext/style/fonts/fontawesome.def.js (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/ol/ol3-ext/style/fontsymbol.js (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/ol/ol3-ext/style/shadowstyle.js (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/ol/ol3-ext/utils/ol.ordering.js (100%) rename {vas => src/vitis/vas}/util/printserver/client/lib/ol/ol3-veremes/ol.veremes.js (100%) rename {vas => src/vitis/vas}/util/printserver/client/map/index.html (100%) rename {vas => src/vitis/vas}/util/printserver/client/map/index.js (100%) rename {vas => src/vitis/vas}/util/printserver/client/map/map.js (100%) rename {vas => src/vitis/vas}/util/printserver/client/map/progress.js (100%) rename {vas => src/vitis/vas}/util/printserver/client/map/projections.js (100%) rename {vas => src/vitis/vas}/util/printserver/client/map/scale.js (100%) rename {vas => src/vitis/vas}/util/printserver/client/report/index.html (100%) rename {vas => src/vitis/vas}/util/printserver/client/report/index.js (100%) rename {vas => src/vitis/vas}/util/printserver/client/report/report.js (100%) rename {vas => src/vitis/vas}/util/printserver/client/template/index.html (100%) rename {vas => src/vitis/vas}/util/printserver/client/template/index.js (100%) rename {vas => src/vitis/vas}/util/printserver/client/template/template.js (100%) rename {vas => src/vitis/vas}/util/printserver/client/utils/http.js (100%) rename {vas => src/vitis/vas}/util/printserver/client/utils/properties.js (100%) rename {vas => src/vitis/vas}/util/printserver/client/utils/utils.js (100%) rename {vas => src/vitis/vas}/util/printserver/server/printmap.js (100%) rename {vas => src/vitis/vas}/util/printserver/server/printreport.js (100%) rename {vas => src/vitis/vas}/util/printserver/server/printtemplate.js (100%) rename {vas => src/vitis/vas}/util/printserver/server/saveimage.js (100%) rename {vas => src/vitis/vas}/util/printserver/server/targetsize.js (100%) rename {vas => src/vitis/vas}/util/proxy/proxy.php (100%) rename {vas => src/vitis/vas}/util/webSocket/server/lib/SplClassLoader.php (100%) rename {vas => src/vitis/vas}/util/webSocket/server/lib/WebSocket/Application/Application.php (100%) rename {vas => src/vitis/vas}/util/webSocket/server/lib/WebSocket/Application/DemoApplication.php (100%) rename {vas => src/vitis/vas}/util/webSocket/server/lib/WebSocket/Application/GtfEvents.php (100%) rename {vas => src/vitis/vas}/util/webSocket/server/lib/WebSocket/Application/Status.php (100%) rename {vas => src/vitis/vas}/util/webSocket/server/lib/WebSocket/Application/StatusApplication.php (100%) rename {vas => src/vitis/vas}/util/webSocket/server/lib/WebSocket/Application/VitisApplication.php (100%) rename {vas => src/vitis/vas}/util/webSocket/server/lib/WebSocket/Application/VmapEvents.php (100%) rename {vas => src/vitis/vas}/util/webSocket/server/lib/WebSocket/Connection.php (100%) rename {vas => src/vitis/vas}/util/webSocket/server/lib/WebSocket/Server.php (100%) rename {vas => src/vitis/vas}/util/webSocket/server/lib/WebSocket/Socket.php (100%) rename {vas => src/vitis/vas}/util/webSocket/server/server.pem (100%) rename {vas => src/vitis/vas}/util/webSocket/server/server.php (100%) rename {vas => src/vitis/vas}/util/writerpick.txt (100%) create mode 100644 update.bat create mode 100755 utils/copy_hooks.sh create mode 100755 utils/get_deps.sh create mode 100755 utils/githooks/post-merge create mode 100755 utils/githooks/pre-push create mode 100755 utils/init_subtrees.sh create mode 100755 utils/init_symlinks.sh create mode 100755 utils/pull_subtrees.sh create mode 100755 utils/push_subtrees.sh create mode 100644 utils/utils/copy_hooks.bat create mode 100755 utils/utils/copy_hooks.sh create mode 100755 utils/utils/get_deps.sh create mode 100755 utils/utils/githooks/post-merge create mode 100755 utils/utils/githooks/pre-push create mode 100755 utils/utils/init_subtrees.sh create mode 100755 utils/utils/init_symlinks.sh create mode 100644 utils/utils/init_tree.bat create mode 100755 utils/utils/pull_subtrees.sh create mode 100755 utils/utils/push_subtrees.sh create mode 100644 utils/utils/update_tree.bat diff --git a/.gitignore b/.gitignore index fb23a1f3..665b11f9 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,5 @@ vas/rest/class/!*.* vas/sql/* vas/sql/!*/ vas/sql/!*.* + +utils - Copie/ diff --git a/README.md b/README.md index 73a21c98..74f028f0 100644 --- a/README.md +++ b/README.md @@ -1 +1,13 @@ -Vitis framework \ No newline at end of file +# Extraction + +Application extraction + +## Install dev version (linux) + +To install the dev version of this project run the following steps: + +- Install the app via the VAI setup on var/www/[app name] +- Clone this repo on var/wwww/[app name]\_dev +- Run install.sh and give the var/www/[app name] path when asked to build your tree structure +- Now you have the correct versioned tree structure, rename var/www/[app name] as var/www/[app name]\_vai and var/www/[app name]\_dev as var/www/[app name] +- Run `git pull` and `git push` to update/post the project and his dependencies diff --git a/conf/Gruntfile.js b/conf/Gruntfile.js new file mode 100755 index 00000000..28e9144e --- /dev/null +++ b/conf/Gruntfile.js @@ -0,0 +1,112 @@ +module.exports = function (grunt) { + + var compilerPackage = require('google-closure-compiler'); + compilerPackage.grunt(grunt); + + var devMode = grunt.option('dev'); + + var sHome = '../'; + if (devMode) { + sHome = '../client/'; + } + + var sClosureDepsHome = '../../../../../'; + + // Project configuration. + grunt.initConfig({ + 'closure-compiler': { + Extraction: { + files: { + [sHome + '/javascript/extraction.min.js']: [ + // Fichiers Vitis + sHome + 'javascript/require/*.js', + sHome + 'javascript/app/**/*.js', + sHome + 'javascript/externs/formReader/**/*.js', + sHome + 'javascript/externs/mapJSON/**/*.js', + sHome + 'modules/vitis/javascript/**/*.js', + // OpenLayers + sHome + 'javascript/externs/openLayers/**/*.js', + // Fichiers Extraction + sHome + 'conf/requires/*.js', + sHome + 'modules/extraction/javascript/**/*.js' + ] + }, + options: { + js: [ + 'node_modules/google-closure-library/closure/goog/**.js', + '!node_modules/google-closure-library/closure/goog/**_test.js' + ], + externs: [ + 'closure/externs/angular-1.3.js', + 'closure/externs/bingmaps.js', + 'closure/externs/jquery-1.9.js', + 'closure/externs/bootstrap.js', + 'closure/externs/geojson.js', + 'closure/externs/jspdf.js', + 'closure/externs/html2canvas.js' + ], + compilation_level: 'ADVANCED', + manage_closure_dependencies: true, + generate_exports: true, + angular_pass: true, + debug: false, + language_in: 'ECMASCRIPT5', + language_out: 'ECMASCRIPT5', + closure_entry_point: ['vitis'], + create_source_map: sHome + '/javascript/extraction.min.js.map', + output_wrapper: '(function(){\n%output%\n}).call(this)\n//# sourceMappingURL=../javascript/extraction.min.js.map' + } + }, + formReader: { + files: { + [sHome + '/javascript/externs/formReader/formReader.min.js']: [ + // Fichiers FormReader + sHome + 'javascript/externs/formReader/**/*.js' + ] + }, + options: { + compilation_level: 'WHITESPACE_ONLY', + angular_pass: true, + language_in: 'ECMASCRIPT5', + language_out: 'ECMASCRIPT5' + } + } + }, + 'closureDepsWriter': { + options: { + depswriter: 'closure/depswriter/depswriter.py', + root_with_prefix: [ + // Fichiers Vitis + '"' + sHome + 'javascript/app ' + sClosureDepsHome + 'javascript/app"', + '"' + sHome + 'modules/vitis/javascript ' + sClosureDepsHome + 'modules/vitis/javascript"', + '"' + sHome + 'javascript/externs/formReader ' + sClosureDepsHome + 'javascript/externs/formReader"', + '"' + sHome + 'javascript/externs/mapJSON ' + sClosureDepsHome + 'javascript/externs/mapJSON"', + '"' + sHome + 'conf/requires ' + sClosureDepsHome + 'conf/requires"', + // OpenLayers + '"' + sHome + 'javascript/externs/openLayers ' + sClosureDepsHome + 'javascript/externs/openLayers"', + // Fichiers Extraction + '"' + sHome + 'modules/extraction/javascript ' + sClosureDepsHome + 'modules/extraction/javascript"', + // Closure library + '"' + sHome + 'conf/node_modules/google-closure-library/closure/goog ' + sClosureDepsHome + 'conf/node_modules/google-closure-library/closure/goog"' + ] + }, + targetName: { + dest: sHome + '/javascript/extraction.deps.js' + } + } + }); + + grunt.loadNpmTasks('grunt-closure-tools'); + + // Tache par défaut + // cmd: grunt + grunt.registerTask('default', ['closureDepsWriter', 'closure-compiler:Extraction']); + // cmd: grunt generate-deps + grunt.registerTask('generate-deps', ['closureDepsWriter']); + // cmd: grunt formReader minify + grunt.registerTask('minify-formReader', ['closure-compiler:formReader']); + // cmd: grunt formReader and studio minify + grunt.registerTask('minify-libs', ['closure-compiler:formReader']); + // cmd: grunt compile + grunt.registerTask('compile', ['closure-compiler:Extraction']); +}; diff --git a/conf/_install/apache.conf b/conf/_install/apache.conf new file mode 100755 index 00000000..a57db001 --- /dev/null +++ b/conf/_install/apache.conf @@ -0,0 +1,6 @@ +Alias /extraction[ENV] "[APPDIRECTORY]" + <Directory "[APPDIRECTORY]"> + AllowOverride FileInfo + Options FollowSymLinks + Require all granted + </Directory> diff --git a/conf/_install/dependency.xml b/conf/_install/dependency.xml new file mode 100755 index 00000000..11848b0b --- /dev/null +++ b/conf/_install/dependency.xml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Application --> +<installer> + <dependenciesCollection> + <dependency> + <nature>framework</nature> + <name>vitis</name> + <version>next_version</version> + </dependency> + <dependency> + <nature>modules</nature> + <name>module_extraction</name> + <version>next_version</version> + </dependency> + </dependenciesCollection> +</installer> diff --git a/conf/_install/fileToDelete.txt b/conf/_install/fileToDelete.txt new file mode 100755 index 00000000..5b05a50a --- /dev/null +++ b/conf/_install/fileToDelete.txt @@ -0,0 +1,2 @@ +package.json +Gruntfile.js \ No newline at end of file diff --git a/conf/_install/folderToDelete.txt b/conf/_install/folderToDelete.txt new file mode 100755 index 00000000..3ff9591f --- /dev/null +++ b/conf/_install/folderToDelete.txt @@ -0,0 +1 @@ +requires \ No newline at end of file diff --git a/conf/credits.json b/conf/credits.json new file mode 100755 index 00000000..6e2a596b --- /dev/null +++ b/conf/credits.json @@ -0,0 +1,156 @@ +[ + { + "label": "CREDITS_SOFTWARE", + "rows": [ + { + "type": "text", + "value": "vMap" + } + ] + }, + { + "label": "CREDITS_VERSION", + "rows": [ + { + "type": "text", + "value": "CREDITS_VERSION_CONTENT" + } + ] + }, + { + "label": "CREDITS_DATE", + "rows": [ + { + "type": "text", + "value": "CREDITS_DATE_CONTENT" + } + ] + }, + { + "label": "CREDITS_EDITOR", + "rows": [ + { + "type": "link", + "value": "Veremes", + "url": "http://www.veremes.com" + } + ] + }, + { + "label": "CREDITS_AUTHOR", + "rows": [ + { + "type": "text", + "value": "Armand Bahi" + }, + { + "type": "text", + "value": "Alexandre Bizien" + }, + { + "type": "text", + "value": "Anthony Borghi" + }, + { + "type": "text", + "value": "Frédéric Carretero" + }, + { + "type": "text", + "value": "Olivier Gayte" + }, + { + "type": "text", + "value": "Sébastien Legrand" + }, + { + "type": "text", + "value": "Laurent Panabieres" + }, + { + "type": "text", + "value": "Yoann Perollet" + } + ] + }, + { + "label": "CREDITS_GRAPHICS", + "rows": [ + { + "type": "link", + "value": "Nematis", + "url": "http://www.nematis.com" + } + ] + }, + { + "label": "CREDITS_LIBRARIES", + "rows": [ + { + "type": "link", + "value": "Bootstrap", + "url": "http://getbootstrap.com" + }, + { + "type": "link", + "value": "AngularJS", + "url": "https://angularjs.org" + }, + { + "type": "link", + "value": "Google Closure", + "url": "https://developers.google.com/closure" + }, + { + "type": "link", + "value": "jQuery", + "url": "http://jquery.com" + }, + { + "type": "link", + "value": "Rgraph", + "url": "http://www.rgraph.net" + }, + { + "type": "link", + "value": "CodeMirror", + "url": "http://codemirror.net" + }, + { + "type": "link", + "value": "OpenLayers", + "url": "http://openlayers.org" + }, + { + "type": "link", + "value": "TinyMCE", + "url": "https://www.tinymce.com" + } + ] + }, + { + "label": "CREDITS_CONTACT", + "rows": [ + { + "type": "link", + "value": "www.veremes.com", + "url": "http://www.veremes.com" + }, + { + "type": "link", + "value": "www.veremes.com/nous-contacter#1", + "url": "http://www.veremes.com/nous-contacter#1" + } + ] + }, + { + "label": "CREDITS_LICENSE", + "rows": [ + { + "type": "link", + "value": "Cecill-B", + "url": "http://www.cecill.info/licences/Licence_CeCILL-B_V1-fr.html" + } + ] + } +] diff --git a/conf/less/variables.less b/conf/less/variables.less new file mode 100755 index 00000000..9636cd03 --- /dev/null +++ b/conf/less/variables.less @@ -0,0 +1,35 @@ + +// user colors +@user-color-theme-1: #23282D; +@user-color-theme-2: #6F8456; + + +// Veremes colors +@veremes-gtf-color: #39468A; +@veremes-majic-color: #CF461F; +@veremes-qualigeo-color: #832C7A; +@veremes-wab-color: #198D9F; +/*@veremes-vmap-color: #CB0650;*/ +@veremes-vmap-color: #198D9F; + +@veremes-map-backgroud-color: #020237; +@veremes-gray-backgroud-color: #3A3A3A; +@veremes-light-gray-backgroud-color: #9A9A9A; + + +// Application colors +@application-color-theme: @veremes-vmap-color; // <- Change this color + +@application-lighen-color-theme: lighten(@application-color-theme, 20%); +@application-darken-color-theme: darken(@application-color-theme, 10%); + +@application-action-1-color: #337ab7; // blue bootstrap +@application-action-2-color: #5cb85c; // green bootstrap + +// Other variables +@ui-grid-bg-image: "../images/ui-grid/wbg.gif"; +@font-color-purple: #020237; + +// Dimension des vignettes dans les listes. +@ui-grid-thumbnail-width: 100px; +@ui-grid-thumbnail-heigth: 60px; \ No newline at end of file diff --git a/conf/package.json b/conf/package.json new file mode 100755 index 00000000..5b5091d4 --- /dev/null +++ b/conf/package.json @@ -0,0 +1,4 @@ +{ + "name": "Vitis", + "version": "0.1.0" +} diff --git a/conf/requires/config.js b/conf/requires/config.js new file mode 100755 index 00000000..6d0f540f --- /dev/null +++ b/conf/requires/config.js @@ -0,0 +1,66 @@ +'use strict'; + +goog.provide('vitis.application.config'); + +// Fichiers js et css à charger pour l'application Extraction. +var oApplicationFiles = { + 'css': [ + // Vitis + 'css/lib/bootstrap/css/bootstrap.min.css', + 'css/lib/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker3.min.css', + 'css/lib/jquery/plugins/bootstrap-fileinput/css/fileinput.min.css', + 'css/lib/ui-grid/ui-grid.min.css', + 'css/lib/jquery/plugins/bootstrap-colorpicker/css/bootstrap-colorpicker.min.css', + 'css/lib/bootstrap-checkbox/build.css', + 'css/lib/bootstrap-checkbox/font-awesome.css', + 'css/lib/jquery/plugins/bootstrap-slider/bootstrap-slider.min.css', + 'css/lib/jquery/plugins/malihu-custom-scrollbar/jquery.mCustomScrollbar.min.css', + 'css/lib/ui-grid/plugins/draggable-rows.less', + 'less/main.less', + // App + 'modules/vitis/less/main.less', + 'modules/extraction/less/main.less', + 'css/lib/codemirror/codemirror.css', + 'css/lib/codemirror/codemirror_foldgutter.css', + 'css/lib/codemirror/map.css', + 'css/lib/codemirror/show-hint.css', + 'css/lib/jquery/plugins/bootstrap-treeview/bootstrap-treeview.min.css', + 'css/lib/jquery/plugins/bootstrap-tagsinput/bootstrap-tagsinput.css', + 'css/lib/jquery/plugins/bootstrap-colorpicker/css/bootstrap-colorpicker.min.css', + 'css/lib/viewer/viewer.min.css' + ], + 'js': { + 'externs': [ + // Studio + 'javascript/externs/bootbox/bootbox.min.js', + 'javascript/externs/codemirror/codemirror.min.js', + 'javascript/externs/codemirror/htmlmixed.js', + 'javascript/externs/codemirror/css.js', + 'javascript/externs/codemirror/javascript.js', + 'javascript/externs/codemirror/clike.js', + 'javascript/externs/codemirror/php.js', + 'javascript/externs/codemirror/xml.js', + 'javascript/externs/codemirror/sql.js', + 'javascript/externs/codemirror/map.js', + 'javascript/externs/codemirror/show-hint.js', + 'javascript/externs/codemirror/addon/fold/foldcode.js', + 'javascript/externs/codemirror/addon/fold/foldgutter.js', + 'javascript/externs/codemirror/addon/fold/brace-fold.js', + 'javascript/externs/codemirror/addon/fold/xml-fold.js', + 'javascript/externs/angular/modules/ui-codemirror/ui-codemirror.min.js', + 'javascript/externs/tinymce/tinymce.min.js', + 'javascript/externs/angular/modules/ui-tinymce/tinymce.js', + 'javascript/externs/jquery/plugins/bootstrap-treeview/bootstrap-treeview.js', + 'javascript/externs/jquery/plugins/bootstrap-tagsinput/bootstrap-tagsinput.min.js', + 'javascript/externs/scripts_cryptage.js', + 'javascript/externs/moment/moment.min.js', + 'javascript/externs/moment/min/moment-with-locales.min.js', + 'javascript/externs/jquery/plugins/notify/notify.js', + 'javascript/externs/jquery/plugins/bootstrap-colorpicker/bootstrap-colorpicker.min.js', + 'javascript/externs/jquery/plugins/bootstrap-confirmation/bootstrap-confirmation.min.js', + 'javascript/externs/jquery/plugins/bootstrap-datetimepicker/bootstrap-datetimepicker.min.js', + 'javascript/externs/viewer/viewer.min.js' + ] + }, + 'vitisModuleDependencies': ['ui.codemirror', 'ui.tinymce', 'ui.grid.draggable-rows'] +}; \ No newline at end of file diff --git a/conf/requires/requiresApp.js b/conf/requires/requiresApp.js new file mode 100755 index 00000000..3417eb6f --- /dev/null +++ b/conf/requires/requiresApp.js @@ -0,0 +1,11 @@ +/* global goog */ + +/** + * Ce fichier permet de charger les fichiers de l'applicaiton + * de façon non compilée + * @author: Armand Bahi + */ + +goog.provide('vitis.application.requires'); +//goog.require('vmap.script_module'); +goog.require('extraction.script_module'); \ No newline at end of file diff --git a/install.bat b/install.bat new file mode 100644 index 00000000..d3123bf3 --- /dev/null +++ b/install.bat @@ -0,0 +1,18 @@ +@echo off +title Install Vitis App +echo Install Vitis App + +cd utils +call init_tree.bat +call copy_hooks.bat + +cd ../client/conf +call npm install grunt --save +call npm install grunt-cli +call npm install grunt-closure-tools --save +call npm install google-closure-compiler@20160911.0.0 --save +call npm install google-closure-library@20160911.0.0 --save +call grunt + +cd .. +pause diff --git a/install.sh b/install.sh new file mode 100755 index 00000000..c67e3975 --- /dev/null +++ b/install.sh @@ -0,0 +1,25 @@ +#!/bin/bash +# +# +# Script d'initialisation d'un dépot vMap versionné sous git +# Initislise l'ensemble des dépendances sous forme de subtrees +# Crée des symlinks pour re-créer l'arborescence de l'application +# +# + +if [ `whoami` == "root" ]; then + echo "Please, do not run this script as sudo" +else + cd utils/ + ./init_symlinks.sh + ./pull_subtrees.sh + ./copy_hooks.sh + + cd ../conf + npm install grunt --save + npm install grunt-cli + npm install grunt-closure-tools --save + npm install google-closure-compiler@20160911.0.0 --save + npm install google-closure-library@20160911.0.0 --save + grunt -dev +fi diff --git a/pull_subtrees.sh b/pull_subtrees.sh new file mode 100755 index 00000000..d9bc20cf --- /dev/null +++ b/pull_subtrees.sh @@ -0,0 +1,13 @@ +#!/bin/bash +# +# +# Récupère les modifications des modules sur l'application +# +# + +if [ `whoami` == "root" ]; then + echo "Please, do not run this script as sudo" +else + cd utils/ + ./pull_subtrees.sh +fi diff --git a/push_subtrees.sh b/push_subtrees.sh new file mode 100644 index 00000000..09891131 --- /dev/null +++ b/push_subtrees.sh @@ -0,0 +1,13 @@ +#!/bin/bash +# +# +# Envoie les modifications de l'application sur les modules +# +# + +if [ `whoami` == "root" ]; then + echo "Please, do not run this script as sudo" +else + cd utils/ + ./push_subtrees.sh +fi diff --git a/src/closure/README.md b/src/closure/README.md new file mode 100644 index 00000000..d28619bf --- /dev/null +++ b/src/closure/README.md @@ -0,0 +1 @@ +Google closure exceptions \ No newline at end of file diff --git a/src/closure/conf/depswriter/closurebuilder.py b/src/closure/conf/depswriter/closurebuilder.py new file mode 100755 index 00000000..7be7661f --- /dev/null +++ b/src/closure/conf/depswriter/closurebuilder.py @@ -0,0 +1,293 @@ +#!/usr/bin/env python +# +# Copyright 2009 The Closure Library Authors. All Rights Reserved. +# +# 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. +"""Utility for Closure Library dependency calculation. + +ClosureBuilder scans source files to build dependency info. From the +dependencies, the script can produce a manifest in dependency order, +a concatenated script, or compiled output from the Closure Compiler. + +Paths to files can be expressed as individual arguments to the tool (intended +for use with find and xargs). As a convenience, --root can be used to specify +all JS files below a directory. + +usage: %prog [options] [file1.js file2.js ...] +""" + +__author__ = 'nnaze@google.com (Nathan Naze)' + + +import io +import logging +import optparse +import os +import sys + +import depstree +import jscompiler +import source +import treescan + + +def _GetOptionsParser(): + """Get the options parser.""" + + parser = optparse.OptionParser(__doc__) + parser.add_option('-i', + '--input', + dest='inputs', + action='append', + default=[], + help='One or more input files to calculate dependencies ' + 'for. The namespaces in this file will be combined with ' + 'those given with the -n flag to form the set of ' + 'namespaces to find dependencies for.') + parser.add_option('-n', + '--namespace', + dest='namespaces', + action='append', + default=[], + help='One or more namespaces to calculate dependencies ' + 'for. These namespaces will be combined with those given ' + 'with the -i flag to form the set of namespaces to find ' + 'dependencies for. A Closure namespace is a ' + 'dot-delimited path expression declared with a call to ' + 'goog.provide() (e.g. "goog.array" or "foo.bar").') + parser.add_option('--root', + dest='roots', + action='append', + default=[], + help='The paths that should be traversed to build the ' + 'dependencies.') + parser.add_option('-o', + '--output_mode', + dest='output_mode', + type='choice', + action='store', + choices=['list', 'script', 'compiled'], + default='list', + help='The type of output to generate from this script. ' + 'Options are "list" for a list of filenames, "script" ' + 'for a single script containing the contents of all the ' + 'files, or "compiled" to produce compiled output with ' + 'the Closure Compiler. Default is "list".') + parser.add_option('-c', + '--compiler_jar', + dest='compiler_jar', + action='store', + help='The location of the Closure compiler .jar file.') + parser.add_option('-f', + '--compiler_flags', + dest='compiler_flags', + default=[], + action='append', + help='Additional flags to pass to the Closure compiler. ' + 'To pass multiple flags, --compiler_flags has to be ' + 'specified multiple times.') + parser.add_option('-j', + '--jvm_flags', + dest='jvm_flags', + default=[], + action='append', + help='Additional flags to pass to the JVM compiler. ' + 'To pass multiple flags, --jvm_flags has to be ' + 'specified multiple times.') + parser.add_option('--output_file', + dest='output_file', + action='store', + help=('If specified, write output to this path instead of ' + 'writing to standard output.')) + + return parser + + +def _GetInputByPath(path, sources): + """Get the source identified by a path. + + Args: + path: str, A path to a file that identifies a source. + sources: An iterable collection of source objects. + + Returns: + The source from sources identified by path, if found. Converts to + real paths for comparison. + """ + for js_source in sources: + # Convert both to real paths for comparison. + if os.path.realpath(path) == os.path.realpath(js_source.GetPath()): + return js_source + + +def _GetClosureBaseFile(sources): + """Given a set of sources, returns the one base.js file. + + Note that if zero or two or more base.js files are found, an error message + will be written and the program will be exited. + + Args: + sources: An iterable of _PathSource objects. + + Returns: + The _PathSource representing the base Closure file. + """ + base_files = [ + js_source for js_source in sources if _IsClosureBaseFile(js_source) + ] + + if not base_files: + logging.error('No Closure base.js file found.') + sys.exit(1) + if len(base_files) > 1: + logging.error('More than one Closure base.js files found at these paths:') + for base_file in base_files: + logging.error(base_file.GetPath()) + sys.exit(1) + return base_files[0] + + +def _IsClosureBaseFile(js_source): + """Returns true if the given _PathSource is the Closure base.js source.""" + return (os.path.basename(js_source.GetPath()) == 'base.js' and + js_source.provides == set(['goog'])) + + +class _PathSource(source.Source): + """Source file subclass that remembers its file path.""" + + def __init__(self, path): + """Initialize a source. + + Args: + path: str, Path to a JavaScript file. The source string will be read + from this file. + """ + super(_PathSource, self).__init__(source.GetFileContents(path)) + + self._path = path + + def __str__(self): + return 'PathSource %s' % self._path + + def GetPath(self): + """Returns the path.""" + return self._path + + +def _WrapGoogModuleSource(src): + return ('goog.loadModule(function(exports) {{' + '"use strict";' + '{0}' + '\n' # terminate any trailing single line comment. + ';return exports' + '}});\n').format(src) + + +def main(): + logging.basicConfig(format=(sys.argv[0] + ': %(message)s'), + level=logging.INFO) + options, args = _GetOptionsParser().parse_args() + + # Make our output pipe. + if options.output_file: + out = io.open(options.output_file, 'wb') + else: + version = sys.version_info[:2] + if version >= (3, 0): + # Write bytes to stdout + out = sys.stdout.buffer + else: + out = sys.stdout + + sources = set() + + logging.info('Scanning paths...') + for path in options.roots: + for js_path in treescan.ScanTreeForJsFiles(path): + sources.add(_PathSource(js_path)) + + # Add scripts specified on the command line. + for js_path in args: + sources.add(_PathSource(js_path)) + + logging.info('%s sources scanned.', len(sources)) + + # Though deps output doesn't need to query the tree, we still build it + # to validate dependencies. + logging.info('Building dependency tree..') + tree = depstree.DepsTree(sources) + + input_namespaces = set() + inputs = options.inputs or [] + for input_path in inputs: + js_input = _GetInputByPath(input_path, sources) + if not js_input: + logging.error('No source matched input %s', input_path) + sys.exit(1) + input_namespaces.update(js_input.provides) + + input_namespaces.update(options.namespaces) + + if not input_namespaces: + logging.error('No namespaces found. At least one namespace must be ' + 'specified with the --namespace or --input flags.') + sys.exit(2) + + # The Closure Library base file must go first. + base = _GetClosureBaseFile(sources) + deps = [base] + tree.GetDependencies(input_namespaces) + + output_mode = options.output_mode + if output_mode == 'list': + out.writelines([js_source.GetPath() + '\n' for js_source in deps]) + elif output_mode == 'script': + for js_source in deps: + src = js_source.GetSource() + if js_source.is_goog_module: + src = _WrapGoogModuleSource(src) + out.write(src.encode('utf-8') + b'\n') + elif output_mode == 'compiled': + logging.warning("""\ +Closure Compiler now natively understands and orders Closure dependencies and +is prefererred over using this script for performing JavaScript compilation. + +Please migrate your codebase. + +See: +https://github.com/google/closure-compiler/wiki/Managing-Dependencies +""") + + # Make sure a .jar is specified. + if not options.compiler_jar: + logging.error('--compiler_jar flag must be specified if --output is ' + '"compiled"') + sys.exit(2) + + # Will throw an error if the compilation fails. + compiled_source = jscompiler.Compile(options.compiler_jar, + [js_source.GetPath() + for js_source in deps], + jvm_flags=options.jvm_flags, + compiler_flags=options.compiler_flags) + + logging.info('JavaScript compilation succeeded.') + out.write(compiled_source.encode('utf-8')) + + else: + logging.error('Invalid value for --output flag.') + sys.exit(2) + + +if __name__ == '__main__': + main() diff --git a/src/closure/conf/depswriter/depstree.py b/src/closure/conf/depswriter/depstree.py new file mode 100755 index 00000000..f288dd3a --- /dev/null +++ b/src/closure/conf/depswriter/depstree.py @@ -0,0 +1,189 @@ +# Copyright 2009 The Closure Library Authors. All Rights Reserved. +# +# 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. + + +"""Class to represent a full Closure Library dependency tree. + +Offers a queryable tree of dependencies of a given set of sources. The tree +will also do logical validation to prevent duplicate provides and circular +dependencies. +""" + +__author__ = 'nnaze@google.com (Nathan Naze)' + + +class DepsTree(object): + """Represents the set of dependencies between source files.""" + + def __init__(self, sources): + """Initializes the tree with a set of sources. + + Args: + sources: A set of JavaScript sources. + + Raises: + MultipleProvideError: A namespace is provided by muplitple sources. + NamespaceNotFoundError: A namespace is required but never provided. + """ + + self._sources = sources + self._provides_map = dict() + + # Ensure nothing was provided twice. + for source in sources: + for provide in source.provides: + if provide in self._provides_map: + raise MultipleProvideError( + provide, [self._provides_map[provide], source]) + + self._provides_map[provide] = source + + # Check that all required namespaces are provided. + for source in sources: + for require in source.requires: + if require not in self._provides_map: + raise NamespaceNotFoundError(require, source) + + def GetDependencies(self, required_namespaces): + """Get source dependencies, in order, for the given namespaces. + + Args: + required_namespaces: A string (for one) or list (for one or more) of + namespaces. + + Returns: + A list of source objects that provide those namespaces and all + requirements, in dependency order. + + Raises: + NamespaceNotFoundError: A namespace is requested but doesn't exist. + CircularDependencyError: A cycle is detected in the dependency tree. + """ + if isinstance(required_namespaces, str): + required_namespaces = [required_namespaces] + + deps_sources = [] + + for namespace in required_namespaces: + for source in DepsTree._ResolveDependencies( + namespace, [], self._provides_map, []): + if source not in deps_sources: + deps_sources.append(source) + + return deps_sources + + @staticmethod + def _ResolveDependencies(required_namespace, deps_list, provides_map, + traversal_path): + """Resolve dependencies for Closure source files. + + Follows the dependency tree down and builds a list of sources in dependency + order. This function will recursively call itself to fill all dependencies + below the requested namespaces, and then append its sources at the end of + the list. + + Args: + required_namespace: String of required namespace. + deps_list: List of sources in dependency order. This function will append + the required source once all of its dependencies are satisfied. + provides_map: Map from namespace to source that provides it. + traversal_path: List of namespaces of our path from the root down the + dependency/recursion tree. Used to identify cyclical dependencies. + This is a list used as a stack -- when the function is entered, the + current namespace is pushed and popped right before returning. + Each recursive call will check that the current namespace does not + appear in the list, throwing a CircularDependencyError if it does. + + Returns: + The given deps_list object filled with sources in dependency order. + + Raises: + NamespaceNotFoundError: A namespace is requested but doesn't exist. + CircularDependencyError: A cycle is detected in the dependency tree. + """ + + source = provides_map.get(required_namespace) + if not source: + raise NamespaceNotFoundError(required_namespace) + + if required_namespace in traversal_path: + traversal_path.append(required_namespace) # do this *after* the test + + # This must be a cycle. + raise CircularDependencyError(traversal_path) + + # If we don't have the source yet, we'll have to visit this namespace and + # add the required dependencies to deps_list. + if source not in deps_list: + traversal_path.append(required_namespace) + + for require in source.requires: + + # Append all other dependencies before we append our own. + DepsTree._ResolveDependencies(require, deps_list, provides_map, + traversal_path) + deps_list.append(source) + + traversal_path.pop() + + return deps_list + + +class BaseDepsTreeError(Exception): + """Base DepsTree error.""" + + def __init__(self): + Exception.__init__(self) + + +class CircularDependencyError(BaseDepsTreeError): + """Raised when a dependency cycle is encountered.""" + + def __init__(self, dependency_list): + BaseDepsTreeError.__init__(self) + self._dependency_list = dependency_list + + def __str__(self): + return ('Encountered circular dependency:\n%s\n' % + '\n'.join(self._dependency_list)) + + +class MultipleProvideError(BaseDepsTreeError): + """Raised when a namespace is provided more than once.""" + + def __init__(self, namespace, sources): + BaseDepsTreeError.__init__(self) + self._namespace = namespace + self._sources = sources + + def __str__(self): + source_strs = map(str, self._sources) + + return ('Namespace "%s" provided more than once in sources:\n%s\n' % + (self._namespace, '\n'.join(source_strs))) + + +class NamespaceNotFoundError(BaseDepsTreeError): + """Raised when a namespace is requested but not provided.""" + + def __init__(self, namespace, source=None): + BaseDepsTreeError.__init__(self) + self._namespace = namespace + self._source = source + + def __str__(self): + msg = 'Namespace "%s" never provided.' % self._namespace + if self._source: + msg += ' Required in %s' % self._source + return msg diff --git a/src/closure/conf/depswriter/depstree_test.py b/src/closure/conf/depswriter/depstree_test.py new file mode 100755 index 00000000..eb4c9995 --- /dev/null +++ b/src/closure/conf/depswriter/depstree_test.py @@ -0,0 +1,127 @@ +#!/usr/bin/env python +# +# Copyright 2009 The Closure Library Authors. All Rights Reserved. +# +# 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. + + +"""Unit test for depstree.""" + +__author__ = 'nnaze@google.com (Nathan Naze)' + + +import unittest + +import depstree + + +def _GetProvides(sources): + """Get all namespaces provided by a collection of sources.""" + + provides = set() + for source in sources: + provides.update(source.provides) + return provides + + +class MockSource(object): + """Mock Source file.""" + + def __init__(self, provides, requires): + self.provides = set(provides) + self.requires = set(requires) + + def __repr__(self): + return 'MockSource %s' % self.provides + + +class DepsTreeTestCase(unittest.TestCase): + """Unit test for DepsTree. Tests several common situations and errors.""" + + def AssertValidDependencies(self, deps_list): + """Validates a dependency list. + + Asserts that a dependency list is valid: For every source in the list, + ensure that every require is provided by a source earlier in the list. + + Args: + deps_list: A list of sources that should be in dependency order. + """ + + for i in range(len(deps_list)): + source = deps_list[i] + previous_provides = _GetProvides(deps_list[:i]) + for require in source.requires: + self.assertTrue( + require in previous_provides, + 'Namespace "%s" not provided before required by %s' % ( + require, source)) + + def testSimpleDepsTree(self): + a = MockSource(['A'], ['B', 'C']) + b = MockSource(['B'], []) + c = MockSource(['C'], ['D']) + d = MockSource(['D'], ['E']) + e = MockSource(['E'], []) + + tree = depstree.DepsTree([a, b, c, d, e]) + + self.AssertValidDependencies(tree.GetDependencies('A')) + self.AssertValidDependencies(tree.GetDependencies('B')) + self.AssertValidDependencies(tree.GetDependencies('C')) + self.AssertValidDependencies(tree.GetDependencies('D')) + self.AssertValidDependencies(tree.GetDependencies('E')) + + def testCircularDependency(self): + # Circular deps + a = MockSource(['A'], ['B']) + b = MockSource(['B'], ['C']) + c = MockSource(['C'], ['A']) + + tree = depstree.DepsTree([a, b, c]) + + self.assertRaises(depstree.CircularDependencyError, + tree.GetDependencies, 'A') + + def testRequiresUndefinedNamespace(self): + a = MockSource(['A'], ['B']) + b = MockSource(['B'], ['C']) + c = MockSource(['C'], ['D']) # But there is no D. + + def MakeDepsTree(): + return depstree.DepsTree([a, b, c]) + + self.assertRaises(depstree.NamespaceNotFoundError, MakeDepsTree) + + def testDepsForMissingNamespace(self): + a = MockSource(['A'], ['B']) + b = MockSource(['B'], []) + + tree = depstree.DepsTree([a, b]) + + # There is no C. + self.assertRaises(depstree.NamespaceNotFoundError, + tree.GetDependencies, 'C') + + def testMultipleRequires(self): + a = MockSource(['A'], ['B']) + b = MockSource(['B'], ['C']) + c = MockSource(['C'], []) + d = MockSource(['D'], ['B']) + + tree = depstree.DepsTree([a, b, c, d]) + self.AssertValidDependencies(tree.GetDependencies(['D', 'A'])) + + +if __name__ == '__main__': + unittest.main() diff --git a/src/closure/conf/depswriter/depswriter.py b/src/closure/conf/depswriter/depswriter.py new file mode 100755 index 00000000..a78e0f83 --- /dev/null +++ b/src/closure/conf/depswriter/depswriter.py @@ -0,0 +1,212 @@ +#!/usr/bin/env python +# +# Copyright 2009 The Closure Library Authors. All Rights Reserved. +# +# 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. + + +"""Generates out a Closure deps.js file given a list of JavaScript sources. + +Paths can be specified as arguments or (more commonly) specifying trees +with the flags (call with --help for descriptions). + +Usage: depswriter.py [path/to/js1.js [path/to/js2.js] ...] +""" + +import json +import logging +import optparse +import os +import posixpath +import shlex +import sys + +import source +import treescan + + +__author__ = 'nnaze@google.com (Nathan Naze)' + + +def MakeDepsFile(source_map): + """Make a generated deps file. + + Args: + source_map: A dict map of the source path to source.Source object. + + Returns: + str, A generated deps file source. + """ + + # Write in path alphabetical order + paths = sorted(source_map.keys()) + + lines = [] + + for path in paths: + js_source = source_map[path] + + # We don't need to add entries that don't provide anything. + if js_source.provides: + lines.append(_GetDepsLine(path, js_source)) + + return ''.join(lines) + + +def _GetDepsLine(path, js_source): + """Get a deps.js file string for a source.""" + + provides = _ToJsSrc(sorted(js_source.provides)) + requires = _ToJsSrc(sorted(js_source.requires)) + module = 'true' if js_source.is_goog_module else 'false' + + return 'goog.addDependency(\'%s?_\' + sessionStorage[\'build\'], %s, %s, %s);\n' % ( + path, provides, requires, module) + + +def _ToJsSrc(arr): + """Convert a python arr to a js source string.""" + + return json.dumps(arr).replace('"', '\'') + + +def _GetOptionsParser(): + """Get the options parser.""" + + parser = optparse.OptionParser(__doc__) + + parser.add_option('--output_file', + dest='output_file', + action='store', + help=('If specified, write output to this path instead of ' + 'writing to standard output.')) + parser.add_option('--root', + dest='roots', + default=[], + action='append', + help='A root directory to scan for JS source files. ' + 'Paths of JS files in generated deps file will be ' + 'relative to this path. This flag may be specified ' + 'multiple times.') + parser.add_option('--root_with_prefix', + dest='roots_with_prefix', + default=[], + action='append', + help='A root directory to scan for JS source files, plus ' + 'a prefix (if either contains a space, surround with ' + 'quotes). Paths in generated deps file will be relative ' + 'to the root, but preceded by the prefix. This flag ' + 'may be specified multiple times.') + parser.add_option('--path_with_depspath', + dest='paths_with_depspath', + default=[], + action='append', + help='A path to a source file and an alternate path to ' + 'the file in the generated deps file (if either contains ' + 'a space, surround with whitespace). This flag may be ' + 'specified multiple times.') + return parser + + +def _NormalizePathSeparators(path): + """Replaces OS-specific path separators with POSIX-style slashes. + + Args: + path: str, A file path. + + Returns: + str, The path with any OS-specific path separators (such as backslash on + Windows) replaced with URL-compatible forward slashes. A no-op on systems + that use POSIX paths. + """ + return path.replace(os.sep, posixpath.sep) + + +def _GetRelativePathToSourceDict(root, prefix=''): + """Scans a top root directory for .js sources. + + Args: + root: str, Root directory. + prefix: str, Prefix for returned paths. + + Returns: + dict, A map of relative paths (with prefix, if given), to source.Source + objects. + """ + # Remember and restore the cwd when we're done. We work from the root so + # that paths are relative from the root. + start_wd = os.getcwd() + os.chdir(root) + + path_to_source = {} + for path in treescan.ScanTreeForJsFiles('.'): + prefixed_path = _NormalizePathSeparators(os.path.join(prefix, path)) + path_to_source[prefixed_path] = source.Source(source.GetFileContents(path)) + + os.chdir(start_wd) + + return path_to_source + + +def _GetPair(s): + """Return a string as a shell-parsed tuple. Two values expected.""" + try: + # shlex uses '\' as an escape character, so they must be escaped. + s = s.replace('\\', '\\\\') + first, second = shlex.split(s) + return (first, second) + except: + raise Exception('Unable to parse input line as a pair: %s' % s) + + +def main(): + """CLI frontend to MakeDepsFile.""" + logging.basicConfig(format=(sys.argv[0] + ': %(message)s'), + level=logging.INFO) + options, args = _GetOptionsParser().parse_args() + + path_to_source = {} + + # Roots without prefixes + for root in options.roots: + path_to_source.update(_GetRelativePathToSourceDict(root)) + + # Roots with prefixes + for root_and_prefix in options.roots_with_prefix: + root, prefix = _GetPair(root_and_prefix) + path_to_source.update(_GetRelativePathToSourceDict(root, prefix=prefix)) + + # Source paths + for path in args: + path_to_source[path] = source.Source(source.GetFileContents(path)) + + # Source paths with alternate deps paths + for path_with_depspath in options.paths_with_depspath: + srcpath, depspath = _GetPair(path_with_depspath) + path_to_source[depspath] = source.Source(source.GetFileContents(srcpath)) + + # Make our output pipe. + if options.output_file: + out = open(options.output_file, 'w') + else: + out = sys.stdout + + out.write(('// This file was autogenerated by %s.\n' % + os.path.basename(__file__))) + out.write('// Please do not edit.\n') + + out.write(MakeDepsFile(path_to_source)) + + +if __name__ == '__main__': + main() diff --git a/src/closure/conf/depswriter/depswriter_test.py b/src/closure/conf/depswriter/depswriter_test.py new file mode 100755 index 00000000..8d9bf3b2 --- /dev/null +++ b/src/closure/conf/depswriter/depswriter_test.py @@ -0,0 +1,62 @@ +#!/usr/bin/env python +# +# Copyright 2010 The Closure Library Authors. All Rights Reserved. +# +# 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. + + +"""Unit test for depswriter.""" + +__author__ = 'johnlenz@google.com (John Lenz)' + + +import unittest + +import depswriter + + +class MockSource(object): + """Mock Source file.""" + + def __init__(self, provides, requires): + self.provides = set(provides) + self.requires = set(requires) + self.is_goog_module = False + + def __repr__(self): + return 'MockSource %s' % self.provides + + +class DepsWriterTestCase(unittest.TestCase): + """Unit test for depswriter.""" + + def testMakeDepsFile(self): + sources = {} + sources['test.js'] = MockSource(['A'], ['B', 'C']) + deps = depswriter.MakeDepsFile(sources) + + self.assertEqual( + 'goog.addDependency(\'test.js\', [\'A\'], [\'B\', \'C\'], false);\n', + deps) + + def testMakeDepsFileUnicode(self): + sources = {} + sources['test.js'] = MockSource([u'A'], [u'B', u'C']) + deps = depswriter.MakeDepsFile(sources) + + self.assertEqual( + 'goog.addDependency(\'test.js\', [\'A\'], [\'B\', \'C\'], false);\n', + deps) + +if __name__ == '__main__': + unittest.main() diff --git a/src/closure/conf/depswriter/jscompiler.py b/src/closure/conf/depswriter/jscompiler.py new file mode 100755 index 00000000..76b02537 --- /dev/null +++ b/src/closure/conf/depswriter/jscompiler.py @@ -0,0 +1,162 @@ +# Copyright 2010 The Closure Library Authors. All Rights Reserved. +# +# 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. +"""Utility to use the Closure Compiler CLI from Python.""" + +import logging +import os +import re +import subprocess +import tempfile + +# Pulls just the major and minor version numbers from the first line of +# 'java -version'. Versions are in the format of [0-9]+\.[0-9]+\..* See: +# http://www.oracle.com/technetwork/java/javase/versioning-naming-139433.html +_VERSION_REGEX = re.compile(r'"([0-9]+)\.([0-9]+)') + + +class JsCompilerError(Exception): + """Raised if there's an error in calling the compiler.""" + pass + + +def _GetJavaVersionString(): + """Get the version string from the Java VM.""" + return subprocess.check_output(['java', '-version'], stderr=subprocess.STDOUT) + + +def _ParseJavaVersion(version_string): + """Returns a 2-tuple for the current version of Java installed. + + Args: + version_string: String of the Java version (e.g. '1.7.2-ea'). + + Returns: + The major and minor versions, as a 2-tuple (e.g. (1, 7)). + """ + match = _VERSION_REGEX.search(version_string) + if match: + version = tuple(int(x, 10) for x in match.groups()) + assert len(version) == 2 + return version + + +def _JavaSupports32BitMode(): + """Determines whether the JVM supports 32-bit mode on the platform.""" + # Suppresses process output to stderr and stdout from showing up in the + # console as we're only trying to determine 32-bit JVM support. + supported = False + try: + devnull = open(os.devnull, 'wb') + return subprocess.call(['java', '-d32', '-version'], + stdout=devnull, + stderr=devnull) == 0 + except IOError: + pass + else: + devnull.close() + return supported + + +def _GetJsCompilerArgs(compiler_jar_path, java_version, jvm_flags): + """Assembles arguments for call to JsCompiler.""" + + if java_version < (1, 7): + raise JsCompilerError('Closure Compiler requires Java 1.7 or higher. ' + 'Please visit http://www.java.com/getjava') + + args = ['java'] + + # Add JVM flags we believe will produce the best performance. See + # https://groups.google.com/forum/#!topic/closure-library-discuss/7w_O9-vzlj4 + + # Attempt 32-bit mode if available (Java 7 on Mac OS X does not support 32-bit + # mode, for example). + if _JavaSupports32BitMode(): + args += ['-d32'] + + # Prefer the "client" VM. + args += ['-client'] + + # Add JVM flags, if any + if jvm_flags: + args += jvm_flags + + # Add the application JAR. + args += ['-jar', compiler_jar_path] + + return args + + +def _GetFlagFile(source_paths, compiler_flags): + """Writes given source paths and compiler flags to a --flagfile. + + The given source_paths will be written as '--js' flags and the compiler_flags + are written as-is. + + Args: + source_paths: List of string js source paths. + compiler_flags: List of string compiler flags. + + Returns: + The file to which the flags were written. + """ + args = [] + for path in source_paths: + args += ['--js', path] + + # Add compiler flags, if any. + if compiler_flags: + args += compiler_flags + + flags_file = tempfile.NamedTemporaryFile(delete=False) + flags_file.write(' '.join(args)) + flags_file.close() + + return flags_file + + +def Compile(compiler_jar_path, + source_paths, + jvm_flags=None, + compiler_flags=None): + """Prepares command-line call to Closure Compiler. + + Args: + compiler_jar_path: Path to the Closure compiler .jar file. + source_paths: Source paths to build, in order. + jvm_flags: A list of additional flags to pass on to JVM. + compiler_flags: A list of additional flags to pass on to Closure Compiler. + + Returns: + The compiled source, as a string, or None if compilation failed. + """ + + java_version = _ParseJavaVersion(str(_GetJavaVersionString())) + + args = _GetJsCompilerArgs(compiler_jar_path, java_version, jvm_flags) + + # Write source path arguments to flag file for avoiding "The filename or + # extension is too long" error in big projects. See + # https://github.com/google/closure-library/pull/678 + flags_file = _GetFlagFile(source_paths, compiler_flags) + args += ['--flagfile', flags_file.name] + + logging.info('Compiling with the following command: %s', ' '.join(args)) + + try: + return subprocess.check_output(args) + except subprocess.CalledProcessError: + raise JsCompilerError('JavaScript compilation failed.') + finally: + os.remove(flags_file.name) diff --git a/src/closure/conf/depswriter/jscompiler_test.py b/src/closure/conf/depswriter/jscompiler_test.py new file mode 100755 index 00000000..6f63e414 --- /dev/null +++ b/src/closure/conf/depswriter/jscompiler_test.py @@ -0,0 +1,114 @@ +#!/usr/bin/env python +# +# Copyright 2013 The Closure Library Authors. All Rights Reserved. +# +# 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. +"""Unit test for depstree.""" + +__author__ = 'nnaze@google.com (Nathan Naze)' + +import os +import unittest + +import jscompiler + + +class JsCompilerTestCase(unittest.TestCase): + """Unit tests for jscompiler module.""" + + def testGetFlagFile(self): + flags_file = jscompiler._GetFlagFile( + ['path/to/src1.js', 'path/to/src2.js'], ['--test_compiler_flag']) + + def file_get_contents(filename): + with open(filename) as f: + content = f.read() + f.close() + return content + + flags_file_content = file_get_contents(flags_file.name) + os.remove(flags_file.name) + + self.assertEqual( + '--js path/to/src1.js --js path/to/src2.js --test_compiler_flag', + flags_file_content) + + def testGetJsCompilerArgs(self): + + original_check = jscompiler._JavaSupports32BitMode + jscompiler._JavaSupports32BitMode = lambda: False + args = jscompiler._GetJsCompilerArgs('path/to/jscompiler.jar', (1, 7), + ['--test_jvm_flag']) + + self.assertEqual( + ['java', '-client', '--test_jvm_flag', '-jar', + 'path/to/jscompiler.jar'], args) + + def CheckJava15RaisesError(): + jscompiler._GetJsCompilerArgs('path/to/jscompiler.jar', (1, 5), + ['--test_jvm_flag']) + + self.assertRaises(jscompiler.JsCompilerError, CheckJava15RaisesError) + jscompiler._JavaSupports32BitMode = original_check + + def testGetJsCompilerArgs32BitJava(self): + + original_check = jscompiler._JavaSupports32BitMode + + # Should include the -d32 flag only if 32-bit Java is supported by the + # system. + jscompiler._JavaSupports32BitMode = lambda: True + args = jscompiler._GetJsCompilerArgs('path/to/jscompiler.jar', (1, 7), + ['--test_jvm_flag']) + + self.assertEqual( + ['java', '-d32', '-client', '--test_jvm_flag', '-jar', + 'path/to/jscompiler.jar'], args) + + # Should exclude the -d32 flag if 32-bit Java is not supported by the + # system. + jscompiler._JavaSupports32BitMode = lambda: False + args = jscompiler._GetJsCompilerArgs('path/to/jscompiler.jar', (1, 7), + ['--test_jvm_flag']) + + self.assertEqual( + ['java', '-client', '--test_jvm_flag', '-jar', + 'path/to/jscompiler.jar'], args) + + jscompiler._JavaSupports32BitMode = original_check + + def testGetJavaVersion(self): + + def assertVersion(expected, version_string): + self.assertEquals(expected, jscompiler._ParseJavaVersion(version_string)) + + assertVersion((1, 7), _TEST_JAVA_VERSION_STRING) + assertVersion((1, 6), _TEST_JAVA_NESTED_VERSION_STRING) + assertVersion((1, 4), 'java version "1.4.0_03-ea"') + + +_TEST_JAVA_VERSION_STRING = """\ +openjdk version "1.7.0-google-v5" +OpenJDK Runtime Environment (build 1.7.0-google-v5-64327-39803485) +OpenJDK Server VM (build 22.0-b10, mixed mode) +""" + +_TEST_JAVA_NESTED_VERSION_STRING = """\ +Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8 +java version "1.6.0_35" +Java(TM) SE Runtime Environment (build 1.6.0_35-b10-428-11M3811) +Java HotSpot(TM) Client VM (build 20.10-b01-428, mixed mode) +""" + +if __name__ == '__main__': + unittest.main() diff --git a/src/closure/conf/depswriter/source.py b/src/closure/conf/depswriter/source.py new file mode 100755 index 00000000..0610e6b6 --- /dev/null +++ b/src/closure/conf/depswriter/source.py @@ -0,0 +1,132 @@ +# Copyright 2009 The Closure Library Authors. All Rights Reserved. +# +# 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. + + +"""Scans a source JS file for its provided and required namespaces. + +Simple class to scan a JavaScript file and express its dependencies. +""" + +__author__ = 'nnaze@google.com' + + +import codecs +import re + +_BASE_REGEX_STRING = r'^\s*goog\.%s\(\s*[\'"](.+)[\'"]\s*\)' +_MODULE_REGEX = re.compile(_BASE_REGEX_STRING % 'module') +_PROVIDE_REGEX = re.compile(_BASE_REGEX_STRING % 'provide') + +_REQUIRE_REGEX_STRING = (r'^\s*(?:(?:var|let|const)\s+[a-zA-Z_$][a-zA-Z0-9$_]*' + r'\s*=\s*)?goog\.require\(\s*[\'"](.+)[\'"]\s*\)') +_REQUIRES_REGEX = re.compile(_REQUIRE_REGEX_STRING) + +class Source(object): + """Scans a JavaScript source for its provided and required namespaces.""" + + # Matches a "/* ... */" comment. + # Note: We can't definitively distinguish a "/*" in a string literal without a + # state machine tokenizer. We'll assume that a line starting with whitespace + # and "/*" is a comment. + _COMMENT_REGEX = re.compile( + r""" + ^\s* # Start of a new line and whitespace + /\* # Opening "/*" + .*? # Non greedy match of any characters (including newlines) + \*/ # Closing "*/""", + re.MULTILINE | re.DOTALL | re.VERBOSE) + + def __init__(self, source): + """Initialize a source. + + Args: + source: str, The JavaScript source. + """ + + self.provides = set() + self.requires = set() + self.is_goog_module = False + + self._source = source + self._ScanSource() + + def GetSource(self): + """Get the source as a string.""" + return self._source + + @classmethod + def _StripComments(cls, source): + return cls._COMMENT_REGEX.sub('', source) + + @classmethod + def _HasProvideGoogFlag(cls, source): + """Determines whether the @provideGoog flag is in a comment.""" + for comment_content in cls._COMMENT_REGEX.findall(source): + if '@provideGoog' in comment_content: + return True + + return False + + def _ScanSource(self): + """Fill in provides and requires by scanning the source.""" + + stripped_source = self._StripComments(self.GetSource()) + + source_lines = stripped_source.splitlines() + for line in source_lines: + match = _PROVIDE_REGEX.match(line) + if match: + self.provides.add(match.group(1)) + match = _MODULE_REGEX.match(line) + if match: + self.provides.add(match.group(1)) + self.is_goog_module = True + match = _REQUIRES_REGEX.match(line) + if match: + self.requires.add(match.group(1)) + + # Closure's base file implicitly provides 'goog'. + # This is indicated with the @provideGoog flag. + if self._HasProvideGoogFlag(self.GetSource()): + + if len(self.provides) or len(self.requires): + raise Exception( + 'Base file should not provide or require namespaces.') + + self.provides.add('goog') + + +def GetFileContents(path): + """Get a file's contents as a string. + + Args: + path: str, Path to file. + + Returns: + str, Contents of file. + + Raises: + IOError: An error occurred opening or reading the file. + + """ + fileobj = None + try: + fileobj = codecs.open(path, encoding='utf-8-sig') + return fileobj.read() + except IOError as error: + raise IOError('An error occurred opening or reading the file: %s. %s' + % (path, error)) + finally: + if fileobj is not None: + fileobj.close() diff --git a/src/closure/conf/depswriter/source_test.py b/src/closure/conf/depswriter/source_test.py new file mode 100755 index 00000000..eb1591b4 --- /dev/null +++ b/src/closure/conf/depswriter/source_test.py @@ -0,0 +1,152 @@ +#!/usr/bin/env python +# +# Copyright 2010 The Closure Library Authors. All Rights Reserved. +# +# 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. + + +"""Unit test for source.""" + +__author__ = 'nnaze@google.com (Nathan Naze)' + + +import unittest + +import source + + +class SourceTestCase(unittest.TestCase): + """Unit test for source. Tests the parser on a known source input.""" + + def testSourceScan(self): + test_source = source.Source(_TEST_SOURCE) + + self.assertEqual(set(['foo', 'foo.test']), + test_source.provides) + self.assertEqual(set(['goog.dom', 'goog.events.EventType']), + test_source.requires) + self.assertFalse(test_source.is_goog_module) + + def testSourceScanBase(self): + test_source = source.Source(_TEST_BASE_SOURCE) + + self.assertEqual(set(['goog']), + test_source.provides) + self.assertEqual(test_source.requires, set()) + self.assertFalse(test_source.is_goog_module) + + def testSourceScanBadBase(self): + + def MakeSource(): + source.Source(_TEST_BAD_BASE_SOURCE) + + self.assertRaises(Exception, MakeSource) + + def testSourceScanGoogModule(self): + test_source = source.Source(_TEST_MODULE_SOURCE) + + self.assertEqual(set(['foo']), + test_source.provides) + self.assertEqual(set(['bar']), + test_source.requires) + self.assertTrue(test_source.is_goog_module) + + def testStripComments(self): + self.assertEquals( + '\nvar foo = function() {}', + source.Source._StripComments(( + '/* This is\n' + ' a comment split\n' + ' over multiple lines\n' + '*/\n' + 'var foo = function() {}'))) + + def testGoogStatementsInComments(self): + test_source = source.Source(_TEST_COMMENT_SOURCE) + + self.assertEqual(set(['foo']), + test_source.provides) + self.assertEqual(set(['goog.events.EventType']), + test_source.requires) + self.assertFalse(test_source.is_goog_module) + + def testHasProvideGoog(self): + self.assertTrue(source.Source._HasProvideGoogFlag(_TEST_BASE_SOURCE)) + self.assertTrue(source.Source._HasProvideGoogFlag(_TEST_BAD_BASE_SOURCE)) + self.assertFalse(source.Source._HasProvideGoogFlag(_TEST_COMMENT_SOURCE)) + + +_TEST_MODULE_SOURCE = """ +goog.module('foo'); +var b = goog.require('bar'); +""" + + +_TEST_SOURCE = """// Fake copyright notice + +/** Very important comment. */ + +goog.provide('foo'); +goog.provide('foo.test'); + +goog.require('goog.dom'); +goog.require('goog.events.EventType'); + +function foo() { + // Set bar to seventeen to increase performance. + this.bar = 17; +} +""" + +_TEST_COMMENT_SOURCE = """// Fake copyright notice + +goog.provide('foo'); + +/* +goog.provide('foo.test'); + */ + +/* +goog.require('goog.dom'); +*/ + +// goog.require('goog.dom'); + +goog.require('goog.events.EventType'); + +function bar() { + this.baz = 55; +} +""" + +_TEST_BASE_SOURCE = """ +/** + * @fileoverview The base file. + * @provideGoog + */ + +var goog = goog || {}; +""" + +_TEST_BAD_BASE_SOURCE = """ +/** + * @fileoverview The base file. + * @provideGoog + */ + +goog.provide('goog'); +""" + + +if __name__ == '__main__': + unittest.main() diff --git a/src/closure/conf/depswriter/treescan.py b/src/closure/conf/depswriter/treescan.py new file mode 100755 index 00000000..6694593a --- /dev/null +++ b/src/closure/conf/depswriter/treescan.py @@ -0,0 +1,78 @@ +#!/usr/bin/env python +# +# Copyright 2010 The Closure Library Authors. All Rights Reserved. +# +# 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. + + +"""Shared utility functions for scanning directory trees.""" + +import os +import re + + +__author__ = 'nnaze@google.com (Nathan Naze)' + + +# Matches a .js file path. +_JS_FILE_REGEX = re.compile(r'^.+\.js$') + + +def ScanTreeForJsFiles(root): + """Scans a directory tree for JavaScript files. + + Args: + root: str, Path to a root directory. + + Returns: + An iterable of paths to JS files, relative to cwd. + """ + return ScanTree(root, path_filter=_JS_FILE_REGEX) + + +def ScanTree(root, path_filter=None, ignore_hidden=True): + """Scans a directory tree for files. + + Args: + root: str, Path to a root directory. + path_filter: A regular expression filter. If set, only paths matching + the path_filter are returned. + ignore_hidden: If True, do not follow or return hidden directories or files + (those starting with a '.' character). + + Yields: + A string path to files, relative to cwd. + """ + + def OnError(os_error): + raise os_error + + for dirpath, dirnames, filenames in os.walk(root, onerror=OnError): + # os.walk allows us to modify dirnames to prevent decent into particular + # directories. Avoid hidden directories. + for dirname in dirnames: + if ignore_hidden and dirname.startswith('.'): + dirnames.remove(dirname) + + for filename in filenames: + + # nothing that starts with '.' + if ignore_hidden and filename.startswith('.'): + continue + + fullpath = os.path.join(dirpath, filename) + + if path_filter and not path_filter.match(fullpath): + continue + + yield os.path.normpath(fullpath) diff --git a/src/closure/conf/externs/angular-1.3.js b/src/closure/conf/externs/angular-1.3.js new file mode 100755 index 00000000..c3795d29 --- /dev/null +++ b/src/closure/conf/externs/angular-1.3.js @@ -0,0 +1,2392 @@ +/* + * Copyright 2012 The Closure Compiler Authors. + * + * 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. + */ + +/** + * @fileoverview Externs for Angular 1. + * + * TODO: Mocks. + * TODO: Remaining Services: + * $compileProvider + * $cookies + * $cookieStore + * $document + * $httpBackend + * $interpolate + * $locale + * $resource + * $rootElement + * $rootScope + * $rootScopeProvider + * + * TODO: Resolve two issues with angular.$http + * 1) angular.$http isn't declared as a + * callable type. It should be declared as a function, and properties + * added following the technique used by $timeout, $parse and + * $interval. + * 2) angular.$http.delete cannot be added as an extern + * as it is a reserved keyword. + * Its use is potentially not supported in IE. + * It may be aliased as 'remove' in a future version. + * + * @see http://angularjs.org/ + * @externs + */ + +/** + * @typedef {(Window|Document|Element|Array.<Element>|string|!angular.JQLite| + * NodeList|{length: number})} + */ +var JQLiteSelector; + +/** + * @type {Object} + * @const + */ +var angular = {}; + +/** + * @param {T} self Specifies the object which this should point to when the + * function is run. + * @param {?function(this:T, ...)} fn A function to partially apply. + * @return {!Function} A partially-applied form of the function bind() was + * invoked as a method of. + * @param {...*} args Additional arguments that are partially applied to the + * function. + * @template T + */ +angular.bind = function(self, fn, args) {}; + +/** @typedef {{strictDi: (boolean|undefined)}} */ +angular.BootstrapOptions; + +/** + * @param {Element|HTMLDocument} element + * @param {Array.<string|Function>=} opt_modules + * @param {angular.BootstrapOptions=} opt_config + * @return {!angular.$injector} + */ +angular.bootstrap = function(element, opt_modules, opt_config) {}; + +/** + * @param {T} source + * @param {(Object|Array)=} opt_dest + * @return {T} + * @template T + */ +angular.copy = function(source, opt_dest) {}; + +/** + * @param {(JQLiteSelector|Object)} element + * @param {(JQLiteSelector|Object)=} opt_context + * @return {!angular.JQLite} + */ +angular.element = function(element, opt_context) {}; + +/** + * @param {*} o1 + * @param {*} o2 + * @return {boolean} + */ +angular.equals = function(o1, o2) {}; + +/** + * @param {Object} dest + * @param {...Object} srcs + */ +angular.extend = function(dest, srcs) {}; + +/** + * @param {Object|Array} obj + * @param {Function} iterator + * @param {Object=} opt_context + * @return {Object|Array} + */ +angular.forEach = function(obj, iterator, opt_context) {}; + +/** + * @param {string|T} json + * @return {Object|Array|Date|T} + * @template T + */ +angular.fromJson = function(json) {}; + +/** + * @param {*} arg + * @return {*} + */ +angular.identity = function(arg) {}; + +/** + * @param {Array.<string|Function>} modules + * @return {!angular.$injector} + */ +angular.injector = function(modules) {}; + +/** + * @param {*} value + * @return {boolean} + */ +angular.isArray = function(value) {}; + +/** + * @param {*} value + * @return {boolean} + */ +angular.isDate = function(value) {}; + +/** + * @param {*} value + * @return {boolean} + */ +angular.isDefined = function(value) {}; + +/** + * @param {*} value + * @return {boolean} + */ +angular.isElement = function(value) {}; + +/** + * @param {*} value + * @return {boolean} + */ +angular.isFunction = function(value) {}; + +/** + * @param {*} value + * @return {boolean} + */ +angular.isNumber = function(value) {}; + +/** + * @param {*} value + * @return {boolean} + */ +angular.isObject = function(value) {}; + +/** + * @param {*} value + * @return {boolean} + */ +angular.isString = function(value) {}; + +/** + * @param {*} value + * @return {boolean} + */ +angular.isUndefined = function(value) {}; + +/** + * @param {string} s + * @return {string} + */ +angular.lowercase = function(s) {}; + +angular.mock = {}; + +/** + * @param {string} name + * @param {Array.<string>=} opt_requires + * @param {(Function|Array.<string|Function>)=} opt_configFn + * @return {!angular.Module} + */ +angular.module = function(name, opt_requires, opt_configFn) {}; + +angular.noop = function() {}; + +/** + * @param {Object|Array|Date|string|number} obj + * @param {boolean=} opt_pretty + * @return {string} + */ +angular.toJson = function(obj, opt_pretty) {}; + +/** + * @param {string} s + * @return {string} + */ +angular.uppercase = function(s) {}; + +/** + * @typedef {{ + * enter: (function(!angular.JQLite, !Function): (!Function|undefined)| + * undefined), + * leave: (function(!angular.JQLite, !Function): (!Function|undefined)| + * undefined), + * move: (function(!angular.JQLite, !Function): (!Function|undefined)| + * undefined), + * addClass: (function(!angular.JQLite, !Function): (!Function|undefined)| + * undefined), + * removeClass: (function(!angular.JQLite, !Function): (!Function|undefined)| + * undefined) + * }} + */ +angular.Animation; + +/** + * @param {!angular.JQLite} element + * @param {!Function} done + * @return {(!Function|undefined)} + */ +angular.Animation.enter = function(element, done) {}; + +/** + * @param {!angular.JQLite} element + * @param {!Function} done + * @return {(!Function|undefined)} + */ +angular.Animation.leave = function(element, done) {}; + +/** + * @param {!angular.JQLite} element + * @param {!Function} done + * @return {(!Function|undefined)} + */ +angular.Animation.move = function(element, done) {}; + +/** + * @param {!angular.JQLite} element + * @param {!Function} done + * @return {(!Function|undefined)} + */ +angular.Animation.addClass = function(element, done) {}; + +/** + * @param {!angular.JQLite} element + * @param {!Function} done + * @return {(!Function|undefined)} + */ +angular.Animation.removeClass = function(element, done) {}; + +/** + * @typedef {{ + * $attr: Object.<string,string>, + * $normalize: function(string): string, + * $observe: function(string, function(*)): function(), + * $set: function(string, ?(string|boolean), boolean=, string=) + * }} + */ +angular.Attributes; + +/** + * @type {Object.<string, string>} + */ +angular.Attributes.$attr; + +/** + * @param {string} classVal + */ +angular.Attributes.$addClass = function(classVal) {}; + +/** + * @param {string} classVal + */ +angular.Attributes.$removeClass = function(classVal) {}; + +/** + * @param {string} newClasses + * @param {string} oldClasses + */ +angular.Attributes.$updateClass = function(newClasses, oldClasses) {}; + +/** + * @param {string} name + * @return {string} + */ +angular.Attributes.$normalize = function(name) {}; + +/** + * @param {string} key + * @param {function(*)} fn + * @return {function()} + */ +angular.Attributes.$observe = function(key, fn) {}; + +/** + * @param {string} key + * @param {?(string|boolean)} value + * @param {boolean=} opt_writeAttr + * @param {string=} opt_attrName + */ +angular.Attributes.$set = function(key, value, opt_writeAttr, opt_attrName) {}; + +/** + * @typedef {{ + * pre: (function( + * !angular.Scope=, + * !angular.JQLite=, + * !angular.Attributes=, + * (!Object|!Array.<!Object>)=)| + * undefined), + * post: (function( + * !angular.Scope=, + * !angular.JQLite=, + * !angular.Attributes=, + * (!Object|Array.<!Object>)=)| + * undefined) + * }} + */ +angular.LinkingFunctions; + +/** + * @param {!angular.Scope=} scope + * @param {!angular.JQLite=} iElement + * @param {!angular.Attributes=} iAttrs + * @param {(!Object|!Array.<!Object>)=} controller + */ +angular.LinkingFunctions.pre = function(scope, iElement, iAttrs, controller) {}; + +/** + * @param {!angular.Scope=} scope + * @param {!angular.JQLite=} iElement + * @param {!angular.Attributes=} iAttrs + * @param {(!Object|!Array.<!Object>)=} controller + */ +angular.LinkingFunctions.post = function(scope, iElement, iAttrs, controller) { +}; + +/** + * @typedef {{ + * bindToController: (boolean|undefined), + * compile: (function( + * !angular.JQLite=, !angular.Attributes=, Function=)|undefined), + * controller: (Function|Array.<string|Function>|string|undefined), + * controllerAs: (string|undefined), + * link: (function( + * !angular.Scope=, !angular.JQLite=, !angular.Attributes=, + * (!Object|!Array.<!Object>)=)| + * !angular.LinkingFunctions| + * undefined), + * name: (string|undefined), + * priority: (number|undefined), + * replace: (boolean|undefined), + * require: (string|Array.<string>|undefined), + * restrict: (string|undefined), + * scope: (boolean|Object.<string, string>|undefined), + * template: (string| + * function(!angular.JQLite=,!angular.Attributes=): string| + * undefined), + * templateNamespace: (string|undefined), + * templateUrl: (string| + * function(!angular.JQLite=,!angular.Attributes=)| + * undefined), + * terminal: (boolean|undefined), + * transclude: (boolean|string|undefined) + * }} + */ +angular.Directive; + +/** + * @param {!angular.JQLite=} tElement + * @param {!angular.Attributes=} tAttrs + * @param {Function=} transclude + * @return {Function|angular.LinkingFunctions|undefined} + */ +angular.Directive.compile = function(tElement, tAttrs, transclude) {}; + +angular.Directive.controller = function() {}; + +/** + * @type {string|undefined} + */ +angular.Directive.controllerAs; + +/** + * @type {( + * function(!angular.Scope=, !angular.JQLite=, !angular.Attributes=, + * (!Object|!Array.<!Object>)=)| + * !angular.LinkingFunctions| + * undefined + * )} + */ +angular.Directive.link; + +/** + * @type {(string|undefined)} + */ +angular.Directive.name; + +/** + * @type {(number|undefined)} + */ +angular.Directive.priority; + +/** + * @type {(boolean|undefined)} + */ +angular.Directive.replace; + +/** + * @type {(string|Array.<string>|undefined)} + */ +angular.Directive.require; + +/** + * @type {(string|undefined)} + */ +angular.Directive.restrict; + +/** + * @type {(boolean|Object.<string, string>|undefined)} + */ +angular.Directive.scope; + +/** + * @type {( + * string| + * function(!angular.JQLite=,!angular.Attributes=): string| + * undefined + * )} + */ +angular.Directive.template; + +/** + * @type {(string|function(!angular.JQLite=, !angular.Attributes=)|undefined)} + */ +angular.Directive.templateUrl; + +/** + * @type {(boolean|undefined)} + */ +angular.Directive.terminal; + +/** + * @type {(boolean|string|undefined)} + */ +angular.Directive.transclude; + +/** + * @typedef {{ + * addClass: function(string): !angular.JQLite, + * after: function(JQLiteSelector): !angular.JQLite, + * append: function(JQLiteSelector): !angular.JQLite, + * attr: function(string, (string|boolean)=): + * (!angular.JQLite|string|boolean), + * bind: function(string, Function): !angular.JQLite, + * children: function(): !angular.JQLite, + * clone: function(): !angular.JQLite, + * contents: function(): !angular.JQLite, + * controller: function(string=): Object, + * css: function((string|!Object), string=): (!angular.JQLite|string), + * data: function(string=, *=): *, + * detach: function(): !angular.JQLite, + * empty: function(): !angular.JQLite, + * eq: function(number): !angular.JQLite, + * find: function(string): !angular.JQLite, + * hasClass: function(string): boolean, + * html: function(string=): (!angular.JQLite|string), + * inheritedData: function(string=, *=): *, + * injector: function(): !angular.$injector, + * isolateScope: function(): (!angular.Scope|undefined), + * length: number, + * next: function(): !angular.JQLite, + * on: function(string, Function): !angular.JQLite, + * off: function(string=, Function=): !angular.JQLite, + * one: function(string, Function): !angular.JQLite, + * parent: function(): !angular.JQLite, + * prepend: function(JQLiteSelector): !angular.JQLite, + * prop: function(string, *=): *, + * ready: function(Function): !angular.JQLite, + * remove: function(): !angular.JQLite, + * removeAttr: function(string): !angular.JQLite, + * removeClass: function(string): !angular.JQLite, + * removeData: function(string=): !angular.JQLite, + * replaceWith: function(JQLiteSelector): !angular.JQLite, + * scope: function(): !angular.Scope, + * text: function(string=): (!angular.JQLite|string), + * toggleClass: function(string, boolean=): !angular.JQLite, + * triggerHandler: function(string, *=): !angular.JQLite, + * unbind: function(string=, Function=): !angular.JQLite, + * val: function(string=): (!angular.JQLite|string), + * wrap: function(JQLiteSelector): !angular.JQLite + * }} + */ +angular.JQLite; + +/** + * @param {string} name + * @return {!angular.JQLite} + */ +angular.JQLite.addClass = function(name) {}; + +/** + * @param {JQLiteSelector} element + * @return {!angular.JQLite} + */ +angular.JQLite.after = function(element) {}; + +/** + * @param {JQLiteSelector} element + * @return {!angular.JQLite} + */ +angular.JQLite.append = function(element) {}; + +/** + * @param {string} name + * @param {(string|boolean)=} opt_value + * @return {!angular.JQLite|string|boolean} + */ +angular.JQLite.attr = function(name, opt_value) {}; + +/** + * @param {string} type + * @param {Function} fn + * @return {!angular.JQLite} + */ +angular.JQLite.bind = function(type, fn) {}; + +/** + * @return {!angular.JQLite} + */ +angular.JQLite.children = function() {}; + +/** + * @return {!angular.JQLite} + */ +angular.JQLite.clone = function() {}; + +/** + * @return {!angular.JQLite} + */ +angular.JQLite.contents = function() {}; + +/** + * @param {string=} opt_name + * @return {Object} + */ +angular.JQLite.controller = function(opt_name) {}; + +/** + * @param {(string|!Object)} nameOrObject + * @param {string=} opt_value + * @return {!angular.JQLite|string} + */ +angular.JQLite.css = function(nameOrObject, opt_value) {}; + +/** + * @param {string=} opt_key + * @param {*=} opt_value + * @return {*} + */ +angular.JQLite.data = function(opt_key, opt_value) {}; + +/** + * @param {number} index + * @return {!angular.JQLite} + */ +angular.JQLite.eq = function(index) {}; + +/** + * @param {string} selector + * @return {!angular.JQLite} + */ +angular.JQLite.find = function(selector) {}; + +/** + * @param {string} name + * @return {boolean} + */ +angular.JQLite.hasClass = function(name) {}; + +/** + * @param {string=} opt_value + * @return {!angular.JQLite|string} + */ +angular.JQLite.html = function(opt_value) {}; + +/** + * @param {string=} opt_key + * @param {*=} opt_value + * @return {*} + */ +angular.JQLite.inheritedData = function(opt_key, opt_value) {}; + +/** + * @return {!angular.$injector} + */ +angular.JQLite.injector = function() {}; + +/** @type {number} */ +angular.JQLite.length; + +/** + * @return {!angular.JQLite} + */ +angular.JQLite.next = function() {}; + +/** + * @param {string} type + * @param {Function} fn + * @return {!angular.JQLite} + */ +angular.JQLite.on = function(type, fn) {}; + +/** + * @param {string=} opt_type + * @param {Function=} opt_fn + * @return {!angular.JQLite} + */ +angular.JQLite.off = function(opt_type, opt_fn) {}; + +/** + * @return {!angular.JQLite} + */ +angular.JQLite.parent = function() {}; + +/** + * @param {JQLiteSelector} element + * @return {!angular.JQLite} + */ +angular.JQLite.prepend = function(element) {}; + +/** + * @param {string} name + * @param {*=} opt_value + * @return {*} + */ +angular.JQLite.prop = function(name, opt_value) {}; + +/** + * @param {Function} fn + * @return {!angular.JQLite} + */ +angular.JQLite.ready = function(fn) {}; + +/** + * @return {!angular.JQLite} + */ +angular.JQLite.remove = function() {}; + +/** + * @param {string} name + * @return {!angular.JQLite} + */ +angular.JQLite.removeAttr = function(name) {}; + +/** + * @param {string} name + * @return {!angular.JQLite} + */ +angular.JQLite.removeClass = function(name) {}; + +/** + * @param {string=} opt_name + * @return {!angular.JQLite} + */ +angular.JQLite.removeData = function(opt_name) {}; + +/** + * @param {JQLiteSelector} element + * @return {!angular.JQLite} + */ +angular.JQLite.replaceWith = function(element) {}; + +/** + * @return {!angular.Scope} + */ +angular.JQLite.scope = function() {}; + +/** + * @param {string=} opt_value + * @return {!angular.JQLite|string} + */ +angular.JQLite.text = function(opt_value) {}; + +/** + * @param {string} name + * @param {boolean=} opt_condition + * @return {!angular.JQLite} + */ +angular.JQLite.toggleClass = function(name, opt_condition) {}; + +/** + * @param {string} type + * @param {*=} opt_value + * @return {!angular.JQLite} + */ +angular.JQLite.triggerHandler = function(type, opt_value) {}; + +/** + * @param {string=} opt_type + * @param {Function=} opt_fn + * @return {!angular.JQLite} + */ +angular.JQLite.unbind = function(opt_type, opt_fn) {}; + +/** + * @param {string=} opt_value + * @return {!angular.JQLite|string} + */ +angular.JQLite.val = function(opt_value) {}; + +/** + * @param {JQLiteSelector} element + * @return {!angular.JQLite} + */ +angular.JQLite.wrap = function(element) {}; + +/** + * @typedef {{ + * animation: + * function(string, function(...*):angular.Animation):!angular.Module, + * config: function((Function|Array.<string|Function>)):!angular.Module, + * constant: function(string, *):angular.Module, + * controller: + * (function(string, (Function|Array.<string|Function>)):!angular.Module| + * function(!Object.<(Function|Array.<string|Function>)>): + * !angular.Module), + * directive: + * (function(string, (Function|Array.<string|Function>)):!angular.Module| + * function(!Object.<(Function|Array.<string|Function>)>): + * !angular.Module), + * factory: + * function(string, (Function|Array.<string|Function>)):!angular.Module, + * filter: + * function(string, (Function|Array.<string|Function>)):!angular.Module, + * name: string, + * provider: function(string, + * (Object|Function|Array.<string|Function>)):!angular.Module, + * requires: !Array.<string>, + * run: function((Function|Array.<string|Function>)):!angular.Module, + * service: + * function(string, (Function|Array.<string|Function>)):!angular.Module, + * value: function(string, *):!angular.Module + * }} + */ +angular.Module; + +/** + * @param {string} name + * @param {function(...*):angular.Animation} animationFactory + */ +angular.Module.animation = function(name, animationFactory) {}; + +/** + * @param {Function|Array.<string|Function>} configFn + * @return {!angular.Module} + */ +angular.Module.config = function(configFn) {}; + +/** + * @param {string} name + * @param {*} object + * @return {!angular.Module} + */ +angular.Module.constant = function(name, object) {}; + +/** + * @param {string} name + * @param {Function|Array.<string|Function>} constructor + * @return {!angular.Module} + */ +angular.Module.controller = function(name, constructor) {}; + +/** + * @param {string} name + * @param {Function|Array.<string|Function>} directiveFactory + * @return {!angular.Module} + */ +angular.Module.directive = function(name, directiveFactory) {}; + +/** + * @param {string} name + * @param {Function|Array.<string|Function>} providerFunction + * @return {!angular.Module} + */ +angular.Module.factory = function(name, providerFunction) {}; + +/** + * @param {string} name + * @param {Function|Array.<string|Function>} filterFactory + * @return {!angular.Module} + */ +angular.Module.filter = function(name, filterFactory) {}; + +/** + * @param {string} name + * @param {Function|Array.<string|Function>} providerType + * @return {!angular.Module} + */ +angular.Module.provider = function(name, providerType) {}; + +/** + * @param {Function|Array.<string|Function>} initializationFn + * @return {!angular.Module} + */ +angular.Module.run = function(initializationFn) {}; + +/** + * @param {string} name + * @param {Function|Array.<string|Function>} constructor + * @return {!angular.Module} + */ +angular.Module.service = function(name, constructor) {}; + +/** + * @param {string} name + * @param {*} object + * @return {!angular.Module} + */ +angular.Module.value = function(name, object) {}; + +/** + * @type {string} + */ +angular.Module.name = ''; + +/** + * @type {Array.<string>} + */ +angular.Module.requires; + +/** + * @typedef {{ + * $$phase: string, + * $apply: function((string|function(!angular.Scope))=):*, + * $applyAsync: function((string|function(!angular.Scope))=), + * $broadcast: function(string, ...*), + * $destroy: function(), + * $digest: function(), + * $emit: function(string, ...*), + * $eval: function((string|function(!angular.Scope))=, Object=):*, + * $evalAsync: function((string|function())=), + * $id: string, + * $new: function(boolean=):!angular.Scope, + * $on: function(string, function(!angular.Scope.Event, ...?)):function(), + * $parent: !angular.Scope, + * $root: !angular.Scope, + * $watch: function( + * (string|Function), (string|Function)=, boolean=):function(), + * $watchCollection: function( + * (string|Function), (string|Function)=):function(), + * $watchGroup: function( + * Array.<string|Function>, (string|Function)=):function() + * }} + */ +angular.Scope; + +/** @type {string} */ +angular.Scope.$$phase; + +/** + * @param {(string|function(!angular.Scope))=} opt_exp + * @return {*} + */ +angular.Scope.$apply = function(opt_exp) {}; + +/** + * @param {string} name + * @param {...*} args + */ +angular.Scope.$broadcast = function(name, args) {}; + +angular.Scope.$destroy = function() {}; + +angular.Scope.$digest = function() {}; + +/** + * @param {string} name + * @param {...*} args + */ +angular.Scope.$emit = function(name, args) {}; + +/** + * @param {(string|function())=} opt_exp + * @param {Object=} opt_locals + * @return {*} + */ +angular.Scope.$eval = function(opt_exp, opt_locals) {}; + +/** + * @param {(string|function())=} opt_exp + */ +angular.Scope.$evalAsync = function(opt_exp) {}; + +/** @type {string} */ +angular.Scope.$id; + +/** + * @param {boolean=} opt_isolate + * @return {!angular.Scope} + */ +angular.Scope.$new = function(opt_isolate) {}; + +/** + * @param {string} name + * @param {function(!angular.Scope.Event, ...?)} listener + * @return {function()} + */ +angular.Scope.$on = function(name, listener) {}; + +/** @type {!angular.Scope} */ +angular.Scope.$parent; + +/** @type {!angular.Scope} */ +angular.Scope.$root; + +/** + * @param {string|!Function} exp + * @param {(string|Function)=} opt_listener + * @param {boolean=} opt_objectEquality + * @return {function()} + */ +angular.Scope.$watch = function(exp, opt_listener, opt_objectEquality) {}; + +/** + * @param {string|!Function} exp + * @param {(string|Function)=} opt_listener + * @return {function()} + */ +angular.Scope.$watchCollection = function(exp, opt_listener) {}; + +/** + * @typedef {{ + * currentScope: !angular.Scope, + * defaultPrevented: boolean, + * name: string, + * preventDefault: function(), + * stopPropagation: function(), + * targetScope: !angular.Scope + * }} + */ +angular.Scope.Event; + +/** @type {!angular.Scope} */ +angular.Scope.Event.currentScope; + +/** @type {boolean} */ +angular.Scope.Event.defaultPrevented; + +/** @type {string} */ +angular.Scope.Event.name; + +angular.Scope.Event.preventDefault = function() {}; + +angular.Scope.Event.stopPropagation = function() {}; + +/** @type {!angular.Scope} */ +angular.Scope.Event.targetScope; + +/** + * @type {Object} + */ +angular.version = {}; + +/** + * @type {string} + */ +angular.version.full = ''; + +/** + * @type {number} + */ +angular.version.major = 0; + +/** + * @type {number} + */ +angular.version.minor = 0; + +/** + * @type {number} + */ +angular.version.dot = 0; + +/** + * @type {string} + */ +angular.version.codeName = ''; + +/****************************************************************************** + * $anchorScroll Service + *****************************************************************************/ + +/** + * @typedef {function()} + */ +angular.$anchorScroll; + +/****************************************************************************** + * $anchorScrollProvider Service + *****************************************************************************/ + +/** + * @typedef {{ + * disableAutoScrolling: function() + * }} + */ +angular.$anchorScrollProvider; + +/** + * @type {function()} + */ +angular.$anchorScrollProvider.disableAutoScrolling = function() {}; + +/****************************************************************************** + * $animate Service + *****************************************************************************/ + +/** + * @constructor + */ +angular.$animate; + +/** + * @param {JQLiteSelector} element + * @param {Object} from + * @param {Object} to + * @param {string=} opt_className + * @param {Object.<string, *>=} opt_options + * @return {!angular.$q.Promise} + */ +angular.$animate.prototype.animate = function( + element, from, to, opt_className, opt_options) {}; + +/** + * @param {JQLiteSelector} element + * @param {JQLiteSelector} parentElement + * @param {JQLiteSelector} afterElement + * @param {Object.<string, *>=} opt_options + * @return {!angular.$q.Promise} + */ +angular.$animate.prototype.enter = function( + element, parentElement, afterElement, opt_options) {}; + +/** + * @param {JQLiteSelector} element + * @param {Object.<string, *>=} opt_options + * @return {!angular.$q.Promise} + */ +angular.$animate.prototype.leave = function(element, opt_options) {}; + +/** + * @param {JQLiteSelector} element + * @param {JQLiteSelector} parentElement + * @param {JQLiteSelector} afterElement + * @param {Object.<string, *>=} opt_options + * @return {!angular.$q.Promise} + */ +angular.$animate.prototype.move = function( + element, parentElement, afterElement, opt_options) {}; + +/** + * @param {JQLiteSelector} element + * @param {string} className + * @param {Object.<string, *>=} opt_options + * @return {!angular.$q.Promise} + */ +angular.$animate.prototype.addClass = function( + element, className, opt_options) {}; + +/** + * @param {JQLiteSelector} element + * @param {string} className + * @param {Object.<string, *>=} opt_options + * @return {!angular.$q.Promise} + */ +angular.$animate.prototype.removeClass = function( + element, className, opt_options) {}; + +/** + * @param {JQLiteSelector} element + * @param {string} add + * @param {string} remove + * @param {Object.<string, *>=} opt_options + * @return {!angular.$q.Promise} + */ +angular.$animate.prototype.setClass = function( + element, add, remove, opt_options) {}; + +/** + * @param {boolean=} opt_value + * @param {JQLiteSelector=} opt_element + * @return {boolean} + */ +angular.$animate.prototype.enabled = function(opt_value, opt_element) {}; + +/** + * @param {angular.$q.Promise} animationPromise + */ +angular.$animate.prototype.cancel = function(animationPromise) {}; + +/****************************************************************************** + * $animateProvider Service + *****************************************************************************/ + +/** + * @constructor + */ +angular.$animateProvider; + +/** + * @param {string} name + * @param {Function} factory + */ +angular.$animateProvider.prototype.register = function(name, factory) {}; + +/** + * @param {RegExp=} opt_expression + */ +angular.$animateProvider.prototype.classNameFilter = function( + opt_expression) {}; + +/****************************************************************************** + * $compile Service + *****************************************************************************/ + +/** + * @typedef { + * function( + * (JQLiteSelector|Object), + * function(!angular.Scope, Function=)=, number=): + * function(!angular.Scope, + * function(!angular.JQLite, !angular.Scope=)=): !angular.JQLite} + */ +angular.$compile; + +/****************************************************************************** + * $cacheFactory Service + *****************************************************************************/ + +/** + * @typedef { + * function(string, angular.$cacheFactory.Options=): + * !angular.$cacheFactory.Cache} + */ +angular.$cacheFactory; + +/** + * @typedef {function(string): ?angular.$cacheFactory.Cache} + */ +angular.$cacheFactory.get; + +/** @typedef {{capacity: (number|undefined)}} */ +angular.$cacheFactory.Options; + +/** + * @template T + * @constructor + */ +angular.$cacheFactory.Cache = function() {}; + +/** + * @return {!angular.$cacheFactory.Cache.Info} + */ +angular.$cacheFactory.Cache.prototype.info = function() {}; + +/** + * @param {string} key + * @param {T} value + */ +angular.$cacheFactory.Cache.prototype.put = function(key, value) {}; + +/** + * @param {string} key + * @return {T} + */ +angular.$cacheFactory.Cache.prototype.get = function(key) {}; + +/** + * @param {string} key + */ +angular.$cacheFactory.Cache.prototype.remove = function(key) {}; + +angular.$cacheFactory.Cache.prototype.removeAll = function() {}; +angular.$cacheFactory.Cache.prototype.destroy = function() {}; + +/** + * @typedef {{ + * id: string, + * size: number, + * options: angular.$cacheFactory.Options + * }} + */ +angular.$cacheFactory.Cache.Info; + +/****************************************************************************** + * $controller Service + *****************************************************************************/ + +/** + * @typedef {function((Function|string), Object):Object} + */ +angular.$controller; + +/****************************************************************************** + * $controllerProvider Service + *****************************************************************************/ + +/** + * @typedef {{ + * register: function((string|Object), (Function|Array)), + * allowGlobals: function() + * }} + */ +angular.$controllerProvider; + +/****************************************************************************** + * $exceptionHandler Service + *****************************************************************************/ + +/** + * @typedef {function(Error, string=)} + */ +angular.$exceptionHandler; + +/****************************************************************************** + * $filter Service + *****************************************************************************/ + +/** + * @typedef {function(string): !Function} + */ +angular.$filter; + +/** + * The 'orderBy' filter is available through $filterProvider and AngularJS + * injection; but is not accessed through a documented public API of AngularJS. + * <p>In current AngularJS version the injection is satisfied by + * angular.orderByFunction, where the implementation is found. + * <p>See http://docs.angularjs.org/api/ng.filter:orderBy. + * @typedef {function(Array, + * (string|function(?):*|Array.<(string|function(?):*)>), + * boolean=): Array} + */ +angular.$filter.orderBy; + +/****************************************************************************** + * $filterProvider Service + *****************************************************************************/ + +/** + * @typedef {{ + * register: function(string, (!Function|!Array.<string|!Function>)) + * }} + */ +angular.$filterProvider; + +/** + * @param {string} name + * @param {(!Function|!Array.<string|!Function>)} fn + */ +angular.$filterProvider.register = function(name, fn) {}; + +/****************************************************************************** + * $http Service + *****************************************************************************/ + +/** + * This is a typedef because the closure compiler does not allow + * defining a type that is a function with properties. + * If you are trying to use the $http service as a function, try + * using one of the helper functions instead. + * @typedef {{ + * delete: function(string, angular.$http.Config=):!angular.$http.HttpPromise, + * get: function(string, angular.$http.Config=):!angular.$http.HttpPromise, + * head: function(string, angular.$http.Config=):!angular.$http.HttpPromise, + * jsonp: function(string, angular.$http.Config=):!angular.$http.HttpPromise, + * post: function(string, *, angular.$http.Config=): + * !angular.$http.HttpPromise, + * put: function(string, *, angular.$http.Config=):!angular.$http.HttpPromise, + * defaults: angular.$http.Config, + * pendingRequests: !Array.<angular.$http.Config> + * }} + */ +angular.$http; + +/** + * @typedef {{ + * cache: (boolean|!angular.$cacheFactory.Cache|undefined), + * data: (string|Object|undefined), + * headers: (Object|undefined), + * method: (string|undefined), + * params: (Object.<(string|Object)>|undefined), + * responseType: (string|undefined), + * timeout: (number|!angular.$q.Promise|undefined), + * transformRequest: + * (function((string|Object), Object):(string|Object)| + * Array.<function((string|Object), Object):(string|Object)>|undefined), + * transformResponse: + * (function((string|Object), Object):(string|Object)| + * Array.<function((string|Object), Object):(string|Object)>|undefined), + * url: (string|undefined), + * withCredentials: (boolean|undefined), + * xsrfCookieName: (string|undefined), + * xsrfHeaderName: (string|undefined) + * }} + */ +angular.$http.Config; + +angular.$http.Config.transformRequest; + +angular.$http.Config.transformResponse; + +// /** +// * This extern is currently incomplete as delete is a reserved word. +// * To use delete, index $http. +// * Example: $http['delete'](url, opt_config); +// * @param {string} url +// * @param {angular.$http.Config=} opt_config +// * @return {!angular.$http.HttpPromise} +// */ +// angular.$http.delete = function(url, opt_config) {}; + +/** + * @param {string} url + * @param {angular.$http.Config=} opt_config + * @return {!angular.$http.HttpPromise} + */ +angular.$http.get = function(url, opt_config) {}; + +/** + * @param {string} url + * @param {angular.$http.Config=} opt_config + * @return {!angular.$http.HttpPromise} + */ +angular.$http.head = function(url, opt_config) {}; + +/** + * @param {string} url + * @param {angular.$http.Config=} opt_config + * @return {!angular.$http.HttpPromise} + */ +angular.$http.jsonp = function(url, opt_config) {}; + +/** + * @param {string} url + * @param {*} data + * @param {angular.$http.Config=} opt_config + * @return {!angular.$http.HttpPromise} + */ +angular.$http.post = function(url, data, opt_config) {}; + +/** + * @param {string} url + * @param {*} data + * @param {angular.$http.Config=} opt_config + * @return {!angular.$http.HttpPromise} + */ +angular.$http.put = function(url, data, opt_config) {}; + +/** + * @type {angular.$http.Config} + */ +angular.$http.defaults; + +/** + * @type {Array.<angular.$http.Config>} + * @const + */ +angular.$http.pendingRequests; + +/** + * @typedef {{ + * request: (undefined|(function(!angular.$http.Config): + * !angular.$http.Config|!angular.$q.Promise.<!angular.$http.Config>)), + * requestError: (undefined|(function(Object): !angular.$q.Promise|Object)), + * response: (undefined|(function(!angular.$http.Response): + * !angular.$http.Response|!angular.$q.Promise.<!angular.$http.Response>)), + * responseError: (undefined|(function(Object): !angular.$q.Promise|Object)) + * }} + */ +angular.$http.Interceptor; + +/** + * @typedef {{ + * defaults: !angular.$http.Config, + * interceptors: !Array.<string|function(...*): !angular.$http.Interceptor>, + * useApplyAsync: function(boolean=):(boolean|!angular.$HttpProvider) + * }} + */ +angular.$HttpProvider; + +/** + * @type {angular.$http.Config} + */ +angular.$HttpProvider.defaults; + +/** + * @type {!Array.<string|function(...*): !angular.$http.Interceptor>} + */ +angular.$HttpProvider.interceptors; + +/** + * @param {boolean=} opt_value + * @return {boolean|!angular.$HttpProvider} + */ +angular.$HttpProvider.useApplyAsync = function(opt_value) {}; + +/****************************************************************************** + * $injector Service + *****************************************************************************/ + +/** + * @typedef {{ + * annotate: function((Function|Array.<string|Function>)):Array.<string>, + * get: function(string):(?), + * has: function(string):boolean, + * instantiate: function(Function, Object=):Object, + * invoke: function( + * (!Function|Array.<string|!Function>), Object=, Object=):(?) + * }} + */ +angular.$injector; + +/** + * @param {(!Function|Array.<string|!Function>)} fn + * @return {Array.<string>} + */ +angular.$injector.annotate = function(fn) {}; + +/** + * @param {string} name + * @return {?} + */ +angular.$injector.get = function(name) {}; + +/** + * @param {string} name + * @return {boolean} + */ +angular.$injector.has = function(name) {}; + +/** + * @param {!Function} type + * @param {Object=} opt_locals + * @return {Object} + */ +angular.$injector.instantiate = function(type, opt_locals) {}; + +/** + * @param {(!Function|Array.<string|!Function>)} fn + * @param {Object=} opt_self + * @param {Object=} opt_locals + * @return {?} + */ +angular.$injector.invoke = function(fn, opt_self, opt_locals) {}; + +/****************************************************************************** + * $interpolateProvider Service + *****************************************************************************/ + +/** + * @typedef {{ + * startSymbol: function(string), + * endSymbol: function(string) + * }} + */ +angular.$interpolateProvider; + +/** @type {function(string)} */ +angular.$interpolateProvider.startSymbol; + +/** @type {function(string)} */ +angular.$interpolateProvider.endSymbol; + +/****************************************************************************** + * $interval Service + *****************************************************************************/ + +/** + * @typedef { + * function(function(), number=, number=, boolean=):!angular.$q.Promise + * } + */ +angular.$interval; + +/** + * Augment the angular.$interval type definition by reopening the type via an + * artificial angular.$interval instance. + * + * This allows us to define methods on function objects which is something + * that can't be expressed via typical type annotations. + * + * @type {angular.$interval} + */ +angular.$interval_; + +/** + * @type {function(!angular.$q.Promise):boolean} + */ +angular.$interval_.cancel = function(promise) {}; + +/****************************************************************************** + * $location Service + *****************************************************************************/ + +/** + * @typedef {{ + * absUrl: function():string, + * hash: function(string=):string, + * host: function():string, + * path: function(string=):(string|!angular.$location), + * port: function():number, + * protocol: function():string, + * replace: function(), + * search: function((string|Object.<string, string>)=, + * ?(string|Array.<string>|boolean)=): (!Object|angular.$location), + * url: function(string=):string + * }} + */ +angular.$location; + +/** + * @return {string} + */ +angular.$location.absUrl = function() {}; + +/** + * @param {string=} opt_hash + * @return {string} + */ +angular.$location.hash = function(opt_hash) {}; + +/** + * @return {string} + */ +angular.$location.host = function() {}; + +/** + * @param {string=} opt_path + * @return {string|!angular.$location} + */ +angular.$location.path = function(opt_path) {}; + +/** + * @return {number} + */ +angular.$location.port = function() {}; + +/** + * @return {string} + */ +angular.$location.protocol = function() {}; + +/** + * @type {function()} + */ +angular.$location.replace = function() {}; + +/** + * @param {(string|Object.<string, string>)=} opt_search + * @param {?(string|Array.<string>|boolean)=} opt_paramValue + * @return {(!Object|angular.$location)} + */ +angular.$location.search = function(opt_search, opt_paramValue) {}; + +/** + * @param {string=} opt_url + * @return {string} + */ +angular.$location.url = function(opt_url) {}; + +/****************************************************************************** + * $locationProvider Service + *****************************************************************************/ + +/** + * @typedef {{ + * enabled: (boolean|undefined), + * requireBase: (boolean|undefined) + * }} + */ +angular.$locationProvider.html5ModeConfig; + +/** + * @typedef {{ + * hashPrefix: + * function(string=): (string|!angular.$locationProvider), + * html5Mode: + * function( + * (boolean|angular.$locationProvider.html5ModeConfig)=): + * (boolean|!angular.$locationProvider) + * }} + */ +angular.$locationProvider; + +/** + * @param {string=} opt_prefix + * @return {string|!angular.$locationProvider} + */ +angular.$locationProvider.hashPrefix = function(opt_prefix) {}; + +/** + * @param {(boolean|angular.$locationProvider.html5ModeConfig)=} opt_mode + * @return {boolean|!angular.$locationProvider} + */ +angular.$locationProvider.html5Mode = function(opt_mode) {}; + +/****************************************************************************** + * $log Service + *****************************************************************************/ + +/** + * @typedef {{ + * error: function(...*), + * info: function(...*), + * log: function(...*), + * warn: function(...*) + * }} + */ +angular.$log; + +/** + * @param {...*} var_args + */ +angular.$log.error = function(var_args) {}; + +/** + * @param {...*} var_args + */ +angular.$log.info = function(var_args) {}; + +/** + * @param {...*} var_args + */ +angular.$log.log = function(var_args) {}; + +/** + * @param {...*} var_args + */ +angular.$log.warn = function(var_args) {}; + +/****************************************************************************** + * NgModelController + *****************************************************************************/ + +/** + * @constructor + */ +angular.NgModelController = function() {}; + +/** + * @type {?} + */ +angular.NgModelController.prototype.$modelValue; + +/** + * @type {boolean} + */ +angular.NgModelController.prototype.$dirty; + +/** + * @type {!Object.<boolean>} + */ +angular.NgModelController.prototype.$error; + +/** + * @type {!Array.<function(?):*>} + */ +angular.NgModelController.prototype.$formatters; + +/** + * @type {boolean} + */ +angular.NgModelController.prototype.$invalid; + +/** + * @type {!Array.<function(?):*>} + */ +angular.NgModelController.prototype.$parsers; + +/** + * @type {boolean} + */ +angular.NgModelController.prototype.$pristine; + +angular.NgModelController.prototype.$render = function() {}; + +/** + * @param {string} key + * @param {boolean} isValid + */ +angular.NgModelController.prototype.$setValidity = function(key, isValid) {}; + +/** + * @param {?} value + */ +angular.NgModelController.prototype.$setViewValue = function(value) {}; + +/** + * @type {boolean} + */ +angular.NgModelController.prototype.$valid; + +/** + * @type {!Array.<function()>} + */ +angular.NgModelController.prototype.$viewChangeListeners; + +/** + * @type {?} + */ +angular.NgModelController.prototype.$viewValue; + +/** + * @type {!Object.<string, function(?, ?):*>} + */ +angular.NgModelController.prototype.$validators; + +/** + * @type {Object.<string, function(?, ?):*>} + */ +angular.NgModelController.prototype.$asyncValidators; + +/** + * @type {boolean} + */ +angular.NgModelController.prototype.$untouched; + +/** + * @type {boolean} + */ +angular.NgModelController.prototype.$touched; + +/** + * @param {?} value + */ +angular.NgModelController.prototype.$isEmpty = function(value) {}; + +/** + * @type {function()} + */ +angular.NgModelController.prototype.$setPristine = function() {}; + +/** + * @type {function()} + */ +angular.NgModelController.prototype.$setDirty = function() {}; + +/** + * @type {function()} + */ +angular.NgModelController.prototype.$setUntouched = function() {}; + +/** + * @type {function()} + */ +angular.NgModelController.prototype.$setTouched = function() {}; + +/** + * @type {function()} + */ +angular.NgModelController.prototype.$rollbackViewValue = function() {}; + +/** + * @type {function()} + */ +angular.NgModelController.prototype.$validate = function() {}; + +/** + * @type {function()} + */ +angular.NgModelController.prototype.$commitViewValue = function() {}; + +/****************************************************************************** + * FormController + *****************************************************************************/ + +/** + * @constructor + */ +angular.FormController = function() {}; + +/** + * @param {*} control + */ +angular.FormController.prototype.$addControl = function(control) {}; + +/** + * @type {function()} + */ +angular.FormController.prototype.$rollbackViewValue = function() {}; + +/** + * @type {function()} + */ +angular.FormController.prototype.$commitViewValue = function() {}; + +/** + * @type {boolean} + */ +angular.FormController.prototype.$dirty; + +/** + * @type {!Object.<boolean|!Array.<*>>} + */ +angular.FormController.prototype.$error; + +/** + * @type {boolean} + */ +angular.FormController.prototype.$invalid; + +/** + * @type {string} + */ +angular.FormController.prototype.$name; + +/** + * @type {boolean} + */ +angular.FormController.prototype.$pristine; + +/** + * @param {*} control + */ +angular.FormController.prototype.$removeControl = function(control) {}; + +/** + * @type {function()} + */ +angular.FormController.prototype.$setDirty = function() {}; + +/** + * @type {function()} + */ +angular.FormController.prototype.$setPristine = function() {}; + +/** + * @type {function()} + */ +angular.FormController.prototype.$setUntouched = function() {}; + +/** + * @type {function()} + */ +angular.FormController.prototype.$setSubmitted = function() {}; + +/** + * @type {boolean} + */ +angular.FormController.prototype.$submitted; + +/** + * @param {string} validationToken + * @param {boolean} isValid + * @param {*} control + */ +angular.FormController.prototype.$setValidity = function( + validationToken, isValid, control) {}; + +/** + * @type {boolean} + */ +angular.FormController.prototype.$valid; + +/****************************************************************************** + * $parse Service + *****************************************************************************/ + +/** + * @typedef {function(string):!angular.$parse.Expression} + */ +angular.$parse; + +/** + * @typedef {function((!angular.Scope|!Object), Object=):*} + */ +angular.$parse.Expression; + +/** + * Augment the angular.$parse.Expression type definition by reopening the type + * via an artificial angular.$parse instance. + * + * This allows us to define methods on function objects which is something + * that can't be expressed via typical type annotations. + * + * @type {angular.$parse.Expression} + */ +angular.$parse_; + +/** + * @type {function((!angular.Scope|!Object), *)} + */ +angular.$parse_.assign = function(scope, newValue) {}; + +/****************************************************************************** + * $provide Service + *****************************************************************************/ + +/** + * @typedef {{ + * constant: function(string, *): Object, + * decorator: function(string, (!Function|Array.<string|!Function>)), + * factory: function(string, (!Function|Array.<string|!Function>)): Object, + * provider: function(string, (!Function|Array.<string|!Function>)): Object, + * service: function(string, (!Function|Array.<string|!Function>)): Object, + * value: function(string, *): Object + * }} + */ +angular.$provide; + +/** + * @param {string} name + * @param {*} object + * @return {Object} + */ +angular.$provide.constant = function(name, object) {}; + +/** + * @param {string} name + * @param {Function|Array.<string|Function>} decorator + */ +angular.$provide.decorator = function(name, decorator) {}; + +/** + * @param {string} name + * @param {Function|Array.<string|Function>} providerFunction + * @return {Object} + */ +angular.$provide.factory = function(name, providerFunction) {}; + +/** + * @param {string} name + * @param {Function|Array.<string|Function>} providerType + * @return {Object} + */ +angular.$provide.provider = function(name, providerType) {}; + +/** + * @param {string} name + * @param {Function|Array.<string|Function>} constructor + * @return {Object} + */ +angular.$provide.service = function(name, constructor) {}; + +/** + * @param {string} name + * @param {*} object + * @return {Object} + */ +angular.$provide.value = function(name, object) {}; + +/****************************************************************************** + * $route Service + *****************************************************************************/ + +/** + * @typedef {{ + * reload: function(), + * current: !angular.$route.Route, + * routes: Array.<!angular.$route.Route> + * }} + */ +angular.$route; + +/** @type {function()} */ +angular.$route.reload = function() {}; + +/** + * @param {!Object<string,string>} object + */ +angular.$route.updateParams = function(object) {}; + +/** @type {!angular.$route.Route} */ +angular.$route.current; + +/** @type {Array.<!angular.$route.Route>} */ +angular.$route.routes; + +/** + * @typedef {{ + * $route: angular.$routeProvider.Params, + * locals: Object.<string, *>, + * params: Object.<string, string>, + * pathParams: Object.<string, string>, + * scope: Object.<string, *>, + * originalPath: (string|undefined), + * regexp: (RegExp|undefined) + * }} + */ +angular.$route.Route; + +/** @type {angular.$routeProvider.Params} */ +angular.$route.Route.$route; + +/** @type {Object.<string, *>} */ +angular.$route.Route.locals; + +/** @type {Object.<string, string>} */ +angular.$route.Route.params; + +/** @type {Object.<string, string>} */ +angular.$route.Route.pathParams; + +/** @type {Object.<string, *>} */ +angular.$route.Route.scope; + +/** @type {string|undefined} */ +angular.$route.Route.originalPath; + +/** @type {RegExp|undefined} */ +angular.$route.Route.regexp; + +/****************************************************************************** + * $routeParams Service + *****************************************************************************/ + +// TODO: This should be !Object.<string|boolean> because valueless query params +// (without even an equal sign) come through as boolean "true". + +/** @typedef {!Object.<string>} */ +angular.$routeParams; + +/****************************************************************************** + * $routeProvider Service + *****************************************************************************/ + +/** + * @typedef {{ + * otherwise: + * function( + * (string|!angular.$routeProvider.Params)): !angular.$routeProvider, + * when: + * function( + * string, angular.$routeProvider.Params): !angular.$routeProvider + * }} + */ +angular.$routeProvider; + +/** + * @param {(string|!angular.$routeProvider.Params)} params + * @return {!angular.$routeProvider} + */ +angular.$routeProvider.otherwise = function(params) {}; + +/** + * @param {string} path + * @param {angular.$routeProvider.Params} route + * @return {!angular.$routeProvider} + */ +angular.$routeProvider.when = function(path, route) {}; + +/** + * @typedef {{ + * controller: (Function|Array.<string|Function>|string|undefined), + * controllerAs: (string|undefined), + * template: (string|undefined), + * templateUrl: (string|function(!Object.<string,string>=)|undefined), + * resolve: (Object.<string, ( + * string|Function|Array.<string|Function>|!angular.$q.Promise + * )>|undefined), + * redirectTo: ( + * string|function(Object.<string>, string, Object): string|undefined), + * reloadOnSearch: (boolean|undefined) + * }} + */ +angular.$routeProvider.Params; + +/** @type {Function|Array.<string|Function>|string} */ +angular.$routeProvider.Params.controller; + +/** @type {string} */ +angular.$routeProvider.Params.controllerAs; + +/** @type {string} */ +angular.$routeProvider.Params.template; + +/** @type {string|function(!Object.<string,string>=)} */ +angular.$routeProvider.Params.templateUrl; + +/** + * @type { + * Object.<string, ( + * string|Function|Array.<string|Function>|!angular.$q.Promise + * )>} + */ +angular.$routeProvider.Params.resolve; + +/** @type {string|function(Object.<string>, string, Object): string} */ +angular.$routeProvider.Params.redirectTo; + +/** @type {boolean} */ +angular.$routeProvider.Params.reloadOnSearch; + +/****************************************************************************** + * $sanitize Service + *****************************************************************************/ + +/** @typedef {function(string):string} */ +angular.$sanitize; + +/****************************************************************************** + * $sce Service + *****************************************************************************/ + +/** + * Ref: http://docs.angularjs.org/api/ng.$sce + * + * @typedef {{ + * HTML: string, + * CSS: string, + * URL: string, + * JS: string, + * RESOURCE_URL: string, + * isEnabled: function(): boolean, + * parseAs: function(string, string): !angular.$parse.Expression, + * getTrusted: function(string, *): string, + * trustAs: function(string, string): *, + * parseAsHtml: function(string): !angular.$parse.Expression, + * parseAsCss: function(string): !angular.$parse.Expression, + * parseAsUrl: function(string): !angular.$parse.Expression, + * parseAsJs: function(string): !angular.$parse.Expression, + * parseAsResourceUrl: function(string): !angular.$parse.Expression, + * getTrustedHtml: function(*): string, + * getTrustedCss: function(*): string, + * getTrustedUrl: function(*): string, + * getTrustedJs: function(*): string, + * getTrustedResourceUrl: function(*): string, + * trustAsHtml: function(string): *, + * trustAsCss: function(string): *, + * trustAsUrl: function(string): *, + * trustAsJs: function(string): *, + * trustAsResourceUrl: function(string): * + * }} + *****************************************************************************/ +angular.$sce; + + +/** @const {string} */ +angular.$sce.HTML; + +/** @const {string} */ +angular.$sce.CSS; + +/** @const {string} */ +angular.$sce.URL; + +/** @const {string} */ +angular.$sce.JS; + +/** @const {string} */ +angular.$sce.RESOURCE_URL; + +/** @return {boolean} */ +angular.$sce.isEnabled = function() {}; + +/** + * @param {string} type + * @param {string} expression + * @return {!angular.$parse.Expression} + */ +angular.$sce.parseAs = function(type, expression) {}; + +/** + * @param {string} type + * @param {*} maybeTrusted + * @return {string} + */ +angular.$sce.getTrusted = function(type, maybeTrusted) {}; + +/** + * @param {string} type + * @param {string} trustedValue + * @return {*} + */ +angular.$sce.trustAs = function(type, trustedValue) {}; + +/** + * @param {string} expression + * @return {!angular.$parse.Expression} + */ +angular.$sce.parseAsHtml = function(expression) {}; + +/** + * @param {string} expression + * @return {!angular.$parse.Expression} + */ +angular.$sce.parseAsCss = function(expression) {}; + +/** + * @param {string} expression + * @return {!angular.$parse.Expression} + */ +angular.$sce.parseAsUrl = function(expression) {}; + +/** + * @param {string} expression + * @return {!angular.$parse.Expression} + */ +angular.$sce.parseAsJs = function(expression) {}; + +/** + * @param {string} expression + * @return {!angular.$parse.Expression} + */ +angular.$sce.parseAsResourceUrl = function(expression) {}; + +/** + * @param {*} maybeTrusted + * @return {string} + */ +angular.$sce.getTrustedHtml = function(maybeTrusted) {}; + +/** + * @param {*} maybeTrusted + * @return {string} + */ +angular.$sce.getTrustedCss = function(maybeTrusted) {}; + +/** + * @param {*} maybeTrusted + * @return {string} + */ +angular.$sce.getTrustedUrl = function(maybeTrusted) {}; + +/** + * @param {*} maybeTrusted + * @return {string} + */ +angular.$sce.getTrustedJs = function(maybeTrusted) {}; + +/** + * @param {*} maybeTrusted + * @return {string} + */ +angular.$sce.getTrustedResourceUrl = function(maybeTrusted) {}; + +/** + * @param {string} trustedValue + * @return {*} + */ +angular.$sce.trustAsHtml = function(trustedValue) {}; + +/** + * @param {string} trustedValue + * @return {*} + */ +angular.$sce.trustAsCss = function(trustedValue) {}; + +/** + * @param {string} trustedValue + * @return {*} + */ +angular.$sce.trustAsUrl = function(trustedValue) {}; + +/** + * @param {string} trustedValue + * @return {*} + */ +angular.$sce.trustAsJs = function(trustedValue) {}; + +/** + * @param {string} trustedValue + * @return {*} + */ +angular.$sce.trustAsResourceUrl = function(trustedValue) {}; + +/****************************************************************************** + * $sceDelegate Service + *****************************************************************************/ + +/** + * Ref: http://docs.angularjs.org/api/ng/service/$sceDelegate + * + * @constructor + */ +angular.$sceDelegate = function() {}; + +/** + * @param {string} type + * @param {*} value + * @return {*} + */ +angular.$sceDelegate.prototype.trustAs = function(type, value) {}; + +/** + * Note: because this method overrides Object.prototype.valueOf, the value + * parameter needs to be annotated as optional to keep the compiler happy (as + * otherwise the signature won't match Object.prototype.valueOf). + * + * @override + * @param {*=} value + * @return {*} + */ +angular.$sceDelegate.prototype.valueOf = function(value) {}; + +/** + * @param {string} type + * @param {*} maybeTrusted + * @return {*} + */ +angular.$sceDelegate.prototype.getTrusted = function(type, maybeTrusted) {}; + +/****************************************************************************** + * $sceDelegateProvider Service + *****************************************************************************/ + +/** + * Ref: http://docs.angularjs.org/api/ng/provider/$sceDelegateProvider + * + * @constructor + */ +angular.$sceDelegateProvider = function() {}; + +/** + * @param {Array.<string>=} opt_whitelist + * @return {!Array.<string>} + */ +angular.$sceDelegateProvider.prototype.resourceUrlWhitelist = function( + opt_whitelist) {}; + +/** + * @param {Array.<string>=} opt_blacklist + * @return {!Array.<string>} + */ +angular.$sceDelegateProvider.prototype.resourceUrlBlacklist = function( + opt_blacklist) {}; + +/****************************************************************************** + * $templateCache Service + *****************************************************************************/ + +/** + * @typedef {!angular.$cacheFactory.Cache.<string>} + */ +angular.$templateCache; + +/****************************************************************************** + * $timeout Service + *****************************************************************************/ + +/** + * @typedef {function(function(), number=, boolean=):!angular.$q.Promise} + */ +angular.$timeout; + +/** + * Augment the angular.$timeout type definition by reopening the type via an + * artificial angular.$timeout instance. + * + * This allows us to define methods on function objects which is something + * that can't be expressed via typical type annotations. + * + * @type {angular.$timeout} + */ +angular.$timeout_; + +/** + * @type {function(angular.$q.Promise=):boolean} + */ +angular.$timeout_.cancel = function(promise) {}; + +/****************************************************************************** + * $window Service + *****************************************************************************/ + +/** @typedef {!Window} */ +angular.$window; diff --git a/src/closure/conf/externs/bingmaps.js b/src/closure/conf/externs/bingmaps.js new file mode 100755 index 00000000..99da4d02 --- /dev/null +++ b/src/closure/conf/externs/bingmaps.js @@ -0,0 +1,176 @@ +/** + * @externs + */ + + + +/** + * @constructor + */ +var BingMapsCoverageArea = function() {}; + + +/** + * @type {Array.<number>} + */ +BingMapsCoverageArea.prototype.bbox; + + +/** + * @type {number} + */ +BingMapsCoverageArea.prototype.zoomMax; + + +/** + * @type {number} + */ +BingMapsCoverageArea.prototype.zoomMin; + + + +/** + * @constructor + */ +var BingMapsImageryProvider = function() {}; + + +/** + * @type {string} + */ +BingMapsImageryProvider.prototype.attribution; + + +/** + * @type {Array.<BingMapsCoverageArea>} + */ +BingMapsImageryProvider.prototype.coverageAreas; + + + +/** + * @constructor + */ +var BingMapsImageryMetadataResponse = function() {}; + + +/** + * @type {string} + */ +BingMapsImageryMetadataResponse.prototype.authenticationResultCode; + + +/** + * @type {string} + */ +BingMapsImageryMetadataResponse.prototype.brandLogoUri; + + +/** + * @type {string} + */ +BingMapsImageryMetadataResponse.prototype.copyright; + + +/** + * @type {Array.<BingMapsResourceSet>} + */ +BingMapsImageryMetadataResponse.prototype.resourceSets; + + +/** + * @type {number} + */ +BingMapsImageryMetadataResponse.prototype.statusCode; + + +/** + * @type {string} + */ +BingMapsImageryMetadataResponse.prototype.statusDescription; + + +/** + * @type {string} + */ +BingMapsImageryMetadataResponse.prototype.traceId; + + + +/** + * @constructor + */ +var BingMapsResource = function() {}; + + +/** + * @type {number} + */ +BingMapsResource.prototype.imageHeight; + + +/** + * @type {string} + */ +BingMapsResource.prototype.imageUrl; + + +/** + * @type {Array.<string>} + */ +BingMapsResource.prototype.imageUrlSubdomains; + + +/** + * @type {number} + */ +BingMapsResource.prototype.imageWidth; + + +/** + * @type {Array.<BingMapsImageryProvider>} + */ +BingMapsResource.prototype.imageryProviders; + + +/** + * @type {Object} + */ +BingMapsResource.prototype.vintageEnd; + + +/** + * @type {Object} + */ +BingMapsResource.prototype.vintageStart; + + +/** + * @type {number} + */ +BingMapsResource.prototype.zoomMax; + + +/** + * @type {number} + */ +BingMapsResource.prototype.zoomMin; + + + +/** + * @constructor + */ +var BingMapsResourceSet = function() {}; + + +/** + * @type {number} + */ +BingMapsResourceSet.prototype.estimatedTotal; + + +/** + * @type {Array.<BingMapsResource>} + */ +BingMapsResourceSet.prototype.resources; \ No newline at end of file diff --git a/src/closure/conf/externs/bootstrap.js b/src/closure/conf/externs/bootstrap.js new file mode 100755 index 00000000..fb49fcfd --- /dev/null +++ b/src/closure/conf/externs/bootstrap.js @@ -0,0 +1,242 @@ +/** + * @fileoverview Externs for Twitter Bootstrap + * @see http://twitter.github.com/bootstrap/ + * + * @author Qamal Kosim-Satyaputra + * @externs + */ + + + +// --- Modal --- + + + +/** @constructor */ +jQuery.modal.options = function() {}; + +/** @type {boolean} */ +jQuery.modal.options.prototype.backdrop; + +/** @type {boolean} */ +jQuery.modal.options.prototype.keyboard; + +/** @type {boolean} */ +jQuery.modal.options.prototype.show; + +/** + * @param {=(string|jQuery.modal.options)} opt_eventOrOptions + * @return {jQuery} + */ +jQuery.prototype.modal = function(opt_eventOrOptions) {}; + + + +// --- Dropdown --- + + + +/** + * @return {jQuery} + */ +jQuery.prototype.dropdown = function() {}; + + + +// --- Scroll Spy --- + + + +/** @constructor */ +jQuery.scrollspy.options = function() {}; + +/** @type {number} */ +jQuery.scrollspy.options.prototype.offset; + +/** + * @param {=jQuery.scrollspy.options} opt_options + * @return {jQuery} + */ +jQuery.prototype.scrollspy = function(opt_options) {}; + + + +// --- Tabs --- + + + +/** + * @param {=string} opt_event + * @return {jQuery} + */ +jQuery.prototype.tab = function(opt_event) {}; + + + +// --- Tooltips --- + + + +/** @constructor */ +jQuery.tooltip.options = function() {}; + +/** @type {boolean} */ +jQuery.tooltip.prototype.animation; + +/** @type {string|function} */ +jQuery.tooltip.prototype.placement; + +/** @type {string} */ +jQuery.tooltip.prototype.selector; + +/** @type {string|function} */ +jQuery.tooltip.prototype.title; + +/** @type {string} */ +jQuery.tooltip.prototype.trigger; + +/** @type {number|{show: number, hide: number}} */ +jQuery.tooltip.prototype.delay; + +/** + * @param {=(string|jQuery.tooltip.options)} opt_eventOrOptions + * @return {jQuery} + */ +jQuery.prototype.tooltip = function(opt_eventOrOptions) {}; + + + +// --- Popovers --- + + + +/** @constructor */ +jQuery.popover.options = function() {}; + +/** @type {boolean} */ +jQuery.popover.prototype.animation; + +/** @type {string|function} */ +jQuery.popover.prototype.placement; + +/** @type {string} */ +jQuery.popover.prototype.selector; + +/** @type {string} */ +jQuery.popover.prototype.trigger; + +/** @type {string|function} */ +jQuery.popover.prototype.title; + +/** @type {string|function} */ +jQuery.popover.prototype.content; + +/** @type {number|{show: number, hide: number}} */ +jQuery.popover.prototype.delay; + +/** + * @param {=(string|jQuery.tooltip.options)} opt_eventOrOptions + * @return {jQuery} + */ +jQuery.prototype.popover = function(opt_eventOrOptions) {}; + + + +// --- Alerts --- + + + +/** + * @param {=string} opt_event + * @return {jQuery} + */ +jQuery.prototype.alert = function(opt_event) {}; + + + +// --- Buttons --- + + + +/** + * @param {=string} opt_state + * @return {jQuery} + */ +jQuery.prototype.button = function(opt_state) {}; + + + +// --- Collapse --- + + + +/** @constructor */ +jQuery.collapse.options = function() {}; + +/** @type {jQuerySelector} */ +jQuery.collapse.options.prototype.parent; + +/** @type {boolean} */ +jQuery.collapse.options.prototype.toggle; + +/** + * @param {=(string|jQuery.collapse.options)} opt_eventOrOptions + */ +jQuery.prototype.collapse = function(opt_eventOrOptions) {}; + + + +// --- Carousel --- + + + +/** @constructor */ +jQuery.carousel.options = function() {}; + +/** @type {number} */ +jQuery.carousel.options.prototype.interval; + +/** @type {string} */ +jQuery.carousel.options.prototype.pause; + +/** + * @param {=(string|jQuery.carousel.options})} opt_eventOrOptions + */ +jQuery.prototype.carousel = function(opt_eventOrOptions) {}; + + + +// --- Typeahead --- + + + +/** @constructor */ +jQuery.typeahead.options = function() {}; + +/** @type {Array} */ +jQuery.typeahead.options.prototype.source; + +/** @type {number} */ +jQuery.typeahead.options.prototype.items; + +/** @type {function} */ +jQuery.typeahead.options.prototype.matcher; + +/** @type {function} */ +jQuery.typeahead.options.prototype.sorter; + +/** @type {function} */ +jQuery.typeahead.options.prototype.highlighter; + +/** + * @param {=(string|jQuery.typeahead.options)} opt_options + * @return {jQuery} + */ +jQuery.prototype.typeahead = function(opt_options) {}; + +/** + * @param {Element|jQuery|jQuerySelector} + * @param {=jQuery.typeahead.options} opt_options + * @return {jQuery} + */ +jQuery.prototype.typeahead.Constructor = function(element, opt_options) {}; \ No newline at end of file diff --git a/src/closure/conf/externs/geojson.js b/src/closure/conf/externs/geojson.js new file mode 100755 index 00000000..6ddf03a3 --- /dev/null +++ b/src/closure/conf/externs/geojson.js @@ -0,0 +1,171 @@ +/** + * @fileoverview Externs for GeoJSON. + * @see http://geojson.org/geojson-spec.html + * @externs + */ + + + +/** + * @constructor + */ +var GeoJSONObject = function() {}; + + +/** + * @type {!Array.<number>|undefined} + */ +GeoJSONObject.prototype.bbox; + + +/** + * @type {string} + */ +GeoJSONObject.prototype.type; + + +/** + * @type {!GeoJSONCRS|undefined} + */ +GeoJSONObject.prototype.crs; + + + +/** + * @constructor + */ +var GeoJSONCRS = function() {}; + + +/** + * CRS type. One of `link` or `name`. + * @type {string} + */ +GeoJSONCRS.prototype.type; + + +/** + * TODO: remove GeoJSONCRSCode when http://jira.codehaus.org/browse/GEOS-5996 + * is fixed and widely deployed. + * @type {!GeoJSONCRSCode|!GeoJSONCRSName|!GeoJSONLink} + */ +GeoJSONCRS.prototype.properties; + + + +/** + * `GeoJSONCRSCode` is not part of the GeoJSON specification, but is generated + * by GeoServer. + * TODO: remove GeoJSONCRSCode when http://jira.codehaus.org/browse/GEOS-5996 + * is fixed and widely deployed. + * @constructor + */ +var GeoJSONCRSCode = function() {}; + + + +/** + * @constructor + */ +var GeoJSONCRSName = function() {}; + + +/** + * TODO: remove this when http://jira.codehaus.org/browse/GEOS-5996 is fixed + * and widely deployed. + * @type {string} + */ +GeoJSONCRSName.prototype.code; + + +/** + * @type {string} + */ +GeoJSONCRSName.prototype.name; + + + +/** + * @constructor + * @extends {GeoJSONObject} + */ +var GeoJSONGeometry = function() {}; + + +/** + * @type {!Array.<number>|!Array.<!Array.<number>>| + * !Array.<!Array.<!Array.<number>>>} + */ +GeoJSONGeometry.prototype.coordinates; + + + +/** + * @constructor + * @extends {GeoJSONObject} + */ +var GeoJSONGeometryCollection = function() {}; + + +/** + * @type {!Array.<GeoJSONGeometry>} + */ +GeoJSONGeometryCollection.prototype.geometries; + + + +/** + * @constructor + * @extends {GeoJSONObject} + */ +var GeoJSONFeature = function() {}; + + +/** + * @type {GeoJSONGeometry|GeoJSONGeometryCollection} + */ +GeoJSONFeature.prototype.geometry; + + +/** + * @type {number|string|undefined} + */ +GeoJSONFeature.prototype.id; + + +/** + * @type {Object.<string, *>} + */ +GeoJSONFeature.prototype.properties; + + + +/** + * @constructor + * @extends {GeoJSONObject} + */ +var GeoJSONFeatureCollection = function() {}; + + +/** + * @type {!Array.<GeoJSONFeature>} + */ +GeoJSONFeatureCollection.prototype.features; + + + +/** + * @constructor + */ +var GeoJSONLink = function() {}; + + +/** + * @type {string} + */ +GeoJSONLink.prototype.href; + +/** + * @type {string} + */ +GeoJSONLink.prototype.type; \ No newline at end of file diff --git a/src/closure/conf/externs/html2canvas.js b/src/closure/conf/externs/html2canvas.js new file mode 100755 index 00000000..d12202e3 --- /dev/null +++ b/src/closure/conf/externs/html2canvas.js @@ -0,0 +1,8 @@ +/** + * + * @param {type} arg1 + * @param {type} arg2 + * @returns {html2canvas} + */ +function html2canvas (arg1, arg2) {}; + diff --git a/src/closure/conf/externs/jquery-1.9.js b/src/closure/conf/externs/jquery-1.9.js new file mode 100755 index 00000000..72b80b31 --- /dev/null +++ b/src/closure/conf/externs/jquery-1.9.js @@ -0,0 +1,2166 @@ +/* + * Copyright 2011 The Closure Compiler Authors. + * + * 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. + */ + +/** + * @fileoverview Externs for jQuery 1.9.1 + * + * Note that some functions use different return types depending on the number + * of parameters passed in. In these cases, you may need to annotate the type + * of the result in your code, so the JSCompiler understands which type you're + * expecting. For example: + * <code>var elt = /** @type {Element} * / (foo.get(0));</code> + * + * @see http://api.jquery.com/ + * @externs + */ + +/** + * @typedef {(Window|Document|Element|Array.<Element>|string|jQuery| + * NodeList)} + */ +var jQuerySelector; + +/** @typedef {function(...)|Array.<function(...)>} */ +var jQueryCallback; + +/** @typedef { + { + accepts: (Object.<string, string>|undefined), + async: (?boolean|undefined), + beforeSend: (function(jQuery.jqXHR, (jQueryAjaxSettings|Object.<string, *>))|undefined), + cache: (?boolean|undefined), + complete: (function(jQuery.jqXHR, string)|undefined), + contents: (Object.<string, RegExp>|undefined), + contentType: (?string|undefined), + context: (Object.<?, ?>|jQueryAjaxSettings|undefined), + converters: (Object.<string, Function>|undefined), + crossDomain: (?boolean|undefined), + data: (Object.<?, ?>|?string|Array.<?>|undefined), + dataFilter: (function(string, string):?|undefined), + dataType: (?string|undefined), + error: (function(jQuery.jqXHR, string, string)|undefined), + global: (?boolean|undefined), + headers: (Object.<?, ?>|undefined), + ifModified: (?boolean|undefined), + isLocal: (?boolean|undefined), + jsonp: (?string|undefined), + jsonpCallback: (?string|function()|undefined), + mimeType: (?string|undefined), + password: (?string|undefined), + processData: (?boolean|undefined), + scriptCharset: (?string|undefined), + statusCode: (Object.<number, function()>|undefined), + success: (function(?, string, jQuery.jqXHR)|undefined), + timeout: (?number|undefined), + traditional: (?boolean|undefined), + type: (?string|undefined), + url: (?string|undefined), + username: (?string|undefined), + xhr: (function():(ActiveXObject|XMLHttpRequest)|undefined), + xhrFields: (Object.<?, ?>|undefined) + }} */ +var jQueryAjaxSettings; + +/** + * @constructor + * @param {(jQuerySelector|Element|Object|Array.<Element>|jQuery|string| + * function())=} arg1 + * @param {(Element|jQuery|Document| + * Object.<string, (string|function(!jQuery.event=))>)=} arg2 + * @return {!jQuery} + */ +function jQuery(arg1, arg2) {} + +/** + * @constructor + * @extends {jQuery} + * @param {(jQuerySelector|Element|Object|Array.<Element>|jQuery|string| + * function())=} arg1 + * @param {(Element|jQuery|Document| + * Object.<string, (string|function(!jQuery.event=))>)=} arg2 + * @return {!jQuery} + */ +function $(arg1, arg2) {} + +/** + * @param {(jQuerySelector|Array.<Element>|string|jQuery)} arg1 + * @param {Element=} context + * @return {!jQuery} + * @nosideeffects + */ +jQuery.prototype.add = function(arg1, context) {}; + +/** + * @param {(jQuerySelector|Array.<Element>|string|jQuery)=} arg1 + * @return {!jQuery} + * @nosideeffects + */ +jQuery.prototype.addBack = function(arg1) {}; + +/** + * @param {(string|function(number,String))} arg1 + * @return {!jQuery} + */ +jQuery.prototype.addClass = function(arg1) {}; + +/** + * @param {(string|Element|jQuery|function(number))} arg1 + * @param {(string|Element|Array.<Element>|jQuery)=} content + * @return {!jQuery} + */ +jQuery.prototype.after = function(arg1, content) {}; + +/** + * @param {(string|jQueryAjaxSettings|Object.<string,*>)} arg1 + * @param {(jQueryAjaxSettings|Object.<string, *>)=} settings + * @return {jQuery.jqXHR} + */ +jQuery.ajax = function(arg1, settings) {}; + +/** + * @param {(string|jQueryAjaxSettings|Object.<string, *>)} arg1 + * @param {(jQueryAjaxSettings|Object.<string, *>)=} settings + * @return {jQuery.jqXHR} + */ +$.ajax = function(arg1, settings) {}; + +/** + * @param {function(!jQuery.event,XMLHttpRequest,(jQueryAjaxSettings|Object.<string, *>))} handler + * @return {!jQuery} + */ +jQuery.prototype.ajaxComplete = function(handler) {}; + +/** + * @param {function(!jQuery.event,jQuery.jqXHR,(jQueryAjaxSettings|Object.<string, *>),*)} handler + * @return {!jQuery} + */ +jQuery.prototype.ajaxError = function(handler) {}; + +/** + * @param {(string|function((jQueryAjaxSettings|Object.<string, *>),(jQueryAjaxSettings|Object.<string, *>),jQuery.jqXHR))} dataTypes + * @param {function((jQueryAjaxSettings|Object.<string, *>),(jQueryAjaxSettings|Object.<string, *>),jQuery.jqXHR)=} handler + */ +jQuery.ajaxPrefilter = function(dataTypes, handler) {}; + +/** + * @param {(string|function((jQueryAjaxSettings|Object.<string, *>),(jQueryAjaxSettings|Object.<string, *>),jQuery.jqXHR))} dataTypes + * @param {function((jQueryAjaxSettings|Object.<string, *>),(jQueryAjaxSettings|Object.<string, *>),jQuery.jqXHR)=} handler + */ +$.ajaxPrefilter = function(dataTypes, handler) {}; + +/** + * @param {function(!jQuery.event,jQuery.jqXHR,(jQueryAjaxSettings|Object.<string, *>))} handler + * @return {!jQuery} + */ +jQuery.prototype.ajaxSend = function(handler) {}; + +/** @const {jQueryAjaxSettings|Object.<string, *>} */ +jQuery.ajaxSettings; + +/** @const {jQueryAjaxSettings|Object.<string, *>} */ +$.ajaxSettings = {}; + +/** @type {Object.<string, boolean>} */ +jQuery.ajaxSettings.flatOptions = {}; + +/** @type {Object.<string, boolean>} */ +$.ajaxSettings.flatOptions = {}; + +/** @type {boolean} */ +jQuery.ajaxSettings.processData; + +/** @type {boolean} */ +$.ajaxSettings.processData; + +/** @type {Object.<string, string>} */ +jQuery.ajaxSettings.responseFields = {}; + +/** @type {Object.<string, string>} */ +$.ajaxSettings.responseFields = {}; + +/** @param {jQueryAjaxSettings|Object.<string, *>} options */ +jQuery.ajaxSetup = function(options) {}; + +/** @param {jQueryAjaxSettings|Object.<string, *>} options */ +$.ajaxSetup = function(options) {}; + +/** + * @param {function()} handler + * @return {!jQuery} + */ +jQuery.prototype.ajaxStart = function(handler) {}; + +/** + * @param {function()} handler + * @return {!jQuery} + */ +jQuery.prototype.ajaxStop = function(handler) {}; + +/** + * @param {function(!jQuery.event,XMLHttpRequest,(jQueryAjaxSettings|Object.<string, *>), ?)} handler + * @return {!jQuery} + */ +jQuery.prototype.ajaxSuccess = function(handler) {}; + +/** + * @deprecated Please use .addBack(selector) instead. + * @return {!jQuery} + * @nosideeffects + */ +jQuery.prototype.andSelf = function() {}; + +/** + * @param {Object.<string,*>} properties + * @param {(string|number|function()|Object.<string,*>)=} arg2 + * @param {(string|function())=} easing + * @param {function()=} complete + * @return {!jQuery} + */ +jQuery.prototype.animate = function(properties, arg2, easing, complete) {}; + +/** + * @param {(string|Element|Array.<Element>|jQuery|function(number,string))} arg1 + * @param {...(string|Element|Array.<Element>|jQuery)} content + * @return {!jQuery} + */ +jQuery.prototype.append = function(arg1, content) {}; + +/** + * @param {(jQuerySelector|Element|jQuery)} target + * @return {!jQuery} + */ +jQuery.prototype.appendTo = function(target) {}; + +/** + * @param {(string|Object.<string,*>)} arg1 + * @param {(string|number|boolean|function(number,string))=} arg2 + * @return {(string|!jQuery)} + */ +jQuery.prototype.attr = function(arg1, arg2) {}; + +/** + * @param {(string|Element|jQuery|function())} arg1 + * @param {(string|Element|Array.<Element>|jQuery)=} content + * @return {!jQuery} + */ +jQuery.prototype.before = function(arg1, content) {}; + +/** + * @param {(string|Object.<string, function(!jQuery.event=)>)} arg1 + * @param {(Object.<string, *>|function(!jQuery.event=)|boolean)=} eventData + * @param {(function(!jQuery.event=)|boolean)=} arg3 + * @return {!jQuery} + */ +jQuery.prototype.bind = function(arg1, eventData, arg3) {}; + +/** + * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1 + * @param {function(!jQuery.event=)=} handler + * @return {!jQuery} + */ +jQuery.prototype.blur = function(arg1, handler) {}; + +/** + * @constructor + * @private + */ +jQuery.callbacks = function () {}; + +/** + * @param {string=} flags + * @return {jQuery.callbacks} + */ +jQuery.Callbacks = function (flags) {}; + +/** @param {function()} callbacks */ +jQuery.callbacks.prototype.add = function(callbacks) {}; + +/** @return {undefined} */ +jQuery.callbacks.prototype.disable = function() {}; + +/** @return {undefined} */ +jQuery.callbacks.prototype.empty = function() {}; + +/** @param {...*} var_args */ +jQuery.callbacks.prototype.fire = function(var_args) {}; + +/** @return {boolean} */ +jQuery.callbacks.prototype.fired = function() {}; + +/** @param {...*} var_args */ +jQuery.callbacks.prototype.fireWith = function(var_args) {}; + +/** + * @param {function()} callback + * @return {boolean} + * @nosideeffects + */ +jQuery.callbacks.prototype.has = function(callback) {}; + +/** @return {undefined} */ +jQuery.callbacks.prototype.lock = function() {}; + +/** @return {boolean} */ +jQuery.callbacks.prototype.locked = function() {}; + +/** @param {function()} callbacks */ +jQuery.callbacks.prototype.remove = function(callbacks) {}; + +/** + * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1 + * @param {function(!jQuery.event=)=} handler + * @return {!jQuery} + */ +jQuery.prototype.change = function(arg1, handler) {}; + +/** + * @param {jQuerySelector=} selector + * @return {!jQuery} + * @nosideeffects + */ +jQuery.prototype.children = function(selector) {}; + +/** + * @param {string=} queueName + * @return {!jQuery} + */ +jQuery.prototype.clearQueue = function(queueName) {}; + +/** + * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1 + * @param {function(!jQuery.event=)=} handler + * @return {!jQuery} + */ +jQuery.prototype.click = function(arg1, handler) {}; + +/** + * @param {boolean=} withDataAndEvents + * @param {boolean=} deepWithDataAndEvents + * @return {!jQuery} + * @suppress {checkTypes} see https://code.google.com/p/closure-compiler/issues/detail?id=583 + */ +jQuery.prototype.clone = function(withDataAndEvents, deepWithDataAndEvents) {}; + +/** + * @param {(jQuerySelector|jQuery|Element|string)} arg1 + * @param {Element=} context + * @return {!jQuery} + * @nosideeffects + */ +jQuery.prototype.closest = function(arg1, context) {}; + +/** + * @param {Element} container + * @param {Element} contained + * @return {boolean} + */ +jQuery.contains = function(container, contained) {}; + +/** + * @param {Element} container + * @param {Element} contained + * @return {boolean} + */ +$.contains = function(container, contained) {}; + +/** + * @return {!jQuery} + * @nosideeffects + */ +jQuery.prototype.contents = function() {}; + +/** @type {Element|Document} */ +jQuery.prototype.context; + +/** + * @param {(string|Object.<string,*>)} arg1 + * @param {(string|number|function(number,*))=} arg2 + * @return {(string|!jQuery)} + */ +jQuery.prototype.css = function(arg1, arg2) {}; + +/** @type {Object.<string, *>} */ +jQuery.cssHooks; + +/** @type {Object.<string, *>} */ +$.cssHooks; + +/** + * @param {Element} elem + * @param {string=} key + * @param {*=} value + * @return {*} + */ +jQuery.data = function(elem, key, value) {}; + +/** + * @param {(string|Object.<string, *>)=} arg1 + * @param {*=} value + * @return {*} + */ +jQuery.prototype.data = function(arg1, value) {}; + +/** + * @param {Element} elem + * @param {string=} key + * @param {*=} value + * @return {*} + */ +$.data = function(elem, key, value) {}; + +/** + * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1 + * @param {function(!jQuery.event=)=} handler + * @return {!jQuery} + */ +jQuery.prototype.dblclick = function(arg1, handler) {}; + +/** + * @constructor + * @implements {jQuery.Promise} + * @param {function()=} opt_fn + * @see http://api.jquery.com/category/deferred-object/ + */ +jQuery.deferred = function(opt_fn) {}; + +/** + * @constructor + * @extends {jQuery.deferred} + * @param {function()=} opt_fn + * @return {jQuery.Deferred} + */ +jQuery.Deferred = function(opt_fn) {}; + +/** + * @constructor + * @extends {jQuery.deferred} + * @param {function()=} opt_fn + * @see http://api.jquery.com/category/deferred-object/ + */ +$.deferred = function(opt_fn) {}; + +/** + * @constructor + * @extends {jQuery.deferred} + * @param {function()=} opt_fn + * @return {jQuery.deferred} + */ +$.Deferred = function(opt_fn) {}; + +/** + * @override + * @param {jQueryCallback} alwaysCallbacks + * @param {jQueryCallback=} alwaysCallbacks2 + * @return {jQuery.deferred} + */ +jQuery.deferred.prototype.always + = function(alwaysCallbacks, alwaysCallbacks2) {}; + +/** + * @override + * @param {jQueryCallback} doneCallbacks + * @param {jQueryCallback=} doneCallbacks2 + * @return {jQuery.deferred} + */ +jQuery.deferred.prototype.done = function(doneCallbacks, doneCallbacks2) {}; + +/** + * @override + * @param {jQueryCallback} failCallbacks + * @param {jQueryCallback=} failCallbacks2 + * @return {jQuery.deferred} + */ +jQuery.deferred.prototype.fail = function(failCallbacks, failCallbacks2) {}; + +/** + * @param {...*} var_args + * @return {jQuery.deferred} + */ +jQuery.deferred.prototype.notify = function(var_args) {}; + +/** + * @param {Object} context + * @param {...*} var_args + * @return {jQuery.deferred} + */ +jQuery.deferred.prototype.notifyWith = function(context, var_args) {}; + +/** + * @deprecated Please use deferred.then() instead. + * @override + * @param {function()=} doneFilter + * @param {function()=} failFilter + * @param {function()=} progressFilter + * @return {jQuery.Promise} + */ +jQuery.deferred.prototype.pipe = + function(doneFilter, failFilter, progressFilter) {}; + +/** + * @param {jQueryCallback} progressCallbacks + * @return {jQuery.deferred} + */ +jQuery.deferred.prototype.progress = function(progressCallbacks) {}; + +/** + * @param {Object=} target + * @return {jQuery.Promise} + */ +jQuery.deferred.prototype.promise = function(target) {}; + +/** + * @param {...*} var_args + * @return {jQuery.deferred} + */ +jQuery.deferred.prototype.reject = function(var_args) {}; + +/** + * @param {Object} context + * @param {Array.<*>=} args + * @return {jQuery.deferred} + */ +jQuery.deferred.prototype.rejectWith = function(context, args) {}; + +/** + * @param {...*} var_args + * @return {jQuery.deferred} + */ +jQuery.deferred.prototype.resolve = function(var_args) {}; + +/** + * @param {Object} context + * @param {Array.<*>=} args + * @return {jQuery.deferred} + */ +jQuery.deferred.prototype.resolveWith = function(context, args) {}; + +/** @return {string} */ +jQuery.deferred.prototype.state = function() {}; + +/** + * @override + * @param {jQueryCallback} doneCallbacks + * @param {jQueryCallback=} failCallbacks + * @param {jQueryCallback=} progressCallbacks + * @return {jQuery.deferred} + */ +jQuery.deferred.prototype.then + = function(doneCallbacks, failCallbacks, progressCallbacks) {}; + +/** + * @param {number} duration + * @param {string=} queueName + * @return {!jQuery} + */ +jQuery.prototype.delay = function(duration, queueName) {}; + +/** + * @param {string} selector + * @param {(string|Object.<string,*>)} arg2 + * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg3 + * @param {function(!jQuery.event=)=} handler + * @return {!jQuery} + */ +jQuery.prototype.delegate = function(selector, arg2, arg3, handler) {}; + +/** + * @param {Element} elem + * @param {string=} queueName + */ +jQuery.dequeue = function(elem, queueName) {}; + +/** + * @param {string=} queueName + * @return {!jQuery} + */ +jQuery.prototype.dequeue = function(queueName) {}; + +/** + * @param {Element} elem + * @param {string=} queueName + */ +$.dequeue = function(elem, queueName) {}; + +/** + * @param {jQuerySelector=} selector + * @return {!jQuery} + */ +jQuery.prototype.detach = function(selector) {}; + +/** + * @param {Object} collection + * @param {function((number|string),?)} callback + * @return {Object} + */ +jQuery.each = function(collection, callback) {}; + +/** + * @param {function(number,Element)} fnc + * @return {!jQuery} + */ +jQuery.prototype.each = function(fnc) {}; + +/** + * @param {Object} collection + * @param {function((number|string),?)} callback + * @return {Object} + */ +$.each = function(collection, callback) {}; + +/** @return {!jQuery} */ +jQuery.prototype.empty = function() {}; + +/** + * @return {!jQuery} + * @nosideeffects + */ +jQuery.prototype.end = function() {}; + +/** + * @param {number} arg1 + * @return {!jQuery} + */ +jQuery.prototype.eq = function(arg1) {}; + +/** @param {string} message */ +jQuery.error = function(message) {}; + +/** + * @deprecated Please use .on( "error", handler ) instead. + * @param {(function(!jQuery.event=)|Object.<string, *>)} arg1 + * @param {function(!jQuery.event=)=} handler + * @return {!jQuery} + */ +jQuery.prototype.error = function(arg1, handler) {}; + +/** @param {string} message */ +$.error = function(message) {}; + +/** + * @constructor + * @param {string} eventType + */ +jQuery.event = function(eventType) {}; + +/** + * @constructor + * @extends {jQuery.event} + * @param {string} eventType + * @param {Object=} properties + * @return {jQuery.Event} + */ +jQuery.Event = function(eventType, properties) {}; + +/** + * @constructor + * @extends {jQuery.event} + * @param {string} eventType + */ +$.event = function(eventType) {}; + +/** + * @constructor + * @extends {jQuery.event} + * @param {string} eventType + * @param {Object=} properties + * @return {$.Event} + */ +$.Event = function(eventType, properties) {}; + +/** @type {Element} */ +jQuery.event.prototype.currentTarget; + +/** @type {Object.<string, *>} */ +jQuery.event.prototype.data; + +/** @type {Element} */ +jQuery.event.prototype.delegateTarget; + +/** + * @return {boolean} + * @nosideeffects + */ +jQuery.event.prototype.isDefaultPrevented = function() {}; + +/** + * @return {boolean} + * @nosideeffects + */ +jQuery.event.prototype.isImmediatePropagationStopped = function() {}; + +/** + * @return {boolean} + * @nosideeffects + */ +jQuery.event.prototype.isPropagationStopped = function() {}; + +/** @type {string} */ +jQuery.event.prototype.namespace; + +/** @type {Event} */ +jQuery.event.prototype.originalEvent; + +/** @type {number} */ +jQuery.event.prototype.pageX; + +/** @type {number} */ +jQuery.event.prototype.pageY; + +/** @return {undefined} */ +jQuery.event.prototype.preventDefault = function() {}; + +/** @type {Object.<string, *>} */ +jQuery.event.prototype.props; + +/** @type {Element} */ +jQuery.event.prototype.relatedTarget; + +/** @type {*} */ +jQuery.event.prototype.result; + +/** @return {undefined} */ +jQuery.event.prototype.stopImmediatePropagation = function() {}; + +/** @return {undefined} */ +jQuery.event.prototype.stopPropagation = function() {}; + +/** @type {Element} */ +jQuery.event.prototype.target; + +/** @type {number} */ +jQuery.event.prototype.timeStamp; + +/** @type {string} */ +jQuery.event.prototype.type; + +/** @type {number} */ +jQuery.event.prototype.which; + +/** + * @param {(Object|boolean)} arg1 + * @param {...*} var_args + * @return {Object} + */ +jQuery.extend = function(arg1, var_args) {}; + +/** + * @param {(Object|boolean)} arg1 + * @param {...*} var_args + * @return {Object} + */ +jQuery.prototype.extend = function(arg1, var_args) {}; + +/** + * @param {(Object|boolean)} arg1 + * @param {...*} var_args + * @return {Object} + */ +$.extend = function(arg1, var_args) {}; + +/** + * @param {(string|number|function())=} duration + * @param {(function()|string)=} arg2 + * @param {function()=} callback + * @return {!jQuery} + */ +jQuery.prototype.fadeIn = function(duration, arg2, callback) {}; + +/** + * @param {(string|number|function())=} duration + * @param {(function()|string)=} arg2 + * @param {function()=} callback + * @return {!jQuery} + */ +jQuery.prototype.fadeOut = function(duration, arg2, callback) {}; + +/** + * @param {(string|number)} duration + * @param {number} opacity + * @param {(function()|string)=} arg3 + * @param {function()=} callback + * @return {!jQuery} + */ +jQuery.prototype.fadeTo = function(duration, opacity, arg3, callback) {}; + +/** + * @param {(string|number|function())=} duration + * @param {(string|function())=} easing + * @param {function()=} callback + * @return {!jQuery} + */ +jQuery.prototype.fadeToggle = function(duration, easing, callback) {}; + +/** + * @param {(jQuerySelector|function(number,Element)|Element|jQuery)} arg1 + * @return {!jQuery} + * @see http://api.jquery.com/filter/ + */ +jQuery.prototype.filter = function(arg1) {}; + +/** + * @param {(jQuerySelector|jQuery|Element)} arg1 + * @return {!jQuery} + * @nosideeffects + */ +jQuery.prototype.find = function(arg1) {}; + +/** @return {!jQuery} */ +jQuery.prototype.first = function() {}; + +/** @see http://docs.jquery.com/Plugins/Authoring */ +jQuery.fn = jQuery.prototype; + +/** @see http://docs.jquery.com/Plugins/Authoring */ +$.fn = $.prototype; + +/** + * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1 + * @param {function(!jQuery.event=)=} handler + * @return {!jQuery} + */ +jQuery.prototype.focus = function(arg1, handler) {}; + +/** + * @param {(function(!jQuery.event=)|Object.<string, *>)} arg1 + * @param {function(!jQuery.event=)=} handler + * @return {!jQuery} + */ +jQuery.prototype.focusin = function(arg1, handler) {}; + +/** + * @param {(function(!jQuery.event=)|Object.<string, *>)} arg1 + * @param {function(!jQuery.event=)=} handler + * @return {!jQuery} + */ +jQuery.prototype.focusout = function(arg1, handler) {}; + +/** @const */ +jQuery.fx = {}; + +/** @const */ +$.fx = {}; + +/** @type {number} */ +jQuery.fx.interval; + +/** @type {number} */ +$.fx.interval; + +/** @type {boolean} */ +jQuery.fx.off; + +/** @type {boolean} */ +$.fx.off; + +/** + * @param {string} url + * @param {(Object.<string,*>|string| + * function(string,string,jQuery.jqXHR))=} data + * @param {(function(string,string,jQuery.jqXHR)|string)=} success + * @param {string=} dataType + * @return {jQuery.jqXHR} + */ +jQuery.get = function(url, data, success, dataType) {}; + +/** + * @param {number=} index + * @return {(Element|Array.<Element>)} + * @nosideeffects + */ +jQuery.prototype.get = function(index) {}; + +/** + * @param {string} url + * @param {(Object.<string,*>|string| + * function(string,string,jQuery.jqXHR))=} data + * @param {(function(string,string,jQuery.jqXHR)|string)=} success + * @param {string=} dataType + * @return {jQuery.jqXHR} + */ +$.get = function(url, data, success, dataType) {}; + +/** + * @param {string} url + * @param {(Object.<string,*>| + * function(Object.<string,*>,string,jQuery.jqXHR))=} data + * @param {function(Object.<string,*>,string,jQuery.jqXHR)=} success + * @return {jQuery.jqXHR} + * @see http://api.jquery.com/jquery.getjson/#jQuery-getJSON-url-data-success + */ +jQuery.getJSON = function(url, data, success) {}; + +/** + * @param {string} url + * @param {(Object.<string,*>| + * function(Object.<string,*>,string,jQuery.jqXHR))=} data + * @param {function(Object.<string,*>,string,jQuery.jqXHR)=} success + * @return {jQuery.jqXHR} + * @see http://api.jquery.com/jquery.getjson/#jQuery-getJSON-url-data-success + */ +$.getJSON = function(url, data, success) {}; + +/** + * @param {string} url + * @param {function(Node,string,jQuery.jqXHR)=} success + * @return {jQuery.jqXHR} + */ +jQuery.getScript = function(url, success) {}; + +/** + * @param {string} url + * @param {function(Node,string,jQuery.jqXHR)=} success + * @return {jQuery.jqXHR} + */ +$.getScript = function(url, success) {}; + +/** @param {string} code */ +jQuery.globalEval = function(code) {}; + +/** @param {string} code */ +$.globalEval = function(code) {}; + +/** + * @param {Array.<*>} arr + * @param {function(*,number)} fnc + * @param {boolean=} invert + * @return {Array.<*>} + */ +jQuery.grep = function(arr, fnc, invert) {}; + +/** + * @param {Array.<*>} arr + * @param {function(*,number)} fnc + * @param {boolean=} invert + * @return {Array.<*>} + */ +$.grep = function(arr, fnc, invert) {}; + +/** + * @param {(string|Element)} arg1 + * @return {!jQuery} + * @nosideeffects + */ +jQuery.prototype.has = function(arg1) {}; + +/** + * @param {string} className + * @return {boolean} + * @nosideeffects + */ +jQuery.prototype.hasClass = function(className) {}; + +/** + * @param {Element} elem + * @return {boolean} + * @nosideeffects + */ +jQuery.hasData = function(elem) {}; + +/** + * @param {Element} elem + * @return {boolean} + * @nosideeffects + */ +$.hasData = function(elem) {}; + +/** + * @param {(string|number|function(number,number))=} arg1 + * @return {(number|!jQuery)} + */ +jQuery.prototype.height = function(arg1) {}; + +/** + * @param {(string|number|function())=} duration + * @param {(function()|string)=} arg2 + * @param {function()=} callback + * @return {!jQuery} + */ +jQuery.prototype.hide = function(duration, arg2, callback) {}; + +/** @param {boolean} hold */ +jQuery.holdReady = function(hold) {}; + +/** @param {boolean} hold */ +$.holdReady = function(hold) {}; + +/** + * @param {function(!jQuery.event=)} arg1 + * @param {function(!jQuery.event=)=} handlerOut + * @return {!jQuery} + */ +jQuery.prototype.hover = function(arg1, handlerOut) {}; + +/** + * @param {(string|function(number,string))=} arg1 + * @return {(string|!jQuery)} + */ +jQuery.prototype.html = function(arg1) {}; + +/** + * @param {*} value + * @param {Array.<*>} arr + * @param {number=} fromIndex + * @return {number} + * @nosideeffects + */ +jQuery.inArray = function(value, arr, fromIndex) {}; + +/** + * @param {*} value + * @param {Array.<*>} arr + * @param {number=} fromIndex + * @return {number} + * @nosideeffects + */ +$.inArray = function(value, arr, fromIndex) {}; + +/** + * @param {(jQuerySelector|Element|jQuery)=} arg1 + * @return {number} + */ +jQuery.prototype.index = function(arg1) {}; + +/** + * @return {number} + * @nosideeffects + */ +jQuery.prototype.innerHeight = function() {}; + +/** + * @return {number} + * @nosideeffects + */ +jQuery.prototype.innerWidth = function() {}; + +/** + * @param {(jQuerySelector|Element|jQuery)} target + * @return {!jQuery} + */ +jQuery.prototype.insertAfter = function(target) {}; + +/** + * @param {(jQuerySelector|Element|jQuery)} target + * @return {!jQuery} + */ +jQuery.prototype.insertBefore = function(target) {}; + +/** + * @param {(jQuerySelector|function(number)|jQuery|Element)} arg1 + * @return {boolean} + */ +jQuery.prototype.is = function(arg1) {}; + +/** + * @param {*} obj + * @return {boolean} + * @nosideeffects + */ +jQuery.isArray = function(obj) {}; + +/** + * @param {*} obj + * @return {boolean} + * @nosideeffects + */ +$.isArray = function(obj) {}; + +/** + * @param {Object} obj + * @return {boolean} + * @nosideeffects + */ +jQuery.isEmptyObject = function(obj) {}; + +/** + * @param {Object} obj + * @return {boolean} + * @nosideeffects + */ +$.isEmptyObject = function(obj) {}; + +/** + * @param {*} obj + * @return {boolean} + * @nosideeffects + */ +jQuery.isFunction = function(obj) {}; + +/** + * @param {*} obj + * @return {boolean} + * @nosideeffects + */ +$.isFunction = function(obj) {}; + +/** + * @param {*} value + * @return {boolean} + * @nosideeffects + */ +jQuery.isNumeric = function(value) {}; + +/** + * @param {*} value + * @return {boolean} + * @nosideeffects + */ +$.isNumeric = function(value) {}; + +/** + * @param {*} obj + * @return {boolean} + * @nosideeffects + */ +jQuery.isPlainObject = function(obj) {}; + +/** + * @param {*} obj + * @return {boolean} + * @nosideeffects + */ +$.isPlainObject = function(obj) {}; + +/** + * @param {*} obj + * @return {boolean} + * @nosideeffects + */ +jQuery.isWindow = function(obj) {}; + +/** + * @param {*} obj + * @return {boolean} + * @nosideeffects + */ +$.isWindow = function(obj) {}; + +/** + * @param {Element} node + * @return {boolean} + * @nosideeffects + */ +jQuery.isXMLDoc = function(node) {}; + +/** + * @param {Element} node + * @return {boolean} + * @nosideeffects + */ +$.isXMLDoc = function(node) {}; + +/** @type {string} */ +jQuery.prototype.jquery; + +/** + * @constructor + * @extends {XMLHttpRequest} + * @implements {jQuery.Promise} + * @private + * @see http://api.jquery.com/jQuery.ajax/#jqXHR + */ +jQuery.jqXHR = function () {}; + +/** + * @override + * @param {jQueryCallback} alwaysCallbacks + * @param {jQueryCallback=} alwaysCallbacks2 + * @return {jQuery.jqXHR} + */ +jQuery.jqXHR.prototype.always = + function(alwaysCallbacks, alwaysCallbacks2) {}; + +/** + * @deprecated + * @param {function()} callback + * @return {jQuery.jqXHR} +*/ +jQuery.jqXHR.prototype.complete = function (callback) {}; + +/** + * @override + * @param {jQueryCallback} doneCallbacks + * @return {jQuery.jqXHR} + */ +jQuery.jqXHR.prototype.done = function(doneCallbacks) {}; + +/** + * @deprecated + * @param {function()} callback + * @return {jQuery.jqXHR} +*/ +jQuery.jqXHR.prototype.error = function (callback) {}; + +/** + * @override + * @param {jQueryCallback} failCallbacks + * @return {jQuery.jqXHR} + */ +jQuery.jqXHR.prototype.fail = function(failCallbacks) {}; + +/** + * @deprecated + * @override + */ +jQuery.jqXHR.prototype.onreadystatechange = function (callback) {}; + +/** + * @override + * @param {function()=} doneFilter + * @param {function()=} failFilter + * @param {function()=} progressFilter + * @return {jQuery.jqXHR} + */ +jQuery.jqXHR.prototype.pipe = + function(doneFilter, failFilter, progressFilter) {}; + +/** + * @deprecated + * @param {function()} callback + * @return {jQuery.jqXHR} +*/ +jQuery.jqXHR.prototype.success = function (callback) {}; + +/** + * @override + * @param {jQueryCallback} doneCallbacks + * @param {jQueryCallback=} failCallbacks + * @param {jQueryCallback=} progressCallbacks + * @return {jQuery.jqXHR} + */ +jQuery.jqXHR.prototype.then = + function(doneCallbacks, failCallbacks, progressCallbacks) {}; + +/** + * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1 + * @param {function(!jQuery.event=)=} handler + * @return {!jQuery} + */ +jQuery.prototype.keydown = function(arg1, handler) {}; + +/** + * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1 + * @param {function(!jQuery.event=)=} handler + * @return {!jQuery} + */ +jQuery.prototype.keypress = function(arg1, handler) {}; + +/** + * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1 + * @param {function(!jQuery.event=)=} handler + * @return {!jQuery} + */ +jQuery.prototype.keyup = function(arg1, handler) {}; + +/** @return {!jQuery} */ +jQuery.prototype.last = function() {}; + +/** @type {number} */ +jQuery.prototype.length; + +/** + * @deprecated Please avoid the document loading Event invocation of + * .load() and use .on( "load", handler ) instead. (The AJAX + * module invocation signature is OK.) + * @param {(function(!jQuery.event=)|Object.<string, *>|string)} arg1 + * @param {(function(!jQuery.event=)|Object.<string,*>|string)=} arg2 + * @param {function(string,string,XMLHttpRequest)=} complete + * @return {!jQuery} + */ +jQuery.prototype.load = function(arg1, arg2, complete) {}; + +/** + * @param {*} obj + * @return {Array.<*>} + */ +jQuery.makeArray = function(obj) {}; + +/** + * @param {*} obj + * @return {Array.<*>} + */ +$.makeArray = function(obj) {}; + +/** + * @param {(Array.<*>|Object.<string, *>)} arg1 + * @param {(function(*,number)|function(*,(string|number)))} callback + * @return {Array.<*>} + */ +jQuery.map = function(arg1, callback) {}; + +/** + * @param {function(number,Element)} callback + * @return {!jQuery} + */ +jQuery.prototype.map = function(callback) {}; + +/** + * @param {(Array.<*>|Object.<string, *>)} arg1 + * @param {(function(*,number)|function(*,(string|number)))} callback + * @return {Array.<*>} + */ +$.map = function(arg1, callback) {}; + +/** + * @param {Array.<*>} first + * @param {Array.<*>} second + * @return {Array.<*>} + */ +jQuery.merge = function(first, second) {}; + +/** + * @param {Array.<*>} first + * @param {Array.<*>} second + * @return {Array.<*>} + */ +$.merge = function(first, second) {}; + +/** + * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1 + * @param {function(!jQuery.event=)=} handler + * @return {!jQuery} + */ +jQuery.prototype.mousedown = function(arg1, handler) {}; + +/** + * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1 + * @param {function(!jQuery.event=)=} handler + * @return {!jQuery} + */ +jQuery.prototype.mouseenter = function(arg1, handler) {}; + +/** + * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1 + * @param {function(!jQuery.event=)=} handler + * @return {!jQuery} + */ +jQuery.prototype.mouseleave = function(arg1, handler) {}; + +/** + * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1 + * @param {function(!jQuery.event=)=} handler + * @return {!jQuery} + */ +jQuery.prototype.mousemove = function(arg1, handler) {}; + +/** + * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1 + * @param {function(!jQuery.event=)=} handler + * @return {!jQuery} + */ +jQuery.prototype.mouseout = function(arg1, handler) {}; + +/** + * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1 + * @param {function(!jQuery.event=)=} handler + * @return {!jQuery} + */ +jQuery.prototype.mouseover = function(arg1, handler) {}; + +/** + * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1 + * @param {function(!jQuery.event=)=} handler + * @return {!jQuery} + */ +jQuery.prototype.mouseup = function(arg1, handler) {}; + +/** + * @param {jQuerySelector=} selector + * @return {!jQuery} + * @nosideeffects + */ +jQuery.prototype.next = function(selector) {}; + +/** + * @param {string=} selector + * @return {!jQuery} + * @nosideeffects + */ +jQuery.prototype.nextAll = function(selector) {}; + +/** + * @param {(jQuerySelector|Element)=} arg1 + * @param {jQuerySelector=} filter + * @return {!jQuery} + * @nosideeffects + */ +jQuery.prototype.nextUntil = function(arg1, filter) {}; + +/** + * @param {boolean=} removeAll + * @return {Object} + */ +jQuery.noConflict = function(removeAll) {}; + +/** + * @param {boolean=} removeAll + * @return {Object} + */ +$.noConflict = function(removeAll) {}; + +/** + * @return {function()} + * @nosideeffects + */ +jQuery.noop = function() {}; + +/** + * @return {function()} + * @nosideeffects + */ +$.noop = function() {}; + +/** + * @param {(jQuerySelector|Array.<Element>|function(number)|jQuery)} arg1 + * @return {!jQuery} + */ +jQuery.prototype.not = function(arg1) {}; + +/** + * @return {number} + * @nosideeffects + */ +jQuery.now = function() {}; + +/** + * @return {number} + * @nosideeffects + */ +$.now = function() {}; + +/** + * @param {(string|Object.<string,*>)=} arg1 + * @param {(string|function(!jQuery.event=))=} selector + * @param {function(!jQuery.event=)=} handler + * @return {!jQuery} + */ +jQuery.prototype.off = function(arg1, selector, handler) {}; + +/** + * @param {({left:number,top:number}| + * function(number,{top:number,left:number}))=} arg1 + * @return {({left:number,top:number}|!jQuery)} + */ +jQuery.prototype.offset = function(arg1) {}; + +/** + * @return {!jQuery} + * @nosideeffects + */ +jQuery.prototype.offsetParent = function() {}; + +/** + * @param {(string|Object.<string,*>)} arg1 + * @param {*=} selector + * @param {*=} data + * @param {function(!jQuery.event=)=} handler + * @return {!jQuery} + */ +jQuery.prototype.on = function(arg1, selector, data, handler) {}; + +/** + * @param {(string|Object.<string,*>)} arg1 + * @param {*=} arg2 + * @param {*=} arg3 + * @param {function(!jQuery.event=)=} handler + * @return {!jQuery} + */ +jQuery.prototype.one = function(arg1, arg2, arg3, handler) {}; + +/** + * @param {boolean=} includeMargin + * @return {number} + * @nosideeffects + */ +jQuery.prototype.outerHeight = function(includeMargin) {}; + +/** + * @param {boolean=} includeMargin + * @return {number} + * @nosideeffects + */ +jQuery.prototype.outerWidth = function(includeMargin) {}; + +/** + * @param {(Object.<string, *>|Array.<Object.<string, *>>)} obj + * @param {boolean=} traditional + * @return {string} + */ +jQuery.param = function(obj, traditional) {}; + +/** + * @param {(Object.<string, *>|Array.<Object.<string, *>>)} obj + * @param {boolean=} traditional + * @return {string} + */ +$.param = function(obj, traditional) {}; + +/** + * @param {jQuerySelector=} selector + * @return {!jQuery} + * @nosideeffects + */ +jQuery.prototype.parent = function(selector) {}; + +/** + * @param {jQuerySelector=} selector + * @return {!jQuery} + * @nosideeffects + */ +jQuery.prototype.parents = function(selector) {}; + +/** + * @param {(jQuerySelector|Element)=} arg1 + * @param {jQuerySelector=} filter + * @return {!jQuery} + * @nosideeffects + */ +jQuery.prototype.parentsUntil = function(arg1, filter) {}; + +/** + * @param {string} data + * @param {(Element|boolean)=} context + * @param {boolean=} keepScripts + * @return {Array.<Element>} + */ +jQuery.parseHTML = function(data, context, keepScripts) {}; + +/** + * @param {string} data + * @param {(Element|boolean)=} context + * @param {boolean=} keepScripts + * @return {Array.<Element>} + */ +$.parseHTML = function(data, context, keepScripts) {}; + +/** + * @param {string} json + * @return {string|number|Object.<string, *>|Array.<?>|boolean} + */ +jQuery.parseJSON = function(json) {}; + +/** + * @param {string} json + * @return {Object.<string, *>} + */ +$.parseJSON = function(json) {}; + +/** + * @param {string} data + * @return {Document} + */ +jQuery.parseXML = function(data) {}; + +/** + * @param {string} data + * @return {Document} + */ +$.parseXML = function(data) {}; + +/** + * @return {{left:number,top:number}} + * @nosideeffects + */ +jQuery.prototype.position = function() {}; + +/** + * @param {string} url + * @param {(Object.<string,*>|string| + * function(string,string,jQuery.jqXHR))=} data + * @param {(function(string,string,jQuery.jqXHR)|string|null)=} success + * @param {string=} dataType + * @return {jQuery.jqXHR} + */ +jQuery.post = function(url, data, success, dataType) {}; + +/** + * @param {string} url + * @param {(Object.<string,*>|string| + * function(string,string,jQuery.jqXHR))=} data + * @param {(function(string,string,jQuery.jqXHR)|string|null)=} success + * @param {string=} dataType + * @return {jQuery.jqXHR} + */ +$.post = function(url, data, success, dataType) {}; + +/** + * @param {(string|Element|jQuery|function(number,string))} arg1 + * @param {(string|Element|jQuery)=} content + * @return {!jQuery} + */ +jQuery.prototype.prepend = function(arg1, content) {}; + +/** + * @param {(jQuerySelector|Element|jQuery)} target + * @return {!jQuery} + */ +jQuery.prototype.prependTo = function(target) {}; + +/** + * @param {jQuerySelector=} selector + * @return {!jQuery} + * @nosideeffects + */ +jQuery.prototype.prev = function(selector) {}; + +/** + * @param {jQuerySelector=} selector + * @return {!jQuery} + * @nosideeffects + */ +jQuery.prototype.prevAll = function(selector) {}; + +/** + * @param {(jQuerySelector|Element)=} arg1 + * @param {jQuerySelector=} filter + * @return {!jQuery} + * @nosideeffects + */ +jQuery.prototype.prevUntil = function(arg1, filter) {}; + +/** + * @param {(string|Object)=} type + * @param {Object=} target + * @return {jQuery.Promise} + */ +jQuery.prototype.promise = function(type, target) {}; + +/** + * @interface + * @private + * @see http://api.jquery.com/Types/#Promise + */ +jQuery.Promise = function () {}; + +/** + * @param {jQueryCallback} alwaysCallbacks + * @param {jQueryCallback=} alwaysCallbacks2 + * @return {jQuery.Promise} + */ +jQuery.Promise.prototype.always = + function(alwaysCallbacks, alwaysCallbacks2) {}; + +/** + * @param {jQueryCallback} doneCallbacks + * @return {jQuery.Promise} + */ +jQuery.Promise.prototype.done = function(doneCallbacks) {}; + +/** + * @param {jQueryCallback} failCallbacks + * @return {jQuery.Promise} + */ +jQuery.Promise.prototype.fail = function(failCallbacks) {}; + +/** + * @param {function()=} doneFilter + * @param {function()=} failFilter + * @param {function()=} progressFilter + * @return {jQuery.Promise} + */ +jQuery.Promise.prototype.pipe = + function(doneFilter, failFilter, progressFilter) {}; + +/** + * @param {jQueryCallback} doneCallbacks + * @param {jQueryCallback=} failCallbacks + * @param {jQueryCallback=} progressCallbacks + * @return {jQuery.Promise} + */ +jQuery.Promise.prototype.then = + function(doneCallbacks, failCallbacks, progressCallbacks) {}; + +/** + * @param {(string|Object.<string,*>)} arg1 + * @param {(string|number|boolean|function(number,String))=} arg2 + * @return {(string|boolean|!jQuery)} + */ +jQuery.prototype.prop = function(arg1, arg2) {}; + +/** + * @param {...*} var_args + * @return {function()} + */ +jQuery.proxy = function(var_args) {}; + +/** + * @param {...*} var_args + * @return {function()} + */ +$.proxy = function(var_args) {}; + +/** + * @param {Array.<Element>} elements + * @param {string=} name + * @param {Array.<*>=} args + * @return {!jQuery} + */ +jQuery.prototype.pushStack = function(elements, name, args) {}; + +/** + * @param {(string|Array.<function()>|function(function()))=} queueName + * @param {(Array.<function()>|function(function()))=} arg2 + * @return {(Array.<Element>|!jQuery)} + */ +jQuery.prototype.queue = function(queueName, arg2) {}; + +/** + * @param {Element} elem + * @param {string=} queueName + * @param {(Array.<function()>|function())=} arg3 + * @return {(Array.<Element>|!jQuery)} + */ +jQuery.queue = function(elem, queueName, arg3) {}; + +/** + * @param {Element} elem + * @param {string=} queueName + * @param {(Array.<function()>|function())=} arg3 + * @return {(Array.<Element>|!jQuery)} + */ +$.queue = function(elem, queueName, arg3) {}; + +/** + * @param {function()} handler + * @return {!jQuery} + */ +jQuery.prototype.ready = function(handler) {}; + +/** + * @param {string=} selector + * @return {!jQuery} + */ +jQuery.prototype.remove = function(selector) {}; + +/** + * @param {string} attributeName + * @return {!jQuery} + */ +jQuery.prototype.removeAttr = function(attributeName) {}; + +/** + * @param {(string|function(number,string))=} arg1 + * @return {!jQuery} + */ +jQuery.prototype.removeClass = function(arg1) {}; + +/** + * @param {(string|Array.<string>)=} arg1 + * @return {!jQuery} + */ +jQuery.prototype.removeData = function(arg1) {}; + +/** + * @param {Element} elem + * @param {string=} name + * @return {!jQuery} + */ +jQuery.removeData = function(elem, name) {}; + +/** + * @param {Element} elem + * @param {string=} name + * @return {!jQuery} + */ +$.removeData = function(elem, name) {}; + +/** + * @param {string} propertyName + * @return {!jQuery} + */ +jQuery.prototype.removeProp = function(propertyName) {}; + +/** + * @param {jQuerySelector} target + * @return {!jQuery} + */ +jQuery.prototype.replaceAll = function(target) {}; + +/** + * @param {(string|Element|jQuery|function())} arg1 + * @return {!jQuery} + */ +jQuery.prototype.replaceWith = function(arg1) {}; + +/** + * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1 + * @param {function(!jQuery.event=)=} handler + * @return {!jQuery} + */ +jQuery.prototype.resize = function(arg1, handler) {}; + +/** + * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1 + * @param {function(!jQuery.event=)=} handler + * @return {!jQuery} + */ +jQuery.prototype.scroll = function(arg1, handler) {}; + +/** + * @param {number=} value + * @return {(number|!jQuery)} + */ +jQuery.prototype.scrollLeft = function(value) {}; + +/** + * @param {number=} value + * @return {(number|!jQuery)} + */ +jQuery.prototype.scrollTop = function(value) {}; + +/** + * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1 + * @param {function(!jQuery.event=)=} handler + * @return {!jQuery} + */ +jQuery.prototype.select = function(arg1, handler) {}; + +/** + * @return {string} + * @nosideeffects + */ +jQuery.prototype.serialize = function() {}; + +/** + * @return {Array.<Object.<string, *>>} + * @nosideeffects + */ +jQuery.prototype.serializeArray = function() {}; + +/** + * @param {(string|number|function())=} duration + * @param {(function()|string)=} arg2 + * @param {function()=} callback + * @return {!jQuery} + */ +jQuery.prototype.show = function(duration, arg2, callback) {}; + +/** + * @param {jQuerySelector=} selector + * @return {!jQuery} + * @nosideeffects + */ +jQuery.prototype.siblings = function(selector) {}; + +/** + * @deprecated Please use the .length property instead. + * @return {number} + * @nosideeffects + */ +jQuery.prototype.size = function() {}; + +/** + * @param {number} start + * @param {number=} end + * @return {!jQuery} + */ +jQuery.prototype.slice = function(start, end) {}; + +/** + * @param {(Object.<string,*>|string|number)=} optionsOrDuration + * @param {(function()|string)=} completeOrEasing + * @param {function()=} complete + * @return {!jQuery} + */ +jQuery.prototype.slideDown = + function(optionsOrDuration, completeOrEasing, complete) {}; + +/** + * @param {(Object.<string,*>|string|number)=} optionsOrDuration + * @param {(function()|string)=} completeOrEasing + * @param {function()=} complete + * @return {!jQuery} + */ +jQuery.prototype.slideToggle = + function(optionsOrDuration, completeOrEasing, complete) {}; + +/** + * @param {(Object.<string,*>|string|number)=} optionsOrDuration + * @param {(function()|string)=} completeOrEasing + * @param {function()=} complete + * @return {!jQuery} + */ +jQuery.prototype.slideUp = + function(optionsOrDuration, completeOrEasing, complete) {}; + +/** + * @param {(boolean|string)=} arg1 + * @param {boolean=} arg2 + * @param {boolean=} jumpToEnd + * @return {!jQuery} + */ +jQuery.prototype.stop = function(arg1, arg2, jumpToEnd) {}; + +/** + * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1 + * @param {function(!jQuery.event=)=} handler + * @return {!jQuery} + */ +jQuery.prototype.submit = function(arg1, handler) {}; + +/** @type {Object.<string, *>} + * @deprecated Please try to use feature detection instead. + */ +jQuery.support; + +/** @type {Object.<string, *>} + * @deprecated Please try to use feature detection instead. + */ +$.support; + +/** + * @deprecated Please try to use feature detection instead. + * @type {boolean} + */ +jQuery.support.boxModel; + +/** + * @deprecated Please try to use feature detection instead. + * @type {boolean} + */ +$.support.boxModel; + +/** @type {boolean} */ +jQuery.support.changeBubbles; + +/** @type {boolean} */ +$.support.changeBubbles; + +/** @type {boolean} */ +jQuery.support.cors; + +/** @type {boolean} */ +$.support.cors; + +/** @type {boolean} */ +jQuery.support.cssFloat; + +/** @type {boolean} */ +$.support.cssFloat; + +/** @type {boolean} */ +jQuery.support.hrefNormalized; + +/** @type {boolean} */ +$.support.hrefNormalized; + +/** @type {boolean} */ +jQuery.support.htmlSerialize; + +/** @type {boolean} */ +$.support.htmlSerialize; + +/** @type {boolean} */ +jQuery.support.leadingWhitespace; + +/** @type {boolean} */ +$.support.leadingWhitespace; + +/** @type {boolean} */ +jQuery.support.noCloneEvent; + +/** @type {boolean} */ +$.support.noCloneEvent; + +/** @type {boolean} */ +jQuery.support.opacity; + +/** @type {boolean} */ +$.support.opacity; + +/** @type {boolean} */ +jQuery.support.style; + +/** @type {boolean} */ +$.support.style; + +/** @type {boolean} */ +jQuery.support.submitBubbles; + +/** @type {boolean} */ +$.support.submitBubbles; + +/** @type {boolean} */ +jQuery.support.tbody; + +/** @type {boolean} */ +$.support.tbody; + +/** + * @param {(string|number|boolean|function(number,string))=} arg1 + * @return {(string|!jQuery)} + */ +jQuery.prototype.text = function(arg1) {}; + +/** + * @return {Array.<Element>} + * @nosideeffects + */ +jQuery.prototype.toArray = function() {}; + +/** + * Refers to the method from the Effects category. There used to be a toggle + * method on the Events category which was removed starting version 1.9. + * @param {(number|string|Object.<string,*>|boolean)=} arg1 + * @param {(function()|string)=} arg2 + * @param {function()=} arg3 + * @return {!jQuery} + */ +jQuery.prototype.toggle = function(arg1, arg2, arg3) {}; + +/** + * @param {(string|boolean|function(number,string,boolean))=} arg1 + * @param {boolean=} flag + * @return {!jQuery} + */ +jQuery.prototype.toggleClass = function(arg1, flag) {}; + +/** + * @param {(string|jQuery.event)} arg1 + * @param {...*} var_args + * @return {!jQuery} + */ +jQuery.prototype.trigger = function(arg1, var_args) {}; + +/** + * @param {string|jQuery.event} eventType + * @param {Array.<*>=} extraParameters + * @return {*} + */ +jQuery.prototype.triggerHandler = function(eventType, extraParameters) {}; + +/** + * @param {string} str + * @return {string} + * @nosideeffects + */ +jQuery.trim = function(str) {}; + +/** + * @param {string} str + * @return {string} + * @nosideeffects + */ +$.trim = function(str) {}; + +/** + * @param {*} obj + * @return {string} + * @nosideeffects + */ +jQuery.type = function(obj) {}; + +/** + * @param {*} obj + * @return {string} + * @nosideeffects + */ +$.type = function(obj) {}; + +/** + * @param {(string|function(!jQuery.event=)|jQuery.event)=} arg1 + * @param {(function(!jQuery.event=)|boolean)=} arg2 + * @return {!jQuery} + */ +jQuery.prototype.unbind = function(arg1, arg2) {}; + +/** + * @param {string=} arg1 + * @param {(string|Object.<string,*>)=} arg2 + * @param {function(!jQuery.event=)=} handler + * @return {!jQuery} + */ +jQuery.prototype.undelegate = function(arg1, arg2, handler) {}; + +/** + * @param {Array.<Element>} arr + * @return {Array.<Element>} + */ +jQuery.unique = function(arr) {}; + +/** + * @param {Array.<Element>} arr + * @return {Array.<Element>} + */ +$.unique = function(arr) {}; + +/** + * @deprecated Please use .on( "unload", handler ) instead. + * @param {(function(!jQuery.event=)|Object.<string, *>)} arg1 + * @param {function(!jQuery.event=)=} handler + * @return {!jQuery} + */ +jQuery.prototype.unload = function(arg1, handler) {}; + +/** @return {!jQuery} */ +jQuery.prototype.unwrap = function() {}; + +/** + * @param {(string|Array.<string>|function(number,*))=} arg1 + * @return {(string|number|Array.<string>|!jQuery)} + */ +jQuery.prototype.val = function(arg1) {}; + +/** + * Note: The official documentation (https://api.jquery.com/jQuery.when/) says + * jQuery.when accepts deferreds, but it actually accepts any type, e.g.: + * + * jQuery.when(jQuery.ready, jQuery.ajax(''), jQuery('#my-element'), 1) + * + * If an argument is not an "observable" (a promise-like object) it is wrapped + * into a promise. + * @param {*} deferred + * @param {...*} deferreds + * @return {jQuery.Promise} + */ +jQuery.when = function(deferred, deferreds) {}; + +/** + * Note: See jQuery.when(). + * @param {*} deferred + * @param {...*} deferreds + * @return {jQuery.Promise} + */ +$.when = function(deferred, deferreds) {}; + +/** + * @param {(string|number|function(number,number))=} arg1 + * @return {(number|!jQuery)} + */ +jQuery.prototype.width = function(arg1) {}; + +/** + * @param {(string|jQuerySelector|Element|jQuery|function(number))} arg1 + * @return {!jQuery} + */ +jQuery.prototype.wrap = function(arg1) {}; + +/** + * @param {(string|jQuerySelector|Element|jQuery)} wrappingElement + * @return {!jQuery} + */ +jQuery.prototype.wrapAll = function(wrappingElement) {}; + +/** + * @param {(string|jQuerySelector|Element|jQuery|function(number))} arg1 + * @return {!jQuery} + */ +jQuery.prototype.wrapInner = function(arg1) {}; + +/** + * @param {(string|number|function(number,number))=} arg1 + * @return {(number|!jQuery)} + */ +jQuery.prototype.tooltip = function(arg1) {}; \ No newline at end of file diff --git a/src/closure/conf/externs/jspdf.js b/src/closure/conf/externs/jspdf.js new file mode 100755 index 00000000..2b5ba6f0 --- /dev/null +++ b/src/closure/conf/externs/jspdf.js @@ -0,0 +1,51 @@ +/** + * + * @param {type} arg1 + * @returns {jsPDF} + */ +function jsPDF (arg1) {}; + +/** + * + * @param {type} arg1 + * @param {type} arg2 + * @param {type} arg3 + * @param {type} arg4 + * @returns {undefined} + */ +jsPDF.prototype.fromHTML = function (arg1, arg2, arg3, arg4) {}; + +/** + * + * @param {type} arg1 + * @param {type} arg2 + * @param {type} arg3 + * @param {type} arg4 + * @param {type} arg5 + * @param {type} arg6 + * @returns {undefined} + */ +jsPDF.prototype.addImage = function (arg1, arg2, arg3, arg4, arg5, arg6) {}; + +/** + * + * @param {type} arg1 + * @returns {undefined} + */ +jsPDF.prototype.save = function (arg1) {}; + +/** + * + * @param {type} arg1 + * @returns {undefined} + */ +jsPDF.prototype.setPage = function (arg1) {}; + +/** + * + * @param {type} arg1 + * @param {type} arg2 + * @returns {undefined} + */ +jsPDF.prototype.addHTML = function (arg1, arg2) {}; + diff --git a/src/closure/conf/externs/vmap.js b/src/closure/conf/externs/vmap.js new file mode 100755 index 00000000..b799165a --- /dev/null +++ b/src/closure/conf/externs/vmap.js @@ -0,0 +1,75 @@ +/** + * @author: Armand Bahi + * @Description: Fichier contenant les externs: fonctions à ne pas renommer durant la compilation + * @externs + */ + +/** + * Function for initialise the bootstrap toggle switch checkbox plugin + * @constructor + * @param {object} arg1 + */ +function bootstrapToggle(arg1) {} + +/** + * Function for initialise the bootstrap colorpicker plugin + * @constructor + * @param {object} arg1 + */ +function colorpicker(arg1) {} + +/** + * Function for initialise the bootstrap table plugin + * @constructor + * @param {object} arg1 + */ +function bootstrapTable(arg1) {} + +/** + * @param {object} arg1 + * @return {!jQuery} + */ +function sortable(arg1) {} + +/** + * + * @param {string} key + * @returns {undefined} + */ +ol.Object.prototype.get = function (key) {} + +/** + * Get the collection of layers associated with this map. + * @return {!ol.Collection.<ol.layer.Base>} Layers. + * @api stable + */ +ol.Map.prototype.getLayers = function () {} + +/** + * Return the visibility of the layer (`true` or `false`). + * @return {boolean} The visibility of the layer. + * @observable + * @api stable + */ +ol.layer.Base.prototype.getVisible = function () {} + +/** + * Set the visibility of the layer (`true` or `false`). + * @param {boolean} visible The visibility of the layer. + * @observable + * @api stable + */ +ol.layer.Base.prototype.setVisible = function (visible) {} + +/** + * The tile related to the event. + * @type {ol.Tile} + * @api + */ +ol.source.TileEvent.tile + +/** + * @type {string} + * @see http://www.w3.org/TR/pointerevents/#the-touch-action-css-property + */ +CSSProperties.prototype.touchAction; \ No newline at end of file diff --git a/src/module_extraction/README.md b/src/module_extraction/README.md new file mode 100644 index 00000000..2bf5eb52 --- /dev/null +++ b/src/module_extraction/README.md @@ -0,0 +1,3 @@ +# module_extraction + +Module extraction for Vitis \ No newline at end of file diff --git a/src/module_extraction/_install/dependency.xml b/src/module_extraction/_install/dependency.xml new file mode 100755 index 00000000..f8953c39 --- /dev/null +++ b/src/module_extraction/_install/dependency.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="UTF-8"?> +<installer> + <schema> + <name>s_extraction</name> + <dependenciesCollection> + <dependency> + <nature>schema</nature> + <name>s_vitis</name> + <object>vitis</object> + </dependency> + </dependenciesCollection> + </schema> + <dependenciesCollection> + <dependency> + <nature>framework</nature> + <name>vitis</name> + </dependency> + </dependenciesCollection> +</installer> diff --git a/src/module_extraction/_install/fileToDelete.txt b/src/module_extraction/_install/fileToDelete.txt new file mode 100755 index 00000000..0f43fe95 --- /dev/null +++ b/src/module_extraction/_install/fileToDelete.txt @@ -0,0 +1,6 @@ +javascript/deps.js +javascript/script_module.js +javascript/statistics.js +javascript/widget/script_widget.js +javascript/widget/widgetMod.js +javascript/widget/deps.js \ No newline at end of file diff --git a/src/module_extraction/_install/folderToDelete.txt b/src/module_extraction/_install/folderToDelete.txt new file mode 100755 index 00000000..b92d8976 --- /dev/null +++ b/src/module_extraction/_install/folderToDelete.txt @@ -0,0 +1,2 @@ +javascript/controllers +javascript/directives \ No newline at end of file diff --git a/src/module_extraction/module/forms/configuration/configuration_vitis_configuration_extractionConfig.json b/src/module_extraction/module/forms/configuration/configuration_vitis_configuration_extractionConfig.json new file mode 100644 index 00000000..f25d20c9 --- /dev/null +++ b/src/module_extraction/module/forms/configuration/configuration_vitis_configuration_extractionConfig.json @@ -0,0 +1 @@ +{"insert":{"rows":[],"tabs":{"position":"top","list":[{"label":"Tab 0","elements":[]}]}},"search":{"rows":[]},"display":{"rows":[]},"update":{"name":"configuration_extraction_module-form","title":"","input_size":"xxs","nb_cols":7,"javascript":false,"rows":[{"fields":[{"name":"color_mutualized","type":"text","label":"CONFIGURATION_VITIS_CONFIGURATION_EXTRACTIONCONFIG_FORM_COLOR_MUTUALIZED","nb_cols":12,"id":"color_mutualized","default_value":"green"}]},{"fields":[{"name":"color_no_mutualized","type":"text","label":"CONFIGURATION_VITIS_CONFIGURATION_EXTRACTIONCONFIG_FORM_COLOR_NO_MUTUALIZED","nb_cols":12,"id":"color_no_mutualized","default_value":"red"}]},{"fields":[{"name":"sig","type":"text","label":"CONFIGURATION_VITIS_CONFIGURATION_EXTRACTIONCONFIG_FORM_SIG","nb_cols":12,"id":"sig","default_value":"*.shp|*.*"}]},{"fields":[{"name":"dao","type":"text","label":"CONFIGURATION_VITIS_CONFIGURATION_EXTRACTIONCONFIG_FORM_DAO","nb_cols":12,"id":"dao","default_value":"*.dao"}]},{"fields":[{"type":"button","name":"form_submit","class":"btn-ungroup btn-group-sm","nb_cols":12,"buttons":[{"type":"submit","name":"form_submit","label":"FORM_UPDATE","class":"btn-primary"}],"id":"form_submit_6_1"}]}],"event":"updateProperties('extraction')","afterEvent":"editSectionForm()","tabs":{"position":"top","list":[{"label":"Tab 0","elements":["color_mutualized","color_no_mutualized","sig","dao","form_submit"]}]}},"datasources":{}} \ No newline at end of file diff --git a/src/module_extraction/module/forms/extraction/extraction_extraction_extraction.js b/src/module_extraction/module/forms/extraction/extraction_extraction_extraction.js new file mode 100755 index 00000000..2589e360 --- /dev/null +++ b/src/module_extraction/module/forms/extraction/extraction_extraction_extraction.js @@ -0,0 +1,500 @@ +/* global angular, goog, vitisApp, bootbox */ + +//bloque les delete du destructeur à éviter +//'use strict'; + +console.info("Generateur_wab_generator_1 loaded --> your functions are ready"); +/*********************************************************************************** + Signaletique_Recap_0 Javascript + ***********************************************************************************/ + +var oFormRequired = { + "sUrl": "", + "scope_": {}, + "toDestructor": [] +}; +/** + * constructor_form + * Fonction appelé à l'initialisation du formulaire si dans la structure json javascript vaut "true" + * @param {type} scope + * @param {type} s_url + * @returns {undefined} + */ +var constructor_form = function (scope, s_url) { + ////////////////////////////////////////////////////////// + //Ne pas toucher + console.log("Constructor"); + + oFormRequired.sUrl = s_url; + oFormRequired.scope_ = scope; + //console.log(scope); + ////////////////////////////////////////////////////////// + // Permet de recharge le javascript d'une section à une autre + var envSrvc = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(["envSrvc"]); + var formSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["formSrvc"]); + // + var oElemDefCt = formSrvc["getFormElementDefinition"]("id_conseil", envSrvc["sFormDefinitionName"], envSrvc["oFormDefinition"]); + var oElemDefCom = formSrvc["getFormElementDefinition"]("id_com", envSrvc["sFormDefinitionName"], envSrvc["oFormDefinition"]); + var oElemDefExtent = formSrvc["getFormElementDefinition"]("extent", envSrvc["sFormDefinitionName"], envSrvc["oFormDefinition"]); + + + //Comportements différents selon le mode (insert, update, search, display) (GTF : accés uniquement au mode insert) + //if (oFormRequired.scope_.sFormDefinitionName.indexOf("insert") > -1 || (oFormRequired.scope_.sFormDefinitionName.indexOf("update") > -1)) { + oFormRequired.toDestructor.push(oFormRequired.scope_.$watch("oFormValues." + oFormRequired.scope_.sFormDefinitionName + ".extent_method.selectedOption", function (value) { + //console.log(value); + if (value) { + if (value["value"]) { + //oFormRequired.scope_.oFormValues[oFormRequired.scope_.sFormDefinitionName]["name"] = value["value"] + "_"; + if (value["value"] == "id_conseil") + { + oElemDefCt["visible"] = true; + oElemDefCom["visible"] = false; + oElemDefExtent["visible"] = false; + } + else if (value["value"] == "id_com") + { + oElemDefCt["visible"] = false; + oElemDefCom["visible"] = true; + oElemDefExtent["visible"] = false; + } + else + { + oElemDefCt["visible"] = false; + oElemDefCom["visible"] = false; + oElemDefExtent["visible"] = true; + } + } + else + { + oElemDefCt["visible"] = false; + oElemDefCom["visible"] = false; + } + + } + })); + //Evènement lorsqu'on choisie un CT + oFormRequired.toDestructor.push(oFormRequired.scope_.$watch("oFormValues." + oFormRequired.scope_.sFormDefinitionName + ".id_conseil.selectedOption", function (value) { + if (value && typeof(oFormRequired) !== "undefined") + { + getLayerTree(oFormRequired.scope_.oFormValues[oFormRequired.scope_.sFormDefinitionName]).then( function(aNodes){ + var oTreeview = $("#layers_9_1_treeview")["treeview"](true); + $("layers_9_1_treeview")["treeview"](true); + //On recréer un arbre + oTreeview["init"]({"data": aNodes, + "onNodeChecked": oTreeview.options.onNodeChecked, + "onNodeUnchecked": oTreeview.options.onNodeUnchecked, + "showBorder": false, + "levels": 0, + "showCheckbox": true, + "expandIcon": "glyphicon glyphicon-folder-close", + "collapseIcon": "glyphicon glyphicon-folder-open", + "highlightSelected": false, + "multiSelect": true}); + scope.$applyAsync(); + }); + + getStatsTree(oFormRequired.scope_.oFormValues[oFormRequired.scope_.sFormDefinitionName]).then( function(aNodes){ + var oTreeview = $("#statistique_9_1_treeview")["treeview"](true); + $("statistique_9_1_treeview")["treeview"](true); + //On recréer un arbre + oTreeview["init"]({"data": aNodes, + "onNodeChecked": oTreeview.options.onNodeChecked, + "onNodeUnchecked": oTreeview.options.onNodeUnchecked, + "showBorder": false, + "levels": 0, + "showCheckbox": true, + "expandIcon": "glyphicon glyphicon-folder-close", + "collapseIcon": "glyphicon glyphicon-folder-open", + "highlightSelected": false, + "multiSelect": true}); + scope.$applyAsync(); + }); + } + + })); + //Evènement lorsqu'on choisie une commune + oFormRequired.toDestructor.push(oFormRequired.scope_.$watch("oFormValues." + oFormRequired.scope_.sFormDefinitionName + ".id_com.selectedOption", function (value) { + if (value && typeof(oFormRequired) !== "undefined") + { + getLayerTree(oFormRequired.scope_.oFormValues[oFormRequired.scope_.sFormDefinitionName]).then( function(aNodes){ + var oTreeview = $("#layers_9_1_treeview")["treeview"](true); + $("layers_9_1_treeview")["treeview"]({"data":aNodes}); + //On recréer un arbre + oTreeview["init"]({"data": aNodes, + "onNodeChecked": oTreeview.options.onNodeChecked, + "onNodeUnchecked": oTreeview.options.onNodeUnchecked, + "showBorder": false, + "levels": 0, + "showCheckbox": true, + "expandIcon": "glyphicon glyphicon-folder-close", + "collapseIcon": "glyphicon glyphicon-folder-open", + "highlightSelected": false, + "multiSelect": true}); + scope.$applyAsync(); + + }); + + getStatsTree(oFormRequired.scope_.oFormValues[oFormRequired.scope_.sFormDefinitionName]).then( function(aNodes){ + var oTreeview = $("#statistique_9_1_treeview")["treeview"](true); + $("statistique_9_1_treeview")["treeview"](true); + //On recréer un arbre + oTreeview["init"]({"data": aNodes, + "onNodeChecked": oTreeview.options.onNodeChecked, + "onNodeUnchecked": oTreeview.options.onNodeUnchecked, + "showBorder": false, + "levels": 0, + "showCheckbox": true, + "expandIcon": "glyphicon glyphicon-folder-close", + "collapseIcon": "glyphicon glyphicon-folder-open", + "highlightSelected": false, + "multiSelect": true}); + scope.$applyAsync(); + }); + } + })); + //Evenement lorsqu'on saisie un nouveau polygone + oFormRequired.toDestructor.push(oFormRequired.scope_.$watch("oFormValues." + oFormRequired.scope_.sFormDefinitionName + ".extent", function (value) { + if (value && typeof(oFormRequired) !== "undefined") + { + //getLayerTree(value, "geom"); + getLayerTree(oFormRequired.scope_.oFormValues[oFormRequired.scope_.sFormDefinitionName]).then( function(aNodes){ + //console.log(aNodes); + //layers_9_1_treeview + var oTreeview = $("#layers_9_1_treeview")["treeview"](true); + //$("layers_9_1_treeview")["treeview"]({"data":aNodes}); + //On recréer un arbre + oTreeview["init"]({"data": aNodes, + "onNodeChecked": oTreeview.options.onNodeChecked, + "onNodeUnchecked": oTreeview.options.onNodeUnchecked, + "showBorder": false, + "levels": 0, + "showCheckbox": true, + "expandIcon": "glyphicon glyphicon-folder-close", + "collapseIcon": "glyphicon glyphicon-folder-open", + "highlightSelected": false, + "multiSelect": true}); + scope.$applyAsync(); + + }); + + getStatsTree(oFormRequired.scope_.oFormValues[oFormRequired.scope_.sFormDefinitionName]).then( function(aNodes){ + var oTreeview = $("#statistique_9_1_treeview")["treeview"](true); + $("statistique_9_1_treeview")["treeview"](true); + //On recréer un arbre + oTreeview["init"]({"data": aNodes, + "onNodeChecked": oTreeview.options.onNodeChecked, + "onNodeUnchecked": oTreeview.options.onNodeUnchecked, + "showBorder": false, + "levels": 0, + "showCheckbox": true, + "expandIcon": "glyphicon glyphicon-folder-close", + "collapseIcon": "glyphicon glyphicon-folder-open", + "highlightSelected": false, + "multiSelect": true}); + scope.$applyAsync(); + }); + + + } + })); +}; + +/** + * Fonction appelée lorsqu'on choisit la CT ou la commune ou si on saisit un polygone dans le formulaire + * @return undefined + */ +function getLayerTree(oFormValues) { + var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]); + var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]); + var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]); + var $q = angular.element(vitisApp.appHtmlFormDrtv).injector().get(["$q"]); + // + $log.info("getLayerTree"); + // Charge la liste des couches. + + var deferred = $q.defer(); + var promise = deferred.promise; + if (oFormValues.extent_method.selectedOption["value"] != "") { + ajaxRequest({ + "method": "GET", + "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/extraction/extractions/Layers", + "params": getUrlParams(), + "scope": angular.element("form[name='" + envSrvc["oFormDefinition"][envSrvc["sFormDefinitionName"]]["name"] + "']").scope(), + "success": function(response) { + if (response["data"]["status"] == 1) { + console.log(response["data"]); + var scope = angular.element("form[name='" + envSrvc["oFormDefinition"][envSrvc["sFormDefinitionName"]]["name"] + "']").scope(); + // Création de l'arborescence des couches pour le champ "treeview". + var aLayers = response["data"]["layers"]; + var aNodes = []; + var stats = true; + + if (typeof(aLayers) != "undefined") { + var aCategories = Object.keys(aLayers); + for (var i in aCategories) { + var aNode = {"text": aCategories[i], "nodes": []} + for (var j in aLayers[aCategories[i]]) { + if (aLayers[aCategories[i]][j]["statistique"] !== true) + { + stats = false; + aNode["nodes"].push({"text": aLayers[aCategories[i]][j]["text"], "value": aLayers[aCategories[i]][j]["value"], "mutualized": aLayers[aCategories[i]][j]["mutualized"]}); + } + } + if (stats !== true) + { + aNodes.push(aNode); + } + stats = true; + } + } + + this["setTreeviewNodesState"] = function (aNodes) { + for (var i in aNodes) { + if (typeof (aNodes[i]["nodes"]) != "undefined") + this["setTreeviewNodesState"](aNodes[i]["nodes"]); + else { + if (typeof (aNodes[i]["state"]) == "undefined") + { + aNodes[i]["state"] = {}; + } + var aCheckedItem = []; + var sValue = scope["oFormValues"][envSrvc["sFormDefinitionName"]]["layers"]; + if (typeof (sValue) == "string" && sValue != "") + { + aCheckedItem = sValue.split("|"); + } + if (aCheckedItem.indexOf(String(aNodes[i]["value"])) != -1) + { + aNodes[i]["state"]["checked"] = true; + } + //Si la couche est mutualisée + if (aNodes[i]['mutualized'] == true) + { + console.log(propertiesSrvc["color_mutualized"]); + aNodes[i]["color"] = propertiesSrvc["color_mutualized"]; + } else if (aNodes[i]['mutualized'] == false) { + aNodes[i]["color"] = propertiesSrvc["color_no_mutualized"]; + } + } + } + } + this["setTreeviewNodesState"](aNodes); + deferred.resolve(aNodes); + } else { + // + var oOptions = { + "className": "modal-danger" + }; + // Message d'erreur ? + if (response["data"]["errorMessage"] != null) + oOptions["message"] = response["data"]["errorMessage"]; + scope.$root["modalWindow"]("alert", "REQUEST_ERROR", oOptions); + } + } + }); + } + return promise; +} + +/** + * Fonction appelée lorsqu'on choisit la CT ou la commune ou si on saisit un polygone dans le formulaire + * @return undefined + */ +function getStatsTree(oFormValues) { + var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]); + var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]); + var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]); + var $q = angular.element(vitisApp.appHtmlFormDrtv).injector().get(["$q"]); + // + $log.info("getLayerTree"); + // Charge la liste des couches. + + var deferred = $q.defer(); + var promise = deferred.promise; + if (oFormValues.extent_method.selectedOption["value"] != "") { + ajaxRequest({ + "method": "GET", + "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/extraction/extractions/Layers", + "params": getUrlParams(), + "scope": angular.element("form[name='" + envSrvc["oFormDefinition"][envSrvc["sFormDefinitionName"]]["name"] + "']").scope(), + "success": function(response) { + if (response["data"]["status"] == 1) { + console.log(response["data"]); + var scope = angular.element("form[name='" + envSrvc["oFormDefinition"][envSrvc["sFormDefinitionName"]]["name"] + "']").scope(); + // Création de l'arborescence des statistiques pour le champ "treeview". + var aLayers = response["data"]["layers"]; + var aNodes = []; + var stats = false; + + if (typeof(aLayers) != "undefined") { + var aCategories = Object.keys(aLayers); + for (var i in aCategories) { + var aNode = {"text": aCategories[i], "nodes": []} + for (var j in aLayers[aCategories[i]]) { + if (aLayers[aCategories[i]][j]["statistique"] === true) + { + stats = true; + aNode["nodes"].push({"text": aLayers[aCategories[i]][j]["text"], "value": aLayers[aCategories[i]][j]["value"], "mutualized": aLayers[aCategories[i]][j]["mutualized"]}); + } + } + if (stats === true) + { + aNodes.push(aNode); + } + stats = false; + } + } + + this["setTreeviewNodesState"] = function (aNodes) { + for (var i in aNodes) { + if (typeof (aNodes[i]["nodes"]) != "undefined") + this["setTreeviewNodesState"](aNodes[i]["nodes"]); + else { + if (typeof (aNodes[i]["state"]) == "undefined") + { + aNodes[i]["state"] = {}; + } + var aCheckedItem = []; + var sValue = scope["oFormValues"][envSrvc["sFormDefinitionName"]]["statistique"]; + if (typeof (sValue) == "string" && sValue != "") + { + aCheckedItem = sValue.split("|"); + } + if (aCheckedItem.indexOf(String(aNodes[i]["value"])) != -1) + { + aNodes[i]["state"]["checked"] = true; + } + //Si la couche est mutualisée + if (aNodes[i]['mutualized'] == true) + { + aNodes[i]["color"] = propertiesSrvc["color_mutualized"]; + } else if (aNodes[i]['mutualized'] == false) { + aNodes[i]["color"] = propertiesSrvc["color_no_mutualized"]; + } + } + } + } + this["setTreeviewNodesState"](aNodes); + deferred.resolve(aNodes); + } else { + // + var oOptions = { + "className": "modal-danger" + }; + // Message d'erreur ? + if (response["data"]["errorMessage"] != null) + oOptions["message"] = response["data"]["errorMessage"]; + scope.$root["modalWindow"]("alert", "REQUEST_ERROR", oOptions); + } + } + }); + } + return promise; +} + +/** + * Fonction qui renvoie les paramètres pour effectuer la requête AJAX + * @returns {getUrlParams.oUrlParams} + */ +function getUrlParams() { + var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]); + var sTable = ""; + var sCompare_operator = ""; + var sColumn = ""; + var aValue = []; + var aValeur = []; + + if (oFormValues.extent_method.selectedOption["value"] == "id_conseil") + { + sTable = "ct"; + sColumn = "ct_id"; + sCompare_operator = "IN"; + aValue = oFormValues.id_conseil.selectedOption; + } + else if (oFormValues.extent_method.selectedOption["value"] == "id_com") + { + sTable = "commune"; + sColumn = "commune_id"; + sCompare_operator = "IN"; + aValue = oFormValues.id_com.selectedOption; + } + + if (oFormValues.extent_method.selectedOption["value"] == "extent") + { + sTable = "ct"; + sColumn = "geom"; + sCompare_operator = "INTERSECT"; + aValeur = "SRID=2154;"+ oFormValues.extent; + //console.log('Compare_operator ' + compare_operator + ' valeur ' + valeur ); + } + else + { + if(aValue) + { + for (var i = 0; i < aValue.length; i++) + { + //Si c'est une sélection vide + if(aValue[i]["value"] == "") + { + //On remplace la valeur vide par un id négatif + aValeur[i] = "-1"; + } + else if (oFormValues.extent_method.selectedOption["value"] == "id_conseil") + { + aValeur[i] = aValue[i]["value"]; + } + else if (oFormValues.extent_method.selectedOption["value"] == "id_com") + { + aValeur[i] = aValue[i]["value"]; + } + else if (oFormValues.extent_method.selectedOption["value"] == "id_conseil") + { + aValeur[i] = aValue[i]["value"]; + } + } + } + else + { + aValeur[0] = "-1"; + } + } + + var oUrlParams = { + "schema": propertiesSrvc["schema_extraction"], + "table": sTable, + "distinct": true, + "filter": { + "column": sColumn, + "compare_operator": sCompare_operator, + "value": aValeur + } + } + return oUrlParams; +} + +/** + * destructor_form + * Fonction appelé quand on quitte le formulaire nettoie toute les fonctions pour les rendres inutilisable en dehors du formulaire + * @returns {undefined} + */ +var destructor_form = function () { + console.log("Destructor"); + + for (var i = 0; i < oFormRequired.toDestructor.length; i++) { + oFormRequired.toDestructor[i] = undefined; + delete oFormRequired.toDestructor[i]; + } + + //supprimer la balise script du js pour pouvoir le recharger si on reviens sur le formulaire plus tard + angular.element('[src="' + oFormRequired.sUrl + '?version=' + oFormRequired.scope_["oProperties"]["build"] + '"]').remove(); + + oFormRequired = undefined; + delete oFormRequired; + + constructor_form = undefined; + delete constructor_form; + destructor_form = undefined; + delete destructor_form; +}; + +/**********************************************************************************/ \ No newline at end of file diff --git a/src/module_extraction/module/forms/extraction/extraction_extraction_extraction.json b/src/module_extraction/module/forms/extraction/extraction_extraction_extraction.json new file mode 100755 index 00000000..7cd9f292 --- /dev/null +++ b/src/module_extraction/module/forms/extraction/extraction_extraction_extraction.json @@ -0,0 +1,4838 @@ +{ + "display": { + "name": "extraction_extraction_extraction-form", + "title": "EXTRACTION_EXTRACTION_EXTRACTION_TITLE", + "input_size": "xxs", + "initEvent": "initExtractionExtractionForm()", + "nb_cols": 12, + "javascript": true, + "rows": [ + { + "fields": [ + { + "type": "label", + "name": "bo_id", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_BO_ID", + "required": false, + "nb_cols": 12, + "id": "bo_id_1_1" + } + ] + }, + { + "fields": [ + { + "type": "checkbox", + "name": "preco_tech", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_TECHNIQUE", + "nb_cols": 4, + "id": "Element_6_2_1" + }, + { + "type": "checkbox", + "name": "chart_graph", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_CARTOGRAPHIQUE", + "nb_cols": 4, + "id": "Element_6_2_2" + }, + { + "type": "checkbox", + "name": "metadonnees", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ISOGEO", + "nb_cols": 4, + "id": "Element_6_2_3" + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "status", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_STATUS", + "required": false, + "nb_cols": 4, + "id": "status_2_1" + }, + { + "type": "label", + "name": "creation_date", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_CREATION_DATE", + "required": false, + "nb_cols": 6, + "id": "creation_date_4_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "email", + "label": "FORM_EMAIL_USERS_USER", + "required": false, + "nb_cols": 4, + "id": "email_3_1" + }, + { + "type": "label", + "name": "company", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_COMPANY", + "required": false, + "nb_cols": 4, + "id": "company_8_1" + }, + { + "type": "label", + "name": "requestor", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_REQUESTOR", + "required": false, + "nb_cols": 4, + "id": "requestor_5_1" + } + ] + }, + { + "fields": [ + { + "type": "linkurl", + "name": "ae", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_AE", + "required": false, + "nb_cols": 12, + "id": "ae_6_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "layers", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_LAYERS", + "required": false, + "nb_cols": 12, + "id": "layers_9_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "coordsys_id", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_COORDSYS_ID", + "required": false, + "nb_cols": 4, + "id": "coordsys_id_11_1" + }, + { + "type": "label", + "name": "vector_format_id", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_VECTOR_FORMAT_ID", + "required": false, + "nb_cols": 4, + "id": "vector_format_id_10_1" + }, + { + "type": "label", + "name": "raster_format_id", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_RASTER_FORMAT_ID", + "required": false, + "nb_cols": 4, + "id": "raster_format_id_14_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "extent_method", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_EXTENT_METHOD", + "required": false, + "nb_cols": 12, + "id": "extent_method_15_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "id_com", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ID_COM", + "required": false, + "nb_cols": 12, + "id": "id_com_22_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "id_conseil", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ID_CONSEIL", + "required": false, + "nb_cols": 12, + "id": "id_conseil_23_1" + } + ] + }, + { + "fields": [ + { + "type": "map_vmap", + "name": "extent", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_EXTENT", + "required": false, + "nb_cols": 12, + "id": "extent_7_1", + "style": { + "height": "250px" + }, + "map_options": { + "proj": "EPSG:2154", + "type": "vmap", + "center": { + "extent": [ + 4510838297753.592, + 313452152357706.75, + 4510842604414.408, + 313452153911336.25 + ], + "coord": [ + 4510840451084, + 313452153134521.5 + ], + "scale": 23468294 + }, + "controls": { + "MP": true, + "ZO": true, + "SL": true, + "CP": true + }, + "layers": [], + "interactions": { + "multi_geometry": false, + "full_screen": true, + "RA": true, + "RO": true, + "ED": true, + "DP": false, + "DL": false, + "DPol": true, + "SE": true + }, + "draw_color": "rgba(54,184,255,0.6)", + "contour_color": "rgba(0,0,0,0.4)", + "contour_size": 2, + "circle_radius": 6, + "features": [], + "coord_accuracy": 8, + "tree": { + "name": "Tree", + "children": [ + { + "view": { + "center": [ + "902168", + "6269043" + ], + "zoom": 7, + "maxZoom": 28, + "minZoom": 0, + "projection": "EPSG:2154", + "extent": [ + 4510835482577.04, + 313452150322452.2, + 4510845419590.96, + 313452155946590.8 + ] + } + }, + { + "name": "extraction", + "children": [ + { + "name": "REF_ortho2011", + "layerType": "tilewms", + "url": "http://SCPA441.cpa.fr:8399/arcgis/services/REF_ortho2011/MapServer/WMSServer", + "index": -1, + "visible": true, + "opacity": 1, + "is_dynamic": false, + "is_filtered": false, + "version": "1.3.0", + "params": { + "LAYERS": "0", + "VERSION": "1.3.0", + "STYLES": "" + }, + "bo_queryable": false, + "layer_id": 1, + "select": true + }, + { + "name": "REF_CPA_LIMITE_COMMUNE", + "layerType": "tilewms", + "url": "http://SCPA441.cpa.fr:8399/arcgis/services/REF_CPA_LIMITE_COMMUNE/MapServer/WMSServer", + "index": -1, + "visible": true, + "opacity": 1, + "is_dynamic": false, + "is_filtered": false, + "version": "1.3.0", + "params": { + "LAYERS": "0,1", + "VERSION": "1.3.0", + "STYLES": "" + }, + "bo_queryable": false, + "layer_id": 2, + "select": true + } + ], + "visible": true + } + ] + } + } + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "history", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_HISTORY", + "required": false, + "nb_cols": 12, + "id": "history_3_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "note", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_NOTE", + "required": false, + "nb_cols": 12, + "id": "note_12_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "note_line", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_NOTE_LINE", + "required": false, + "nb_cols": 12, + "id": "note_line_13_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "options": { + "choices": [ + { + "label": "oui", + "value": true + }, + { + "label": "non", + "value": false + } + ] + }, + "name": "signed", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_SIGNED", + "required": false, + "nb_cols": 3, + "id": "signed_16_1" + }, + { + "type": "label", + "options": { + "choices": [ + { + "label": "oui", + "value": true + }, + { + "label": "non", + "value": false + } + ] + }, + "name": "accepted_by_cpa", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ACCEPTED_BY_CPA", + "required": false, + "nb_cols": 3, + "id": "accepted_by_cpa_17_1" + }, + { + "type": "label", + "options": { + "choices": [ + { + "label": "oui", + "value": true + }, + { + "label": "non", + "value": false + } + ] + }, + "name": "identification_complete", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_IDENTIFICATION_COMPLETE", + "required": false, + "nb_cols": 3, + "id": "identification_complete_18_1" + }, + { + "type": "label", + "options": { + "choices": [ + { + "label": "oui", + "value": true + }, + { + "label": "non", + "value": false + } + ] + }, + "name": "definition_complete", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_DEFINITION_COMPLETE", + "required": false, + "nb_cols": 3, + "id": "definition_complete_19_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "comment", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_COMMENT", + "required": false, + "nb_cols": 12, + "id": "comment_20_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "priority_id", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_PRIORITY_ID", + "required": false, + "nb_cols": 12, + "id": "priority_id_21_1" + } + ] + }, + { + "fields": [ + { + "type": "hidden", + "name": "status_name", + "nb_cols": 6, + "id": "Element_0_25_1" + }, + { + "type": "hidden", + "name": "tr_status_method", + "nb_cols": 6, + "id": "Element_0_25_2" + } + ] + }, + { + "class": "wab-method-button", + "fields": [ + { + "type": "button", + "class": "btn-ungroup btn-group-sm", + "nb_cols": 1, + "name": "display_button", + "id": "display_button", + "buttons": [ + { + "type": "button", + "name": "return_list", + "label": "FORM_RETURN_LIST", + "class": "btn-primary", + "event": "setMode(\"search\")", + "disabled": false + } + ] + }, + { + "type": "button", + "name": "Element_0", + "nb_cols": 1, + "id": "Element_0_25_2", + "class": "btn-ungroup btn-group-sm", + "buttons": [ + { + "type": "button", + "name": "form_submit", + "label": "Autoriser l'extraction", + "class": "btn-primary", + "event": "setWabStatusMethod('trAutoriser')" + } + ] + }, + { + "type": "button", + "name": "Element_1", + "nb_cols": 1, + "id": "Element_1_25_3", + "class": "btn-ungroup btn-group-sm", + "buttons": [ + { + "type": "button", + "name": "form_submit", + "label": "Demander l'AE", + "class": "btn-primary", + "event": "setWabStatusMethod('trDemander')", + "disabled": false + } + ] + }, + { + "type": "button", + "name": "Element_2", + "nb_cols": 1, + "id": "Element_2_25_4", + "class": "btn-ungroup btn-group-sm", + "buttons": [ + { + "type": "button", + "name": "form_submit", + "label": "Générer l'AE", + "class": "btn-primary", + "event": "setWabStatusMethod('trGenerer')" + } + ] + }, + { + "type": "button", + "name": "Element_3", + "nb_cols": 1, + "id": "Element_3_25_5", + "class": "btn-ungroup btn-group-sm", + "buttons": [ + { + "type": "button", + "name": "form_submit", + "label": "Créer", + "class": "btn-primary", + "event": "setWabStatusMethod('trNouveau')" + } + ] + }, + { + "type": "button", + "name": "Element_4", + "nb_cols": 1, + "id": "Element_4_25_6", + "class": "btn-ungroup btn-group-sm", + "buttons": [ + { + "type": "button", + "name": "form_submit", + "label": "Refuser l'extraction", + "class": "btn-primary", + "event": "setWabStatusMethod('trRefuser')", + "disabled": false + } + ] + }, + { + "type": "button", + "name": "Element_5", + "nb_cols": 1, + "id": "Element_5_25_7", + "class": "btn-ungroup btn-group-sm", + "buttons": [ + { + "type": "button", + "name": "form_submit", + "label": "Recharger l'acte d'engagement", + "class": "btn-primary", + "event": "setWabStatusMethod('trResoumettre')" + } + ] + }, + { + "type": "button", + "name": "Element_7", + "nb_cols": 1, + "id": "Element_7_25_9", + "class": "btn-ungroup btn-group-sm", + "buttons": [ + { + "type": "button", + "name": "form_submit", + "label": "Soumettre l'AE", + "class": "btn-primary", + "event": "setWabStatusMethod('trSoumettre')" + } + ] + }, + { + "type": "button", + "name": "Element_8", + "nb_cols": 1, + "id": "Element_8_25_10", + "class": "btn-ungroup btn-group-sm", + "buttons": [ + { + "type": "button", + "name": "form_submit", + "label": "Terminer", + "class": "btn-primary", + "event": "setWabStatusMethod('trTerminer')" + } + ] + } + ] + } + ], + "wab": { + "START": { + "controleur": { + "company": "", + "layers": "", + "coordsys_id": "", + "vector_format_id": "", + "raster_format_id": "", + "extent_method": "", + "id_com": "", + "id_conseil": "", + "extent": "", + "status": "", + "history": "", + "creation_date": "", + "requestor": "", + "ae": "", + "note": "", + "note_line": "", + "signed": "", + "accepted_by_cpa": "", + "identification_complete": "", + "definition_complete": "", + "comment": "", + "priority_id": "", + "bo_id": "", + "status_name": "", + "tr_status_method": "", + "display_button": "rw", + "Element_3": "", + "Element_4": "", + "Element_5": "", + "Element_7": "", + "Element_8": "", + "preco_tech": "", + "chart_graph": "", + "metadonnees": "", + "email": "", + "Element_1": "", + "statistique": "" + }, + "demandeur": { + "email": "rw", + "company": "rw", + "layers": "rw", + "coordsys_id": "rw", + "vector_format_id": "rw", + "raster_format_id": "rw", + "extent_method": "rw", + "id_com": "rw", + "id_conseil": "rw", + "extent": "rw", + "status": "", + "history": "", + "creation_date": "", + "requestor": "", + "ae": "", + "note": "", + "note_line": "", + "signed": "", + "accepted_by_cpa": "", + "identification_complete": "", + "definition_complete": "", + "comment": "", + "priority_id": "", + "bo_id": "", + "status_name": "rw", + "tr_status_method": "rw", + "display_button": "rw", + "Element_3": "", + "Element_4": "", + "Element_5": "", + "Element_7": "", + "Element_8": "", + "preco_tech": "", + "chart_graph": "", + "metadonnees": "", + "Element_1": "", + "statistique": "" + } + }, + "Nouveau": { + "controleur": { + "company": "", + "layers": "", + "coordsys_id": "", + "vector_format_id": "", + "raster_format_id": "", + "extent_method": "", + "id_com": "", + "id_conseil": "", + "extent": "", + "status": "", + "history": "", + "creation_date": "", + "requestor": "", + "ae": "", + "note": "", + "note_line": "", + "signed": "", + "accepted_by_cpa": "", + "identification_complete": "", + "definition_complete": "", + "comment": "", + "priority_id": "", + "bo_id": "", + "status_name": "", + "tr_status_method": "", + "display_button": "rw", + "Element_3": "", + "Element_4": "", + "Element_5": "", + "Element_7": "", + "Element_8": "", + "preco_tech": "", + "chart_graph": "", + "metadonnees": "", + "email": "", + "Element_1": "", + "statistique": "" + }, + "demandeur": { + "email": "rw", + "company": "rw", + "layers": "rw", + "coordsys_id": "rw", + "vector_format_id": "rw", + "raster_format_id": "rw", + "extent_method": "rw", + "id_com": "rw", + "id_conseil": "rw", + "extent": "rw", + "status": "r", + "history": "", + "creation_date": "r", + "requestor": "rw", + "ae": "", + "note": "", + "note_line": "", + "signed": "", + "accepted_by_cpa": "", + "identification_complete": "", + "definition_complete": "", + "comment": "", + "priority_id": "", + "bo_id": "r", + "status_name": "rw", + "tr_status_method": "rw", + "display_button": "rw", + "Element_3": "", + "Element_4": "", + "Element_5": "", + "Element_7": "", + "Element_8": "", + "preco_tech": "r", + "chart_graph": "r", + "metadonnees": "r", + "Element_1": "", + "statistique": "" + } + }, + "AE Demandé": { + "controleur": { + "company": "", + "layers": "", + "coordsys_id": "", + "vector_format_id": "", + "raster_format_id": "", + "extent_method": "", + "id_com": "", + "id_conseil": "", + "extent": "", + "status": "", + "history": "", + "creation_date": "", + "requestor": "", + "ae": "", + "note": "", + "note_line": "", + "signed": "", + "accepted_by_cpa": "", + "identification_complete": "", + "definition_complete": "", + "comment": "", + "priority_id": "", + "bo_id": "", + "status_name": "", + "tr_status_method": "", + "display_button": "rw", + "Element_3": "", + "Element_4": "", + "Element_5": "", + "Element_7": "", + "Element_8": "", + "preco_tech": "", + "chart_graph": "", + "metadonnees": "", + "email": "", + "Element_1": "", + "statistique": "" + }, + "demandeur": { + "email": "r", + "company": "r", + "layers": "r", + "coordsys_id": "r", + "vector_format_id": "r", + "raster_format_id": "r", + "extent_method": "r", + "id_com": "r", + "id_conseil": "r", + "extent": "r", + "status": "r", + "history": "", + "creation_date": "r", + "requestor": "r", + "ae": "", + "note": "", + "note_line": "", + "signed": "", + "accepted_by_cpa": "", + "identification_complete": "", + "definition_complete": "", + "comment": "", + "priority_id": "", + "bo_id": "r", + "status_name": "rw", + "tr_status_method": "rw", + "display_button": "rw", + "Element_3": "", + "Element_4": "", + "Element_5": "", + "Element_7": "", + "Element_8": "", + "preco_tech": "", + "chart_graph": "", + "metadonnees": "", + "Element_1": "", + "statistique": "" + } + }, + "AE Généré": { + "controleur": { + "company": "", + "layers": "", + "coordsys_id": "", + "vector_format_id": "", + "raster_format_id": "", + "extent_method": "", + "id_com": "", + "id_conseil": "", + "extent": "", + "status": "", + "history": "", + "creation_date": "", + "requestor": "", + "ae": "", + "note": "", + "note_line": "", + "signed": "", + "accepted_by_cpa": "", + "identification_complete": "", + "definition_complete": "", + "comment": "", + "priority_id": "", + "bo_id": "", + "status_name": "", + "tr_status_method": "", + "display_button": "rw", + "Element_3": "", + "Element_4": "", + "Element_5": "", + "Element_7": "", + "Element_8": "", + "preco_tech": "", + "chart_graph": "", + "metadonnees": "", + "email": "", + "Element_1": "", + "statistique": "" + }, + "demandeur": { + "email": "r", + "company": "r", + "layers": "r", + "coordsys_id": "r", + "vector_format_id": "r", + "raster_format_id": "r", + "extent_method": "r", + "id_com": "r", + "id_conseil": "r", + "extent": "r", + "status": "r", + "history": "", + "creation_date": "r", + "requestor": "r", + "ae": "rw", + "note": "", + "note_line": "", + "signed": "", + "accepted_by_cpa": "", + "identification_complete": "", + "definition_complete": "", + "comment": "", + "priority_id": "", + "bo_id": "r", + "status_name": "rw", + "tr_status_method": "rw", + "display_button": "rw", + "Element_3": "", + "Element_4": "", + "Element_5": "", + "Element_7": "", + "Element_8": "", + "preco_tech": "r", + "chart_graph": "r", + "metadonnees": "r", + "Element_1": "", + "statistique": "" + } + }, + "AE Soumis": { + "controleur": { + "email": "r", + "company": "r", + "layers": "r", + "coordsys_id": "r", + "vector_format_id": "r", + "raster_format_id": "r", + "extent_method": "r", + "id_com": "r", + "id_conseil": "r", + "extent": "r", + "status": "r", + "history": "r", + "creation_date": "r", + "requestor": "r", + "ae": "", + "note": "", + "note_line": "", + "signed": "rw", + "accepted_by_cpa": "rw", + "identification_complete": "rw", + "definition_complete": "rw", + "comment": "rw", + "priority_id": "r", + "bo_id": "r", + "status_name": "rw", + "tr_status_method": "rw", + "display_button": "rw", + "Element_3": "", + "Element_4": "", + "Element_5": "", + "Element_7": "", + "Element_8": "", + "preco_tech": "r", + "chart_graph": "r", + "metadonnees": "r", + "Element_1": "", + "statistique": "" + }, + "demandeur": { + "email": "r", + "company": "r", + "layers": "r", + "coordsys_id": "r", + "vector_format_id": "r", + "raster_format_id": "r", + "extent_method": "r", + "id_com": "r", + "id_conseil": "r", + "extent": "r", + "status": "r", + "history": "", + "creation_date": "r", + "requestor": "r", + "ae": "", + "note": "", + "note_line": "", + "signed": "", + "accepted_by_cpa": "", + "identification_complete": "", + "definition_complete": "", + "comment": "", + "priority_id": "r", + "bo_id": "r", + "status_name": "rw", + "tr_status_method": "rw", + "display_button": "rw", + "Element_3": "", + "Element_4": "", + "Element_5": "", + "Element_7": "", + "Element_8": "", + "preco_tech": "r", + "chart_graph": "r", + "metadonnees": "r", + "Element_1": "", + "statistique": "" + } + }, + "Autorisée": { + "controleur": { + "email": "r", + "company": "r", + "layers": "r", + "coordsys_id": "r", + "vector_format_id": "r", + "raster_format_id": "r", + "extent_method": "r", + "id_com": "r", + "id_conseil": "r", + "extent": "r", + "status": "r", + "history": "r", + "creation_date": "r", + "requestor": "r", + "ae": "r", + "note": "", + "note_line": "", + "signed": "r", + "accepted_by_cpa": "r", + "identification_complete": "r", + "definition_complete": "r", + "comment": "r", + "priority_id": "rw", + "bo_id": "r", + "status_name": "rw", + "tr_status_method": "rw", + "display_button": "rw", + "Element_3": "", + "Element_4": "", + "Element_5": "", + "Element_7": "", + "Element_8": "", + "preco_tech": "r", + "chart_graph": "r", + "metadonnees": "r", + "Element_1": "", + "statistique": "" + }, + "demandeur": { + "email": "", + "company": "", + "layers": "", + "coordsys_id": "", + "vector_format_id": "", + "raster_format_id": "", + "extent_method": "", + "id_com": "", + "id_conseil": "", + "extent": "", + "status": "", + "history": "", + "creation_date": "", + "requestor": "", + "ae": "", + "note": "", + "note_line": "", + "signed": "", + "accepted_by_cpa": "", + "identification_complete": "", + "definition_complete": "", + "comment": "", + "priority_id": "", + "bo_id": "", + "status_name": "", + "tr_status_method": "", + "display_button": "rw", + "Element_3": "", + "Element_4": "", + "Element_5": "", + "Element_7": "", + "Element_8": "", + "preco_tech": "", + "chart_graph": "", + "metadonnees": "", + "Element_1": "", + "statistique": "" + } + }, + "Refusée": { + "controleur": { + "email": "r", + "company": "r", + "layers": "r", + "coordsys_id": "r", + "vector_format_id": "r", + "raster_format_id": "r", + "extent_method": "r", + "id_com": "r", + "id_conseil": "r", + "extent": "r", + "status": "r", + "history": "r", + "creation_date": "r", + "requestor": "r", + "ae": "", + "note": "", + "note_line": "", + "signed": "r", + "accepted_by_cpa": "r", + "identification_complete": "r", + "definition_complete": "r", + "comment": "r", + "priority_id": "r", + "bo_id": "r", + "status_name": "rw", + "tr_status_method": "rw", + "display_button": "rw", + "Element_3": "", + "Element_4": "", + "Element_5": "", + "Element_7": "", + "Element_8": "", + "preco_tech": "r", + "chart_graph": "r", + "metadonnees": "r", + "Element_1": "", + "statistique": "" + }, + "demandeur": { + "email": "r", + "company": "r", + "layers": "r", + "coordsys_id": "r", + "vector_format_id": "r", + "raster_format_id": "r", + "extent_method": "r", + "id_com": "r", + "id_conseil": "r", + "extent": "r", + "status": "r", + "history": "", + "creation_date": "r", + "requestor": "r", + "ae": "", + "note": "", + "note_line": "", + "signed": "r", + "accepted_by_cpa": "r", + "identification_complete": "r", + "definition_complete": "r", + "comment": "r", + "priority_id": "r", + "bo_id": "r", + "status_name": "rw", + "tr_status_method": "rw", + "display_button": "rw", + "Element_3": "", + "Element_4": "", + "Element_5": "", + "Element_7": "", + "Element_8": "", + "preco_tech": "r", + "chart_graph": "r", + "metadonnees": "r", + "Element_1": "", + "statistique": "" + } + }, + "Terminée": { + "controleur": { + "company": "r", + "layers": "r", + "coordsys_id": "r", + "vector_format_id": "", + "raster_format_id": "r", + "extent_method": "", + "id_com": "", + "id_conseil": "", + "extent": "r", + "status": "r", + "history": "r", + "creation_date": "r", + "requestor": "r", + "ae": "", + "note": "", + "note_line": "", + "signed": "", + "accepted_by_cpa": "", + "identification_complete": "", + "definition_complete": "", + "comment": "r", + "priority_id": "", + "bo_id": "r", + "status_name": "rw", + "tr_status_method": "rw", + "display_button": "rw", + "Element_3": "", + "Element_4": "", + "Element_5": "", + "Element_7": "", + "Element_8": "", + "preco_tech": "r", + "chart_graph": "r", + "metadonnees": "r", + "email": "", + "Element_1": "", + "statistique": "" + }, + "demandeur": { + "email": "r", + "company": "r", + "layers": "r", + "coordsys_id": "r", + "vector_format_id": "", + "raster_format_id": "r", + "extent_method": "", + "id_com": "", + "id_conseil": "", + "extent": "r", + "status": "r", + "history": "r", + "creation_date": "r", + "requestor": "r", + "ae": "", + "note": "", + "note_line": "", + "signed": "", + "accepted_by_cpa": "", + "identification_complete": "", + "definition_complete": "", + "comment": "r", + "priority_id": "", + "bo_id": "r", + "status_name": "rw", + "tr_status_method": "rw", + "display_button": "rw", + "Element_3": "", + "Element_4": "", + "Element_5": "", + "Element_7": "", + "Element_8": "", + "preco_tech": "r", + "chart_graph": "r", + "metadonnees": "r", + "Element_1": "", + "statistique": "" + } + } + }, + "tabs": { + "position": "top", + "list": [ + { + "label": "Tab 0", + "elements": [ + "bo_id", + "status", + "history", + "creation_date", + "requestor", + "ae", + "extent", + "email", + "company", + "layers", + "vector_format_id", + "coordsys_id", + "note", + "note_line", + "raster_format_id", + "extent_method", + "signed", + "accepted_by_cpa", + "identification_complete", + "definition_complete", + "comment", + "priority_id", + "id_com", + "id_conseil", + "display_button", + "status_name", + "ct_list", + "statistique", + "Element_3", + "Element_4", + "Element_5", + "Element_7", + "Element_8", + "tr_status_method", + "format", + "preco_tech", + "chart_graph", + "metadonnees" + ] + } + ] + } + }, + "search": { + "name": "extraction_extraction_extraction-form", + "title": "EXTRACTION_EXTRACTION_EXTRACTION_TITLE", + "input_size": "xxs", + "nb_cols": 12, + "javascript": false, + "rows": [ + { + "fields": [ + { + "type": "text", + "name": "company", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_COMPANY", + "nb_cols": 12, + "id": "company_8_1" + } + ] + }, + { + "fields": [ + { + "type": "button", + "class": "btn-ungroup btn-group-xs", + "nb_cols": 12, + "name": "search_button", + "id": "search_button", + "buttons": [ + { + "type": "button", + "name": "search", + "label": "FORM_SEARCH_BUTTON", + "class": "btn-primary", + "event": "setGridFilter()" + }, + { + "type": "reset", + "name": "reset", + "label": "FORM_RESET_BUTTON", + "class": "btn-primary", + "event": "resetGridFilter()" + } + ] + } + ] + } + ], + "tabs": { + "position": "top", + "list": [ + { + "label": "Tab 0", + "elements": [ + "company", + "search_button" + ] + } + ] + } + }, + "insert": { + "name": "extraction_extraction_extraction-form", + "title": "EXTRACTION_EXTRACTION_EXTRACTION_TITLE_INSERT", + "input_size": "xxs", + "nb_cols": 12, + "javascript": true, + "rows": [ + { + "fields": [ + { + "type": "label", + "name": "bo_id", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_TECHNIQUE", + "nb_cols": 12, + "id": "Element_0_2_1" + } + ] + }, + { + "fields": [ + { + "type": "checkbox", + "name": "preco_tech", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_TECHNIQUE", + "required": false, + "nb_cols": 4, + "id": "checkbox_tech_2_1" + }, + { + "type": "checkbox", + "name": "chart_graph", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_CARTOGRAPHIQUE", + "required": false, + "nb_cols": 4, + "id": "checkbox_carto" + }, + { + "type": "checkbox", + "name": "metadonnees", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ISOGEO", + "required": false, + "nb_cols": 4, + "id": "checkbox_iso" + } + ] + }, + { + "fields": [ + { + "type": "email", + "name": "email", + "label": "FORM_EMAIL_USERS_USER", + "required": true, + "nb_cols": 6, + "id": "email_3_1", + "pattern": "^(([a-zA-Z]|[0-9])|([-]|[_]|[.]))+[@](([a-zA-Z]|[0-9])|([-]|[_]|[.])){2,63}[.](([a-zA-Z0-9]){2,63})+$" + }, + { + "type": "text", + "name": "company", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_COMPANY", + "required": true, + "nb_cols": 6, + "id": "company_8_1" + } + ] + }, + { + "fields": [ + { + "type": "select", + "name": "extent_method", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_EXTENT_METHOD", + "required": true, + "nb_cols": 12, + "id": "extent_method_15_1", + "options": [ + "Commmunes|id_com", + "Conseils de Territoire|id_conseil", + "Etendue libre|extent" + ], + "id_from": "extent_method_15_1_from" + } + ] + }, + { + "fields": [ + { + "type": "list", + "name": "id_com", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ID_COM", + "required": false, + "nb_cols": 12, + "datasource": { + "datasource_id": "datasource_9", + "sort_order": "ASC", + "distinct": "true", + "label_key": "name", + "order_by": "name", + "id_key": "commune_id", + "attributs": "commune_id|name" + }, + "id": "id_com_22_1", + "id_from": "id_com_22_1_from", + "size": 10 + } + ] + }, + { + "fields": [ + { + "type": "list", + "name": "id_conseil", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ID_CONSEIL", + "required": false, + "nb_cols": 12, + "datasource": { + "datasource_id": "datasource_8", + "sort_order": "ASC", + "distinct": "true", + "label_key": "name", + "order_by": "name", + "id_key": "ct_id", + "attributs": "ct_id|name" + }, + "id": "id_conseil_23_1", + "id_from": "id_conseil_23_1_from", + "size": 10 + } + ] + }, + { + "fields": [ + { + "type": "map_vmap", + "name": "extent", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_EXTENT", + "required": false, + "nb_cols": 12, + "id": "extent_7_1", + "style": { + "height": "250px" + }, + "map_options": { + "proj": "EPSG:2154", + "type": "vmap", + "center": { + "extent": [ + -1736177.943496094, + 5863277.723320313, + 2570482.873496094, + 7416907.166679688 + ], + "coord": [ + 417152.46499999985, + 6640092.445 + ], + "scale": 23468294 + }, + "controls": { + "MP": true, + "ZO": true, + "SL": true, + "CP": true + }, + "layers": [], + "interactions": { + "multi_geometry": false, + "full_screen": true, + "RA": true, + "RO": true, + "ED": true, + "DP": false, + "DL": false, + "DPol": true, + "SE": true + }, + "draw_color": "rgba(54,184,255,0.6)", + "contour_color": "rgba(0,0,0,0.4)", + "contour_size": 2, + "circle_radius": 6, + "features": [], + "coord_accuracy": 8, + "tree": { + "name": "Tree", + "children": [ + { + "view": { + "center": [ + "902168", + "6269043" + ], + "zoom": 7, + "maxZoom": 28, + "minZoom": 0, + "projection": "EPSG:2154", + "extent": [ + 4510835482577.04, + 313452150322452.2, + 4510845419590.96, + 313452155946590.8 + ] + } + }, + { + "name": "extraction", + "children": [ + { + "name": "REF_ortho2011", + "layerType": "tilewms", + "url": "http://SCPA441.cpa.fr:8399/arcgis/services/REF_ortho2011/MapServer/WMSServer", + "index": -1, + "visible": true, + "opacity": 1, + "is_dynamic": false, + "is_filtered": false, + "version": "1.3.0", + "params": { + "LAYERS": "0", + "VERSION": "1.3.0", + "STYLES": "" + }, + "bo_queryable": false, + "layer_id": 1, + "select": true + }, + { + "name": "REF_CPA_LIMITE_COMMUNE", + "layerType": "tilewms", + "url": "http://SCPA441.cpa.fr:8399/arcgis/services/REF_CPA_LIMITE_COMMUNE/MapServer/WMSServer", + "index": -1, + "visible": true, + "opacity": 1, + "is_dynamic": false, + "is_filtered": false, + "version": "1.3.0", + "params": { + "LAYERS": "0,1", + "VERSION": "1.3.0", + "STYLES": "" + }, + "bo_queryable": false, + "layer_id": 2, + "select": true + } + ], + "visible": true + } + ] + } + } + } + ] + }, + { + "class": "extraction-treeview", + "fields": [ + { + "type": "treeview", + "name": "layers", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_LAYERS", + "required": false, + "nb_cols": 12, + "id": "layers_9_1", + "size": 20, + "options": { + "showBorder": false, + "levels": 0, + "showCheckbox": true, + "expandIcon": "glyphicon glyphicon-folder-close", + "collapseIcon": "glyphicon glyphicon-folder-open", + "highlightSelected": false, + "multiSelect": true, + "data": "getExtractionLayersTree()" + } + } + ] + }, + { + "fields": [ + { + "type": "treeview", + "name": "statistique", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_STATISTIQUE", + "required": false, + "pattern": "", + "nb_cols": 12, + "id": "statistique_9_1", + "options": { + "showBorder": false, + "levels": 0, + "showCheckbox": true, + "expandIcon": "glyphicon glyphicon-folder-close", + "collapseIcon": "glyphicon glyphicon-folder-open", + "highlightSelected": false, + "multiSelect": true, + "data": "getExtractionStatsTree()" + } + } + ] + }, + { + "fields": [ + { + "type": "select", + "name": "coordsys_id", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_COORDSYS_ID", + "required": false, + "nb_cols": 4, + "id": "coordsys_id_11_1", + "datasource": { + "datasource_id": "datasource_1", + "sort_order": "ASC", + "distinct": "true", + "label_key": "coordsys", + "order_by": "coordsys", + "id_key": "coordsys_id", + "attributs": "coordsys_id|coordsys" + }, + "default_value": "Lambert93", + "id_from": "coordsys_id_11_1_from" + }, + { + "type": "select", + "name": "vector_format_id", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_VECTOR_FORMAT_ID", + "required": false, + "nb_cols": 4, + "id": "vector_format_id_10_1", + "datasource": { + "datasource_id": "datasource_2", + "sort_order": "ASC", + "distinct": "true", + "label_key": "format", + "order_by": "format", + "id_key": "format_id", + "attributs": "format_id|format" + }, + "default_value": "SHAPE", + "id_from": "vector_format_id_10_1_from" + }, + { + "type": "select", + "name": "raster_format_id", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_RASTER_FORMAT_ID", + "required": false, + "nb_cols": 4, + "id": "raster_format_id_14_1", + "datasource": { + "datasource_id": "datasource_3", + "sort_order": "ASC", + "distinct": "true", + "label_key": "format", + "order_by": "format", + "id_key": "format_id", + "attributs": "format_id|format" + }, + "default_value": "ECW", + "id_from": "raster_format_id_14_1_from" + } + ] + }, + { + "fields": [ + { + "type": "text", + "name": "status", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_STATUS", + "required": false, + "nb_cols": 12, + "id": "status_2_1" + } + ] + }, + { + "fields": [ + { + "type": "text", + "name": "history", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_HISTORY", + "required": false, + "nb_cols": 12, + "id": "history_3_1" + } + ] + }, + { + "fields": [ + { + "type": "text", + "name": "creation_date", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_CREATION_DATE", + "required": false, + "nb_cols": 12, + "id": "creation_date_4_1" + } + ] + }, + { + "fields": [ + { + "type": "text", + "name": "requestor", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_REQUESTOR", + "required": false, + "nb_cols": 12, + "id": "requestor_5_1" + } + ] + }, + { + "fields": [ + { + "type": "file_wsdata", + "name": "ae", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_AE", + "required": false, + "nb_cols": 12, + "id": "ae_6_1" + } + ] + }, + { + "fields": [ + { + "type": "text", + "name": "note", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_NOTE", + "required": false, + "nb_cols": 12, + "id": "note_12_1" + } + ] + }, + { + "fields": [ + { + "type": "text", + "name": "note_line", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_NOTE_LINE", + "required": false, + "nb_cols": 12, + "id": "note_line_13_1" + } + ] + }, + { + "fields": [ + { + "type": "radio", + "options": { + "choices": [ + { + "label": "oui", + "value": true + }, + { + "label": "non", + "value": false + } + ] + }, + "name": "signed", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_SIGNED", + "required": false, + "nb_cols": 12, + "id": "signed_16_1" + } + ] + }, + { + "fields": [ + { + "type": "radio", + "options": { + "choices": [ + { + "label": "oui", + "value": true + }, + { + "label": "non", + "value": false + } + ] + }, + "name": "accepted_by_cpa", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ACCEPTED_BY_CPA", + "required": false, + "nb_cols": 12, + "id": "accepted_by_cpa_17_1" + } + ] + }, + { + "fields": [ + { + "type": "radio", + "options": { + "choices": [ + { + "label": "oui", + "value": true + }, + { + "label": "non", + "value": false + } + ] + }, + "name": "identification_complete", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_IDENTIFICATION_COMPLETE", + "required": false, + "nb_cols": 12, + "id": "identification_complete_18_1" + } + ] + }, + { + "fields": [ + { + "type": "radio", + "options": { + "choices": [ + { + "label": "oui", + "value": true + }, + { + "label": "non", + "value": false + } + ] + }, + "name": "definition_complete", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_DEFINITION_COMPLETE", + "required": false, + "nb_cols": 12, + "id": "definition_complete_19_1" + } + ] + }, + { + "fields": [ + { + "type": "text", + "name": "comment", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_COMMENT", + "required": false, + "nb_cols": 12, + "id": "comment_20_1" + } + ] + }, + { + "fields": [ + { + "type": "integer", + "name": "priority_id", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_PRIORITY_ID", + "required": false, + "nb_cols": 12, + "id": "priority_id_21_1" + } + ] + }, + { + "fields": [ + { + "type": "hidden", + "name": "status_name", + "nb_cols": 6, + "id": "Element_0_26_1", + "default_value": "START" + }, + { + "type": "hidden", + "name": "tr_status_method", + "nb_cols": 6, + "id": "Element_0_25_2" + } + ] + }, + { + "class": "wab-method-button", + "fields": [ + { + "type": "button", + "class": "btn-ungroup btn-group-sm", + "nb_cols": 6, + "name": "insert_button", + "id": "insert_button", + "buttons": [ + { + "type": "submit", + "name": "form_submit", + "label": "FORM_CREATE", + "class": "btn-primary" + } + ] + }, + { + "type": "button", + "name": "return_list_button", + "nb_cols": 6, + "id": "return_list_button", + "class": "btn-ungroup btn-group-sm", + "buttons": [ + { + "type": "button", + "name": "return_list", + "label": "FORM_RETURN_LIST", + "class": "btn-primary", + "event": "setMode(\"search\")" + } + ] + } + ] + } + ], + "initEvent": "initExtractionExtractionForm()", + "beforeEvent": "setWabStatusMethod('trNouveau')", + "event": "sendSimpleForm()", + "afterEvent": "editSectionForm()", + "tabs": { + "position": "top", + "list": [ + { + "label": "Tab 0", + "elements": [ + "bo_id", + "status", + "history", + "creation_date", + "requestor", + "ae", + "email", + "extent", + "company", + "layers", + "vector_format_id", + "coordsys_id", + "note", + "note_line", + "raster_format_id", + "extent_method", + "signed", + "accepted_by_cpa", + "identification_complete", + "definition_complete", + "comment", + "priority_id", + "id_com", + "id_conseil", + "insert_button", + "bo_id", + "status_name", + "tr_status_method", + "return_list_button", + "statistique" + ] + } + ] + }, + "wab": { + "START": { + "controleur": { + "email": "", + "company": "", + "layers": "", + "coordsys_id": "", + "vector_format_id": "", + "raster_format_id": "", + "extent_method": "", + "id_com": "", + "id_conseil": "", + "extent": "", + "status": "", + "history": "", + "creation_date": "", + "requestor": "", + "ae": "", + "note": "", + "note_line": "", + "signed": "", + "accepted_by_cpa": "", + "identification_complete": "", + "definition_complete": "", + "comment": "", + "priority_id": "", + "insert_button": "", + "bo_id": "", + "status_name": "", + "tr_status_method": "", + "return_list_button": "rw", + "chart_graph": "", + "metadonnees": "", + "preco_tech": "", + "statistique": "" + }, + "demandeur": { + "email": "rw", + "company": "rw", + "layers": "rw", + "coordsys_id": "rw", + "vector_format_id": "rw", + "raster_format_id": "rw", + "extent_method": "rw", + "id_com": "rw", + "id_conseil": "rw", + "extent": "rw", + "status": "", + "history": "", + "creation_date": "", + "requestor": "", + "ae": "", + "note": "", + "note_line": "", + "signed": "", + "accepted_by_cpa": "", + "identification_complete": "", + "definition_complete": "", + "comment": "", + "priority_id": "", + "insert_button": "rw", + "bo_id": "", + "status_name": "", + "tr_status_method": "", + "return_list_button": "rw", + "chart_graph": "rw", + "metadonnees": "rw", + "preco_tech": "rw", + "statistique": "rw" + } + }, + "Nouveau": { + "controleur": { + "email": "", + "company": "", + "layers": "", + "coordsys_id": "", + "vector_format_id": "", + "raster_format_id": "", + "extent_method": "", + "id_com": "", + "id_conseil": "", + "extent": "", + "status": "", + "history": "", + "creation_date": "", + "requestor": "", + "ae": "", + "note": "", + "note_line": "", + "signed": "", + "accepted_by_cpa": "", + "identification_complete": "", + "definition_complete": "", + "comment": "", + "priority_id": "", + "insert_button": "", + "bo_id": "", + "status_name": "", + "tr_status_method": "", + "return_list_button": "rw", + "chart_graph": "", + "metadonnees": "", + "preco_tech": "", + "statistique": "" + }, + "demandeur": { + "email": "rw", + "company": "rw", + "layers": "rw", + "coordsys_id": "rw", + "vector_format_id": "rw", + "raster_format_id": "rw", + "extent_method": "rw", + "id_com": "rw", + "id_conseil": "rw", + "extent": "rw", + "status": "r", + "history": "", + "creation_date": "r", + "requestor": "r", + "ae": "", + "note": "", + "note_line": "", + "signed": "", + "accepted_by_cpa": "", + "identification_complete": "", + "definition_complete": "", + "comment": "", + "priority_id": "", + "insert_button": "", + "bo_id": "r", + "status_name": "", + "tr_status_method": "", + "return_list_button": "rw", + "chart_graph": "rw", + "metadonnees": "rw", + "preco_tech": "rw", + "statistique": "rw" + } + }, + "AE Demandé": { + "controleur": { + "email": "", + "company": "", + "layers": "", + "coordsys_id": "", + "vector_format_id": "", + "raster_format_id": "", + "extent_method": "", + "id_com": "", + "id_conseil": "", + "extent": "", + "status": "", + "history": "", + "creation_date": "", + "requestor": "", + "ae": "", + "note": "", + "note_line": "", + "signed": "", + "accepted_by_cpa": "", + "identification_complete": "", + "definition_complete": "", + "comment": "", + "priority_id": "", + "insert_button": "", + "bo_id": "", + "status_name": "", + "tr_status_method": "", + "return_list_button": "", + "chart_graph": "", + "metadonnees": "", + "preco_tech": "", + "statistique": "" + }, + "demandeur": { + "email": "r", + "company": "r", + "layers": "r", + "coordsys_id": "r", + "vector_format_id": "r", + "raster_format_id": "r", + "extent_method": "r", + "id_com": "r", + "id_conseil": "r", + "extent": "r", + "status": "r", + "history": "", + "creation_date": "r", + "requestor": "r", + "ae": "", + "note": "", + "note_line": "", + "signed": "", + "accepted_by_cpa": "", + "identification_complete": "", + "definition_complete": "", + "comment": "", + "priority_id": "", + "insert_button": "", + "bo_id": "r", + "status_name": "rw", + "tr_status_method": "rw", + "return_list_button": "rw", + "chart_graph": "r", + "metadonnees": "r", + "preco_tech": "r", + "statistique": "r" + } + }, + "AE Généré": { + "controleur": { + "email": "", + "company": "", + "layers": "", + "coordsys_id": "", + "vector_format_id": "", + "raster_format_id": "", + "extent_method": "", + "id_com": "", + "id_conseil": "", + "extent": "", + "status": "", + "history": "", + "creation_date": "", + "requestor": "", + "ae": "", + "note": "", + "note_line": "", + "signed": "", + "accepted_by_cpa": "", + "identification_complete": "", + "definition_complete": "", + "comment": "", + "priority_id": "", + "insert_button": "", + "bo_id": "", + "status_name": "", + "tr_status_method": "", + "return_list_button": "", + "chart_graph": "", + "metadonnees": "", + "preco_tech": "", + "statistique": "" + }, + "demandeur": { + "email": "r", + "company": "r", + "layers": "r", + "coordsys_id": "r", + "vector_format_id": "r", + "raster_format_id": "r", + "extent_method": "r", + "id_com": "r", + "id_conseil": "r", + "extent": "r", + "status": "r", + "history": "", + "creation_date": "r", + "requestor": "r", + "ae": "rw", + "note": "", + "note_line": "", + "signed": "", + "accepted_by_cpa": "", + "identification_complete": "", + "definition_complete": "", + "comment": "", + "priority_id": "", + "insert_button": "", + "bo_id": "r", + "status_name": "r", + "tr_status_method": "r", + "return_list_button": "rw", + "chart_graph": "r", + "metadonnees": "r", + "preco_tech": "r", + "statistique": "r" + } + }, + "AE Soumis": { + "controleur": { + "email": "r", + "company": "r", + "layers": "r", + "coordsys_id": "r", + "vector_format_id": "r", + "raster_format_id": "r", + "extent_method": "r", + "id_com": "r", + "id_conseil": "r", + "extent": "r", + "status": "r", + "history": "r", + "creation_date": "r", + "requestor": "r", + "ae": "", + "note": "", + "note_line": "", + "signed": "rw", + "accepted_by_cpa": "rw", + "identification_complete": "rw", + "definition_complete": "rw", + "comment": "rw", + "priority_id": "r", + "insert_button": "", + "bo_id": "r", + "status_name": "r", + "tr_status_method": "r", + "return_list_button": "rw", + "chart_graph": "", + "metadonnees": "", + "preco_tech": "", + "statistique": "" + }, + "demandeur": { + "email": "r", + "company": "r", + "layers": "r", + "coordsys_id": "r", + "vector_format_id": "r", + "raster_format_id": "r", + "extent_method": "r", + "id_com": "r", + "id_conseil": "r", + "extent": "r", + "status": "r", + "history": "", + "creation_date": "r", + "requestor": "r", + "ae": "", + "note": "", + "note_line": "", + "signed": "", + "accepted_by_cpa": "", + "identification_complete": "", + "definition_complete": "", + "comment": "", + "priority_id": "r", + "insert_button": "", + "bo_id": "r", + "status_name": "r", + "tr_status_method": "r", + "return_list_button": "rw", + "chart_graph": "r", + "metadonnees": "r", + "preco_tech": "r", + "statistique": "r" + } + }, + "Autorisée": { + "controleur": { + "email": "r", + "company": "r", + "layers": "r", + "coordsys_id": "r", + "vector_format_id": "r", + "raster_format_id": "r", + "extent_method": "r", + "id_com": "r", + "id_conseil": "r", + "extent": "r", + "status": "r", + "history": "r", + "creation_date": "r", + "requestor": "r", + "ae": "r", + "note": "", + "note_line": "", + "signed": "r", + "accepted_by_cpa": "r", + "identification_complete": "r", + "definition_complete": "r", + "comment": "r", + "priority_id": "r", + "insert_button": "", + "bo_id": "r", + "status_name": "r", + "tr_status_method": "r", + "return_list_button": "rw", + "chart_graph": "", + "metadonnees": "", + "preco_tech": "", + "statistique": "" + }, + "demandeur": { + "email": "", + "company": "", + "layers": "", + "coordsys_id": "", + "vector_format_id": "", + "raster_format_id": "", + "extent_method": "", + "id_com": "", + "id_conseil": "", + "extent": "", + "status": "", + "history": "", + "creation_date": "", + "requestor": "", + "ae": "", + "note": "", + "note_line": "", + "signed": "", + "accepted_by_cpa": "", + "identification_complete": "", + "definition_complete": "", + "comment": "", + "priority_id": "", + "insert_button": "", + "bo_id": "", + "status_name": "", + "tr_status_method": "", + "return_list_button": "rw", + "chart_graph": "", + "metadonnees": "", + "preco_tech": "", + "statistique": "" + } + }, + "Refusée": { + "controleur": { + "email": "r", + "company": "r", + "layers": "r", + "coordsys_id": "r", + "vector_format_id": "r", + "raster_format_id": "r", + "extent_method": "r", + "id_com": "r", + "id_conseil": "r", + "extent": "r", + "status": "r", + "history": "r", + "creation_date": "r", + "requestor": "r", + "ae": "", + "note": "", + "note_line": "", + "signed": "r", + "accepted_by_cpa": "r", + "identification_complete": "r", + "definition_complete": "r", + "comment": "r", + "priority_id": "r", + "insert_button": "", + "bo_id": "r", + "status_name": "r", + "tr_status_method": "r", + "return_list_button": "rw", + "chart_graph": "", + "metadonnees": "", + "preco_tech": "", + "statistique": "" + }, + "demandeur": { + "email": "r", + "company": "r", + "layers": "r", + "coordsys_id": "r", + "vector_format_id": "r", + "raster_format_id": "r", + "extent_method": "r", + "id_com": "r", + "id_conseil": "r", + "extent": "r", + "status": "r", + "history": "", + "creation_date": "r", + "requestor": "r", + "ae": "", + "note": "", + "note_line": "", + "signed": "r", + "accepted_by_cpa": "r", + "identification_complete": "r", + "definition_complete": "r", + "comment": "r", + "priority_id": "r", + "insert_button": "", + "bo_id": "r", + "status_name": "rw", + "tr_status_method": "rw", + "return_list_button": "rw", + "chart_graph": "r", + "metadonnees": "r", + "preco_tech": "r", + "statistique": "r" + } + }, + "Extraction terminée": { + "controleur": { + "bo_id": "", + "preco_tech": "", + "chart_graph": "", + "metadonnees": "", + "email": "", + "company": "", + "extent_method": "", + "id_com": "", + "id_conseil": "", + "extent": "", + "layers": "", + "coordsys_id": "", + "vector_format_id": "", + "raster_format_id": "", + "status": "", + "history": "", + "creation_date": "", + "requestor": "", + "ae": "", + "note": "", + "note_line": "", + "signed": "", + "accepted_by_cpa": "", + "identification_complete": "", + "definition_complete": "", + "comment": "", + "priority_id": "", + "status_name": "", + "tr_status_method": "", + "insert_button": "", + "return_list_button": "", + "statistique": "" + }, + "demandeur": { + "bo_id": "", + "preco_tech": "", + "chart_graph": "", + "metadonnees": "", + "email": "", + "company": "", + "extent_method": "", + "id_com": "", + "id_conseil": "", + "extent": "", + "layers": "", + "coordsys_id": "", + "vector_format_id": "", + "raster_format_id": "", + "status": "", + "history": "", + "creation_date": "", + "requestor": "", + "ae": "", + "note": "", + "note_line": "", + "signed": "", + "accepted_by_cpa": "", + "identification_complete": "", + "definition_complete": "", + "comment": "", + "priority_id": "", + "status_name": "", + "tr_status_method": "", + "insert_button": "", + "return_list_button": "", + "statistique": "" + } + }, + "Fichier invalidé": { + "controleur": { + "bo_id": "", + "preco_tech": "", + "chart_graph": "", + "metadonnees": "", + "email": "", + "company": "", + "extent_method": "", + "id_com": "", + "id_conseil": "", + "extent": "", + "layers": "", + "coordsys_id": "", + "vector_format_id": "", + "raster_format_id": "", + "status": "", + "history": "", + "creation_date": "", + "requestor": "", + "ae": "", + "note": "", + "note_line": "", + "signed": "", + "accepted_by_cpa": "", + "identification_complete": "", + "definition_complete": "", + "comment": "", + "priority_id": "", + "status_name": "", + "tr_status_method": "", + "insert_button": "", + "return_list_button": "", + "statistique": "" + }, + "demandeur": { + "bo_id": "", + "preco_tech": "", + "chart_graph": "", + "metadonnees": "", + "email": "", + "company": "", + "extent_method": "", + "id_com": "", + "id_conseil": "", + "extent": "", + "layers": "", + "coordsys_id": "", + "vector_format_id": "", + "raster_format_id": "", + "status": "", + "history": "", + "creation_date": "", + "requestor": "", + "ae": "", + "note": "", + "note_line": "", + "signed": "", + "accepted_by_cpa": "", + "identification_complete": "", + "definition_complete": "", + "comment": "", + "priority_id": "", + "status_name": "", + "tr_status_method": "", + "insert_button": "", + "return_list_button": "", + "statistique": "" + } + }, + "Fichier déposé": { + "controleur": { + "bo_id": "", + "preco_tech": "", + "chart_graph": "", + "metadonnees": "", + "email": "", + "company": "", + "extent_method": "", + "id_com": "", + "id_conseil": "", + "extent": "", + "layers": "", + "coordsys_id": "", + "vector_format_id": "", + "raster_format_id": "", + "status": "", + "history": "", + "creation_date": "", + "requestor": "", + "ae": "", + "note": "", + "note_line": "", + "signed": "", + "accepted_by_cpa": "", + "identification_complete": "", + "definition_complete": "", + "comment": "", + "priority_id": "", + "status_name": "", + "tr_status_method": "", + "insert_button": "", + "return_list_button": "", + "statistique": "" + }, + "demandeur": { + "bo_id": "", + "preco_tech": "", + "chart_graph": "", + "metadonnees": "", + "email": "", + "company": "", + "extent_method": "", + "id_com": "", + "id_conseil": "", + "extent": "", + "layers": "", + "coordsys_id": "", + "vector_format_id": "", + "raster_format_id": "", + "status": "", + "history": "", + "creation_date": "", + "requestor": "", + "ae": "", + "note": "", + "note_line": "", + "signed": "", + "accepted_by_cpa": "", + "identification_complete": "", + "definition_complete": "", + "comment": "", + "priority_id": "", + "status_name": "", + "tr_status_method": "", + "insert_button": "", + "return_list_button": "", + "statistique": "" + } + }, + "Fichier accepté": { + "controleur": { + "bo_id": "", + "preco_tech": "", + "chart_graph": "", + "metadonnees": "", + "email": "", + "company": "", + "extent_method": "", + "id_com": "", + "id_conseil": "", + "extent": "", + "layers": "", + "coordsys_id": "", + "vector_format_id": "", + "raster_format_id": "", + "status": "", + "history": "", + "creation_date": "", + "requestor": "", + "ae": "", + "note": "", + "note_line": "", + "signed": "", + "accepted_by_cpa": "", + "identification_complete": "", + "definition_complete": "", + "comment": "", + "priority_id": "", + "status_name": "", + "tr_status_method": "", + "insert_button": "", + "return_list_button": "", + "statistique": "" + }, + "demandeur": { + "bo_id": "", + "preco_tech": "", + "chart_graph": "", + "metadonnees": "", + "email": "", + "company": "", + "extent_method": "", + "id_com": "", + "id_conseil": "", + "extent": "", + "layers": "", + "coordsys_id": "", + "vector_format_id": "", + "raster_format_id": "", + "status": "", + "history": "", + "creation_date": "", + "requestor": "", + "ae": "", + "note": "", + "note_line": "", + "signed": "", + "accepted_by_cpa": "", + "identification_complete": "", + "definition_complete": "", + "comment": "", + "priority_id": "", + "status_name": "", + "tr_status_method": "", + "insert_button": "", + "return_list_button": "", + "statistique": "" + } + }, + "Dépôt terminé": { + "controleur": { + "bo_id": "", + "preco_tech": "", + "chart_graph": "", + "metadonnees": "", + "email": "", + "company": "", + "extent_method": "", + "id_com": "", + "id_conseil": "", + "extent": "", + "layers": "", + "coordsys_id": "", + "vector_format_id": "", + "raster_format_id": "", + "status": "", + "history": "", + "creation_date": "", + "requestor": "", + "ae": "", + "note": "", + "note_line": "", + "signed": "", + "accepted_by_cpa": "", + "identification_complete": "", + "definition_complete": "", + "comment": "", + "priority_id": "", + "status_name": "", + "tr_status_method": "", + "insert_button": "", + "return_list_button": "", + "statistique": "" + }, + "demandeur": { + "bo_id": "", + "preco_tech": "", + "chart_graph": "", + "metadonnees": "", + "email": "", + "company": "", + "extent_method": "", + "id_com": "", + "id_conseil": "", + "extent": "", + "layers": "", + "coordsys_id": "", + "vector_format_id": "", + "raster_format_id": "", + "status": "", + "history": "", + "creation_date": "", + "requestor": "", + "ae": "", + "note": "", + "note_line": "", + "signed": "", + "accepted_by_cpa": "", + "identification_complete": "", + "definition_complete": "", + "comment": "", + "priority_id": "", + "status_name": "", + "tr_status_method": "", + "insert_button": "", + "return_list_button": "", + "statistique": "" + } + } + } + }, + "update": { + "name": "extraction_extraction_extraction-form", + "title": "EXTRACTION_EXTRACTION_EXTRACTION_TITLE", + "input_size": "xxs", + "nb_cols": 12, + "javascript": true, + "rows": [ + { + "fields": [ + { + "type": "label", + "name": "bo_id", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_BO_ID", + "required": false, + "nb_cols": 12, + "id": "bo_id_1_1" + } + ] + }, + { + "fields": [ + { + "type": "label", + "name": "status_name", + "nb_cols": 12, + "id": "Element_6_25_1" + }, + { + "type": "checkbox", + "name": "preco_tech", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_TECHNIQUE", + "required": false, + "nb_cols": 4, + "id": "checkbox_tech_2_1" + }, + { + "type": "checkbox", + "name": "chart_graph", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_CARTOGRAPHIQUE", + "required": false, + "nb_cols": 4, + "id": "checkbox_carto" + }, + { + "type": "checkbox", + "name": "metadonnees", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ISOGEO", + "required": false, + "nb_cols": 4, + "id": "checkbox_iso" + } + ] + }, + { + "fields": [ + { + "type": "text", + "name": "creation_date", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_CREATION_DATE", + "required": false, + "nb_cols": 12, + "id": "creation_date_4_1" + } + ] + }, + { + "fields": [ + { + "type": "email", + "name": "email", + "label": "FORM_EMAIL_USERS_USER", + "required": false, + "nb_cols": 4, + "id": "email_3_1", + "pattern": "^(([a-zA-Z]|[0-9])|([-]|[_]|[.]))+[@](([a-zA-Z]|[0-9])|([-]|[_]|[.])){2,63}[.](([a-zA-Z0-9]){2,63})+$" + }, + { + "type": "text", + "name": "company", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_COMPANY", + "required": true, + "nb_cols": 4, + "id": "company_8_1" + }, + { + "type": "text", + "name": "requestor", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_REQUESTOR", + "required": false, + "nb_cols": 4, + "id": "requestor_5_1" + } + ] + }, + { + "fields": [ + { + "type": "select", + "name": "extent_method", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_EXTENT_METHOD", + "required": true, + "nb_cols": 12, + "id": "extent_method_15_1", + "options": [ + "Commmunes|id_com", + "Conseils de Territoire|id_conseil", + "Etendue libre|extent" + ], + "id_from": "extent_method_15_1_from" + } + ] + }, + { + "fields": [ + { + "type": "list", + "name": "id_com", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ID_COM", + "required": false, + "nb_cols": 12, + "datasource": { + "datasource_id": "datasource_9", + "sort_order": "ASC", + "distinct": "true", + "label_key": "name", + "order_by": "name", + "id_key": "commune_id", + "attributs": "commune_id|name" + }, + "id": "id_com_22_1", + "id_from": "id_com_22_1_from", + "size": 10 + } + ] + }, + { + "fields": [ + { + "type": "list", + "name": "id_conseil", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ID_CONSEIL", + "required": false, + "nb_cols": 12, + "datasource": { + "datasource_id": "datasource_8", + "sort_order": "ASC", + "distinct": "true", + "label_key": "name", + "order_by": "name", + "id_key": "ct_id", + "attributs": "ct_id|name" + }, + "id": "id_conseil_23_1", + "id_from": "id_conseil_23_1_from", + "size": 10 + } + ] + }, + { + "fields": [ + { + "type": "map_vmap", + "name": "extent", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_EXTENT", + "required": false, + "nb_cols": 12, + "id": "extent_7_1", + "style": { + "height": "250px" + }, + "map_options": { + "proj": "EPSG:2154", + "type": "vmap", + "center": { + "extent": [ + 4510838297753.592, + 313452152357706.75, + 4510842604414.408, + 313452153911336.25 + ], + "coord": [ + 4510840451084, + 313452153134521.5 + ], + "scale": 23468294 + }, + "controls": { + "MP": true, + "ZO": true, + "SL": true, + "CP": true + }, + "layers": [], + "interactions": { + "multi_geometry": false, + "full_screen": true, + "RA": true, + "RO": true, + "ED": true, + "DP": false, + "DL": false, + "DPol": true, + "SE": true + }, + "draw_color": "rgba(54,184,255,0.6)", + "contour_color": "rgba(0,0,0,0.4)", + "contour_size": 2, + "circle_radius": 6, + "features": [], + "coord_accuracy": 8, + "tree": { + "name": "Tree", + "children": [ + { + "view": { + "center": [ + "902168", + "6269043" + ], + "zoom": 7, + "maxZoom": 28, + "minZoom": 0, + "projection": "EPSG:2154", + "extent": [ + 4510835482577.04, + 313452150322452.2, + 4510845419590.96, + 313452155946590.8 + ] + } + }, + { + "name": "extraction", + "children": [ + { + "name": "REF_ortho2011", + "layerType": "tilewms", + "url": "http://SCPA441.cpa.fr:8399/arcgis/services/REF_ortho2011/MapServer/WMSServer", + "index": -1, + "visible": true, + "opacity": 1, + "is_dynamic": false, + "is_filtered": false, + "version": "1.3.0", + "params": { + "LAYERS": "0", + "VERSION": "1.3.0", + "STYLES": "" + }, + "bo_queryable": false, + "layer_id": 1, + "select": true + }, + { + "name": "REF_CPA_LIMITE_COMMUNE", + "layerType": "tilewms", + "url": "http://SCPA441.cpa.fr:8399/arcgis/services/REF_CPA_LIMITE_COMMUNE/MapServer/WMSServer", + "index": -1, + "visible": true, + "opacity": 1, + "is_dynamic": false, + "is_filtered": false, + "version": "1.3.0", + "params": { + "LAYERS": "0,1", + "VERSION": "1.3.0", + "STYLES": "" + }, + "bo_queryable": false, + "layer_id": 2, + "select": true + } + ], + "visible": true + } + ] + } + } + } + ] + }, + { + "class": "extraction-treeview", + "fields": [ + { + "type": "treeview", + "name": "layers", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_LAYERS", + "required": false, + "nb_cols": 12, + "id": "layers_9_1", + "size": 20, + "options": { + "showBorder": false, + "levels": 0, + "showCheckbox": true, + "expandIcon": "glyphicon glyphicon-folder-close", + "collapseIcon": "glyphicon glyphicon-folder-open", + "highlightSelected": false, + "multiSelect": true, + "data": "getExtractionLayersTree()" + } + } + ] + }, + { + "fields": [ + { + "type": "treeview", + "name": "statistique", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_STATISTIQUE", + "required": false, + "pattern": "", + "nb_cols": 12, + "id": "statistique_9_1", + "options": { + "showBorder": false, + "levels": 0, + "showCheckbox": true, + "expandIcon": "glyphicon glyphicon-folder-close", + "collapseIcon": "glyphicon glyphicon-folder-open", + "highlightSelected": false, + "multiSelect": true, + "data": "getExtractionStatsTree()" + } + } + ] + }, + { + "fields": [ + { + "type": "file_wsdata", + "name": "ae", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_AE", + "required": false, + "nb_cols": 12, + "id": "ae_6_1" + } + ] + }, + { + "fields": [ + { + "type": "select", + "name": "coordsys_id", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_COORDSYS_ID", + "required": false, + "nb_cols": 4, + "id": "coordsys_id_11_1", + "datasource": { + "datasource_id": "datasource_1", + "sort_order": "ASC", + "distinct": "true", + "label_key": "coordsys", + "order_by": "coordsys", + "id_key": "coordsys_id", + "attributs": "coordsys_id|coordsys" + }, + "id_from": "coordsys_id_11_1_from" + }, + { + "type": "select", + "name": "vector_format_id", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_VECTOR_FORMAT_ID", + "required": false, + "nb_cols": 4, + "id": "vector_format_id_10_1", + "datasource": { + "datasource_id": "datasource_2", + "sort_order": "ASC", + "distinct": "true", + "label_key": "format", + "order_by": "format", + "id_key": "format_id", + "attributs": "format_id|format" + }, + "id_from": "vector_format_id_10_1_from" + }, + { + "type": "select", + "name": "raster_format_id", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_RASTER_FORMAT_ID", + "required": false, + "nb_cols": 4, + "id": "raster_format_id_14_1", + "datasource": { + "datasource_id": "datasource_3", + "sort_order": "ASC", + "distinct": "true", + "label_key": "format", + "order_by": "format", + "id_key": "format_id", + "attributs": "format_id|format" + }, + "id_from": "raster_format_id_14_1_from" + } + ] + }, + { + "fields": [ + { + "type": "text", + "name": "history", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_HISTORY", + "required": false, + "nb_cols": 12, + "id": "history_3_1" + } + ] + }, + { + "fields": [ + { + "type": "text", + "name": "note", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_NOTE", + "required": false, + "nb_cols": 12, + "id": "note_12_1" + } + ] + }, + { + "fields": [ + { + "type": "text", + "name": "note_line", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_NOTE_LINE", + "required": false, + "nb_cols": 12, + "id": "note_line_13_1" + } + ] + }, + { + "fields": [ + { + "type": "radio", + "options": { + "choices": [ + { + "label": "oui", + "value": true, + "$$hashKey": "object:2269" + }, + { + "label": "non", + "value": false, + "$$hashKey": "object:2270" + } + ] + }, + "name": "signed", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_SIGNED", + "required": false, + "nb_cols": 3, + "id": "signed_16_1" + }, + { + "type": "radio", + "options": { + "choices": [ + { + "label": "oui", + "value": true, + "$$hashKey": "object:2277" + }, + { + "label": "non", + "value": false, + "$$hashKey": "object:2278" + } + ] + }, + "name": "accepted_by_cpa", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ACCEPTED_BY_CPA", + "required": false, + "nb_cols": 3, + "id": "accepted_by_cpa_17_1" + }, + { + "type": "radio", + "options": { + "choices": [ + { + "label": "oui", + "value": true, + "$$hashKey": "object:2285" + }, + { + "label": "non", + "value": false, + "$$hashKey": "object:2286" + } + ] + }, + "name": "identification_complete", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_IDENTIFICATION_COMPLETE", + "required": false, + "nb_cols": 3, + "id": "identification_complete_18_1" + }, + { + "type": "radio", + "options": { + "choices": [ + { + "label": "oui", + "value": true, + "$$hashKey": "object:2293" + }, + { + "label": "non", + "value": false, + "$$hashKey": "object:2294" + } + ] + }, + "name": "definition_complete", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_DEFINITION_COMPLETE", + "required": false, + "nb_cols": 3, + "id": "definition_complete_19_1" + } + ] + }, + { + "fields": [ + { + "type": "text", + "name": "comment", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_COMMENT", + "required": false, + "nb_cols": 12, + "id": "comment_20_1" + } + ] + }, + { + "fields": [ + { + "type": "select", + "name": "priority_id", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_PRIORITY_ID", + "required": false, + "nb_cols": 12, + "id": "priority_id_21_1", + "options": [ + "Heures Pleines|1", + "Heures creuses|0" + ], + "id_from": "priority_id_21_1_from" + } + ] + }, + { + "fields": [ + { + "type": "file_wsdata", + "name": "input_deposit", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_INPUT_DEPOSIT", + "required": false, + "pattern": "", + "nb_cols": 12, + "id": "Element_6_19_1" + } + ] + }, + { + "class": "wab-method-button", + "fields": [ + { + "type": "button", + "class": "btn-ungroup btn-group-sm", + "nb_cols": 1, + "name": "update_button", + "id": "update_button", + "buttons": [ + { + "type": "submit", + "name": "form_submit", + "label": "FORM_UPDATE", + "class": "btn-primary" + } + ] + }, + { + "type": "button", + "name": "return_list_button", + "nb_cols": 1, + "id": "return_list_button", + "class": "btn-ungroup btn-group-sm", + "buttons": [ + { + "type": "button", + "name": "return_list", + "label": "FORM_RETURN_LIST", + "class": "btn-primary", + "event": "setMode(\"search\")" + } + ] + }, + { + "type": "button", + "name": "Element_2", + "nb_cols": 1, + "id": "Element_2_20_1", + "class": "btn-ungroup btn-group-sm", + "buttons": [ + { + "type": "submit", + "name": "form_submit", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_DEPOSIT", + "class": "btn-primary", + "event": "callBoMethod('trDeposer')" + } + ] + }, + { + "type": "button", + "name": "Element_0", + "nb_cols": 1, + "id": "Element_0_25_2", + "class": "btn-ungroup btn-group-sm", + "buttons": [ + { + "type": "submit", + "name": "form_submit", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ALLOW_EXTRACTION", + "class": "btn-primary", + "event": "callBoMethod('trAutoriser')" + } + ] + }, + { + "type": "button", + "name": "Element_1", + "nb_cols": 1, + "id": "Element_1_25_3", + "class": "btn-ungroup btn-group-sm", + "buttons": [ + { + "type": "submit", + "name": "form_submit", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ASK_AE", + "class": "btn-primary", + "event": "callBoMethod('trDemander')", + "disabled": false + } + ] + }, + { + "type": "button", + "name": "Element_3", + "nb_cols": 1, + "id": "Element_3_25_5", + "class": "btn-ungroup btn-group-sm", + "buttons": [ + { + "type": "submit", + "name": "form_submit", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_CREATE", + "class": "btn-primary", + "event": "callBoMethod('trNouveau')" + } + ] + }, + { + "type": "button", + "name": "Element_4", + "nb_cols": 1, + "id": "Element_4_25_6", + "class": "btn-ungroup btn-group-sm", + "buttons": [ + { + "type": "submit", + "name": "form_submit", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_REJECT_EXTRACTION", + "class": "btn-primary", + "event": "callBoMethod('trRefuser')" + } + ] + }, + { + "type": "button", + "name": "Element_5", + "nb_cols": 1, + "id": "Element_5_25_7", + "class": "btn-ungroup btn-group-sm", + "buttons": [ + { + "type": "submit", + "name": "form_submit", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_RELOAD_AE", + "class": "btn-primary", + "event": "callBoMethod('trResoumettre')" + } + ] + }, + { + "type": "button", + "name": "Element_7", + "nb_cols": 1, + "id": "Element_7_25_9", + "class": "btn-ungroup btn-group-sm", + "buttons": [ + { + "type": "submit", + "name": "form_submit", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_SEND_AE", + "class": "btn-primary", + "event": "callBoMethod('trSoumettre')" + } + ] + }, + { + "type": "button", + "name": "Element_8", + "nb_cols": 1, + "id": "Element_8_25_10", + "class": "btn-ungroup btn-group-sm", + "buttons": [ + { + "type": "submit", + "name": "form_submit", + "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_TERMINATE", + "class": "btn-primary", + "event": "callBoMethod('trTerminer')" + } + ] + } + ] + } + ], + "initEvent": "initExtractionExtractionForm()", + "event": "sendSimpleForm()", + "afterEvent": "editSectionForm()", + "tabs": { + "position": "top", + "list": [ + { + "label": "Tab 0", + "elements": [ + "bo_id", + "history", + "creation_date", + "requestor", + "ae", + "extent", + "company", + "layers", + "vector_format_id", + "coordsys_id", + "note", + "note_line", + "raster_format_id", + "extent_method", + "signed", + "accepted_by_cpa", + "identification_complete", + "definition_complete", + "comment", + "priority_id", + "id_com", + "id_conseil", + "update_button", + "status_name", + "Element_3", + "Element_4", + "Element_5", + "Element_7", + "Element_8", + "status_name", + "return_list_button", + "preco_tech", + "chart_graph", + "metadonnees", + "statistique", + "Element_2", + "input_deposit" + ] + } + ] + }, + "wab": { + "START": { + "controleur": { + "email": "", + "company": "", + "layers": "", + "coordsys_id": "", + "vector_format_id": "", + "raster_format_id": "", + "extent_method": "", + "id_com": "", + "id_conseil": "", + "extent": "", + "history": "", + "creation_date": "", + "requestor": "", + "ae": "", + "note": "", + "note_line": "", + "signed": "", + "accepted_by_cpa": "", + "identification_complete": "", + "definition_complete": "", + "comment": "", + "priority_id": "", + "bo_id": "", + "status_name": "", + "update_button": "", + "Element_3": "", + "Element_4": "", + "Element_5": "", + "Element_7": "", + "Element_8": "", + "return_list_button": "rw", + "Element_1": "", + "chart_graph": "", + "metadonnees": "", + "preco_tech": "", + "Element_0": "", + "statistique": "", + "Element_2": "", + "input_deposit": "" + }, + "demandeur": { + "email": "rw", + "company": "rw", + "layers": "rw", + "coordsys_id": "rw", + "vector_format_id": "rw", + "raster_format_id": "rw", + "extent_method": "rw", + "id_com": "rw", + "id_conseil": "rw", + "extent": "rw", + "history": "", + "creation_date": "", + "requestor": "", + "ae": "", + "note": "", + "note_line": "", + "signed": "", + "accepted_by_cpa": "", + "identification_complete": "", + "definition_complete": "", + "comment": "", + "priority_id": "", + "bo_id": "", + "status_name": "", + "update_button": "rw", + "Element_3": "", + "Element_4": "", + "Element_5": "", + "Element_7": "", + "Element_8": "", + "return_list_button": "rw", + "Element_1": "", + "chart_graph": "", + "metadonnees": "", + "preco_tech": "", + "Element_0": "", + "statistique": "rw", + "Element_2": "", + "input_deposit": "" + } + }, + "Nouveau": { + "controleur": { + "email": "", + "company": "", + "layers": "", + "coordsys_id": "", + "vector_format_id": "", + "raster_format_id": "", + "extent_method": "", + "id_com": "", + "id_conseil": "", + "extent": "", + "history": "", + "creation_date": "", + "requestor": "", + "ae": "", + "note": "", + "note_line": "", + "signed": "", + "accepted_by_cpa": "", + "identification_complete": "", + "definition_complete": "", + "comment": "", + "priority_id": "", + "bo_id": "", + "status_name": "", + "update_button": "", + "Element_3": "", + "Element_4": "", + "Element_5": "", + "Element_7": "", + "Element_8": "", + "return_list_button": "rw", + "Element_1": "", + "chart_graph": "", + "metadonnees": "", + "preco_tech": "", + "Element_0": "", + "statistique": "", + "Element_2": "", + "input_deposit": "" + }, + "demandeur": { + "email": "rw", + "company": "rw", + "layers": "rw", + "coordsys_id": "rw", + "vector_format_id": "rw", + "raster_format_id": "rw", + "extent_method": "rw", + "id_com": "rw", + "id_conseil": "rw", + "extent": "rw", + "history": "", + "creation_date": "r", + "requestor": "rw", + "ae": "", + "note": "", + "note_line": "", + "signed": "", + "accepted_by_cpa": "", + "identification_complete": "", + "definition_complete": "", + "comment": "", + "priority_id": "", + "bo_id": "r", + "status_name": "", + "update_button": "rw", + "Element_3": "", + "Element_4": "", + "Element_5": "", + "Element_7": "", + "Element_8": "", + "return_list_button": "rw", + "Element_1": "rw", + "chart_graph": "rw", + "metadonnees": "rw", + "preco_tech": "rw", + "Element_0": "", + "statistique": "rw", + "Element_2": "", + "input_deposit": "" + } + }, + "AE Demandé": { + "controleur": { + "email": "", + "company": "", + "layers": "", + "coordsys_id": "", + "vector_format_id": "", + "raster_format_id": "", + "extent_method": "", + "id_com": "", + "id_conseil": "", + "extent": "", + "history": "", + "creation_date": "", + "requestor": "", + "ae": "", + "note": "", + "note_line": "", + "signed": "", + "accepted_by_cpa": "", + "identification_complete": "", + "definition_complete": "", + "comment": "", + "priority_id": "", + "bo_id": "", + "status_name": "", + "update_button": "", + "Element_3": "", + "Element_4": "", + "Element_5": "", + "Element_7": "", + "Element_8": "", + "return_list_button": "rw", + "Element_1": "", + "chart_graph": "", + "metadonnees": "", + "preco_tech": "", + "Element_0": "", + "statistique": "", + "Element_2": "", + "input_deposit": "" + }, + "demandeur": { + "email": "r", + "company": "r", + "layers": "r", + "coordsys_id": "r", + "vector_format_id": "r", + "raster_format_id": "r", + "extent_method": "r", + "id_com": "r", + "id_conseil": "r", + "extent": "r", + "history": "", + "creation_date": "r", + "requestor": "r", + "ae": "", + "note": "", + "note_line": "", + "signed": "", + "accepted_by_cpa": "", + "identification_complete": "", + "definition_complete": "", + "comment": "", + "priority_id": "", + "bo_id": "r", + "status_name": "", + "update_button": "rw", + "Element_3": "", + "Element_4": "", + "Element_5": "", + "Element_7": "", + "Element_8": "", + "return_list_button": "rw", + "Element_1": "", + "chart_graph": "r", + "metadonnees": "r", + "preco_tech": "r", + "Element_0": "", + "statistique": "r", + "Element_2": "", + "input_deposit": "" + } + }, + "AE Généré": { + "controleur": { + "email": "", + "company": "", + "layers": "", + "coordsys_id": "", + "vector_format_id": "", + "raster_format_id": "", + "extent_method": "", + "id_com": "", + "id_conseil": "", + "extent": "", + "history": "", + "creation_date": "", + "requestor": "", + "ae": "", + "note": "", + "note_line": "", + "signed": "", + "accepted_by_cpa": "", + "identification_complete": "", + "definition_complete": "", + "comment": "", + "priority_id": "", + "bo_id": "", + "status_name": "", + "update_button": "", + "Element_3": "", + "Element_4": "", + "Element_5": "", + "Element_7": "", + "Element_8": "", + "return_list_button": "rw", + "Element_1": "", + "chart_graph": "", + "metadonnees": "", + "preco_tech": "", + "Element_0": "", + "statistique": "", + "Element_2": "", + "input_deposit": "" + }, + "demandeur": { + "email": "r", + "company": "r", + "layers": "r", + "coordsys_id": "r", + "vector_format_id": "r", + "raster_format_id": "r", + "extent_method": "r", + "id_com": "r", + "id_conseil": "r", + "extent": "r", + "history": "", + "creation_date": "r", + "requestor": "r", + "ae": "rw", + "note": "", + "note_line": "", + "signed": "", + "accepted_by_cpa": "", + "identification_complete": "", + "definition_complete": "", + "comment": "", + "priority_id": "", + "bo_id": "r", + "status_name": "", + "update_button": "rw", + "Element_3": "", + "Element_4": "", + "Element_5": "", + "Element_7": "rw", + "Element_8": "", + "return_list_button": "rw", + "Element_1": "", + "chart_graph": "r", + "metadonnees": "r", + "preco_tech": "r", + "Element_0": "", + "statistique": "r", + "Element_2": "", + "input_deposit": "" + } + }, + "AE Soumis": { + "controleur": { + "email": "r", + "company": "r", + "layers": "r", + "coordsys_id": "r", + "vector_format_id": "r", + "raster_format_id": "r", + "extent_method": "r", + "id_com": "r", + "id_conseil": "r", + "extent": "r", + "history": "r", + "creation_date": "r", + "requestor": "r", + "ae": "r", + "note": "", + "note_line": "", + "signed": "rw", + "accepted_by_cpa": "rw", + "identification_complete": "rw", + "definition_complete": "rw", + "comment": "rw", + "priority_id": "r", + "bo_id": "r", + "status_name": "", + "update_button": "rw", + "Element_3": "", + "Element_4": "rw", + "Element_5": "rw", + "Element_7": "", + "Element_8": "", + "return_list_button": "rw", + "Element_1": "", + "chart_graph": "r", + "metadonnees": "r", + "preco_tech": "r", + "Element_0": "rw", + "statistique": "r", + "Element_2": "", + "input_deposit": "" + }, + "demandeur": { + "email": "r", + "company": "r", + "layers": "r", + "coordsys_id": "r", + "vector_format_id": "r", + "raster_format_id": "r", + "extent_method": "r", + "id_com": "r", + "id_conseil": "r", + "extent": "r", + "history": "", + "creation_date": "r", + "requestor": "r", + "ae": "r", + "note": "", + "note_line": "", + "signed": "", + "accepted_by_cpa": "", + "identification_complete": "", + "definition_complete": "", + "comment": "", + "priority_id": "r", + "bo_id": "r", + "status_name": "", + "update_button": "rw", + "Element_3": "", + "Element_4": "", + "Element_5": "", + "Element_7": "", + "Element_8": "", + "return_list_button": "rw", + "Element_1": "", + "chart_graph": "r", + "metadonnees": "r", + "preco_tech": "", + "Element_0": "", + "statistique": "r", + "Element_2": "", + "input_deposit": "" + } + }, + "Autorisée": { + "controleur": { + "email": "r", + "company": "r", + "layers": "r", + "coordsys_id": "r", + "vector_format_id": "r", + "raster_format_id": "r", + "extent_method": "r", + "id_com": "r", + "id_conseil": "r", + "extent": "r", + "history": "r", + "creation_date": "r", + "requestor": "r", + "ae": "r", + "note": "", + "note_line": "", + "signed": "r", + "accepted_by_cpa": "r", + "identification_complete": "r", + "definition_complete": "r", + "comment": "r", + "priority_id": "rw", + "bo_id": "r", + "status_name": "", + "update_button": "", + "Element_3": "", + "Element_4": "", + "Element_5": "", + "Element_7": "", + "Element_8": "", + "return_list_button": "rw", + "Element_1": "", + "chart_graph": "r", + "metadonnees": "r", + "preco_tech": "r", + "Element_0": "", + "statistique": "r", + "Element_2": "", + "input_deposit": "" + }, + "demandeur": { + "email": "", + "company": "", + "layers": "", + "coordsys_id": "", + "vector_format_id": "", + "raster_format_id": "", + "extent_method": "", + "id_com": "", + "id_conseil": "", + "extent": "", + "history": "", + "creation_date": "", + "requestor": "", + "ae": "", + "note": "", + "note_line": "", + "signed": "", + "accepted_by_cpa": "", + "identification_complete": "", + "definition_complete": "", + "comment": "", + "priority_id": "", + "bo_id": "", + "status_name": "", + "update_button": "", + "Element_3": "", + "Element_4": "", + "Element_5": "", + "Element_7": "", + "Element_8": "", + "return_list_button": "rw", + "Element_1": "", + "chart_graph": "", + "metadonnees": "", + "preco_tech": "", + "Element_0": "", + "statistique": "", + "Element_2": "", + "input_deposit": "" + } + }, + "Refusée": { + "controleur": { + "email": "", + "company": "r", + "layers": "r", + "coordsys_id": "r", + "vector_format_id": "r", + "raster_format_id": "r", + "extent_method": "r", + "id_com": "r", + "id_conseil": "r", + "extent": "r", + "history": "r", + "creation_date": "r", + "requestor": "r", + "ae": "", + "note": "", + "note_line": "", + "signed": "r", + "accepted_by_cpa": "r", + "identification_complete": "r", + "definition_complete": "r", + "comment": "r", + "priority_id": "r", + "bo_id": "r", + "status_name": "", + "update_button": "", + "Element_3": "", + "Element_4": "", + "Element_5": "", + "Element_7": "", + "Element_8": "", + "return_list_button": "rw", + "Element_1": "", + "chart_graph": "r", + "metadonnees": "r", + "preco_tech": "r", + "Element_0": "", + "statistique": "", + "Element_2": "", + "input_deposit": "r" + }, + "demandeur": { + "email": "r", + "company": "r", + "layers": "r", + "coordsys_id": "r", + "vector_format_id": "r", + "raster_format_id": "r", + "extent_method": "r", + "id_com": "r", + "id_conseil": "r", + "extent": "r", + "history": "", + "creation_date": "r", + "requestor": "r", + "ae": "rw", + "note": "", + "note_line": "", + "signed": "r", + "accepted_by_cpa": "r", + "identification_complete": "r", + "definition_complete": "r", + "comment": "r", + "priority_id": "r", + "bo_id": "r", + "status_name": "", + "update_button": "rw", + "Element_3": "", + "Element_4": "", + "Element_5": "rw", + "Element_7": "", + "Element_8": "", + "return_list_button": "rw", + "Element_1": "", + "chart_graph": "", + "metadonnees": "", + "preco_tech": "", + "Element_0": "", + "statistique": "r", + "Element_2": "", + "input_deposit": "r" + } + }, + "Fichier invalidé": { + "controleur": { + "bo_id": "", + "preco_tech": "", + "chart_graph": "", + "metadonnees": "", + "creation_date": "", + "email": "", + "company": "", + "requestor": "", + "extent_method": "", + "id_com": "", + "id_conseil": "", + "extent": "", + "layers": "", + "ae": "", + "coordsys_id": "", + "vector_format_id": "", + "raster_format_id": "", + "history": "", + "note": "", + "note_line": "", + "signed": "", + "accepted_by_cpa": "", + "identification_complete": "", + "definition_complete": "", + "comment": "", + "priority_id": "", + "status_name": "", + "update_button": "", + "return_list_button": "", + "Element_1": "", + "Element_3": "", + "Element_4": "", + "Element_5": "", + "Element_7": "", + "Element_8": "", + "Element_0": "", + "statistique": "", + "Element_2": "", + "input_deposit": "r" + }, + "demandeur": { + "bo_id": "", + "preco_tech": "", + "chart_graph": "", + "metadonnees": "", + "creation_date": "", + "email": "", + "company": "", + "requestor": "", + "extent_method": "", + "id_com": "", + "id_conseil": "", + "extent": "", + "layers": "", + "ae": "", + "coordsys_id": "", + "vector_format_id": "", + "raster_format_id": "", + "history": "", + "note": "", + "note_line": "", + "signed": "", + "accepted_by_cpa": "", + "identification_complete": "", + "definition_complete": "", + "comment": "", + "priority_id": "", + "status_name": "", + "update_button": "", + "return_list_button": "", + "Element_1": "", + "Element_3": "", + "Element_4": "", + "Element_5": "", + "Element_7": "", + "Element_8": "", + "Element_0": "", + "statistique": "", + "Element_2": "", + "input_deposit": "r" + } + }, + "Fichier déposé": { + "controleur": { + "bo_id": "", + "preco_tech": "", + "chart_graph": "", + "metadonnees": "", + "creation_date": "", + "email": "", + "company": "", + "requestor": "", + "extent_method": "", + "id_com": "", + "id_conseil": "", + "extent": "", + "layers": "", + "ae": "", + "coordsys_id": "", + "vector_format_id": "", + "raster_format_id": "", + "history": "", + "note": "", + "note_line": "", + "signed": "", + "accepted_by_cpa": "", + "identification_complete": "", + "definition_complete": "", + "comment": "", + "priority_id": "", + "status_name": "", + "update_button": "", + "return_list_button": "", + "Element_1": "", + "Element_3": "", + "Element_4": "", + "Element_5": "", + "Element_7": "", + "Element_8": "", + "Element_0": "", + "statistique": "", + "Element_2": "", + "input_deposit": "r" + }, + "demandeur": { + "bo_id": "r", + "preco_tech": "r", + "chart_graph": "r", + "metadonnees": "r", + "creation_date": "r", + "email": "r", + "company": "r", + "requestor": "r", + "extent_method": "r", + "id_com": "r", + "id_conseil": "r", + "extent": "r", + "layers": "r", + "ae": "r", + "coordsys_id": "r", + "vector_format_id": "r", + "raster_format_id": "r", + "history": "", + "note": "", + "note_line": "", + "signed": "", + "accepted_by_cpa": "", + "identification_complete": "", + "definition_complete": "", + "comment": "", + "priority_id": "", + "status_name": "", + "update_button": "", + "return_list_button": "rw", + "Element_1": "", + "Element_3": "", + "Element_4": "", + "Element_5": "", + "Element_7": "", + "Element_8": "", + "Element_0": "", + "statistique": "r", + "Element_2": "", + "input_deposit": "r" + } + }, + "Fichier accepté": { + "controleur": { + "bo_id": "", + "preco_tech": "", + "chart_graph": "", + "metadonnees": "", + "creation_date": "", + "email": "", + "company": "", + "requestor": "", + "extent_method": "", + "id_com": "", + "id_conseil": "", + "extent": "", + "layers": "", + "ae": "", + "coordsys_id": "", + "vector_format_id": "", + "raster_format_id": "", + "history": "", + "note": "", + "note_line": "", + "signed": "", + "accepted_by_cpa": "", + "identification_complete": "", + "definition_complete": "", + "comment": "", + "priority_id": "", + "status_name": "", + "update_button": "", + "return_list_button": "", + "Element_1": "", + "Element_3": "", + "Element_4": "", + "Element_5": "", + "Element_7": "", + "Element_8": "", + "Element_0": "", + "statistique": "", + "Element_2": "", + "input_deposit": "r" + }, + "demandeur": { + "bo_id": "", + "preco_tech": "", + "chart_graph": "", + "metadonnees": "", + "creation_date": "", + "email": "", + "company": "", + "requestor": "", + "extent_method": "", + "id_com": "", + "id_conseil": "", + "extent": "", + "layers": "", + "ae": "", + "coordsys_id": "", + "vector_format_id": "", + "raster_format_id": "", + "history": "", + "note": "", + "note_line": "", + "signed": "", + "accepted_by_cpa": "", + "identification_complete": "", + "definition_complete": "", + "comment": "", + "priority_id": "", + "status_name": "", + "update_button": "", + "return_list_button": "", + "Element_1": "", + "Element_3": "", + "Element_4": "", + "Element_5": "", + "Element_7": "", + "Element_8": "", + "Element_0": "", + "statistique": "", + "Element_2": "", + "input_deposit": "r" + } + }, + "Dépôt terminé": { + "controleur": { + "bo_id": "", + "preco_tech": "", + "chart_graph": "", + "metadonnees": "", + "creation_date": "", + "email": "", + "company": "", + "requestor": "", + "extent_method": "", + "id_com": "", + "id_conseil": "", + "extent": "", + "layers": "", + "ae": "", + "coordsys_id": "", + "vector_format_id": "", + "raster_format_id": "", + "history": "", + "note": "", + "note_line": "", + "signed": "", + "accepted_by_cpa": "", + "identification_complete": "", + "definition_complete": "", + "comment": "", + "priority_id": "", + "status_name": "", + "update_button": "", + "return_list_button": "", + "Element_1": "", + "Element_3": "", + "Element_4": "", + "Element_5": "", + "Element_7": "", + "Element_8": "", + "Element_0": "", + "statistique": "", + "Element_2": "", + "input_deposit": "r" + }, + "demandeur": { + "bo_id": "", + "preco_tech": "", + "chart_graph": "", + "metadonnees": "", + "creation_date": "", + "email": "", + "company": "", + "requestor": "", + "extent_method": "", + "id_com": "", + "id_conseil": "", + "extent": "", + "layers": "", + "ae": "", + "coordsys_id": "", + "vector_format_id": "", + "raster_format_id": "", + "history": "", + "note": "", + "note_line": "", + "signed": "", + "accepted_by_cpa": "", + "identification_complete": "", + "definition_complete": "", + "comment": "", + "priority_id": "", + "status_name": "", + "update_button": "", + "return_list_button": "", + "Element_1": "", + "Element_3": "", + "Element_4": "", + "Element_5": "", + "Element_7": "", + "Element_8": "", + "Element_0": "", + "statistique": "", + "Element_2": "", + "input_deposit": "r" + } + }, + "Extraction terminée": { + "controleur": { + "bo_id": "r", + "preco_tech": "r", + "chart_graph": "r", + "metadonnees": "r", + "creation_date": "r", + "email": "r", + "company": "r", + "requestor": "r", + "extent_method": "r", + "id_com": "r", + "id_conseil": "r", + "extent": "r", + "layers": "r", + "ae": "r", + "coordsys_id": "r", + "vector_format_id": "r", + "raster_format_id": "r", + "history": "r", + "note": "", + "note_line": "", + "signed": "r", + "accepted_by_cpa": "r", + "identification_complete": "r", + "definition_complete": "r", + "comment": "r", + "priority_id": "r", + "status_name": "", + "update_button": "", + "return_list_button": "rw", + "Element_1": "", + "Element_3": "", + "Element_4": "", + "Element_5": "", + "Element_7": "", + "Element_8": "", + "Element_0": "", + "statistique": "r", + "Element_2": "", + "input_deposit": "r" + }, + "demandeur": { + "bo_id": "r", + "preco_tech": "r", + "chart_graph": "r", + "metadonnees": "r", + "creation_date": "r", + "email": "r", + "company": "r", + "requestor": "r", + "extent_method": "r", + "id_com": "r", + "id_conseil": "r", + "extent": "r", + "layers": "r", + "ae": "r", + "coordsys_id": "r", + "vector_format_id": "r", + "raster_format_id": "r", + "history": "", + "note": "", + "note_line": "", + "signed": "", + "accepted_by_cpa": "", + "identification_complete": "", + "definition_complete": "", + "comment": "", + "priority_id": "", + "status_name": "", + "update_button": "", + "return_list_button": "rw", + "Element_1": "", + "Element_3": "", + "Element_4": "", + "Element_5": "", + "Element_7": "", + "Element_8": "", + "Element_0": "", + "statistique": "r", + "Element_2": "rw", + "input_deposit": "rw" + } + } + } + }, + "datasources": { + "datasource_1": { + "type": "web_service", + "dataType": "tableValue", + "name": "datasource_coordsys", + "description": "", + "parameters": { + "schema": "s_extraction", + "table": "rt_coordsys" + }, + "ressource_id": "vitis/genericquerys", + "id": "datasource_1" + }, + "datasource_2": { + "type": "web_service", + "dataType": "tableValue", + "name": "datasource_vector_format", + "description": "", + "parameters": { + "schema": "s_extraction", + "table": "rt_format", + "filter": { + "use_for_vector": true + } + }, + "ressource_id": "vitis/genericquerys", + "id": "datasource_2" + }, + "datasource_3": { + "type": "web_service", + "dataType": "tableValue", + "name": "datasource_raster_format", + "description": "", + "parameters": { + "schema": "s_extraction", + "table": "rt_format", + "filter": { + "use_for_raster": true + } + }, + "ressource_id": "vitis/genericquerys", + "id": "datasource_3" + }, + "datasource_4": { + "type": "web_service", + "dataType": "externalDatabase", + "name": "datasource_commune", + "description": "", + "parameters": { + "server": "scpa7717", + "port": "5432", + "sgbd": "pgsql", + "login": "sigl", + "password": "sigl28sig", + "database": "sig", + "schema": "cad93", + "table": "commune" + }, + "ressource_id": "vitis/genericquerys", + "id": "datasource_4" + }, + "datasource_5": { + "type": "web_service", + "dataType": "externalDatabase", + "name": "datasource_commune", + "description": "", + "parameters": { + "server": "scpa7717", + "port": "5432", + "sgbd": "pgsql", + "login": "sigl", + "password": "sigl28sig", + "database": "sig", + "schema": "ref93", + "table": "ref_amp_lim_ct" + }, + "ressource_id": "vitis/genericquerys", + "id": "datasource_5" + }, + "datasource_6": { + "type": "web_service", + "dataType": "externalDatabase", + "name": "datasource_ct", + "description": "", + "parameters": { + "filter": { + "relation": "AND", + "operators": [] + }, + "server": "scpa7717", + "port": "5432", + "sgbd": "pgsql", + "login": "sigl", + "password": "sigl28sig", + "database": "sig", + "schema": "ref93", + "table": "ct" + }, + "ressource_id": "vitis/genericquerys/ct", + "id": "datasource_6" + }, + "datasource_7": { + "type": "web_service", + "dataType": "externalDatabase", + "name": "datasource_com", + "description": "", + "parameters": { + "filter": { + "relation": "AND", + "operators": [] + }, + "server": "GEWURZTRAMINER", + "port": "5432", + "sgbd": "pgsql", + "login": "postgres", + "password": "postgres", + "database": "vitis_gtf", + "schema": "s_extraction", + "table": "commune" + }, + "ressource_id": "vitis/genericquerys/commune", + "id": "datasource_7" + }, + "datasource_8": { + "type": "web_service", + "dataType": "tableValue", + "name": "datasource_8", + "description": "", + "parameters": { + "filter": { + "relation": "AND", + "operators": [] + }, + "schema": "s_extraction", + "table": "ct" + }, + "ressource_id": "vitis/genericquerys", + "id": "datasource_8" + }, + "datasource_9": { + "type": "web_service", + "dataType": "tableValue", + "name": "datasource_9", + "description": "", + "parameters": { + "filter": { + "relation": "AND", + "operators": [] + }, + "schema": "s_extraction", + "table": "commune" + }, + "ressource_id": "vitis/genericquerys", + "id": "datasource_9" + }, + "datasource_10": { + "type": "object", + "dataType": "text", + "name": "datasource_format", + "description": "", + "options": [ + "Vecteur|vector", + "Raster|raster" + ], + "id": "datasource_10" + } + } +} \ No newline at end of file diff --git a/src/module_extraction/module/forms/extraction_depot/extraction_depot_extraction_extraction_depot.js b/src/module_extraction/module/forms/extraction_depot/extraction_depot_extraction_extraction_depot.js new file mode 100755 index 00000000..b0b587e3 --- /dev/null +++ b/src/module_extraction/module/forms/extraction_depot/extraction_depot_extraction_extraction_depot.js @@ -0,0 +1,253 @@ +/* global angular, goog, vitisApp, bootbox */ + +//bloque les delete du destructeur à éviter +//'use strict'; + +console.info("Generateur_wab_generator_1 loaded --> your functions are ready"); +/*********************************************************************************** + Signaletique_Recap_0 Javascript + ***********************************************************************************/ + +var oFormRequired = { + "sUrl": "", + "scope_": {}, + "toDestructor": [] +}; +/** + * constructor_form + * Fonction appelé à l'initialisation du formulaire si dans la structure json javascript vaut "true" + * @param {type} scope + * @param {type} s_url + * @returns {undefined} + */ +var constructor_form = function (scope, s_url) { + ////////////////////////////////////////////////////////// + //Ne pas toucher + console.log("Constructor"); + + oFormRequired.sUrl = s_url; + oFormRequired.scope_ = scope; + //console.log(scope); + ////////////////////////////////////////////////////////// + // Permet de recharge le javascript d'une section à une autre + var envSrvc = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(["envSrvc"]); + var formSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["formSrvc"]); + var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]); + + /*oFormRequired.toDestructor.push(oFormRequired.scope_.$watch("oFormValues." + oFormRequired.scope_.sFormDefinitionName + ".btn_refresh_treeview", function (value) { + console.log("DJFHVHJCHSJCJH"); + }*/ + + /** + * loadTreeview function. + * Crée le treeview des fichiers du projet fme. + **/ + scope["loadTreeviewDepot"] = function() { + var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]); + // + $log.info("loadTreeviewDepot"); + + // Charge l'arborescence des logs. + ajaxRequest({ + "method": "GET", + "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/extraction/extraction_depots/Tree", + "scope": scope, + "success": function(response) { + if (response["data"]["status"] == 1) { + var aNodes = []; + data = response["data"]["tree"]; + scope["aSelectedWorkspaceFile"] = []; + scope["aTreeviewLogs"] = data; + // Crée l'arborescence dans l'élément. + + for (var i in response["data"]["content"]) { + var aNode = {"text": response["data"]["content"][i]["filename"].split("/").pop(), "nodes": []} + for (var j in response["data"]["content"][i]["content"]) { + aNode["nodes"].push({"text": response["data"]["content"][i]["content"][j]["filename"].split("/").pop(), "tags": response["data"]["content"][i]["content"][j]["lastModification"].split(),}); + } + aNodes.push(aNode); + } + + $("#Element_0_2_1_treeview")["treeview"]({ + "showBorder": false, + "expandIcon": "glyphicon glyphicon-folder-close", + "collapseIcon": "glyphicon glyphicon-folder-open", + "highlightSelected": true, + "multiSelect": false, + "showTags": true, + "data": aNodes + }); + } + } + }); + }; + + scope["deleteFileDepot"] = function () { + var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]); + // + $log.info("deleteFileDepot"); + + var aSelectedNode = $("#Element_0_2_1_treeview")["treeview"]('getSelected') + + if (aSelectedNode.length > 0) + { + var aNodeParent = $("#Element_0_2_1_treeview")["treeview"]('getNode', aSelectedNode[0]["parentId"]); + ajaxRequest({ + "method": "DELETES", + "params": { + "file_name": aNodeParent["text"] + "/" + aSelectedNode[0]["text"] + }, + "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/extraction/extraction_depots", + "scope": scope, + "success": function(response) { + if (response["data"]["status"] == 1) { + } + } + }); + scope["loadTreeviewDepot"](); + } + else + { + var sErrorMessage = "EXTRACTION_DEPOT_DELETE_SELECT_A_FILE"; + var oOptions = { + "className": "modal-danger", + "message": sErrorMessage + }; + //$('#myModal').modal('toggle'); + scope.$root["modalWindow"]("dialog", "EXTRACTION_DEPORT_DELETE_NO_SELECTED", oOptions); + //$('#myModal').modal('hide'); + } + + } + scope["loadTreeviewDepot"](); + + scope["downloadFileDepot"] = function () { + var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]); + // + $log.info("downloadFileDepot"); + + var aSelectedNode = $("#Element_0_2_1_treeview")["treeview"]('getSelected'); + var sFileName = aSelectedNode[0]["text"]; + var aNodeParent = $("#Element_0_2_1_treeview")["treeview"]('getNode', aSelectedNode[0]["parentId"]); + if (aSelectedNode[0]["parentId"] == "") + { + if (sFileName != "") + { + ajaxRequest({ + "method": "GET", + "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/extraction/extraction_depots/File", + "scope": scope, + "params": { + "file_name": aNodeParent["text"] + "/" + aSelectedNode[0]["text"] + }, + "responseType": 'blob', + "success": function(response) { + if (typeof(window.navigator.msSaveOrOpenBlob) == "undefined") { + // Crée un lien et simule un click dessus. + var link = document.createElement('a'); + link.href = window.URL.createObjectURL(response["data"]); + link.download = sFileName; + link.style.display = 'none'; + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); + } + else { + // Pour Edge et IE. + window.navigator.msSaveOrOpenBlob(response["data"], sFileName); + } + } + }); + } + } + } + //var iMaxUploadFileSize = parseInt(propertiesSrvc["max_upload_file_size"]); + + /** + * beforeProjectDirectory function. + * Traitement avant l'envoi du formulaire de la section "Répertoire Projet" (publication > Projet FME). + */ + angular.element(vitisApp.appMainDrtv).scope()["beforeDepositDirectory"] = function () { + // Injection des services. + var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]); + var $q = angular.element(vitisApp.appHtmlFormDrtv).injector().get(["$q"]); + var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]); + var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]); + // + $log.info("beforeDepositDirectory"); + envSrvc.sMode = "update"; + var scope = this; + var deferred = $q.defer(); + var promise = deferred.promise; + // + var oFile = envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["control_file"]; + var iMaxUploadFileSize = parseInt(propertiesSrvc["max_upload_file_size"]); + var sErrorMessage; + + // Vérification du fichier .fmw. + if (typeof (oFile) === "object" && typeof (oFile["aFiles"]) !== "undefined" && oFile["aFiles"].length > 0) { + // Taille maxi du fichier. + if (oFile["aFiles"][0]["size"] > iMaxUploadFileSize) + sErrorMessage = "ERROR_FILE_SIZE_EXTRACTION_LOAD_DEPOSIT_DIRECTORY"; + } + // Validation du formulaire. + if (typeof (sErrorMessage) === "undefined") + deferred.resolve(); + + // Affichage de la fenêtre modale d'erreur. + if (typeof (sErrorMessage) !== "undefined") { + var oOptions = { + "className": "modal-danger", + "message": sErrorMessage + }; + scope.$root["modalWindow"]("dialog", "FORM_VALIDATION_ERROR", oOptions); + } + // + return promise; + }; + + /** + * afterProjectDirectory function. + * Actions à effectuer après l'upload d'un fichier dans le répertoire d'un projet fme. + */ + angular.element(vitisApp.appMainDrtv).scope()["afterDepositDirectory"] = function () { + // Injection des services. + var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]); + // + $log.info("afterDepositDirectory"); + // Remise à zéro du formulaire. + this["resetForm"](); + angular.element("input[type=file]")["fileinput"]("clear"); + // Recharge la liste des fichiers. + this["loadTreeviewDepot"](); + } + // +}; + + +/** + * destructor_form + * Fonction appelé quand on quitte le formulaire nettoie toute les fonctions pour les rendres inutilisable en dehors du formulaire + * @returns {undefined} + */ +var destructor_form = function () { + console.log("Destructor"); + + for (var i = 0; i < oFormRequired.toDestructor.length; i++) { + oFormRequired.toDestructor[i] = undefined; + delete oFormRequired.toDestructor[i]; + } + + //supprimer la balise script du js pour pouvoir le recharger si on reviens sur le formulaire plus tard + angular.element('[src="' + oFormRequired.sUrl + '?version=' + oFormRequired.scope_["oProperties"]["build"] + '"]').remove(); + + oFormRequired = undefined; + delete oFormRequired; + + constructor_form = undefined; + delete constructor_form; + destructor_form = undefined; + delete destructor_form; +}; + +/**********************************************************************************/ \ No newline at end of file diff --git a/src/module_extraction/module/forms/extraction_depot/extraction_depot_extraction_extraction_depot.json b/src/module_extraction/module/forms/extraction_depot/extraction_depot_extraction_extraction_depot.json new file mode 100755 index 00000000..6a36d947 --- /dev/null +++ b/src/module_extraction/module/forms/extraction_depot/extraction_depot_extraction_extraction_depot.json @@ -0,0 +1,291 @@ +{ + "search": { + "name": "extraction_deposit_directory_update_form", + "title": "EXTRACTION_DEPOT_TITLE", + "beforeEvent": "beforeDepositDirectory()", + "event": "sendSimpleForm()", + "afterEvent": "afterDepositDirectory()", + "input_size": "xs", + "nb_cols": 12, + "class": "project-directory-upload-form", + "javascript": true, + "rows": [ + { + "fields": [ + { + "type": "treeview", + "name": "FileTreeView", + "label": "", + "required": false, + "pattern": "", + "nb_cols": 12, + "id": "Element_0_2_1", + "options": { + "showBorder": false, + "levels": 0, + "showCheckbox": true, + "expandIcon": "glyphicon glyphicon-folder-close", + "collapseIcon": "glyphicon glyphicon-folder-open", + "highlightSelected": false, + "multiSelect": true, + "data": "", + "dataLoadingEvent": "" + } + } + ] + }, + { + "fields": [ + { + "type": "button", + "class": "btn-ungroup btn-group-xs", + "name": "group-button", + "nb_cols": 12, + "buttons": [ + { + "type": "button", + "name": "btn_download_file", + "glyphicon": "download", + "class": "btn-primary btn-xs", + "event": "downloadFileDepot()", + "tooltip": { + "title": "FORM_DOWNLOAD_FILE_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY", + "placement": "bottom", + "trigger": "hover", + "container": "body" + } + }, + { + "type": "button", + "name": "btn_refresh_treeview", + "glyphicon": "refresh", + "class": "btn-primary btn-xs", + "event": "loadTreeviewDepot()", + "tooltip": { + "title": "FORM_RELOAD_DIRECTORY_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY", + "placement": "bottom", + "trigger": "hover", + "container": "body" + } + }, + { + "type": "button", + "name": "btn_delete_file", + "glyphicon": "trash", + "class": "btn-primary btn-xs", + "event": "deleteFileDepot()", + "tooltip": { + "title": "FORM_DELETE_FILE_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY", + "placement": "bottom", + "trigger": "hover" + } + } + ], + "id": "undefined_1_1" + } + ] + }, + { + "class": "form-field-inline", + "fields": [ + { + "type": "upload", + "name": "control_file", + "label": "EXTRACTION_DEPOT_FILE_UPLOAD", + "nb_cols": 6, + "id": "fmw_file_2_1" + } + ] + }, + { + "fields": [ + { + "type": "button", + "name": "Element_0", + "nb_cols": 12, + "id": "Element_0_5_1", + "class": "btn-ungroup btn-group-sm", + "buttons": [ + { + "type": "submit", + "name": "form_submit", + "label": "EXTRACTION_DEPOT_FILE_UPDATE", + "class": "btn-primary" + } + ] + } + ] + } + ], + "tabs": { + "position": "top", + "list": [ + { + "label": "Tab 0", + "elements": [ + "btn_download_file", + "btn_refresh_treeview", + "btn_delete_file", + "control_file", + "btn_upload_fmw_file", + "FileTreeView", + "Element_0" + ] + } + ] + } + }, + "update": { + "name": "extraction_deposit_directory_update_form", + "title": "EXTRACTION_DEPOT_TITLE", + "beforeEvent": "beforeProjectDirectory()", + "event": "sendSimpleForm()", + "afterEvent": "afterProjectDirectory()", + "input_size": "xs", + "nb_cols": 12, + "class": "project-directory-upload-form", + "rows": [ + { + "fields": [ + { + "type": "treeview", + "name": "FileTreeView", + "label": "", + "required": false, + "pattern": "", + "nb_cols": 12, + "id": "Element_0_2_1", + "options": { + "showBorder": false, + "levels": 0, + "showCheckbox": true, + "expandIcon": "glyphicon glyphicon-folder-close", + "collapseIcon": "glyphicon glyphicon-folder-open", + "highlightSelected": false, + "multiSelect": true, + "data": "", + "dataLoadingEvent": "" + } + } + ] + }, + { + "fields": [ + { + "type": "button", + "class": "btn-ungroup btn-group-xs", + "name": "group-button", + "nb_cols": 12, + "buttons": [ + { + "type": "button", + "name": "btn_download_file", + "glyphicon": "download", + "class": "btn-primary btn-xs", + "event": "downloadFile()", + "tooltip": { + "title": "FORM_DOWNLOAD_FILE_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY", + "placement": "bottom", + "trigger": "hover", + "container": "body" + } + }, + { + "type": "button", + "name": "btn_refresh_treeview", + "glyphicon": "refresh", + "class": "btn-primary btn-xs", + "event": "loadTreeviewDepot()", + "tooltip": { + "title": "FORM_RELOAD_DIRECTORY_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY", + "placement": "bottom", + "trigger": "hover", + "container": "body" + } + }, + { + "type": "button", + "name": "btn_delete_file", + "glyphicon": "trash", + "class": "btn-primary btn-xs", + "event": "deleteFile()", + "tooltip": { + "title": "FORM_DELETE_FILE_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY", + "placement": "bottom", + "trigger": "hover" + } + } + ], + "id": "undefined_1_1" + } + ] + }, + { + "class": "form-field-inline", + "fields": [ + { + "type": "upload", + "name": "control_file", + "label": "EXTRACTION_DEPOT_FILE_UPLOAD", + "nb_cols": 6, + "id": "fmw_file_2_1" + } + ] + }, + { + "fields": [ + { + "type": "button", + "name": "Element_0", + "nb_cols": 12, + "id": "Element_0_5_1", + "class": "btn-ungroup btn-group-sm", + "buttons": [ + { + "type": "submit", + "name": "form_submit", + "label": "FORM_UPLOAD_FILE_DEPOSIT", + "class": "btn-primary" + } + ] + } + ] + } + ], + "tabs": { + "position": "top", + "list": [ + { + "label": "Tab 0", + "elements": [ + "btn_download_file", + "btn_refresh_treeview", + "btn_delete_file", + "control_file", + "btn_upload_fmw_file", + "FileTreeView", + "Element_0" + ] + } + ] + } + }, + "insert": {}, + "display": { + "name": "gtf_workspace_project_directory_display_form", + "title": "EXTRACTION_DEPOT_TITLE", + "input_size": "xs", + "nb_cols": 8, + "rows": [], + "tabs": { + "position": "top", + "list": [ + { + "label": "Tab 0", + "elements": [] + } + ] + } + }, + "datasources": {} +} \ No newline at end of file diff --git a/src/module_extraction/module/forms/extraction_ref/extraction_ref_extraction_coordsys.json b/src/module_extraction/module/forms/extraction_ref/extraction_ref_extraction_coordsys.json new file mode 100755 index 00000000..5aa5221d --- /dev/null +++ b/src/module_extraction/module/forms/extraction_ref/extraction_ref_extraction_coordsys.json @@ -0,0 +1,240 @@ +{ + "display":{ + "name":"extraction_ref_extraction_coordsys-form", + "title":"EXTRACTION_REF_EXTRACTION_COORDSYS_TITLE", + "input_size":"xxs", + "nb_cols":12, + "javascript":false, + "rows":[ + { + "fields":[ + { + "type":"label", + "name":"coordsys_id", + "label":"EXTRACTION_REF_EXTRACTION_COORDSYS_FORM_COORDSYS_ID", + "disabled":false, + "required":false, + "nb_cols":12 + } + ] + }, + { + "fields":[ + { + "type":"label", + "name":"coordsys", + "label":"EXTRACTION_REF_EXTRACTION_COORDSYS_FORM_COORDSYS", + "disabled":false, + "required":false, + "nb_cols":12 + } + ] + }, + { + "fields":[ + { + "type":"button", + "class":"btn-ungroup btn-group-sm", + "nb_cols":12, + "name":"display_button", + "id":"display_button", + "buttons":[ + { + "type":"button", + "name":"return_list", + "label":"FORM_RETURN_LIST", + "class":"btn-primary", + "event":"setMode(\"search\")" + } + ] + } + ] + } + ] + }, + "search":{ + "name":"extraction_ref_extraction_coordsys-form", + "title":"EXTRACTION_REF_EXTRACTION_COORDSYS_TITLE", + "input_size":"xxs", + "nb_cols":12, + "javascript":false, + "rows":[ + { + "fields":[ + { + "type":"text", + "name":"coordsys", + "label":"EXTRACTION_REF_EXTRACTION_COORDSYS_FORM_COORDSYS", + "disabled":false, + "required":false, + "nb_cols":4 + } + ] + }, + { + "fields":[ + { + "type":"button", + "class":"btn-ungroup btn-group-xs", + "nb_cols":12, + "name":"search_button", + "id":"search_button", + "buttons":[ + { + "type":"button", + "name":"search", + "label":"FORM_SEARCH_BUTTON", + "class":"btn-primary", + "event":"setGridFilter()" + }, + { + "type":"reset", + "name":"reset", + "label":"FORM_RESET_BUTTON", + "class":"btn-primary", + "event":"resetGridFilter()" + } + ] + } + ] + } + ] + }, + "insert":{ + "name":"extraction_ref_extraction_coordsys-form", + "title":"EXTRACTION_REF_EXTRACTION_COORDSYS_TITLE_INSERT", + "input_size":"xxs", + "nb_cols":12, + "javascript":false, + "rows":[ + { + "fields":[ + { + "type":"text", + "name":"coordsys_id", + "label":"EXTRACTION_REF_EXTRACTION_COORDSYS_FORM_COORDSYS_ID", + "disabled":false, + "required":true, + "nb_cols":12, + "id":"coordsys_id_1_1" + } + ] + }, + { + "fields":[ + { + "type":"text", + "name":"coordsys", + "label":"EXTRACTION_REF_EXTRACTION_COORDSYS_FORM_COORDSYS", + "disabled":false, + "required":false, + "nb_cols":12, + "id":"coordsys_2_1" + } + ] + }, + { + "fields":[ + { + "type":"button", + "class":"btn-ungroup btn-group-sm", + "nb_cols":12, + "name":"insert_button", + "id":"insert_button", + "buttons":[ + { + "type":"submit", + "name":"form_submit", + "label":"FORM_CREATE", + "class":"btn-primary" + }, + { + "type":"button", + "name":"return_list", + "label":"FORM_RETURN_LIST", + "class":"btn-primary", + "event":"setMode(\"search\")" + } + ] + } + ] + } + ], + "event":"sendSimpleForm()", + "afterEvent":"editSectionForm()", + "tabs":{ + "position":"top", + "list":[ + { + "label":"Tab 0", + "elements":[ + "coordsys_id", + "coordsys", + "insert_button" + ] + } + ] + } + }, + "update":{ + "name":"extraction_ref_extraction_coordsys-form", + "title":"EXTRACTION_REF_EXTRACTION_COORDSYS_TITLE", + "input_size":"xxs", + "nb_cols":12, + "javascript":false, + "rows":[ + { + "fields":[ + { + "type":"text", + "name":"coordsys_id", + "label":"EXTRACTION_REF_EXTRACTION_COORDSYS_FORM_COORDSYS_ID", + "disabled":false, + "required":true, + "nb_cols":12 + } + ] + }, + { + "fields":[ + { + "type":"text", + "name":"coordsys", + "label":"EXTRACTION_REF_EXTRACTION_COORDSYS_FORM_COORDSYS", + "disabled":false, + "required":false, + "nb_cols":12 + } + ] + }, + { + "fields":[ + { + "type":"button", + "class":"btn-ungroup btn-group-sm", + "nb_cols":12, + "name":"update_button", + "id":"update_button", + "buttons":[ + { + "type":"submit", + "name":"form_submit", + "label":"FORM_UPDATE", + "class":"btn-primary" + }, + { + "type":"button", + "name":"return_list", + "label":"FORM_RETURN_LIST", + "class":"btn-primary", + "event":"setMode(\"search\")" + } + ] + } + ] + } + ], + "event":"sendSimpleForm()", + "afterEvent":"editSectionForm()" + } +} \ No newline at end of file diff --git a/src/module_extraction/module/forms/extraction_ref/extraction_ref_extraction_format.json b/src/module_extraction/module/forms/extraction_ref/extraction_ref_extraction_format.json new file mode 100755 index 00000000..115f79f1 --- /dev/null +++ b/src/module_extraction/module/forms/extraction_ref/extraction_ref_extraction_format.json @@ -0,0 +1,393 @@ +{ + "display":{ + "name":"extraction_ref_extraction_format-form", + "title":"EXTRACTION_REF_EXTRACTION_FORMAT_TITLE", + "input_size":"xxs", + "nb_cols":12, + "javascript":false, + "rows":[ + { + "fields":[ + { + "type":"label", + "name":"format_id", + "label":"EXTRACTION_REF_EXTRACTION_FORMAT_FORM_FORMAT_ID", + "disabled":false, + "required":false, + "nb_cols":12 + } + ] + }, + { + "fields":[ + { + "type":"label", + "name":"format", + "label":"EXTRACTION_REF_EXTRACTION_FORMAT_FORM_FORMAT", + "disabled":false, + "required":false, + "nb_cols":12 + } + ] + }, + { + "fields":[ + { + "type":"label", + "options":{ + "choices":[ + { + "label":"oui", + "value":true + }, + { + "label":"non", + "value":false + } + ] + }, + "name":"use_for_raster", + "label":"EXTRACTION_REF_EXTRACTION_FORMAT_FORM_USE_FOR_RASTER", + "disabled":false, + "required":false, + "nb_cols":12 + } + ] + }, + { + "fields":[ + { + "type":"label", + "options":{ + "choices":[ + { + "label":"oui", + "value":true + }, + { + "label":"non", + "value":false + } + ] + }, + "name":"use_for_vector", + "label":"EXTRACTION_REF_EXTRACTION_FORMAT_FORM_USE_FOR_VECTOR", + "disabled":false, + "required":false, + "nb_cols":12 + } + ] + }, + { + "fields":[ + { + "type":"button", + "class":"btn-ungroup btn-group-sm", + "nb_cols":12, + "name":"display_button", + "id":"display_button", + "buttons":[ + { + "type":"button", + "name":"return_list", + "label":"FORM_RETURN_LIST", + "class":"btn-primary", + "event":"setMode(\"search\")" + } + ] + } + ] + } + ] + }, + "search":{ + "name":"extraction_ref_extraction_format-form", + "title":"EXTRACTION_REF_EXTRACTION_FORMAT_TITLE", + "input_size":"xxs", + "nb_cols":12, + "javascript":false, + "rows":[ + { + "fields":[ + { + "type":"text", + "name":"format", + "label":"EXTRACTION_REF_EXTRACTION_FORMAT_FORM_FORMAT", + "disabled":false, + "required":false, + "nb_cols":4, + "id":"format_2_1" + } + ] + }, + { + "fields":[ + { + "type":"button", + "class":"btn-ungroup btn-group-xs", + "nb_cols":12, + "name":"search_button", + "id":"search_button", + "buttons":[ + { + "type":"button", + "name":"search", + "label":"FORM_SEARCH_BUTTON", + "class":"btn-primary", + "event":"setGridFilter()" + }, + { + "type":"reset", + "name":"reset", + "label":"FORM_RESET_BUTTON", + "class":"btn-primary", + "event":"resetGridFilter()" + } + ] + } + ] + } + ] + }, + "insert":{ + "name":"extraction_ref_extraction_format-form", + "title":"EXTRACTION_REF_EXTRACTION_FORMAT_TITLE_INSERT", + "input_size":"xxs", + "nb_cols":12, + "javascript":false, + "rows":[ + { + "fields":[ + { + "type":"text", + "name":"format_id", + "label":"EXTRACTION_REF_EXTRACTION_FORMAT_FORM_FORMAT_ID", + "disabled":false, + "required":true, + "nb_cols":12, + "id":"format_id_1_1" + } + ] + }, + { + "fields":[ + { + "type":"text", + "name":"format", + "label":"EXTRACTION_REF_EXTRACTION_FORMAT_FORM_FORMAT", + "disabled":false, + "required":false, + "nb_cols":12, + "id":"format_2_1" + } + ] + }, + { + "fields":[ + { + "type":"radio", + "options":{ + "choices":[ + { + "label":"oui", + "value":true, + "$$hashKey":"object:1221" + }, + { + "label":"non", + "value":false, + "$$hashKey":"object:1222" + } + ] + }, + "name":"use_for_raster", + "label":"EXTRACTION_REF_EXTRACTION_FORMAT_FORM_USE_FOR_RASTER", + "disabled":false, + "required":false, + "nb_cols":12, + "id":"use_for_raster_3_1" + } + ] + }, + { + "fields":[ + { + "type":"radio", + "options":{ + "choices":[ + { + "label":"oui", + "value":true, + "$$hashKey":"object:1234" + }, + { + "label":"non", + "value":false, + "$$hashKey":"object:1235" + } + ] + }, + "name":"use_for_vector", + "label":"EXTRACTION_REF_EXTRACTION_FORMAT_FORM_USE_FOR_VECTOR", + "disabled":false, + "required":false, + "nb_cols":12, + "id":"use_for_vector_4_1" + } + ] + }, + { + "fields":[ + { + "type":"button", + "class":"btn-ungroup btn-group-sm", + "nb_cols":12, + "name":"insert_button", + "id":"insert_button", + "buttons":[ + { + "type":"submit", + "name":"form_submit", + "label":"FORM_CREATE", + "class":"btn-primary" + }, + { + "type":"button", + "name":"return_list", + "label":"FORM_RETURN_LIST", + "class":"btn-primary", + "event":"setMode(\"search\")" + } + ] + } + ] + } + ], + "event":"sendSimpleForm()", + "afterEvent":"editSectionForm()", + "tabs":{ + "position":"top", + "list":[ + { + "label":"Tab 0", + "elements":[ + "format_id", + "format", + "use_for_raster", + "use_for_vector", + "insert_button" + ] + } + ] + } + }, + "update":{ + "name":"extraction_ref_extraction_format-form", + "title":"EXTRACTION_REF_EXTRACTION_FORMAT_TITLE", + "input_size":"xxs", + "nb_cols":12, + "javascript":false, + "rows":[ + { + "fields":[ + { + "type":"text", + "name":"format_id", + "label":"EXTRACTION_REF_EXTRACTION_FORMAT_FORM_FORMAT_ID", + "disabled":false, + "required":true, + "nb_cols":12 + } + ] + }, + { + "fields":[ + { + "type":"text", + "name":"format", + "label":"EXTRACTION_REF_EXTRACTION_FORMAT_FORM_FORMAT", + "disabled":false, + "required":false, + "nb_cols":12 + } + ] + }, + { + "fields":[ + { + "type":"radio", + "options":{ + "choices":[ + { + "label":"oui", + "value":true + }, + { + "label":"non", + "value":false + } + ] + }, + "name":"use_for_raster", + "label":"EXTRACTION_REF_EXTRACTION_FORMAT_FORM_USE_FOR_RASTER", + "disabled":false, + "required":false, + "nb_cols":12 + } + ] + }, + { + "fields":[ + { + "type":"radio", + "options":{ + "choices":[ + { + "label":"oui", + "value":true + }, + { + "label":"non", + "value":false + } + ] + }, + "name":"use_for_vector", + "label":"EXTRACTION_REF_EXTRACTION_FORMAT_FORM_USE_FOR_VECTOR", + "disabled":false, + "required":false, + "nb_cols":12 + } + ] + }, + { + "fields":[ + { + "type":"button", + "class":"btn-ungroup btn-group-sm", + "nb_cols":12, + "name":"update_button", + "id":"update_button", + "buttons":[ + { + "type":"submit", + "name":"form_submit", + "label":"FORM_UPDATE", + "class":"btn-primary" + }, + { + "type":"button", + "name":"return_list", + "label":"FORM_RETURN_LIST", + "class":"btn-primary", + "event":"setMode(\"search\")" + } + ] + } + ] + } + ], + "event":"sendSimpleForm()", + "afterEvent":"editSectionForm()" + } +} \ No newline at end of file diff --git a/src/module_extraction/module/forms/extraction_ref/extraction_ref_extraction_layer.json b/src/module_extraction/module/forms/extraction_ref/extraction_ref_extraction_layer.json new file mode 100755 index 00000000..0a47f292 --- /dev/null +++ b/src/module_extraction/module/forms/extraction_ref/extraction_ref_extraction_layer.json @@ -0,0 +1,355 @@ +{ + "display":{ + "name":"extraction_ref_extraction_layer-form", + "title":"EXTRACTION_REF_EXTRACTION_LAYER_TITLE", + "input_size":"xxs", + "nb_cols":12, + "javascript":false, + "rows":[ + { + "fields":[ + { + "type":"label", + "name":"layer_id", + "label":"EXTRACTION_REF_EXTRACTION_LAYER_FORM_LAYER_ID", + "disabled":false, + "required":false, + "nb_cols":12 + } + ] + }, + { + "fields":[ + { + "type":"label", + "name":"layer", + "label":"EXTRACTION_REF_EXTRACTION_LAYER_FORM_LAYER", + "disabled":false, + "required":false, + "nb_cols":12 + } + ] + }, + { + "fields":[ + { + "type":"label", + "name":"category", + "label":"EXTRACTION_REF_EXTRACTION_LAYER_FORM_CATEGORY", + "disabled":false, + "required":false, + "nb_cols":12 + } + ] + }, + { + "fields":[ + { + "type":"label", + "name":"restriction", + "label":"EXTRACTION_REF_EXTRACTION_LAYER_FORM_RESTRICTION", + "disabled":false, + "required":false, + "nb_cols":12 + } + ] + }, + { + "fields":[ + { + "type":"label", + "name":"unused_attributes", + "label":"EXTRACTION_REF_EXTRACTION_LAYER_FORM_UNUSED_ATTRIBUTES", + "disabled":false, + "required":false, + "nb_cols":12 + } + ] + }, + { + "fields":[ + { + "type":"button", + "class":"btn-ungroup btn-group-sm", + "nb_cols":12, + "name":"display_button", + "id":"display_button", + "buttons":[ + { + "type":"button", + "name":"return_list", + "label":"FORM_RETURN_LIST", + "class":"btn-primary", + "event":"setMode(\"search\")" + } + ] + } + ] + } + ] + }, + "search":{ + "name":"extraction_ref_extraction_layer-form", + "title":"EXTRACTION_REF_EXTRACTION_LAYER_TITLE", + "input_size":"xxs", + "nb_cols":12, + "javascript":false, + "rows":[ + { + "fields":[ + { + "type":"text", + "name":"layer", + "label":"EXTRACTION_REF_EXTRACTION_LAYER_FORM_LAYER", + "disabled":false, + "required":false, + "nb_cols":4, + "id":"layer_2_1" + } + ] + }, + { + "fields":[ + { + "type":"button", + "class":"btn-ungroup btn-group-xs", + "nb_cols":12, + "name":"search_button", + "id":"search_button", + "buttons":[ + { + "type":"button", + "name":"search", + "label":"FORM_SEARCH_BUTTON", + "class":"btn-primary", + "event":"setGridFilter()" + }, + { + "type":"reset", + "name":"reset", + "label":"FORM_RESET_BUTTON", + "class":"btn-primary", + "event":"resetGridFilter()" + } + ] + } + ] + } + ] + }, + "insert":{ + "name":"extraction_ref_extraction_layer-form", + "title":"EXTRACTION_REF_EXTRACTION_LAYER_TITLE_INSERT", + "input_size":"xxs", + "nb_cols":12, + "javascript":false, + "rows":[ + { + "fields":[ + { + "type":"text", + "name":"layer_id", + "label":"EXTRACTION_REF_EXTRACTION_LAYER_FORM_LAYER_ID", + "disabled":false, + "required":true, + "nb_cols":12, + "id":"layer_id_1_1" + } + ] + }, + { + "fields":[ + { + "type":"text", + "name":"layer", + "label":"EXTRACTION_REF_EXTRACTION_LAYER_FORM_LAYER", + "disabled":false, + "required":false, + "nb_cols":12, + "id":"layer_2_1" + } + ] + }, + { + "fields":[ + { + "type":"text", + "name":"category", + "label":"EXTRACTION_REF_EXTRACTION_LAYER_FORM_CATEGORY", + "disabled":false, + "required":false, + "nb_cols":12, + "id":"category_3_1" + } + ] + }, + { + "fields":[ + { + "type":"text", + "name":"restriction", + "label":"EXTRACTION_REF_EXTRACTION_LAYER_FORM_RESTRICTION", + "disabled":false, + "required":false, + "nb_cols":12, + "id":"restriction_4_1" + } + ] + }, + { + "fields":[ + { + "type":"text", + "name":"unused_attributes", + "label":"EXTRACTION_REF_EXTRACTION_LAYER_FORM_UNUSED_ATTRIBUTES", + "disabled":false, + "required":false, + "nb_cols":12, + "id":"unused_attributes_5_1" + } + ] + }, + { + "fields":[ + { + "type":"button", + "class":"btn-ungroup btn-group-sm", + "nb_cols":12, + "name":"insert_button", + "id":"insert_button", + "buttons":[ + { + "type":"submit", + "name":"form_submit", + "label":"FORM_CREATE", + "class":"btn-primary" + }, + { + "type":"button", + "name":"return_list", + "label":"FORM_RETURN_LIST", + "class":"btn-primary", + "event":"setMode(\"search\")" + } + ] + } + ] + } + ], + "event":"sendSimpleForm()", + "afterEvent":"editSectionForm()", + "tabs":{ + "position":"top", + "list":[ + { + "label":"Tab 0", + "elements":[ + "layer_id", + "layer", + "category", + "restriction", + "unused_attributes", + "insert_button" + ] + } + ] + } + }, + "update":{ + "name":"extraction_ref_extraction_layer-form", + "title":"EXTRACTION_REF_EXTRACTION_LAYER_TITLE", + "input_size":"xxs", + "nb_cols":12, + "javascript":false, + "rows":[ + { + "fields":[ + { + "type":"text", + "name":"layer_id", + "label":"EXTRACTION_REF_EXTRACTION_LAYER_FORM_LAYER_ID", + "disabled":false, + "required":true, + "nb_cols":12 + } + ] + }, + { + "fields":[ + { + "type":"text", + "name":"layer", + "label":"EXTRACTION_REF_EXTRACTION_LAYER_FORM_LAYER", + "disabled":false, + "required":false, + "nb_cols":12 + } + ] + }, + { + "fields":[ + { + "type":"text", + "name":"category", + "label":"EXTRACTION_REF_EXTRACTION_LAYER_FORM_CATEGORY", + "disabled":false, + "required":false, + "nb_cols":12 + } + ] + }, + { + "fields":[ + { + "type":"text", + "name":"restriction", + "label":"EXTRACTION_REF_EXTRACTION_LAYER_FORM_RESTRICTION", + "disabled":false, + "required":false, + "nb_cols":12 + } + ] + }, + { + "fields":[ + { + "type":"text", + "name":"unused_attributes", + "label":"EXTRACTION_REF_EXTRACTION_LAYER_FORM_UNUSED_ATTRIBUTES", + "disabled":false, + "required":false, + "nb_cols":12 + } + ] + }, + { + "fields":[ + { + "type":"button", + "class":"btn-ungroup btn-group-sm", + "nb_cols":12, + "name":"update_button", + "id":"update_button", + "buttons":[ + { + "type":"submit", + "name":"form_submit", + "label":"FORM_UPDATE", + "class":"btn-primary" + }, + { + "type":"button", + "name":"return_list", + "label":"FORM_RETURN_LIST", + "class":"btn-primary", + "event":"setMode(\"search\")" + } + ] + } + ] + } + ], + "event":"sendSimpleForm()", + "afterEvent":"editSectionForm()" + } +} \ No newline at end of file diff --git a/src/module_extraction/module/forms/login/sign_up.json b/src/module_extraction/module/forms/login/sign_up.json new file mode 100755 index 00000000..cc5bc1e5 --- /dev/null +++ b/src/module_extraction/module/forms/login/sign_up.json @@ -0,0 +1,230 @@ +{ + "search": { + "name": "login_form", + "input_size": "xs", + "event": "sendInscriptionRequest()", + "rows": [ + { + "fields": [ + { + "type": "text", + "name": "username", + "label": "SIGNUPUSERNAME", + "required": true, + "pattern": "^([a-zA-Z_0-9])+", + "nb_cols": 12, + "id": "Element_0_2_1" + } + ] + }, + { + "fields": [ + { + "type": "password", + "name": "password", + "label": "SIGNUPPASSWORD", + "required": true, + "pattern": "", + "nb_cols": 12, + "id": "Element_0_4_1" + } + ] + }, + { + "fields": [ + { + "type": "password", + "name": "signuppasswordconfirmation", + "label": "SIGNUPPASSWORDCONFIRMATION", + "required": true, + "pattern": "", + "nb_cols": 12, + "id": "Element_0_4_1" + } + ] + }, + { + "fields": [ + { + "type": "text", + "name": "company", + "label": "SIGNUPORGANIZATION", + "required": true, + "pattern": "", + "nb_cols": 12, + "id": "Element_3_4_1", + "id_from": "Element_3_4_1_from" + } + ] + }, + { + "fields": [ + { + "type": "email", + "name": "mail", + "label": "SIGNUPMAIL", + "required": true, + "pattern": "^(([a-zA-Z]|[0-9])|([-]|[_]|[.]))+[@](([a-zA-Z]|[0-9])|([-]|[_]|[.])){2,63}[.](([a-zA-Z0-9]){2,63})+$", + "nb_cols": 12, + "id": "Element_2_3_1" + } + ] + }, + { + "fields": [ + { + "type": "text", + "name": "phone", + "label": "SIGN_UP_PHONE", + "required": false, + "pattern": "^(\\+[0-9]{1,3})?([0-9]{8,15})$", + "nb_cols": 12, + "id": "Element_0_5_1" + } + ] + }, + { + "fields": [ + { + "type": "text", + "name": "public_ip", + "label": "SIGN_UP_PUBLIC_IP", + "required": false, + "pattern": "^([0-9]{3}.[0-9]{3}.[0-9]{3})((/[0-9]+)?)$", + "nb_cols": 12, + "id": "Element_0_6_1" + } + ] + }, + { + "fields": [ + { + "type": "text", + "name": "demandeur", + "label": "SIGN_UP_DEMANDEUR", + "required": false, + "pattern": "", + "nb_cols": 12, + "id": "Element_0_8_1" + } + ] + }, + { + "fields": [ + { + "type": "email", + "name": "mail_demandeur", + "label": "SIGN_UP_MAIL_DEMANDEUR", + "required": false, + "pattern": "^(([a-zA-Z]|[0-9])|([-]|[_]|[.]))+[@](([a-zA-Z]|[0-9])|([-]|[_]|[.])){2,63}[.](([a-zA-Z0-9]){2,63})+$", + "nb_cols": 12, + "id": "Element_0_9_1" + } + ] + }, + { + "fields": [ + { + "type": "text", + "name": "study_object", + "label": "SIGN_UP_STUDY_OBJECT", + "required": false, + "pattern": "", + "nb_cols": 12, + "id": "Element_0_7_1" + } + ] + }, + { + "fields": [ + { + "type": "date", + "name": "start_date", + "label": "SIGN_UP_START_DATE", + "nb_cols": 6, + "id": "Element_0_10_1" + }, + { + "type": "date", + "name": "end_date", + "label": "SIGN_UP_END_DATE", + "nb_cols": 6, + "id": "Element_0_10_1" + } + ] + }, + { + "fields": [ + { + "type": "checkbox", + "name": "signupcgu", + "label": "ACCEPT_CGU", + "required": true, + "nb_cols": 12, + "id": "Element_5_5_1" + } + ] + }, + { + "fields": [ + { + "type": "captcha", + "nb_cols": 12, + "name": "captcha", + "class": "center", + "id": "captcha", + "key": "6LdWLR8UAAAAAExA8zTXKFIsIwhacAJw1tdpuFw1" + } + ] + }, + { + "fields": [ + { + "type": "button", + "name": "btn_signup", + "nb_cols": 12, + "id": "Element_42_5_1", + "class": "btn-ungroup btn-group-sm login-connect-btn", + "buttons": [ + { + "type": "submit", + "name": "form_signup", + "label": "SIGNUP_BUTTON", + "class": "btn-primary" + } + ] + } + ] + } + ], + "tabs": { + "position": "top", + "list": [ + { + "label": "Tab 0", + "elements": [ + "username", + "password", + "signuppasswordconfirmation", + "mail", + "company", + "signupcgu", + "captcha", + "btn_signup", + "phone", + "public_ip", + "study_object", + "end_date", + "start_date", + "demandeur", + "mail_demandeur" + ] + } + ] + } + }, + "update": {}, + "insert": {}, + "display": {}, + "datasources": {} +} \ No newline at end of file diff --git a/src/module_extraction/module/javascript/script_module.js b/src/module_extraction/module/javascript/script_module.js new file mode 100755 index 00000000..db7ca4c3 --- /dev/null +++ b/src/module_extraction/module/javascript/script_module.js @@ -0,0 +1,412 @@ +/* global vitisApp, goog, angular, bootbox, oVFB */ + +'use strict'; +goog.provide('extraction.script_module'); +vitisApp.on('appMainDrtvLoaded', function () { + /** + * setWabStatusMethod function. + * Définition de la méthode de transition. + * @param {string} sMethodName Nom de la méthode wab. + **/ + angular.element(vitisApp.appMainDrtv).scope()["setWabStatusMethod"] = function (sMethodName) { + // Injection des services. + var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]); + //var $rootScope = angular.element(vitisApp.appMainDrtv).injector().get(["$rootScope"]); + var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]); + // + $log.info("setWabStatusMethod", sMethodName); + envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["tr_status_method"] = sMethodName; + // Envoi le formulaire. + if (envSrvc["sMode"] != "display") { + var sFormElementName = envSrvc["oFormDefinition"][envSrvc["sFormDefinitionName"]]["name"]; + var formScope = angular.element("form[name='" + sFormElementName + "']").scope(); + if (envSrvc["sMode"] == "update") + formScope["sendForm"](); + } + }; + + /** + * loadExtractionConfig function. + * Chargement de la section "Configuration EXTRACTION" dans l''''onglet "Configuration". + * @expose + */ + angular.element(vitisApp.appMainDrtv).scope()["loadExtractionConfig"] = function () { + // Injection des services. + var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]); + var envSrvc = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(["envSrvc"]); + // + $log.info("loadExtractionConfig"); + // Paramètres des properties dans les valeurs du formulaire de config de Extraction. + angular.element(vitisApp.appMainDrtv).scope()["setPropertiesFormValues"](); + // Surcharge l''''url du formulaire des properties de Extraction. + var scope = this; + var sTable = envSrvc["oSelectedObject"]["name"]; + scope["oFormRequestParams"] = { + "sUrl": "modules/extraction/forms/" + envSrvc["oSelectedMode"]["mode_id"] + "/" + sTable + "_" + envSrvc["oSectionForm"][sTable]["sections"][envSrvc["oSectionForm"][sTable]["iSelectedSectionIndex"]]["name"] + ".json" + }; + }; + + /** + * initExtractionExtractionForm function. + * Traitements avant l'affichage du formulaire de l'onglet "Extraction". + **/ + angular.element(vitisApp.appMainDrtv).scope()["initExtractionExtractionForm"] = function () { + // Injection des services. + var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]); + var $rootScope = angular.element(vitisApp.appMainDrtv).injector().get(["$rootScope"]); + var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]); + var formSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["formSrvc"]); + // + $log.info("initExtractionExtractionForm"); + var oFormValues = envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]; + var oElemDef; + // Affiche le champ de form. correspondant au type de méthode choisie. + var aExtentMethod = ["id_com", "id_conseil", "extent"]; + for (var i in aExtentMethod) { + var oElemDef = formSrvc["getFormElementDefinition"](aExtentMethod[i], envSrvc["sFormDefinitionName"], envSrvc["oFormDefinition"]); + if (oFormValues["extent_method"] == aExtentMethod[i]) + oElemDef["visible"] = true; + else + oElemDef["visible"] = false; + } + // Libellé des champs "Commune" et "Bassin de vie". + if (envSrvc["sMode"] == "display") { + oFormValues["id_com"] = oFormValues["id_com_label"]; + oFormValues["id_conseil"] = oFormValues["id_conseil_label"]; + } + // Attends la fin du chargement de tous les champs du formulaire. + var clearListener = $rootScope.$on('formExtracted', function (event, sFormDefinitionName) { + // Supprime le "listener". + clearListener(); + // Evènement sur le <select> "méthode choisie" : affiche le champ de form. correspondant au choix. + var oExtentMethod = formSrvc["getFormElementDefinition"]("extent_method", envSrvc["sFormDefinitionName"], envSrvc["oFormDefinition"]); + if (oExtentMethod["type"] == "select" && document.getElementById(oExtentMethod["id"]) != null) { + document.getElementById(oExtentMethod["id"]).addEventListener("change", function () { + for (var i in aExtentMethod) { + var oElemDef = formSrvc["getFormElementDefinition"](aExtentMethod[i], envSrvc["sFormDefinitionName"], envSrvc["oFormDefinition"]); + if (this.value == aExtentMethod[i]) + oElemDef["visible"] = true; + else + oElemDef["visible"] = false; + } + var formScope = angular.element("form[name='" + envSrvc["oFormDefinition"][envSrvc["sFormDefinitionName"]]["name"]).scope(); + formScope.$apply(); + }); + } + }); + }; + + /** + * getExtractionLayersTree function. + * Retourne l'arborescence pour le champ treeview "layers". + **/ + angular.element(vitisApp.appMainDrtv).scope()["getExtractionLayersTree"] = function () { + // Injection des services. + var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]); + var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]); + var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]); + var $q = angular.element(vitisApp.appHtmlFormDrtv).injector().get(["$q"]); + // + $log.info("getExtractionLayersTree"); + var deferred = $q.defer(); + var promise = deferred.promise; + // Charge la liste des couches. + ajaxRequest({ + "method": "GET", + "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/extraction/extractions/Layers", + "scope": angular.element("form[name='" + envSrvc["oFormDefinition"][envSrvc["sFormDefinitionName"]]["name"] + "']").scope(), + "success": function(response) { + if (response["data"]["status"] == 1) { + // Création de l'arborescence des couches pour le champ "treeview". + var aLayers = response["data"]["layers"]; + var aNodes = []; + var stats = true; + if (typeof(aLayers) != "undefined") { + var aCategories = Object.keys(aLayers); + for (var i in aCategories) { + var aNode = {"text": aCategories[i], "nodes": []} + for (var j in aLayers[aCategories[i]]) { + if (aLayers[aCategories[i]][j]["statistique"] !== true) + { + stats = false; + aNode["nodes"].push({"text": aLayers[aCategories[i]][j]["text"], "value": aLayers[aCategories[i]][j]["value"], "mutualized": aLayers[aCategories[i]][j]["mutualized"]}); + } + } + if (stats !== true) + { + aNodes.push(aNode); + } + stats = true; + } + } + + this["setTreeviewNodesState"] = function (aNodes) { + for (var i in aNodes) { + if (typeof (aNodes[i]["nodes"]) != "undefined") + { + this["setTreeviewNodesState"](aNodes[i]["nodes"]); + } + else { + //Si la couche est mutualisée + if (aNodes[i]['mutualized'] == true) + { + aNodes[i]["color"] = propertiesSrvc["color_mutualized"]; + } else if (aNodes[i]['mutualized'] == false) { + aNodes[i]["color"] = propertiesSrvc["color_no_mutualized"]; + } + } + } + } + this["setTreeviewNodesState"](aNodes); + + deferred.resolve(aNodes); + } else { + // + var oOptions = { + "className": "modal-danger" + }; + // Message d'erreur ? + if (response["data"]["errorMessage"] != null) + oOptions["message"] = response["data"]["errorMessage"]; + scope.$root["modalWindow"]("alert", "REQUEST_ERROR", oOptions); + } + } + }); + return promise; + }; + + + /** + * getExtractionLayersTree function. + * Retourne l'arborescence pour le champ treeview "layers". + **/ + angular.element(vitisApp.appMainDrtv).scope()["getExtractionStatsTree"] = function () { + // Injection des services. + var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]); + var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]); + var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]); + var $q = angular.element(vitisApp.appHtmlFormDrtv).injector().get(["$q"]); + // + $log.info("getExtractionStatsTree"); + var deferred = $q.defer(); + var promise = deferred.promise; + // Charge la liste des couches. + ajaxRequest({ + "method": "GET", + "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/extraction/extractions/Layers", + "scope": angular.element("form[name='" + envSrvc["oFormDefinition"][envSrvc["sFormDefinitionName"]]["name"] + "']").scope(), + "success": function(response) { + if (response["data"]["status"] == 1) { + // Création de l'arborescence des couches pour le champ "treeview". + var aLayers = response["data"]["layers"]; + var aNodes = []; + var stats = false; + if (typeof(aLayers) != "undefined") { + var aCategories = Object.keys(aLayers); + for (var i in aCategories) { + var aNode = {"text": aCategories[i], "nodes": []} + for (var j in aLayers[aCategories[i]]) { + if (aLayers[aCategories[i]][j]["statistique"] === true) + { + stats = true; + aNode["nodes"].push({"text": aLayers[aCategories[i]][j]["text"], "value": aLayers[aCategories[i]][j]["value"], "mutualized": aLayers[aCategories[i]][j]["mutualized"]}); + } + } + if (stats === true) + { + aNodes.push(aNode); + } + stats = false; + } + } + + this["setTreeviewNodesState"] = function (aNodes) { + for (var i in aNodes) { + if (typeof (aNodes[i]["nodes"]) != "undefined") + { + this["setTreeviewNodesState"](aNodes[i]["nodes"]); + } + else { + //Si la couche est mutualisée + if (aNodes[i]['mutualized'] == true) + { + aNodes[i]["color"] = propertiesSrvc["color_mutualized"]; + } else if (aNodes[i]['mutualized'] == false) { + aNodes[i]["color"] = propertiesSrvc["color_no_mutualized"]; + } + } + } + } + this["setTreeviewNodesState"](aNodes); + + deferred.resolve(aNodes); + } else { + // + var oOptions = { + "className": "modal-danger" + }; + // Message d'erreur ? + if (response["data"]["errorMessage"] != null) + oOptions["message"] = response["data"]["errorMessage"]; + scope.$root["modalWindow"]("alert", "REQUEST_ERROR", oOptions); + } + } + }); + return promise; + }; + + /** + * appExtractionLayersColumn directive. + * Mise en forme de la colonne "layers" dans la liste de l'onglet "Extraction". + * @param {service} $translate Translate service. + * @ngInject + **/ + vitisApp.appExtractionLayersColumnDrtv = function ($translate) { + return { + link: function (scope, element, attrs) { + // 1er affichage ou tri de la liste : maj de la mise en forme. + var clearObserver = attrs.$observe("appExtractionLayersColumn", function (value) { + // Si le champ est vide : supprime l'icône. + if (scope["row"]["entity"][scope["col"]["field"]] == null || scope["row"]["entity"][scope["col"]["field"]] == "") + element[0].className = ""; + else { + // Classes css (ui-grid + spécifiques). + element[0].className = "ui-grid-cell-contents info-icon"; + // Traduction du titre et du contenu. + $translate(["EXTRACTION_REF_EXTRACTION_LAYER_LAYERS_TOOLTIP_TITLE"]).then(function (translations) { + // Création du "tooltip". + $(element)["popover"]({ + "trigger": "hover", + "container": "body", + "title": function () { + return translations["EXTRACTION_REF_EXTRACTION_LAYER_LAYERS_TOOLTIP_TITLE"]; + }, + "content": function () { + var sValue = scope["row"]["entity"][scope["col"]["field"]]; + return sValue.replace(/\|/g, "<br>"); + }, + // Placement du tooltip à gauche ou à droite suivant la position horizontale de l'élément. + "placement": function (oPopoverNode, oElementNode) { + return scope.$root["workspaceTooltipPlacement"](oElementNode); + }, + "html": true + }); + }); + } + }); + // Attends la suppression du scope. + scope.$on("$destroy", function () { + // Supprime le tooltip. + $(element)["popover"]("destroy"); + // Supprime l'observateur. + clearObserver(); + }); + } + } + }; + vitisApp["compileProvider"].directive('appExtractionLayersColumn', vitisApp.appExtractionLayersColumnDrtv); + + /** + * appExtractionRefUnusedAttributesColumn directive. + * Mise en forme de la colonne "unused_attributes" dans la liste de l'onglet "Extraction". + * @param {service} $translate Translate service. + * @ngInject + **/ + vitisApp.appExtractionRefUnusedAttributesColumnDrtv = function ($translate) { + return { + link: function (scope, element, attrs) { + // 1er affichage ou tri de la liste : maj de la mise en forme. + var clearObserver = attrs.$observe("appExtractionRefUnusedAttributesColumn", function (value) { + // Si le champ est vide : supprime l'icône. + if (scope["row"]["entity"][scope["col"]["field"]] == null || scope["row"]["entity"][scope["col"]["field"]] == "") + element[0].className = ""; + else { + // Classes css (ui-grid + spécifiques). + element[0].className = "ui-grid-cell-contents info-icon"; + // Traduction du titre et du contenu. + $translate(["EXTRACTION_REF_EXTRACTION_LAYER_UNUSED_ATTRIBUTES_TOOLTIP_TITLE"]).then(function (translations) { + // Création du "tooltip". + $(element)["popover"]({ + "trigger": "hover", + "container": "body", + "title": function () { + return translations["EXTRACTION_REF_EXTRACTION_LAYER_UNUSED_ATTRIBUTES_TOOLTIP_TITLE"]; + }, + "content": function () { + var sValue = scope["row"]["entity"][scope["col"]["field"]]; + return sValue.replace(/;/g, "<br>"); + }, + // Placement du tooltip à gauche ou à droite suivant la position horizontale de l'élément. + "placement": function (oPopoverNode, oElementNode) { + return scope.$root["workspaceTooltipPlacement"](oElementNode); + }, + "html": true + }); + }); + } + }); + // Attends la suppression du scope. + scope.$on("$destroy", function () { + // Supprime le tooltip. + $(element)["popover"]("destroy"); + // Supprime l'observateur. + clearObserver(); + }); + } + } + }; + vitisApp["compileProvider"].directive('appExtractionRefUnusedAttributesColumn', vitisApp.appExtractionRefUnusedAttributesColumnDrtv); + + angular.element(vitisApp.appMainDrtv).scope()["showModalSignUp"] = function () { + $("#modal_sign_up").modal('open'); + + var oFormValues = {}; + oFormValues["search"] = {}; + ajaxRequest({ + 'method': 'GET', + 'url': propertiesSrvc["web_server_name"] + '/' + propertiesSrvc["application"] + "/modules/extraction/forms/sign_up.json", + 'success': function (response) { + hideAjaxLoader(); + + var oFormReaderScope = angular.element($("#modal_sign_up_form_container").children()).scope(); + oFormReaderScope.$evalAsync(function () { + oFormReaderScope['ctrl']['setDefinitionName']("search"); + oFormReaderScope['ctrl']['setFormValues'](oFormValues); + oFormReaderScope['ctrl']['setFormDefinition'](response["data"]); + oFormReaderScope['ctrl']['loadForm'](); + }); + + $this.$timeout_(function () { + //Materialize.updateTextFields(); + $(".checkbox").removeClass("checkbox checkbox-margin"); + + //$this.cssSelectFormDefinitionListener(oFormReaderScope); + }, 100); + }, + 'error': function (response) { + hideAjaxLoader(); + console.error("ERROR"); + } + }); + }; +}); + +vitisApp.on('appInitCtrlLoaded', function () { + var $rootScope = angular.element(vitisApp.appMainDrtv).injector().get(["$rootScope"]); + var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]); + var $translatePartialLoader = angular.element(vitisApp.appMainDrtv).injector().get(["$translatePartialLoader"]); + var $translate = angular.element(vitisApp.appMainDrtv).injector().get(["$translate"]); + // Chargement du template de login et des formulaires spécifiques à Extraction. + //envSrvc["sLoginTemplate"] = "modules/calimap/templates/loginTpl.html"; + //envSrvc["sLoginForm"] = "modules/extraction/forms/extraction/login.json"; + //envSrvc["sForgottenPasswordForm"] = "modules/calimap/forms/login/forgotten_password.json"; + envSrvc["sSignUpForm"] = "modules/extraction/forms/login/sign_up.json"; + // Chargement du fichier less pour le login. + //loadExternalCss(["modules/calimap/less/login.less"]); + // Chargement des fichiers de langues du module. + var clearListener = $rootScope.$on('endFormNgRepeat', function (event) { + clearListener(); + $translatePartialLoader["addPart"]("modules/extraction/lang"); + $translate["refresh"](); + }); +}); \ No newline at end of file diff --git a/src/module_extraction/module/lang/lang-en.json b/src/module_extraction/module/lang/lang-en.json new file mode 100755 index 00000000..de3d253d --- /dev/null +++ b/src/module_extraction/module/lang/lang-en.json @@ -0,0 +1,111 @@ +{ + "TEXT_MODE_EXTRACTION" : "Gestion des extractions", + "TITLE_MODE_EXTRACTION" : "Extraction", + "TEXT_MODE_EXTRACTION_REF" : "Gestion références des extractions", + "TITLE_MODE_EXTRACTION_REF" : "extraction_ref", + "EXTRACTION_EXTRACTION_EXTRACTION_TITLE" : "Extraction", + "EXTRACTION_EXTRACTION_EXTRACTION_TITLE_INSERT" : "Extraction", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_BO_ID" : "Id métier", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_STATUS" : "Etat", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_CREATION_DATE" : "Date de création", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_REQUESTOR" : "Demandeur", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_AE" : "Acte d'engagement", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_EXTENT" : "Etendue", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_COMPANY" : "Organisme", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_LAYERS" : "Couches", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_STATISTIQUE" : "Données statistiques", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_VECTOR_FORMAT_ID" : "Format Vecteurs", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_COORDSYS_ID" : "Système de coordonnées", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_NOTE" : "note", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_NOTE_LINE" : "note_line", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_RASTER_FORMAT_ID" : "Format Images", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_EXTENT_METHOD" : "Méthode de saisie", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_SIGNED" : "Acte d'engagement signé", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ACCEPTED_BY_CPA" : "Validation de l'usage décrit pour les données", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_IDENTIFICATION_COMPLETE" : "Cadre d'identification complet", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_DEFINITION_COMPLETE" : "Définition des traitements non renseignée", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_CREATE" : "Créer", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_REJECT_EXTRACTION" : "Refuser l'extraction", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_RELOAD_AE" : "Recharger l'acte d'engagement", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_SEND_AE" : "Soumettre l'AE", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_TERMINATE" : "Terminer", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ASK_AE" : "Demander l'AE", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_GENERATE_AE" : "Générer l'AE", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ALLOW_EXTRACTION" : "Autoriser l'extraction", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_COMMENT" : "Commentaires", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_PRIORITY_ID" : "Priorité", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ID_COM" : "Commune", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ID_CONSEIL" : "Conseil de Territoire", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_HISTORY" : "Historique", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_TECHNIQUE" : "Générer précaunisations techniques", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_CARTOGRAPHIQUE" : "Générer charte cartographique", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_LISTE_TERRITOIRE" : "Liste des territoires", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_LISTE_COMMUNE" : "Liste des communes", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_FORMAT" : "Format", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ISOGEO" : "Générer métadonnées isogéo", + "EXTRACTION_REF_EXTRACTION_COORDSYS_TITLE" : "Système de coordonnées {{::coordsys_id}}", + "EXTRACTION_REF_EXTRACTION_COORDSYS_TITLE_INSERT" : "Système de coordonnées", + "EXTRACTION_REF_EXTRACTION_COORDSYS_FORM_COORDSYS_ID" : "ID", + "EXTRACTION_REF_EXTRACTION_COORDSYS_FORM_COORDSYS" : "Nom", + "EXTRACTION_REF_EXTRACTION_FORMAT_TITLE" : "Format {{::format_id}}", + "EXTRACTION_REF_EXTRACTION_FORMAT_TITLE_INSERT" : "Format", + "EXTRACTION_REF_EXTRACTION_FORMAT_SELECT" : "Sélectionner un format :", + "EXTRACTION_REF_EXTRACTION_FORMAT_FORM_FORMAT_ID" : "ID", + "EXTRACTION_REF_EXTRACTION_FORMAT_FORM_FORMAT" : "Nom", + "EXTRACTION_REF_EXTRACTION_FORMAT_FORM_USE_FOR_RASTER" : "Raster", + "EXTRACTION_REF_EXTRACTION_FORMAT_FORM_USE_FOR_VECTOR" : "Vecteur", + "EXTRACTION_REF_EXTRACTION_LAYER_TITLE" : "Couche {{::layer_id}}", + "EXTRACTION_REF_EXTRACTION_LAYER_TITLE_INSERT" : "Couche", + "EXTRACTION_REF_EXTRACTION_LAYER_FORM_LAYER_ID" : "ID", + "EXTRACTION_REF_EXTRACTION_LAYER_FORM_LAYER" : "Nom", + "EXTRACTION_REF_EXTRACTION_LAYER_FORM_CATEGORY" : "Catégorie", + "EXTRACTION_REF_EXTRACTION_LAYER_FORM_RESTRICTION" : "Restriction", + "EXTRACTION_REF_EXTRACTION_LAYER_FORM_UNUSED_ATTRIBUTES" : "Attributs inutilisés", + "EXTRACTION_REF_EXTRACTION_LAYER_LAYERS_TOOLTIP_TITLE" : "Couches", + "EXTRACTION_REF_EXTRACTION_LAYER_UNUSED_ATTRIBUTES_TOOLTIP_TITLE" : "Attributs inutilisés", + "CONFIGURATION_VITIS_CONFIGURATION_EXTRACTIONCONFIG_FORM_SCHEMA_EXTRACTION" : "", + "CONFIGURATION_VITIS_CONFIGURATION_EXTRACTIONCONFIG_FORM_COLOR_MUTUALIZED" : "", + "CONFIGURATION_VITIS_CONFIGURATION_EXTRACTIONCONFIG_FORM_COLOR_NO_MUTUALIZED" : "", + "TEXT_MODE_EXTRACTION_FORM" : "", + "TITLE_MODE_EXTRACTION_FORM" : "extraction_form", + "SIGN_UP_END_DATE" : "Date de fin de contrat", + "SIGN_UP_START_DATE" : "Date de début de contrat", + "SIGN_UP_STUDY_OBJECT" : "Objet de l'étude", + "SIGN_UP_PUBLIC_IP" : "IP publique fixe", + "SIGN_UP_PHONE" : "Téléphone", + "SIGN_UP_DEMANDEUR" : "Nom du demandeur", + "SIGN_UP_MAIL_DEMANDEUR" : "Adresse mail du demandeur", + "TEXT_MODE_EXTRACTION_DEPOT" : "", + "TITLE_MODE_EXTRACTION_DEPOT" : "extraction_depot", + "EXTRACTION_EXTRACTION_CP_TITLE_INSERT" : "Extraction", + "EXTRACTION_EXTRACTION_CP_FORM_TECHNIQUE" : "Générer précaunisations techniques", + "EXTRACTION_EXTRACTION_CP_FORM_CARTOGRAPHIQUE" : "Générer charte cartographique", + "EXTRACTION_EXTRACTION_CP_FORM_ISOGEO" : "Générer métadonnées isogéo", + "EXTRACTION_EXTRACTION_CP_FORM_COMPANY" : "Organisme", + "EXTRACTION_EXTRACTION_CP_FORM_EXTENT_METHOD" : "Méthode de saisie", + "EXTRACTION_EXTRACTION_CP_FORM_ID_COM" : "Commune", + "EXTRACTION_EXTRACTION_CP_FORM_ID_CONSEIL" : "Conseil de Territoire", + "EXTRACTION_EXTRACTION_CP_FORM_EXTENT" : "Etendue", + "EXTRACTION_EXTRACTION_CP_FORM_LAYERS" : "Couches", + "EXTRACTION_EXTRACTION_CP_FORM_STATISTIQUE" : "Données statistiques", + "EXTRACTION_EXTRACTION_CP_FORM_COORDSYS_ID" : "Système de coordonnées", + "EXTRACTION_EXTRACTION_CP_FORM_VECTOR_FORMAT_ID" : "Format Vecteurs", + "EXTRACTION_EXTRACTION_CP_FORM_RASTER_FORMAT_ID" : "Format Images", + "EXTRACTION_EXTRACTION_CP_FORM_STATUS" : "Etat", + "EXTRACTION_EXTRACTION_CP_FORM_HISTORY" : "Historique", + "EXTRACTION_EXTRACTION_CP_FORM_CREATION_DATE" : "Date de création", + "EXTRACTION_EXTRACTION_CP_FORM_REQUESTOR" : "Demandeur", + "EXTRACTION_EXTRACTION_CP_FORM_AE" : "Acte d'engagement", + "EXTRACTION_EXTRACTION_CP_FORM_NOTE" : "note", + "EXTRACTION_EXTRACTION_CP_FORM_NOTE_LINE" : "note_line", + "EXTRACTION_EXTRACTION_CP_FORM_SIGNED" : "Acte d'engagement signé", + "EXTRACTION_EXTRACTION_CP_FORM_ACCEPTED_BY_CPA" : "Validation de l'usage décrit pour les données", + "EXTRACTION_EXTRACTION_CP_FORM_IDENTIFICATION_COMPLETE" : "Cadre d'identification complet", + "EXTRACTION_EXTRACTION_CP_FORM_DEFINITION_COMPLETE" : "Définition des traitements non renseignée", + "EXTRACTION_EXTRACTION_CP_FORM_COMMENT" : "Commentaires", + "EXTRACTION_EXTRACTION_CP_FORM_PRIORITY_ID" : "Priorité", + "EXTRACTION_EXTRACTION_CP_TITLE" : "Extraction", + "EXTRACTION_EXTRACTION_CP_FORM_BO_ID" : "Id métier", + "EXTRACTION_DEPOT_EXTRACTION_EXTRACTION_DEPOT_TITLE" : "", + "EXTRACTION_DEPOT_EXTRACTION_EXTRACTION_DEPOT_TITLE_INSERT" : "" +} \ No newline at end of file diff --git a/src/module_extraction/module/lang/lang-fr.json b/src/module_extraction/module/lang/lang-fr.json new file mode 100755 index 00000000..88375368 --- /dev/null +++ b/src/module_extraction/module/lang/lang-fr.json @@ -0,0 +1,123 @@ +{ + "TEXT_MODE_EXTRACTION" : "Gestion des extractions", + "TITLE_MODE_EXTRACTION" : "Extraction", + "TEXT_MODE_EXTRACTION_REF" : "Gestion références des extractions", + "TITLE_MODE_EXTRACTION_REF" : "extraction_ref", + "EXTRACTION_EXTRACTION_EXTRACTION_TITLE" : "Extraction", + "EXTRACTION_EXTRACTION_EXTRACTION_TITLE_INSERT" : "Extraction", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_BO_ID" : "Id métier", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_STATUS" : "Etat", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_CREATION_DATE" : "Date de création", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_REQUESTOR" : "Demandeur", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_AE" : "Acte d'engagement", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_EXTENT" : "Etendue", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_COMPANY" : "Organisme", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_LAYERS" : "Couches", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_STATISTIQUE" : "Données statistiques", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_VECTOR_FORMAT_ID" : "Format Vecteurs", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_COORDSYS_ID" : "Système de coordonnées", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_NOTE" : "note", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_NOTE_LINE" : "note_line", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_RASTER_FORMAT_ID" : "Format Images", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_EXTENT_METHOD" : "Méthode de saisie", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_SIGNED" : "Acte d'engagement signé", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ACCEPTED_BY_CPA" : "Validation de l'usage décrit pour les données", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_IDENTIFICATION_COMPLETE" : "Cadre d'identification complet", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_DEFINITION_COMPLETE" : "Définition des traitements non renseignée", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_CREATE" : "Créer", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_REJECT_EXTRACTION" : "Refuser l'extraction", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_RELOAD_AE" : "Recharger l'acte d'engagement", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_SEND_AE" : "Soumettre l'AE", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_TERMINATE" : "Terminer", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ASK_AE" : "Demander l'AE", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_GENERATE_AE" : "Générer l'AE", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ALLOW_EXTRACTION" : "Autoriser l'extraction", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_COMMENT" : "Commentaires", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_PRIORITY_ID" : "Priorité", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ID_COM" : "Commune", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ID_CONSEIL" : "Conseil de Territoire", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_HISTORY" : "Historique", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_TECHNIQUE" : "Générer précaunisations techniques", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_CARTOGRAPHIQUE" : "Générer charte cartographique", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_LISTE_TERRITOIRE" : "Liste des territoires", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_LISTE_COMMUNE" : "Liste des communes", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_FORMAT" : "Format", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ISOGEO" : "Générer métadonnées isogéo", + "EXTRACTION_REF_EXTRACTION_COORDSYS_TITLE" : "Système de coordonnées {{::coordsys_id}}", + "EXTRACTION_REF_EXTRACTION_COORDSYS_TITLE_INSERT" : "Système de coordonnées", + "EXTRACTION_REF_EXTRACTION_COORDSYS_FORM_COORDSYS_ID" : "ID", + "EXTRACTION_REF_EXTRACTION_COORDSYS_FORM_COORDSYS" : "Nom", + "EXTRACTION_REF_EXTRACTION_FORMAT_TITLE" : "Format {{::format_id}}", + "EXTRACTION_REF_EXTRACTION_FORMAT_TITLE_INSERT" : "Format", + "EXTRACTION_REF_EXTRACTION_FORMAT_SELECT" : "Sélectionner un format :", + "EXTRACTION_REF_EXTRACTION_FORMAT_FORM_FORMAT_ID" : "ID", + "EXTRACTION_REF_EXTRACTION_FORMAT_FORM_FORMAT" : "Nom", + "EXTRACTION_REF_EXTRACTION_FORMAT_FORM_USE_FOR_RASTER" : "Raster", + "EXTRACTION_REF_EXTRACTION_FORMAT_FORM_USE_FOR_VECTOR" : "Vecteur", + "EXTRACTION_REF_EXTRACTION_LAYER_TITLE" : "Couche {{::layer_id}}", + "EXTRACTION_REF_EXTRACTION_LAYER_TITLE_INSERT" : "Couche", + "EXTRACTION_REF_EXTRACTION_LAYER_FORM_LAYER_ID" : "ID", + "EXTRACTION_REF_EXTRACTION_LAYER_FORM_LAYER" : "Nom", + "EXTRACTION_REF_EXTRACTION_LAYER_FORM_CATEGORY" : "Catégorie", + "EXTRACTION_REF_EXTRACTION_LAYER_FORM_RESTRICTION" : "Restriction", + "EXTRACTION_REF_EXTRACTION_LAYER_FORM_UNUSED_ATTRIBUTES" : "Attributs inutilisés", + "EXTRACTION_REF_EXTRACTION_LAYER_LAYERS_TOOLTIP_TITLE" : "Couches", + "EXTRACTION_REF_EXTRACTION_LAYER_UNUSED_ATTRIBUTES_TOOLTIP_TITLE" : "Attributs inutilisés", + "CONFIGURATION_VITIS_CONFIGURATION_EXTRACTIONCONFIG_FORM_SCHEMA_EXTRACTION" : "", + "CONFIGURATION_VITIS_CONFIGURATION_EXTRACTIONCONFIG_FORM_COLOR_MUTUALIZED" : "Couleur des couches mutualisées", + "CONFIGURATION_VITIS_CONFIGURATION_EXTRACTIONCONFIG_FORM_COLOR_NO_MUTUALIZED" : "Couleur des couches non mutualisées", + "TEXT_MODE_EXTRACTION_FORM" : "", + "TITLE_MODE_EXTRACTION_FORM" : "extraction_form", + "SIGN_UP_END_DATE" : "Date de fin de contrat", + "SIGN_UP_START_DATE" : "Date de début de contrat", + "SIGN_UP_STUDY_OBJECT" : "Objet de l'étude", + "SIGN_UP_PUBLIC_IP" : "IP publique fixe", + "SIGN_UP_PHONE" : "Téléphone", + "SIGN_UP_DEMANDEUR" : "Nom du demandeur", + "SIGN_UP_MAIL_DEMANDEUR" : "Adresse mail du demandeur", + "TEXT_MODE_EXTRACTION_DEPOT" : "", + "TITLE_MODE_EXTRACTION_DEPOT" : "extraction_depot", + "EXTRACTION_EXTRACTION_CP_TITLE_INSERT" : "Extraction", + "EXTRACTION_EXTRACTION_CP_FORM_TECHNIQUE" : "Générer précaunisations techniques", + "EXTRACTION_EXTRACTION_CP_FORM_CARTOGRAPHIQUE" : "Générer charte cartographique", + "EXTRACTION_EXTRACTION_CP_FORM_ISOGEO" : "Générer métadonnées isogéo", + "EXTRACTION_EXTRACTION_CP_FORM_COMPANY" : "Organisme", + "EXTRACTION_EXTRACTION_CP_FORM_EXTENT_METHOD" : "Méthode de saisie", + "EXTRACTION_EXTRACTION_CP_FORM_ID_COM" : "Commune", + "EXTRACTION_EXTRACTION_CP_FORM_ID_CONSEIL" : "Conseil de Territoire", + "EXTRACTION_EXTRACTION_CP_FORM_EXTENT" : "Etendue", + "EXTRACTION_EXTRACTION_CP_FORM_LAYERS" : "Couches", + "EXTRACTION_EXTRACTION_CP_FORM_STATISTIQUE" : "Données statistiques", + "EXTRACTION_EXTRACTION_CP_FORM_COORDSYS_ID" : "Système de coordonnées", + "EXTRACTION_EXTRACTION_CP_FORM_VECTOR_FORMAT_ID" : "Format Vecteurs", + "EXTRACTION_EXTRACTION_CP_FORM_RASTER_FORMAT_ID" : "Format Images", + "EXTRACTION_EXTRACTION_CP_FORM_STATUS" : "Etat", + "EXTRACTION_EXTRACTION_CP_FORM_HISTORY" : "Historique", + "EXTRACTION_EXTRACTION_CP_FORM_CREATION_DATE" : "Date de création", + "EXTRACTION_EXTRACTION_CP_FORM_REQUESTOR" : "Demandeur", + "EXTRACTION_EXTRACTION_CP_FORM_AE" : "Acte d'engagement", + "EXTRACTION_EXTRACTION_CP_FORM_NOTE" : "note", + "EXTRACTION_EXTRACTION_CP_FORM_NOTE_LINE" : "note_line", + "EXTRACTION_EXTRACTION_CP_FORM_SIGNED" : "Acte d'engagement signé", + "EXTRACTION_EXTRACTION_CP_FORM_ACCEPTED_BY_CPA" : "Validation de l'usage décrit pour les données", + "EXTRACTION_EXTRACTION_CP_FORM_IDENTIFICATION_COMPLETE" : "Cadre d'identification complet", + "EXTRACTION_EXTRACTION_CP_FORM_DEFINITION_COMPLETE" : "Définition des traitements non renseignée", + "EXTRACTION_EXTRACTION_CP_FORM_COMMENT" : "Commentaires", + "EXTRACTION_EXTRACTION_CP_FORM_PRIORITY_ID" : "Priorité", + "EXTRACTION_EXTRACTION_CP_TITLE" : "Extraction", + "EXTRACTION_EXTRACTION_CP_FORM_BO_ID" : "Id métier", + "EXTRACTION_DEPOT_EXTRACTION_EXTRACTION_DEPOT_TITLE" : "", + "EXTRACTION_DEPOT_EXTRACTION_EXTRACTION_DEPOT_TITLE_INSERT" : "", + "EXTRACTION_DEPORT_DELETE_NO_SELECTED": "Aucun fichier sélectionné", + "EXTRACTION_DEPOT_DELETE_SELECT_A_FILE": "Veuillez sélectionner un fichier à supprimer", + "EXTRACTION_DEPOT_TITLE": "Dépot de fichiers", + "EXTRACTION_DEPOT_FILE_UPLOAD": "Fichier à envoyer", + "EXTRACTION_DEPOT_FILE_UPDATE": "Mettre à jour", + "ERROR_FILE_SIZE_EXTRACTION_LOAD_DEPOSIT_DIRECTORY" : "La taille du fichier est supérieure à la taille maximale autorisée.", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_DEPOSIT" : "Déposer", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_INPUT_DEPOSIT" : "Fichier à déposer", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_FORMAT_EXTENSION" : "Format du fichier", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_SCHEMA_CONSTRAINT" : "Schéma des contraintes", + "CONFIGURATION_VITIS_CONFIGURATION_EXTRACTIONCONFIG_FORM_SIG" : "Extensions SIG (séparées par |)", + "CONFIGURATION_VITIS_CONFIGURATION_EXTRACTIONCONFIG_FORM_DAO" : "Extensions DAO (séparées par |)" +} \ No newline at end of file diff --git a/src/module_extraction/module/less/main.less b/src/module_extraction/module/less/main.less new file mode 100755 index 00000000..6fc121e6 --- /dev/null +++ b/src/module_extraction/module/less/main.less @@ -0,0 +1,5 @@ +// LESS +@ui-grid-bg-image: "../images/ui-grid/wbg.gif"; +@font-color-purple: #6d1a67; +@test-color: black; +@import 'projectDirectory.less'; \ No newline at end of file diff --git a/src/module_extraction/module/templates/depositDirectoryTpl.html b/src/module_extraction/module/templates/depositDirectoryTpl.html new file mode 100755 index 00000000..14d9fd0c --- /dev/null +++ b/src/module_extraction/module/templates/depositDirectoryTpl.html @@ -0,0 +1,16 @@ +<div data-app-deposit-directory="" id="deposit-directory" class="row no-bs-row-margin deposit-directory"> + <div class="col-xs-12 no_bs_padding"> + <!-- Titre --> + <div id="deposit_directory_title_container" class="row"> + <div class="col-xs-12 deposit-directory-title">Dépôt {{oFormValues[sFormDefinitionName].name}}</div> + </div> + <!-- Treeview --> + <div id="deposit-directory-treeview-container" class="row deposit-directory-treeview-container"> + <div data-app-deposit-directory-treeview="" class="col-xs-12 deposit-directory-treeview"></div> + </div> + <!-- Formulaire (upload) --> + <div id="deposit_directory_form_container" class="row deposit-directory-upload-form-container"> + <div data-app-deposit-directory-form="" class="col-xs-{{oFormDefinition[sFormDefinitionName].nb_cols}}"></div> + </div> + </div> +</div> \ No newline at end of file diff --git a/vas/rest/ws/vitis/Accounts.class.mail.inc b/src/module_extraction/storage/Accounts.class.mail.inc old mode 100755 new mode 100644 similarity index 98% rename from vas/rest/ws/vitis/Accounts.class.mail.inc rename to src/module_extraction/storage/Accounts.class.mail.inc index ff03a074..bb977fdd --- a/vas/rest/ws/vitis/Accounts.class.mail.inc +++ b/src/module_extraction/storage/Accounts.class.mail.inc @@ -1,617 +1,622 @@ -<?php - -$aMail["newUserTitle"] = "Un nouvel utilisateur vient juste de s'inscrire"; -$aMail["newUserTitleAutomated"] = "Vérification de votre adresse mail"; -$aMail["newUserBody"] = '<!-- 1 Column Text + Button : BEGIN --> - <tr> - <td bgcolor="#ffffff" style="padding: 0px; text-align: center;background-color:#8c8c8c; height:50px; margin-bottom:10px;"> - <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #FFFFFF; font-weight: normal;">[TITLE]</h1> - </td> - </tr> - <tr> - <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; font-size: 15px; line-height: 20px; color: #000000; text-align: center;"> - <p style="width:100%; font-weight:bold; text-align: justify; font-size: 20px;">Bonjour [FULLNAME],</p> - <p style="width:100%; text-align: left;font-size: 18px;">Nous vous remercions d\'avoir créé votre compte sur <b>[HOSTNAME]</b>.</p> - <p style="width:100%; text-align: left;font-size: 18px;"><b>Informations sur votre compte :</b></p> - <p style="width:100%; text-align: left;font-size: 18px;">Identifiant : [USERNAME]</p> - <p style="width:100%; text-align: left;font-size: 18px;">Mail : [MAIL]</p> - <p style="width:100%; text-align: left;font-size: 18px;">Organisme : [COMPANY] </p> - <p style="width:100%; text-align: left;font-size: 18px;margin-top: 20px;">Cliquez sur le bouton ci-dessous pour finaliser votre inscription :</p> - </td> - </tr> - <tr> - <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; font-size: 20px; line-height: 20px; color: #555555;"> - <table role="presentation" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" style="margin: auto"> - <tr> - <td style="border-radius: 3px; background: #5cb85c; text-align: center;" class="button-td"> - <a href="[URL]" style="background: #5cb85c; border: 15px solid #5cb85c; font-family: sans-serif; font-size: 18px; line-height: 1.1; text-align: center; text-decoration: none; display: block; border-radius: 0px; font-weight: bold;" class="button-a"> - <span style="color:#ffffff;">Je confirme mon adresse mail</span> - </a> - </td> - </tr> - </table> - <!-- Button : END --> - </td> - </tr> - <tr> - <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; line-height: 20px; color: #000000; text-align: center;"> - <p style="width:100%; text-align: justify;font-size: 18px;">Si vous ne vous êtes pas inscrit(e) sur notre application <b>[HOSTNAME]</b>, ignorez simplement ce message.</p> - </td> - </tr> - <!-- 1 Column Text + Button : END -->'; - -$aMail["confirmationSignUpTitle"] = "Confirmation d'inscription"; -$aMail["genericBody"] = ' - <tr> - <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;"> - <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">[MESSAGE]</h1> - </td> - </tr>'; - -$aMail["SignUpOk"] = '<tr> - <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;"> - <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">L\'utilisateur a été ajouté, connectez vous sur la base de données pour lui donner des droits (Defaut: [ROLES])</h1> - </td> - </tr>'; -$aMail["SignUpError"] = '<tr> - <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;"> - <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">L\'utilisateur n\'a pas pu être ajouté consultez les fichiers de log pour plus d\'informations</h1> - </td> - </tr>'; - -$aMail["signUpConfirmation"] = '<tr> - <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;"> - <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal; margin-bottom: 15px;">Votre compte est maintenant activé, vous pouvez vous connecter. Pour avoir accès à plus de fonctionnalités contactez l\'administrateur</h1> - <a style="margin: 0; font-family: sans-serif; font-size: 22px; font-weight: normal;" href="[REDIRECTION]"> Retourner vers l\'application </a> - </td> - </tr>'; -$aMail["fpwdTitle"] = "Changez votre mot de passe"; -$aMail["fpwdUpdateOk"] = '<tr> - <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;"> - <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">Le mot de passe a été mis à jour</h1> - </td> - </tr>'; -$aMail["fpwdUpdateError"] = '<tr> - <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;"> - <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">Le mot de passe n\'a pas pu être mis à jour</h1> - </td> - </tr>'; -$aMail["alreadyUpdate"] = '<tr> - <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;"> - <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">Le mot de passe à déjà été changé</h1> - </td> - </tr>'; - -$aMail["fpwdBody"] = '<!-- 1 Column Text + Button : BEGIN --> - <tr> - <td bgcolor="#ffffff" style="padding: 0px; text-align: center;background-color:#8c8c8c; height:50px; margin-bottom:10px;"> - <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #FFFFFF; font-weight: normal;">Changez votre mot de passe</h1> - </td> - </tr> - <tr> - <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; font-size: 15px; line-height: 20px; color: #000000; text-align: center;"> - <p style="width:100%; font-weight:bold; text-align: left; font-size: 20px;">Bonjour [LOGIN],</p> - <p style="width:100%; text-align: left;font-size: 18px;">Une tentative de récupération de votre compte à été effectué sur le site <b>[HOSTNAME]</b>.</p> - <p style="width:100%; text-align: left;font-size: 18px;margin-top: 10px;">Cliquez sur le bouton ci-dessous pour changer votre mot de passe :</p> - </td> - </tr> - <tr> - <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; font-size: 15px; line-height: 20px; color: #555555;"> - <table role="presentation" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" style="margin: auto"> - <tr> - <td style="border-radius: 3px; background: #5cb85c; text-align: center;" class="button-td"> - <a href="[URL]" style="background: #5cb85c; border: 15px solid #5cb85c; font-family: sans-serif; font-size: 18px; line-height: 1.1; text-align: center; text-decoration: none; display: block; border-radius: 0px; font-weight: bold;" class="button-a"> - <span style="color:#ffffff;">Changer mon mot de passe</span> - </a> - </td> - </tr> - </table> - <!-- Button : END --> - </td> - </tr> - <tr> - <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; line-height: 20px; color: #000000; text-align: center;"> - <p style="width:100%; text-align: justify;font-size: 18px;">Si vous n\'avez pas perdu votre mot de passe pour vous connecter à notre application <b>[HOSTNAME]</b>, ignorez simplement ce message.</p> - </td> - </tr> - <!-- 1 Column Text + Button : END -->'; - -$aMail["fpwdForm"] = '<!-- 1 Column Text + Button : BEGIN --> - <tr> - <td bgcolor="#ffffff" style="padding: 0px; text-align: center;background-color:#8c8c8c; height:50px; margin-bottom:10px;"> - <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #FFFFFF; font-weight: normal;">Saisissez votre nouveau mot de passe</h1> - </td> - </tr> - <tr> - <td bgcolor="#ffffff" style="padding: 20px 40px 40px; font-family: sans-serif; font-size: 15px; line-height: 20px; color: #555555; text-align: center;"> - <form style="text-align:-webkit-right;"> - <div style="text-align:left;"> - <label for="password" style="font-weight: bold;">Nouveau mot de passe</label> - <input type="password" id="password" name="password" class="input-text-control" required/> - </div> - <div style="text-align:left;margin-top:10px;"> - <label for="password_confirm" style="font-weight: bold;">Confirmer votre nouveau mot de passe</label> - <input type="password" id="password_confirm" name="password_confirm" class="input-text-control" required/> - </div> - <div style="margin-top:20px;"> - <input type="hidden" name="token" value="[TOKEN]"/> - <input type="hidden" name="output" value="text/html"/> - <button style="background: #5cb85c; border: 15px solid #5cb85c; font-family: sans-serif; font-size: 15px; line-height: 1.1; text-align: center; text-decoration: none; display: block; border-radius: 0px; font-weight: bold;" class="button-a" type="button" onclick="sendRequest(\'[URL]\')"><span style="color:#ffffff;">Envoi</span></button> - </div> - </form> - </td> - </tr>'; - -$aMail["passwordScript"] = '<script> - var password = document.getElementById("password"), confirm_password = document.getElementById("password_confirm"); - - function validatePassword(){ - if(password.value != confirm_password.value) { - confirm_password.setCustomValidity("Les deux mots de passe doivent être identique"); - } else { - confirm_password.setCustomValidity(\'\'); - } - } - - password.onchange = validatePassword; - confirm_password.onkeyup = validatePassword; - - function sendRequest (sUrl){ - if(typeof(password.value)!== "undefined"){ - if(password.value != ""){ - var xhr = new XMLHttpRequest(); - xhr.open("PUT", sUrl); - sParams = JSON.stringify({"password": password.value}); - xhr.onreadystatechange = function (aEvt) { - if (xhr.readyState == 4) { - if (xhr.status == 200) { - var oJson = JSON.parse(xhr.responseText); - window.location.replace(oJson.sUrl); - } else { - //xhr.responseText; - } - } - } - xhr.send(sParams); - }else{console.log("saisissez un mot de passe2")} - }else{console.log("saisissez un mot de passe")} - } - </script>'; - -$aMail["mainBody"] = '<!DOCTYPE html> -<html lang="en"> -<head> - <meta charset="utf-8"> <!-- utf-8 works for most cases --> - <meta name="viewport" content="width=device-width"> <!-- Forcing initial-scale shouldn\'t be necessary --> - <meta http-equiv="X-UA-Compatible" content="IE=edge"> <!-- Use the latest (edge) version of IE rendering engine --> - <meta name="x-apple-disable-message-reformatting"> <!-- Disable auto-scale in iOS 10 Mail entirely --> - <title>VAM</title> <!-- The title tag shows in email notifications, like Android 4.4. --> - <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"> - <!-- Web Font / @font-face : BEGIN --> - <!-- NOTE: If web fonts are not required, lines 10 - 27 can be safely removed. --> - - <!-- Desktop Outlook chokes on web font references and defaults to Times New Roman, so we force a safe fallback font. --> - <!--[if mso]> - <style> - * { - font-family: sans-serif !important; - } - </style> - <![endif]--> - - <!-- All other clients get the webfont reference; some will render the font and others will silently fail to the fallbacks. More on that here: http://stylecampaign.com/blog/2015/02/webfont-support-in-email/ --> - <!--[if !mso]><!--> - <!-- insert web font reference, eg: <link href="https://fonts.googleapis.com/css?family=Roboto:400,700" rel="stylesheet" type="text/css"> --> - <!--<![endif]--> - - <!-- Web Font / @font-face : END --> - - <!-- CSS Reset --> - <style> - - /* What it does: Remove spaces around the email design added by some email clients. */ - /* Beware: It can remove the padding / margin and add a background color to the compose a reply window. */ - html, - body { - margin: 0 auto !important; - padding: 0 !important; - height: 100% !important; - width: 100% !important; - /*min-width: 600px;*/ - } - - /* What it does: Stops email clients resizing small text. */ - * { - -ms-text-size-adjust: 100%; - -webkit-text-size-adjust: 100%; -} - -/* What it does: Centers email on Android 4.4 */ -div[style*="margin: 16px 0"] { - margin:0 !important; -} - -/* What it does: Stops Outlook from adding extra spacing to tables. */ -table, -td { - mso-table-lspace: 0pt !important; - mso-table-rspace: 0pt !important; -} - -/* What it does: Fixes webkit padding issue. Fix for Yahoo mail table alignment bug. Applies table-layout to the first 2 tables then removes for anything nested deeper. */ -table { - border-spacing: 0 !important; - border-collapse: collapse !important; - table-layout: fixed !important; - margin: 0 auto !important; -} -table table table { - table-layout: auto; -} - -/* What it does: Uses a better rendering method when resizing images in IE. */ -img { - -ms-interpolation-mode:bicubic; -} - -/* What it does: A work-around for iOS meddling in triggered links. */ -*[x-apple-data-detectors] { - color: inherit !important; - text-decoration: none !important; -} - -/* What it does: A work-around for Gmail meddling in triggered links. */ -.x-gmail-data-detectors, -.x-gmail-data-detectors *, -.aBn { - border-bottom: 0 !important; - //cursor: default !important; -} - -/* What it does: Prevents Gmail from displaying an download button on large, non-linked images. */ -.a6S { - display: none !important; - opacity: 0.01 !important; -} -/* If the above doesn\'t work, add a .g-img class to any image in question. */ -img.g-img + div { - display:none !important; -} - -/* What it does: Prevents underlining the button text in Windows 10 */ -.button-link { - text-decoration: none !important; -} - -blockquote { - font-style:normal; - text-align:left; - //margin-left: 32px!important; - margin: 5px 5px 0px 32px!important; - //padding-top:10px; - //font-family:"Segoe Print","Times New Roman", Verdana; - padding-left: 7px; - min-height: 30px; - //background-color: #EFEFEF; - border-left: 2px solid #8c8c8c; -} - -blockquote > p { - margin:4.5px; -} - -.input-text-control{ - display: block; - width: 100%; - height: 14px; - padding: 4px 5px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; - color: #555; - background-color: #fff; - background-image: none; - border: 1px solid #ccc; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075); - box-shadow: inset 0 1px 1px rgba(0,0,0,.075); - -webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s; - -o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; - transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; -} - -/* What it does: Removes right gutter in Gmail iOS app: https://github.com/TedGoas/Cerberus/issues/89 */ -/* Create one of these media queries for each additional viewport size you\'d like to fix */ -/* Thanks to Eric Lepetit (@ericlepetitsf) for help troubleshooting */ -@media only screen and (min-device-width: 375px) and (max-device-width: 413px) { /* iPhone 6 and 6+ */ - .email-container { - min-width: 375px !important; - } -} - -</style> - -<!-- What it does: Makes background images in 72ppi Outlook render at correct size. --> - <!--[if gte mso 9]> - <xml> - <o:OfficeDocumentSettings> - <o:AllowPNG/> - <o:PixelsPerInch>96</o:PixelsPerInch> - </o:OfficeDocumentSettings> - </xml> -<![endif]--> - -<!-- Progressive Enhancements --> -<style> - -/* What it does: Hover styles for buttons */ -.button-td, -.button-a { - transition: all 100ms ease-in; -} -.button-td:hover, -.button-a:hover { - background: #449D44 !important; - border-color: #449D44 !important; -} - -.bottom-strip{ - width: 120px !important; - height: 10px !important; - float: left !important; -} - -.square-logo-layout{ - width: 40px; - float: left !important; - background-color: #FFF;//#24292E; - border-radius: 50%; - font-size: 30px; - padding: 7.5px; - margin-right: 0px; - //color: #FFF; - cursor:pointer !important; -} - -.square-logo-layout > svg{ - cursor:pointer!important; -} - - -/* Media Queries */ -@media screen and (max-width: 600px) { - - .email-container { - width: 100% !important; - margin: auto !important; - } - - /* What it does: Forces elements to resize to the full width of their container. Useful for resizing images beyond their max-width. */ - .fluid { - max-width: 100% !important; - height: auto !important; - margin-left: auto !important; - margin-right: auto !important; - } - - /* What it does: Forces table cells into full-width rows. */ - .stack-column, - .stack-column-center { - display: block !important; - width: 100% !important; - max-width: 100% !important; - direction: ltr !important; - } - /* And center justify these ones. */ - .stack-column-center { - text-align: center !important; - } - - /* What it does: Generic utility class for centering. Useful for images, buttons, and nested tables. */ - .center-on-narrow { - text-align: center !important; - display: block !important; - margin-left: auto !important; - margin-right: auto !important; - float: none !important; - } - table.center-on-narrow { - display: inline-block !important; - } - - .input-text-control{ - display: block; - width: 100%; - height: 14px; - padding: 4px 5px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; - color: #555; - background-color: #fff; - background-image: none; - border: 1px solid #ccc; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075); - box-shadow: inset 0 1px 1px rgba(0,0,0,.075); - -webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s; - -o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; - transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; - } - - /* What it does: Adjust typography on small screens to improve readability */ - .email-container p { - font-size: 17px !important; - line-height: 22px !important; - } - -} - -</style> - -</head> -<body width="100%" bgcolor="#E5E5E5" style="margin: 0px; mso-line-height-rule: exactly;"> - <center style="width: 600px; margin: auto; background: #FFFFFF; text-align: left;"> - <!-- Email Header : BEGIN --> - <table role="presentation" aria-hidden="true" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" width="600" style="margin: auto;" class="email-container"> - <tr> - <td style="padding: 20px 0px; text-align: center"> - <a href="http://www.veremes.com/" target="_blank"> - <svg version="1.1" id="Calque_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="335px" height="100px" viewBox="0 0 335 100" enable-background="new 0 0 335 100" xml:space="preserve"> - <g> - <rect fill="#FFFFFF" width="335" height="100"/> - <g> - <path fill="#1A171B" d="M308.774,60.788c-0.99-1.493-2.537-2.688-4.64-3.589c-0.533-0.224-1.577-0.57-3.142-1.042 - c-1.563-0.47-2.75-0.959-3.567-1.472c-0.893-0.547-1.532-1.161-1.916-1.841c-0.386-0.682-0.577-1.517-0.577-2.511 - c0-1.4,0.466-2.572,1.398-3.516c0.933-0.944,2.098-1.417,3.498-1.417c1.561,0,2.793,0.437,3.695,1.308 - c0.901,0.873,1.402,2.1,1.505,3.681h4.622c-0.12-2.909-1.026-5.178-2.72-6.806c-1.69-1.626-3.972-2.439-6.845-2.439 - c-2.71,0-5.016,0.916-6.921,2.744c-1.904,1.831-2.856,4.057-2.856,6.678c0,2.319,0.569,4.168,1.714,5.551 - c1.143,1.383,3.582,2.734,7.318,4.056c2.334,0.858,3.947,1.775,4.838,2.754c0.891,0.98,1.336,2.274,1.336,3.884 - c0,1.612-0.561,2.947-1.682,4.007c-1.121,1.063-2.526,1.592-4.219,1.592c-1.772,0-3.262-0.69-4.463-2.071 - c-1.202-1.379-1.802-3.12-1.802-5.228v-0.122h-4.502c0.103,3.535,1.114,6.344,3.039,8.431c1.922,2.085,4.466,3.127,7.637,3.127 - c3.108,0,5.674-0.952,7.698-2.853c2.025-1.899,3.038-4.301,3.038-7.205C310.261,64.182,309.764,62.279,308.774,60.788z - M118.462,41.021c-5.17,0-9.417,1.679-12.739,5.035c-3.32,3.357-4.979,7.607-4.979,12.742c0,4.912,1.693,9.118,5.084,12.617 - c3.389,3.502,7.535,5.252,12.438,5.252c3.694,0,6.947-0.998,9.756-2.988c2.808-1.994,4.988-4.849,6.542-8.569h-4.866 - c-1.103,2.332-2.666,4.151-4.688,5.459c-2.023,1.308-4.302,1.962-6.834,1.962c-3.575,0-6.558-1.131-8.947-3.394 - c-2.391-2.263-3.718-5.226-3.983-8.894h30.413v-0.318c0-5.604-1.601-10.154-4.797-13.655 - C127.662,42.771,123.529,41.021,118.462,41.021z M105.366,56.472c0.509-3.468,1.901-6.219,4.17-8.258 - c2.27-2.037,5.04-3.056,8.313-3.056c3.517,0,6.368,0.948,8.556,2.844c2.188,1.897,3.692,4.719,4.509,8.47H105.366z M99.054,31.046 - L84.898,69.101L72.402,35.38l0.007-0.047l-0.079-0.217c-0.401-1.095-0.841-2.3-1.34-3.546l-0.194-0.523h-0.021 - c-2.108-5.143-5.249-10.879-10.817-12.957c-5.541-2.069-12.762-0.675-17.169,3.314c-3.422,3.096-5.471,7.843-6.089,14.111 - c0-0.002-0.117,1.154-0.117,1.154c-0.239,2.31-0.481,4.665-0.354,7.034l0.047,0.874l0.875-0.048l2.31-0.124l0.876-0.046 - l-0.049-0.876c-0.113-2.069,0.115-4.268,0.335-6.396c0-0.001,0.12-1.172,0.12-1.172c0.517-5.235,2.121-9.103,4.771-11.499 - c3.349-3.03,8.825-4.09,13.024-2.522c4.294,1.604,6.994,6.964,8.88,11.717l1.387,3.688l0.208,0.57l0.005-0.004L83.24,75.692h3.407 - l16.788-44.646H99.054z M268.755,41.021c-5.171,0-9.418,1.679-12.738,5.035c-3.32,3.357-4.979,7.607-4.979,12.742 - c0,4.912,1.692,9.118,5.084,12.617c3.389,3.502,7.535,5.252,12.438,5.252c3.695,0,6.947-0.998,9.758-2.988 - c2.807-1.994,4.986-4.849,6.54-8.569h-4.866c-1.102,2.332-2.666,4.151-4.688,5.459c-2.022,1.308-4.302,1.962-6.835,1.962 - c-3.574,0-6.557-1.131-8.945-3.394c-2.392-2.263-3.72-5.226-3.984-8.894h30.415v-0.318c0-5.604-1.603-10.154-4.8-13.655 - C277.955,42.771,273.821,41.021,268.755,41.021z M255.658,56.472c0.51-3.468,1.901-6.219,4.171-8.258 - c2.27-2.037,5.039-3.056,8.314-3.056c3.516,0,6.367,0.948,8.555,2.844c2.187,1.897,3.692,4.719,4.509,8.47H255.658z - M148.164,42.625c-1.253,0.705-2.409,1.808-3.465,3.315v-3.946h-4.074v33.698h4.379V55.395c0-3.099,0.583-5.334,1.754-6.711 - c1.17-1.376,3.11-2.187,5.821-2.431l-0.032-4.744C150.878,41.549,149.417,41.922,148.164,42.625z M172.22,41.021 - c-5.171,0-9.418,1.679-12.738,5.035c-3.321,3.357-4.981,7.607-4.981,12.742c0,4.912,1.694,9.118,5.085,12.617 - c3.389,3.502,7.535,5.252,12.438,5.252c3.695,0,6.947-0.998,9.757-2.988c2.808-1.994,4.988-4.849,6.541-8.569h-4.866 - c-1.102,2.332-2.665,4.151-4.688,5.459c-2.023,1.308-4.303,1.962-6.834,1.962c-3.574,0-6.557-1.131-8.947-3.394 - c-2.391-2.263-3.718-5.226-3.984-8.894h30.414v-0.318c0-5.604-1.6-10.154-4.799-13.655 - C181.419,42.771,177.286,41.021,172.22,41.021z M159.124,56.472c0.51-3.468,1.901-6.219,4.17-8.258 - c2.271-2.037,5.04-3.056,8.313-3.056c3.517,0,6.369,0.948,8.556,2.844c2.188,1.897,3.692,4.719,4.51,8.47H159.124z - M232.864,41.264c-2.51,0-4.779,0.509-6.809,1.518c-2.03,1.012-3.73,2.49-5.097,4.43c-1.106-1.818-2.712-3.264-4.82-4.338 - c-2.108-1.072-4.441-1.61-7-1.61c-2.212,0-4.191,0.379-5.941,1.134c-1.748,0.756-3.27,1.88-4.558,3.372v-3.776h-4.258v33.698 - h4.258V59.274c0-2.927,0.105-4.978,0.321-6.154c0.215-1.177,0.586-2.227,1.119-3.147c0.856-1.473,2.026-2.604,3.509-3.391 - c1.481-0.787,3.203-1.182,5.165-1.182c3.248,0,5.66,0.926,7.233,2.777c1.573,1.852,2.36,4.722,2.36,8.61v18.905h4.136V59.274 - c0-2.927,0.112-4.978,0.338-6.154c0.223-1.177,0.59-2.227,1.1-3.147c0.854-1.473,2.012-2.604,3.467-3.391 - c1.457-0.787,3.143-1.182,5.06-1.182c3.318,0,5.711,0.947,7.178,2.84c1.469,1.894,2.202,5.07,2.202,9.529v17.923h4.137V58.658 - c0-6.093-1.043-10.516-3.122-13.268C240.76,42.64,237.436,41.264,232.864,41.264z"/> - <g> - <path fill="#1A171B" d="M36.791,43.727c4.5,3.508,3.856-8.518,5.095-10.445c-0.251,0.39,1.045-0.227,1.359-0.68 - c0.714-1.033,0.78-1.304,1.783-0.467c0.685,0.57,4.073-2.156,5.011-2.76c-0.206-0.223,0.68,1.338,0.68,0.764 - c0,4.354-0.253,0.671,2.42,1.401c1.206,0.329,2.179-0.847,3.269,0.893c-0.283,0.31-0.566,0.621-0.849,0.933 - c4.111,1.071,3.139,4.072,7.134,6.029c-1.239,0.545-2.304,1.363-2.463,2.803c1.169,0.267,2.366,0.422,3.566,0.424 - c-0.34,0.311-0.679,0.622-1.02,0.934c2.158,0.346,2.307,2.235,4.671,1.699c-0.891,1.669-4.83,4.51-1.274,5.094 - c-0.198,0.085-0.396,0.171-0.594,0.255c0.745,0.477,1.172,1.362,1.868,1.868c-0.946,0.11-1.794,0.679-2.802,0.68 - c0.04,1.611,1.581,1.87,2.717,2.124c-2.577,1.72,0.311,0.894,0.722,2.122c-0.165-0.493,1.154,1.254,0.807,0.977 - c-0.173-0.139-1.318,0.596-0.807,1.062c0.174,0.158,4.875,0.583,1.98,1.482c-1.714,0.534-4.447,0.456-3.679,2.763 - c-1.174-0.126-1.886,0.235-2.845-0.083c0.154,0.687-0.067,0.846,0.213,1.442c-1.335,0.382-2.595-0.269-3.695-1.061 - c-0.042,0.268-0.084,0.537-0.127,0.806c-0.368-0.325-0.736-0.649-1.104-0.976c0.016,0.536-0.255,1.096-0.212,1.656 - c-0.877-0.677-5.258-4.209-2.972-1.189c0.905,1.195,1.842,1.439,2.93,2.463c-1.363,0.366-0.2,5.027,1.91,4.627 - c-1.045,1.709-3.151-0.414-4.289,1.828c1.419,0.304,0.683,0.515,1.826,1.146c-0.596-0.139-1.35,0.109-1.996-0.043 - c0.058,0.606,1.302,2.911,1.104,3.185c-0.761,1.05-2.778-1.146-3.949-1.146c-0.209,0.18-0.252,0.392-0.126,0.636 - c1.264,0.254,0.742,0.52,0.976,1.698c-2.448-0.878-0.467,0.231-0.467,1.104c0,3.686-2.677-0.092-2.548,2.505 - c-0.269-0.014-0.537-0.027-0.806-0.041c0.263,2.893-2.243-0.257-2.845,3.056c0.048,0.018-3.298-0.522-3.333-0.488 - c-1.136,1.135-1.402-0.027-2.174,0.598c-1.87,1.514-1.024-1.807-1.552-1.998c-0.694-0.253-2.246,1.984-2.455,0.573 - c-0.207-1.396-0.55-3.131-1.463-1.656c-0.954-0.37-3.546,0.314-3.842-0.572c-0.223-0.67-2.252-3.619-0.871-4.078 - c-0.407,0.137-1.347,0.543-1.719,0.765c0.857-2.833-1.515-2.188-3.185-1.146c0.104-1.69,0.899-3.521-1.083-3.247 - c0.293-0.662,0.337-1.645,0.828-2.356c-0.382,0.084-0.764,0.17-1.146,0.254c0.059-0.477,4.984-10.382,5.223-10.382 - c-0.199-0.062-0.369-0.169-0.51-0.318c-1.236,3.129-3.048,5.804-5.095,8.534c0.046-0.52-0.061-1.008-0.318-1.464 - c-0.23,0-1.983,2.339-2.548,2.61c0-0.253,0-0.509,0-0.763c-0.231,0.366-1.444,2.675-1.783,2.675c-0.329,0,0.481-1.796-0.51-1.467 - c-0.944,0.315-1.458,0.54-2.292,0.701c0.99-1.181,1.719-2.432-0.446-1.783c0.204-0.955-0.191-1.231-0.191-1.974 - c-0.159,0.41-0.393,0.771-0.7,1.084c-0.23-1.254-0.242-6.138-0.383-6.138c-1.46,0,0.123-2.937,0.341-3.312 - c-0.17-0.142-0.341-0.282-0.51-0.425c0.05,1.16-0.433,1.305-0.764,2.293c-1.08-1.767,1.521-3.314-0.764-3.99 - c0.311-0.256,0.623-0.51,0.934-0.765c-0.199-0.198-0.396-0.396-0.595-0.595c-0.269,0.61-0.729,1.216-1.02,1.783 - c-0.154-0.479,0.034-2.888,0.51-2.888c-0.313-0.017-0.624-0.044-0.935-0.084c0.723-0.973,0.495-1.264,1.444-1.699 - c-0.17-0.51-0.339-1.019-0.509-1.529c0.17,0.058,0.339,0.114,0.509,0.171c0.149,0.083-0.41-0.829-0.68-0.424 - c0.503-0.754,1.123-1.223,1.868-1.614c-0.283-0.17-0.566-0.34-0.849-0.51c0.664-0.432,1.176-1.357,2.038-1.698 - c-0.566-1.104-0.674-1.464-1.868-1.784c-0.033-2.104,1.163-9.234,2.717-8.407c-0.049-0.578-0.062-0.699,0.509-0.765 - c-0.087-1.145-0.637-0.797,0.595-1.104c-0.979-4.102,1.847-2.083,3.651-1.104c0-0.341,0-0.68,0-1.02 - c0.534,0.116,1.853,0.641,2.177,0.085c0.109-0.188-0.92-0.513-1.073-0.594c1.126-0.569,0.975-1.844,0.17-3.143 - c1.503,0.075,3.008,0.738,3.482-0.594c0.613,0.591,1.188,0.584,1.697,1.358c0.284-0.481,0.566-0.963,0.85-1.443 - c0.53,0.646,1.549,2.504,2.59,1.983c0.223-0.111,1.486,0.661,1.486,0.394c0-1.159,0.588-2.121,1.529-2.717 - C35.584,34.716,35.005,38.027,36.791,43.727"/> - </g> - </g> - </g> - </svg> - </a> - </td> - </tr> -</table> -<!-- Email Header : END --> - -<!-- Email Body : BEGIN --> -<table role="presentation" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" width="600" style="margin: auto;" class="email-container"> - - [CONTENT] - -</table> -<!-- Email Body : END --> - -<!-- Email Footer : BEGIN --> -<table role="presentation" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" width="600" style="margin: auto;" class="email-container"> - <tr> - <td style="padding: 0px;width: 100%;" class="x-gmail-data-detectors"> - <div class="bottom-strip" style="background-color: #39468A;"></div> - <div class="bottom-strip" style="background-color: #E74F23;"></div> - <div class="bottom-strip" style="background-color: #923288;"></div> - <div class="bottom-strip" style="background-color: #1C9DB2;"></div> - <div class="bottom-strip" style="background-color: #E10759;"></div> - </td> - </tr> -</table> -<table role="presentation" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" width="600" style="margin: auto;" class="email-container"> - <tr> - <td style="padding: 10px;width: 50%;font-size: 12px; font-family: sans-serif; line-height:18px; text-align: center; color: #888888; cursor:pointer;" class="x-gmail-data-detectors"> - <a class="square-logo-layout" href="https://twitter.com/Veremes_Info" target="_blank" style="color: #24292E; cursor:pointer;"> - <!--<i class="fa fa-twitter" style=""></i>--> - <svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" style="fill: currentColor; cursor:pointer;"> - <title>Twitter</title> - <path d="M50,0a50,50,0,1,0,50,50A50,50,0,0,0,50,0ZM75.28,37c0,.56,0,1.12,0,1.68C75.32,56,62.2,75.83,38.21,75.83h0a37,37,0,0,1-20-5.86,24.62,24.62,0,0,0,3.11.18,26.13,26.13,0,0,0,16.2-5.58,13,13,0,0,1-12.18-9.06,12.34,12.34,0,0,0,2.45.24,13,13,0,0,0,3.44-.46A13,13,0,0,1,20.77,42.5v-.16A13.11,13.11,0,0,0,26.68,44a13.05,13.05,0,0,1-4-17.42A37,37,0,0,0,49.52,40.18a13.19,13.19,0,0,1-.34-3,13.05,13.05,0,0,1,22.57-8.92A26.11,26.11,0,0,0,80,25.12a13.08,13.08,0,0,1-5.73,7.22,26.23,26.23,0,0,0,7.49-2.06A26.49,26.49,0,0,1,75.28,37Z"/> - </svg> - </a> - <a class="square-logo-layout" href="https://www.linkedin.com/company/veremes/" target="_blank" style="color: #24292E; cursor:pointer;"> - <!--<i class="fa fa-linkedin" style=""></i>--> - <svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" style="fill: currentColor; cursor:pointer;"> - <title>LinkedIn</title> - <path d="M50,0a50,50,0,1,0,50,50A50,50,0,0,0,50,0ZM60.71,51a6.48,6.48,0,0,0-6.33,6.32V79.68H41.74V41.74H54.38v5a13.63,13.63,0,0,1,10.54-5.9A15,15,0,0,1,79.68,55.65v24H67V57.33A6.48,6.48,0,0,0,60.71,51ZM27,34.57A7.59,7.59,0,1,1,34.57,27,7.55,7.55,0,0,1,27,34.57Zm6.32,7.17V79.68H20.66V41.74Z"/> - </svg> - </a> - <a class="square-logo-layout" href="http://vm09.veremes.net/" target="_blank" style="color: #24292E; cursor:pointer;"> - <!--<i class="fa fa-github" style=""></i>--> - <svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" style="fill: currentColor; cursor:pointer;"> - <title>GitLab</title> - <path d="M50,0a50,50,0,1,0,50,50A50,50,0,0,0,50,0ZM75.18,15.1a1,1,0,0,1,2,0l9,27.81h-20Zm-52.34,0a1,1,0,0,1,2,0l9,27.81h-20ZM9.85,61A2.63,2.63,0,0,1,8.9,58l4.35-13.4L47.16,88.07Zm4.33-17h20l14.3,44Zm21.19,0H64.63L50,89Zm30.42,0h20L51.49,88ZM90.15,61,52.84,88.07,86.75,44.62,91.1,58A2.63,2.63,0,0,1,90.15,61Z"/> - </svg> - </a> - <a class="square-logo-layout" href="http://www.veremes.com/" target="_blank" style="color: #24292E; cursor:pointer;"> - <!--<i class="fa fa-globe" style=""></i>--> - <svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" style="fill: currentColor; cursor:pointer;"> - <defs> - <style>.cls-1{fill:none;}</style> - </defs> - <title>Veremes</title> - <path class="cls-1" d="M60.17,18.09h0S60.15,18.05,60.17,18.09Z"/> - <path class="cls-1" d="M48.39,26.38c.66-6.65,2.7-11.56,6.06-14.6a11.45,11.45,0,0,1,1.82-1.29A40.5,40.5,0,0,0,50,10l-1,0c-3.18,3.87-5.13,9.17-5.79,15.85l-.15,1.47c-.21,2.06-.42,4.16-.47,6.28-1.35-5.7-.83-9.69-1.1-15.87A4,4,0,0,0,39.6,21.2c0,.34-1.6-.64-1.88-.5-1.33.67-2.62-1.69-3.29-2.51L33.35,20c-.65-1-1.38-1-2.16-1.73-.6,1.69-2.51.85-4.42.76,1,1.65,1.21,3.26-.21,4,.19.1,1.5.51,1.36.75-.41.71-2.09,0-2.77-.11V25c-2.29-1.25-5.88-3.81-4.63,1.4-1.57.39-.87-.05-.76,1.4-.72.09-.71.24-.64,1-2-1.05-3.5,8-3.45,10.68,1.51.4,1.65.86,2.37,2.26-1.1.43-1.75,1.61-2.59,2.16l1.08.64a6,6,0,0,0-2.37,2c.34-.51,1.05.65.86.54l-.65-.22c.22.65.43,1.3.65,2-1.21.55-.92.92-1.83,2.15.39,0,.78.09,1.18.11-.6,0-.84,3.06-.65,3.67.37-.72,1-1.49,1.3-2.27l.75.76-1.18,1c2.9.86-.4,2.82,1,5.06.42-1.25,1-1.43,1-2.91l.65.54c-.28.48-2.29,4.21-.44,4.21.18,0,.2,6.2.49,7.79a4,4,0,0,0,.89-1.38c0,.95.5,1.3.24,2.51,2.75-.82,1.82.76.57,2.26a20.92,20.92,0,0,0,2.91-.89c1.26-.41.23,1.86.64,1.86s2-2.93,2.27-3.39v1c.72-.35,2.94-3.32,3.23-3.32a3.11,3.11,0,0,1,.41,1.86,46.51,46.51,0,0,0,6.47-10.83,1.46,1.46,0,0,0,.65.4c-.31,0-6.56,12.58-6.64,13.18l1.46-.32c-.63.9-.68,2.15-1,3,2.51-.35,1.5,2,1.37,4.13,2.12-1.33,5.14-2.15,4.05,1.45a15.73,15.73,0,0,1,2.18-1c-1.76.58.82,4.33,1.11,5.17.37,1.13,3.66.26,4.87.73,1.16-1.87,1.6.33,1.86,2.11s2.24-1,3.12-.73c.67.24-.4,4.46,2,2.53,1-.79,1.32.68,2.76-.75,0,0,4.29.64,4.23.62.77-4.21,3.94-.21,3.61-3.88l1,0c-.16-3.3,3.24,1.5,3.24-3.18,0-1.11-2.52-2.52.59-1.4-.29-1.5.37-1.84-1.24-2.16a.62.62,0,0,1,.16-.81c1.49,0,4,2.79,5,1.46.25-.35-1.33-3.28-1.4-4,.82.2,1.77-.12,2.53.06-1.45-.8-.52-1.07-2.32-1.46,1.45-2.84,4.12-.15,5.45-2.32C70.78,71.9,69.3,66,71,65.52c-1.38-1.3-2.57-1.61-3.72-3.13-2.9-3.83,2.66.65,3.78,1.51-.06-.71.28-1.42.27-2.1L72.76,63c0-.34.11-.69.16-1,1.4,1,3,1.83,4.69,1.35-.35-.76-.08-1-.27-1.83,1.22.4,2.12-.06,3.61.11-1-2.93,2.5-2.84,4.67-3.51,3.68-1.15-2.29-1.68-2.51-1.88-.65-.6.8-1.53,1-1.35.44.35-1.23-1.87-1-1.24-.52-1.56-4.19-.51-.92-2.7-1.44-.32-3.4-.65-3.45-2.69,1.28,0,2.36-.73,3.56-.87-.89-.64-1.43-1.76-2.37-2.37l.75-.32c-4.51-.74.49-4.35,1.62-6.47-3,.68-3.19-1.72-5.93-2.16l1.29-1.18a20.84,20.84,0,0,1-4.52-.54c.19-1.83,1.55-2.87,3.12-3.56-5.07-2.49-3.84-6.3-9.06-7.66L68.28,22c-1.38-2.21-2.62-.72-4.15-1.13-3.39-.93-3.07,3.75-3.07-1.78,0,.62-.81-.72-.89-1-1.22.8-5.47,4.21-6.34,3.49-1.27-1.06-1.35-.72-2.26.59-.4.58-2,1.36-1.73.87-.9,1.41-1,7.1-2.05,10.79,0-2,.25-4,.45-6Z"/> - <path d="M99.94,47.71l0-.64c0-.61-.08-1.23-.14-1.84,0-.16,0-.31,0-.46-.08-.74-.17-1.47-.28-2.2,0-.19-.06-.38-.1-.57q-.13-.86-.3-1.68l-.12-.64c-.15-.7-.31-1.39-.48-2.08,0-.15-.09-.3-.13-.45-.14-.56-.3-1.11-.46-1.65-.08-.24-.15-.49-.23-.73-.16-.51-.34-1-.52-1.54-.06-.17-.12-.35-.19-.53-.23-.62-.47-1.24-.73-1.85-.11-.27-.22-.53-.34-.8s-.35-.78-.53-1.17l-.38-.81c-.27-.56-.56-1.11-.85-1.66-.16-.3-.33-.59-.49-.88s-.35-.61-.53-.92-.37-.63-.57-.94L92,22.86q-.55-.86-1.14-1.68l-.45-.62c-.25-.35-.51-.69-.77-1-.13-.18-.27-.35-.41-.52q-1.36-1.74-2.9-3.35L86,15.35q-1.66-1.72-3.48-3.29L82.46,12a51.79,51.79,0,0,0-5.4-4h0a49.56,49.56,0,0,0-4.42-2.54h0A49.59,49.59,0,0,0,63.94,2h0c-1.56-.45-3.16-.83-4.78-1.13L58.49.73,57.21.52C56.59.43,56,.35,55.33.29L54.54.21,53,.1l-.73,0C51.51,0,50.76,0,50,0a50,50,0,1,0,50,50C100,49.23,100,48.47,99.94,47.71ZM49.84,23c-.31.49,1.33-.29,1.73-.87.91-1.31,1-1.65,2.26-.59.87.72,5.12-2.69,6.34-3.49,0,0,0-.06,0,0h0c.08.24.89,1.58.89,1,0,5.53-.32.85,3.07,1.78,1.53.41,2.77-1.08,4.15,1.13L67.2,23.14c5.22,1.36,4,5.17,9.06,7.66-1.57.69-2.93,1.73-3.12,3.56a20.84,20.84,0,0,0,4.52.54l-1.29,1.18c2.74.44,2.92,2.84,5.93,2.16-1.13,2.12-6.13,5.73-1.62,6.47l-.75.32c.94.61,1.48,1.73,2.37,2.37-1.2.14-2.28.86-3.56.87.05,2,2,2.37,3.45,2.69-3.27,2.19.4,1.14.92,2.7-.21-.63,1.46,1.59,1,1.24-.22-.18-1.67.75-1,1.35.22.2,6.19.73,2.51,1.88-2.17.67-5.64.58-4.67,3.51-1.49-.17-2.39.29-3.61-.11.19.87-.08,1.07.27,1.83-1.7.48-3.29-.34-4.69-1.35,0,.34-.11.69-.16,1l-1.4-1.24c0,.68-.33,1.39-.27,2.1C70,63,64.41,58.56,67.31,62.39c1.15,1.52,2.34,1.83,3.72,3.13-1.73.46-.25,6.38,2.43,5.87-1.33,2.17-4-.52-5.45,2.32,1.8.39.87.66,2.32,1.46-.76-.18-1.71.14-2.53-.06.07.77,1.65,3.7,1.4,4-1,1.33-3.53-1.46-5-1.46a.62.62,0,0,0-.16.81c1.61.32,1,.66,1.24,2.16-3.11-1.12-.59.29-.59,1.4,0,4.68-3.4-.12-3.24,3.18l-1,0c.33,3.67-2.84-.33-3.61,3.88.06,0-4.19-.67-4.23-.62-1.44,1.43-1.78,0-2.76.75-2.37,1.93-1.3-2.29-2-2.53-.88-.32-2.86,2.52-3.12.73s-.7-4-1.86-2.11c-1.21-.47-4.5.4-4.87-.73-.29-.84-2.87-4.59-1.11-5.17a15.73,15.73,0,0,0-2.18,1c1.09-3.6-1.93-2.78-4.05-1.45.13-2.15,1.14-4.48-1.37-4.13.37-.84.42-2.09,1-3l-1.46.32c.08-.6,6.33-13.18,6.64-13.18a1.46,1.46,0,0,1-.65-.4,46.51,46.51,0,0,1-6.47,10.83A3.11,3.11,0,0,0,28,67.51c-.29,0-2.51,3-3.23,3.32v-1c-.3.46-1.83,3.39-2.27,3.39s.62-2.27-.64-1.86a20.92,20.92,0,0,1-2.91.89c1.25-1.5,2.18-3.08-.57-2.26.26-1.21-.24-1.56-.24-2.51a4,4,0,0,1-.89,1.38c-.29-1.59-.31-7.79-.49-7.79-1.85,0,.16-3.73.44-4.21l-.65-.54c.06,1.48-.55,1.66-1,2.91-1.37-2.24,1.93-4.2-1-5.06l1.18-1L15,52.47c-.34.78-.93,1.55-1.3,2.27-.19-.61,0-3.67.65-3.67-.4,0-.79-.06-1.18-.11.91-1.23.62-1.6,1.83-2.15-.22-.65-.43-1.3-.65-2l.65.22c.19.11-.52-1-.86-.54a6,6,0,0,1,2.37-2l-1.08-.64c.84-.55,1.49-1.73,2.59-2.16-.72-1.4-.86-1.86-2.37-2.26-.05-2.68,1.47-11.73,3.45-10.68-.07-.73-.08-.88.64-1-.11-1.45-.81-1,.76-1.4-1.25-5.21,2.34-2.65,4.63-1.4v-1.3c.68.15,2.36.82,2.77.11.14-.24-1.17-.65-1.36-.75,1.42-.73,1.23-2.34.21-4,1.91.09,3.82.93,4.42-.76C32,19,32.7,19,33.35,20l1.08-1.83c.67.82,2,3.18,3.29,2.51.28-.14,1.88.84,1.88.5a4,4,0,0,1,1.94-3.45c.27,6.18-.25,10.17,1.1,15.87,0-2.12.26-4.22.47-6.28l.15-1.47c.66-6.68,2.61-12,5.79-15.85l1,0a40.5,40.5,0,0,1,6.27.49,11.45,11.45,0,0,0-1.82,1.29c-3.36,3-5.4,8-6.06,14.6l-.15,1.49c-.2,2-.41,4-.45,6C48.82,30.14,48.94,24.45,49.84,23Z"/> - </svg> - </a> - </td> - <td style="padding: 10px;width: 50%;font-size: 20px; font-family: sans-serif; line-height:18px; text-align: center; color: #000000;" class="x-gmail-data-detectors"> - <div style="margin-bottom:10px;">Pour toute question :</div> - <div>support@veremes.com</div> - </td> - </tr> -</table> -<!-- Email Footer : END --> - -</center> -[SCRIPT] -</body> -</html>'; +<?php + +$aMail["newUserTitle"] = "Un nouvel utilisateur vient juste de s'inscrire"; +$aMail["newUserTitleAutomated"] = "Vérification de votre adresse mail"; +$aMail["newUserBody"] = '<!-- 1 Column Text + Button : BEGIN --> + <tr> + <td bgcolor="#ffffff" style="padding: 0px; text-align: center;background-color:#8c8c8c; height:50px; margin-bottom:10px;"> + <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #FFFFFF; font-weight: normal;">[TITLE]</h1> + </td> + </tr> + <tr> + <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; font-size: 15px; line-height: 20px; color: #000000; text-align: center;"> + <p style="width:100%; font-weight:bold; text-align: justify; font-size: 20px;">Bonjour [FULLNAME],</p> + <p style="width:100%; text-align: left;font-size: 18px;">Nous vous remercions d\'avoir créé votre compte sur <b>[HOSTNAME]</b>.</p> + <p style="width:100%; text-align: left;font-size: 18px;"><b>Informations sur votre compte :</b></p> + <p style="width:100%; text-align: left;font-size: 18px;">Identifiant : [USERNAME]</p> + <p style="width:100%; text-align: left;font-size: 18px;">Organisme : [COMPANY] </p> + <p style="width:100%; text-align: left;font-size: 18px;">Mail : [MAIL]</p> + <p style="width:100%; text-align: left;font-size: 18px;">Téléphone : [PHONE] </p> + <p style="width:100%; text-align: left;font-size: 18px;">Ip publique fixe : [PUBLIC_IP] </p> + <p style="width:100%; text-align: left;font-size: 18px;">Nom du demandeur : [DEMANDEUR] </p> + <p style="width:100%; text-align: left;font-size: 18px;">Adresse mail du demandeur : [MAIL_DEMANDEUR] </p> + <p style="width:100%; text-align: left;font-size: 18px;">Objet de l\'étude : [STUDY_OBJECT] </p> + <p style="width:100%; text-align: left;font-size: 18px;margin-top: 20px;">Cliquez sur le bouton ci-dessous pour finaliser votre inscription :</p> + </td> + </tr> + <tr> + <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; font-size: 20px; line-height: 20px; color: #555555;"> + <table role="presentation" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" style="margin: auto"> + <tr> + <td style="border-radius: 3px; background: #5cb85c; text-align: center;" class="button-td"> + <a href="[URL]" style="background: #5cb85c; border: 15px solid #5cb85c; font-family: sans-serif; font-size: 18px; line-height: 1.1; text-align: center; text-decoration: none; display: block; border-radius: 0px; font-weight: bold;" class="button-a"> + <span style="color:#ffffff;">Je confirme mon adresse mail</span> + </a> + </td> + </tr> + </table> + <!-- Button : END --> + </td> + </tr> + <tr> + <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; line-height: 20px; color: #000000; text-align: center;"> + <p style="width:100%; text-align: justify;font-size: 18px;">Si vous ne vous êtes pas inscrit(e) sur notre application <b>[HOSTNAME]</b>, ignorez simplement ce message.</p> + </td> + </tr> + <!-- 1 Column Text + Button : END -->'; + +$aMail["confirmationSignUpTitle"] = "Confirmation d'inscription"; +$aMail["genericBody"] = ' + <tr> + <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;"> + <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">[MESSAGE]</h1> + </td> + </tr>'; + +$aMail["SignUpOk"] = '<tr> + <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;"> + <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">L\'utilisateur a été ajouté, connectez vous sur la base de données pour lui donner des droits (Defaut: [ROLES])</h1> + </td> + </tr>'; +$aMail["SignUpError"] = '<tr> + <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;"> + <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">L\'utilisateur n\'a pas pu être ajouté consultez les fichiers de log pour plus d\'informations</h1> + </td> + </tr>'; + +$aMail["signUpConfirmation"] = '<tr> + <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;"> + <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal; margin-bottom: 15px;">Votre compte est maintenant activé, vous pouvez vous connecter. Pour avoir accès à plus de fonctionnalités contactez l\'administrateur</h1> + <a style="margin: 0; font-family: sans-serif; font-size: 22px; font-weight: normal;" href="[REDIRECTION]"> Retourner vers l\'application </a> + </td> + </tr>'; +$aMail["fpwdTitle"] = "Changez votre mot de passe"; +$aMail["fpwdUpdateOk"] = '<tr> + <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;"> + <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">Le mot de passe a été mis à jour</h1> + </td> + </tr>'; +$aMail["fpwdUpdateError"] = '<tr> + <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;"> + <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">Le mot de passe n\'a pas pu être mis à jour</h1> + </td> + </tr>'; +$aMail["alreadyUpdate"] = '<tr> + <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;"> + <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">Le mot de passe à déjà été changé</h1> + </td> + </tr>'; + +$aMail["fpwdBody"] = '<!-- 1 Column Text + Button : BEGIN --> + <tr> + <td bgcolor="#ffffff" style="padding: 0px; text-align: center;background-color:#8c8c8c; height:50px; margin-bottom:10px;"> + <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #FFFFFF; font-weight: normal;">Changez votre mot de passe</h1> + </td> + </tr> + <tr> + <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; font-size: 15px; line-height: 20px; color: #000000; text-align: center;"> + <p style="width:100%; font-weight:bold; text-align: left; font-size: 20px;">Bonjour [LOGIN],</p> + <p style="width:100%; text-align: left;font-size: 18px;">Une tentative de récupération de votre compte à été effectué sur le site <b>[HOSTNAME]</b>.</p> + <p style="width:100%; text-align: left;font-size: 18px;margin-top: 10px;">Cliquez sur le bouton ci-dessous pour changer votre mot de passe :</p> + </td> + </tr> + <tr> + <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; font-size: 15px; line-height: 20px; color: #555555;"> + <table role="presentation" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" style="margin: auto"> + <tr> + <td style="border-radius: 3px; background: #5cb85c; text-align: center;" class="button-td"> + <a href="[URL]" style="background: #5cb85c; border: 15px solid #5cb85c; font-family: sans-serif; font-size: 18px; line-height: 1.1; text-align: center; text-decoration: none; display: block; border-radius: 0px; font-weight: bold;" class="button-a"> + <span style="color:#ffffff;">Changer mon mot de passe</span> + </a> + </td> + </tr> + </table> + <!-- Button : END --> + </td> + </tr> + <tr> + <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; line-height: 20px; color: #000000; text-align: center;"> + <p style="width:100%; text-align: justify;font-size: 18px;">Si vous n\'avez pas perdu votre mot de passe pour vous connecter à notre application <b>[HOSTNAME]</b>, ignorez simplement ce message.</p> + </td> + </tr> + <!-- 1 Column Text + Button : END -->'; + +$aMail["fpwdForm"] = '<!-- 1 Column Text + Button : BEGIN --> + <tr> + <td bgcolor="#ffffff" style="padding: 0px; text-align: center;background-color:#8c8c8c; height:50px; margin-bottom:10px;"> + <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #FFFFFF; font-weight: normal;">Saisissez votre nouveau mot de passe</h1> + </td> + </tr> + <tr> + <td bgcolor="#ffffff" style="padding: 20px 40px 40px; font-family: sans-serif; font-size: 15px; line-height: 20px; color: #555555; text-align: center;"> + <form style="text-align:-webkit-right;"> + <div style="text-align:left;"> + <label for="password" style="font-weight: bold;">Nouveau mot de passe</label> + <input type="password" id="password" name="password" class="input-text-control" required/> + </div> + <div style="text-align:left;margin-top:10px;"> + <label for="password_confirm" style="font-weight: bold;">Confirmer votre nouveau mot de passe</label> + <input type="password" id="password_confirm" name="password_confirm" class="input-text-control" required/> + </div> + <div style="margin-top:20px;"> + <input type="hidden" name="token" value="[TOKEN]"/> + <input type="hidden" name="output" value="text/html"/> + <button style="background: #5cb85c; border: 15px solid #5cb85c; font-family: sans-serif; font-size: 15px; line-height: 1.1; text-align: center; text-decoration: none; display: block; border-radius: 0px; font-weight: bold;" class="button-a" type="button" onclick="sendRequest(\'[URL]\')"><span style="color:#ffffff;">Envoi</span></button> + </div> + </form> + </td> + </tr>'; + +$aMail["passwordScript"] = '<script> + var password = document.getElementById("password"), confirm_password = document.getElementById("password_confirm"); + + function validatePassword(){ + if(password.value != confirm_password.value) { + confirm_password.setCustomValidity("Les deux mots de passe doivent être identique"); + } else { + confirm_password.setCustomValidity(\'\'); + } + } + + password.onchange = validatePassword; + confirm_password.onkeyup = validatePassword; + + function sendRequest (sUrl){ + if(typeof(password.value)!== "undefined"){ + if(password.value != ""){ + var xhr = new XMLHttpRequest(); + xhr.open("PUT", sUrl); + sParams = JSON.stringify({"password": password.value}); + xhr.onreadystatechange = function (aEvt) { + if (xhr.readyState == 4) { + if (xhr.status == 200) { + var oJson = JSON.parse(xhr.responseText); + window.location.replace(oJson.sUrl); + } else { + //xhr.responseText; + } + } + } + xhr.send(sParams); + }else{console.log("saisissez un mot de passe2")} + }else{console.log("saisissez un mot de passe")} + } + </script>'; + +$aMail["mainBody"] = '<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="utf-8"> <!-- utf-8 works for most cases --> + <meta name="viewport" content="width=device-width"> <!-- Forcing initial-scale shouldn\'t be necessary --> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> <!-- Use the latest (edge) version of IE rendering engine --> + <meta name="x-apple-disable-message-reformatting"> <!-- Disable auto-scale in iOS 10 Mail entirely --> + <title>VAM</title> <!-- The title tag shows in email notifications, like Android 4.4. --> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"> + <!-- Web Font / @font-face : BEGIN --> + <!-- NOTE: If web fonts are not required, lines 10 - 27 can be safely removed. --> + + <!-- Desktop Outlook chokes on web font references and defaults to Times New Roman, so we force a safe fallback font. --> + <!--[if mso]> + <style> + * { + font-family: sans-serif !important; + } + </style> + <![endif]--> + + <!-- All other clients get the webfont reference; some will render the font and others will silently fail to the fallbacks. More on that here: http://stylecampaign.com/blog/2015/02/webfont-support-in-email/ --> + <!--[if !mso]><!--> + <!-- insert web font reference, eg: <link href="https://fonts.googleapis.com/css?family=Roboto:400,700" rel="stylesheet" type="text/css"> --> + <!--<![endif]--> + + <!-- Web Font / @font-face : END --> + + <!-- CSS Reset --> + <style> + + /* What it does: Remove spaces around the email design added by some email clients. */ + /* Beware: It can remove the padding / margin and add a background color to the compose a reply window. */ + html, + body { + margin: 0 auto !important; + padding: 0 !important; + height: 100% !important; + width: 100% !important; + /*min-width: 600px;*/ + } + + /* What it does: Stops email clients resizing small text. */ + * { + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; +} + +/* What it does: Centers email on Android 4.4 */ +div[style*="margin: 16px 0"] { + margin:0 !important; +} + +/* What it does: Stops Outlook from adding extra spacing to tables. */ +table, +td { + mso-table-lspace: 0pt !important; + mso-table-rspace: 0pt !important; +} + +/* What it does: Fixes webkit padding issue. Fix for Yahoo mail table alignment bug. Applies table-layout to the first 2 tables then removes for anything nested deeper. */ +table { + border-spacing: 0 !important; + border-collapse: collapse !important; + table-layout: fixed !important; + margin: 0 auto !important; +} +table table table { + table-layout: auto; +} + +/* What it does: Uses a better rendering method when resizing images in IE. */ +img { + -ms-interpolation-mode:bicubic; +} + +/* What it does: A work-around for iOS meddling in triggered links. */ +*[x-apple-data-detectors] { + color: inherit !important; + text-decoration: none !important; +} + +/* What it does: A work-around for Gmail meddling in triggered links. */ +.x-gmail-data-detectors, +.x-gmail-data-detectors *, +.aBn { + border-bottom: 0 !important; + //cursor: default !important; +} + +/* What it does: Prevents Gmail from displaying an download button on large, non-linked images. */ +.a6S { + display: none !important; + opacity: 0.01 !important; +} +/* If the above doesn\'t work, add a .g-img class to any image in question. */ +img.g-img + div { + display:none !important; +} + +/* What it does: Prevents underlining the button text in Windows 10 */ +.button-link { + text-decoration: none !important; +} + +blockquote { + font-style:normal; + text-align:left; + //margin-left: 32px!important; + margin: 5px 5px 0px 32px!important; + //padding-top:10px; + //font-family:"Segoe Print","Times New Roman", Verdana; + padding-left: 7px; + min-height: 30px; + //background-color: #EFEFEF; + border-left: 2px solid #8c8c8c; +} + +blockquote > p { + margin:4.5px; +} + +.input-text-control{ + display: block; + width: 100%; + height: 14px; + padding: 4px 5px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; + color: #555; + background-color: #fff; + background-image: none; + border: 1px solid #ccc; + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + -webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s; + -o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; +} + +/* What it does: Removes right gutter in Gmail iOS app: https://github.com/TedGoas/Cerberus/issues/89 */ +/* Create one of these media queries for each additional viewport size you\'d like to fix */ +/* Thanks to Eric Lepetit (@ericlepetitsf) for help troubleshooting */ +@media only screen and (min-device-width: 375px) and (max-device-width: 413px) { /* iPhone 6 and 6+ */ + .email-container { + min-width: 375px !important; + } +} + +</style> + +<!-- What it does: Makes background images in 72ppi Outlook render at correct size. --> + <!--[if gte mso 9]> + <xml> + <o:OfficeDocumentSettings> + <o:AllowPNG/> + <o:PixelsPerInch>96</o:PixelsPerInch> + </o:OfficeDocumentSettings> + </xml> +<![endif]--> + +<!-- Progressive Enhancements --> +<style> + +/* What it does: Hover styles for buttons */ +.button-td, +.button-a { + transition: all 100ms ease-in; +} +.button-td:hover, +.button-a:hover { + background: #449D44 !important; + border-color: #449D44 !important; +} + +.bottom-strip{ + width: 120px !important; + height: 10px !important; + float: left !important; +} + +.square-logo-layout{ + width: 40px; + float: left !important; + background-color: #FFF;//#24292E; + border-radius: 50%; + font-size: 30px; + padding: 7.5px; + margin-right: 0px; + //color: #FFF; + cursor:pointer !important; +} + +.square-logo-layout > svg{ + cursor:pointer!important; +} + + +/* Media Queries */ +@media screen and (max-width: 600px) { + + .email-container { + width: 100% !important; + margin: auto !important; + } + + /* What it does: Forces elements to resize to the full width of their container. Useful for resizing images beyond their max-width. */ + .fluid { + max-width: 100% !important; + height: auto !important; + margin-left: auto !important; + margin-right: auto !important; + } + + /* What it does: Forces table cells into full-width rows. */ + .stack-column, + .stack-column-center { + display: block !important; + width: 100% !important; + max-width: 100% !important; + direction: ltr !important; + } + /* And center justify these ones. */ + .stack-column-center { + text-align: center !important; + } + + /* What it does: Generic utility class for centering. Useful for images, buttons, and nested tables. */ + .center-on-narrow { + text-align: center !important; + display: block !important; + margin-left: auto !important; + margin-right: auto !important; + float: none !important; + } + table.center-on-narrow { + display: inline-block !important; + } + + .input-text-control{ + display: block; + width: 100%; + height: 14px; + padding: 4px 5px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; + color: #555; + background-color: #fff; + background-image: none; + border: 1px solid #ccc; + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + -webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s; + -o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; + } + + /* What it does: Adjust typography on small screens to improve readability */ + .email-container p { + font-size: 17px !important; + line-height: 22px !important; + } + +} + +</style> + +</head> +<body width="100%" bgcolor="#E5E5E5" style="margin: 0px; mso-line-height-rule: exactly;"> + <center style="width: 600px; margin: auto; background: #FFFFFF; text-align: left;"> + <!-- Email Header : BEGIN --> + <table role="presentation" aria-hidden="true" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" width="600" style="margin: auto;" class="email-container"> + <tr> + <td style="padding: 20px 0px; text-align: center"> + <a href="http://www.veremes.com/" target="_blank"> + <svg version="1.1" id="Calque_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="335px" height="100px" viewBox="0 0 335 100" enable-background="new 0 0 335 100" xml:space="preserve"> + <g> + <rect fill="#FFFFFF" width="335" height="100"/> + <g> + <path fill="#1A171B" d="M308.774,60.788c-0.99-1.493-2.537-2.688-4.64-3.589c-0.533-0.224-1.577-0.57-3.142-1.042 + c-1.563-0.47-2.75-0.959-3.567-1.472c-0.893-0.547-1.532-1.161-1.916-1.841c-0.386-0.682-0.577-1.517-0.577-2.511 + c0-1.4,0.466-2.572,1.398-3.516c0.933-0.944,2.098-1.417,3.498-1.417c1.561,0,2.793,0.437,3.695,1.308 + c0.901,0.873,1.402,2.1,1.505,3.681h4.622c-0.12-2.909-1.026-5.178-2.72-6.806c-1.69-1.626-3.972-2.439-6.845-2.439 + c-2.71,0-5.016,0.916-6.921,2.744c-1.904,1.831-2.856,4.057-2.856,6.678c0,2.319,0.569,4.168,1.714,5.551 + c1.143,1.383,3.582,2.734,7.318,4.056c2.334,0.858,3.947,1.775,4.838,2.754c0.891,0.98,1.336,2.274,1.336,3.884 + c0,1.612-0.561,2.947-1.682,4.007c-1.121,1.063-2.526,1.592-4.219,1.592c-1.772,0-3.262-0.69-4.463-2.071 + c-1.202-1.379-1.802-3.12-1.802-5.228v-0.122h-4.502c0.103,3.535,1.114,6.344,3.039,8.431c1.922,2.085,4.466,3.127,7.637,3.127 + c3.108,0,5.674-0.952,7.698-2.853c2.025-1.899,3.038-4.301,3.038-7.205C310.261,64.182,309.764,62.279,308.774,60.788z + M118.462,41.021c-5.17,0-9.417,1.679-12.739,5.035c-3.32,3.357-4.979,7.607-4.979,12.742c0,4.912,1.693,9.118,5.084,12.617 + c3.389,3.502,7.535,5.252,12.438,5.252c3.694,0,6.947-0.998,9.756-2.988c2.808-1.994,4.988-4.849,6.542-8.569h-4.866 + c-1.103,2.332-2.666,4.151-4.688,5.459c-2.023,1.308-4.302,1.962-6.834,1.962c-3.575,0-6.558-1.131-8.947-3.394 + c-2.391-2.263-3.718-5.226-3.983-8.894h30.413v-0.318c0-5.604-1.601-10.154-4.797-13.655 + C127.662,42.771,123.529,41.021,118.462,41.021z M105.366,56.472c0.509-3.468,1.901-6.219,4.17-8.258 + c2.27-2.037,5.04-3.056,8.313-3.056c3.517,0,6.368,0.948,8.556,2.844c2.188,1.897,3.692,4.719,4.509,8.47H105.366z M99.054,31.046 + L84.898,69.101L72.402,35.38l0.007-0.047l-0.079-0.217c-0.401-1.095-0.841-2.3-1.34-3.546l-0.194-0.523h-0.021 + c-2.108-5.143-5.249-10.879-10.817-12.957c-5.541-2.069-12.762-0.675-17.169,3.314c-3.422,3.096-5.471,7.843-6.089,14.111 + c0-0.002-0.117,1.154-0.117,1.154c-0.239,2.31-0.481,4.665-0.354,7.034l0.047,0.874l0.875-0.048l2.31-0.124l0.876-0.046 + l-0.049-0.876c-0.113-2.069,0.115-4.268,0.335-6.396c0-0.001,0.12-1.172,0.12-1.172c0.517-5.235,2.121-9.103,4.771-11.499 + c3.349-3.03,8.825-4.09,13.024-2.522c4.294,1.604,6.994,6.964,8.88,11.717l1.387,3.688l0.208,0.57l0.005-0.004L83.24,75.692h3.407 + l16.788-44.646H99.054z M268.755,41.021c-5.171,0-9.418,1.679-12.738,5.035c-3.32,3.357-4.979,7.607-4.979,12.742 + c0,4.912,1.692,9.118,5.084,12.617c3.389,3.502,7.535,5.252,12.438,5.252c3.695,0,6.947-0.998,9.758-2.988 + c2.807-1.994,4.986-4.849,6.54-8.569h-4.866c-1.102,2.332-2.666,4.151-4.688,5.459c-2.022,1.308-4.302,1.962-6.835,1.962 + c-3.574,0-6.557-1.131-8.945-3.394c-2.392-2.263-3.72-5.226-3.984-8.894h30.415v-0.318c0-5.604-1.603-10.154-4.8-13.655 + C277.955,42.771,273.821,41.021,268.755,41.021z M255.658,56.472c0.51-3.468,1.901-6.219,4.171-8.258 + c2.27-2.037,5.039-3.056,8.314-3.056c3.516,0,6.367,0.948,8.555,2.844c2.187,1.897,3.692,4.719,4.509,8.47H255.658z + M148.164,42.625c-1.253,0.705-2.409,1.808-3.465,3.315v-3.946h-4.074v33.698h4.379V55.395c0-3.099,0.583-5.334,1.754-6.711 + c1.17-1.376,3.11-2.187,5.821-2.431l-0.032-4.744C150.878,41.549,149.417,41.922,148.164,42.625z M172.22,41.021 + c-5.171,0-9.418,1.679-12.738,5.035c-3.321,3.357-4.981,7.607-4.981,12.742c0,4.912,1.694,9.118,5.085,12.617 + c3.389,3.502,7.535,5.252,12.438,5.252c3.695,0,6.947-0.998,9.757-2.988c2.808-1.994,4.988-4.849,6.541-8.569h-4.866 + c-1.102,2.332-2.665,4.151-4.688,5.459c-2.023,1.308-4.303,1.962-6.834,1.962c-3.574,0-6.557-1.131-8.947-3.394 + c-2.391-2.263-3.718-5.226-3.984-8.894h30.414v-0.318c0-5.604-1.6-10.154-4.799-13.655 + C181.419,42.771,177.286,41.021,172.22,41.021z M159.124,56.472c0.51-3.468,1.901-6.219,4.17-8.258 + c2.271-2.037,5.04-3.056,8.313-3.056c3.517,0,6.369,0.948,8.556,2.844c2.188,1.897,3.692,4.719,4.51,8.47H159.124z + M232.864,41.264c-2.51,0-4.779,0.509-6.809,1.518c-2.03,1.012-3.73,2.49-5.097,4.43c-1.106-1.818-2.712-3.264-4.82-4.338 + c-2.108-1.072-4.441-1.61-7-1.61c-2.212,0-4.191,0.379-5.941,1.134c-1.748,0.756-3.27,1.88-4.558,3.372v-3.776h-4.258v33.698 + h4.258V59.274c0-2.927,0.105-4.978,0.321-6.154c0.215-1.177,0.586-2.227,1.119-3.147c0.856-1.473,2.026-2.604,3.509-3.391 + c1.481-0.787,3.203-1.182,5.165-1.182c3.248,0,5.66,0.926,7.233,2.777c1.573,1.852,2.36,4.722,2.36,8.61v18.905h4.136V59.274 + c0-2.927,0.112-4.978,0.338-6.154c0.223-1.177,0.59-2.227,1.1-3.147c0.854-1.473,2.012-2.604,3.467-3.391 + c1.457-0.787,3.143-1.182,5.06-1.182c3.318,0,5.711,0.947,7.178,2.84c1.469,1.894,2.202,5.07,2.202,9.529v17.923h4.137V58.658 + c0-6.093-1.043-10.516-3.122-13.268C240.76,42.64,237.436,41.264,232.864,41.264z"/> + <g> + <path fill="#1A171B" d="M36.791,43.727c4.5,3.508,3.856-8.518,5.095-10.445c-0.251,0.39,1.045-0.227,1.359-0.68 + c0.714-1.033,0.78-1.304,1.783-0.467c0.685,0.57,4.073-2.156,5.011-2.76c-0.206-0.223,0.68,1.338,0.68,0.764 + c0,4.354-0.253,0.671,2.42,1.401c1.206,0.329,2.179-0.847,3.269,0.893c-0.283,0.31-0.566,0.621-0.849,0.933 + c4.111,1.071,3.139,4.072,7.134,6.029c-1.239,0.545-2.304,1.363-2.463,2.803c1.169,0.267,2.366,0.422,3.566,0.424 + c-0.34,0.311-0.679,0.622-1.02,0.934c2.158,0.346,2.307,2.235,4.671,1.699c-0.891,1.669-4.83,4.51-1.274,5.094 + c-0.198,0.085-0.396,0.171-0.594,0.255c0.745,0.477,1.172,1.362,1.868,1.868c-0.946,0.11-1.794,0.679-2.802,0.68 + c0.04,1.611,1.581,1.87,2.717,2.124c-2.577,1.72,0.311,0.894,0.722,2.122c-0.165-0.493,1.154,1.254,0.807,0.977 + c-0.173-0.139-1.318,0.596-0.807,1.062c0.174,0.158,4.875,0.583,1.98,1.482c-1.714,0.534-4.447,0.456-3.679,2.763 + c-1.174-0.126-1.886,0.235-2.845-0.083c0.154,0.687-0.067,0.846,0.213,1.442c-1.335,0.382-2.595-0.269-3.695-1.061 + c-0.042,0.268-0.084,0.537-0.127,0.806c-0.368-0.325-0.736-0.649-1.104-0.976c0.016,0.536-0.255,1.096-0.212,1.656 + c-0.877-0.677-5.258-4.209-2.972-1.189c0.905,1.195,1.842,1.439,2.93,2.463c-1.363,0.366-0.2,5.027,1.91,4.627 + c-1.045,1.709-3.151-0.414-4.289,1.828c1.419,0.304,0.683,0.515,1.826,1.146c-0.596-0.139-1.35,0.109-1.996-0.043 + c0.058,0.606,1.302,2.911,1.104,3.185c-0.761,1.05-2.778-1.146-3.949-1.146c-0.209,0.18-0.252,0.392-0.126,0.636 + c1.264,0.254,0.742,0.52,0.976,1.698c-2.448-0.878-0.467,0.231-0.467,1.104c0,3.686-2.677-0.092-2.548,2.505 + c-0.269-0.014-0.537-0.027-0.806-0.041c0.263,2.893-2.243-0.257-2.845,3.056c0.048,0.018-3.298-0.522-3.333-0.488 + c-1.136,1.135-1.402-0.027-2.174,0.598c-1.87,1.514-1.024-1.807-1.552-1.998c-0.694-0.253-2.246,1.984-2.455,0.573 + c-0.207-1.396-0.55-3.131-1.463-1.656c-0.954-0.37-3.546,0.314-3.842-0.572c-0.223-0.67-2.252-3.619-0.871-4.078 + c-0.407,0.137-1.347,0.543-1.719,0.765c0.857-2.833-1.515-2.188-3.185-1.146c0.104-1.69,0.899-3.521-1.083-3.247 + c0.293-0.662,0.337-1.645,0.828-2.356c-0.382,0.084-0.764,0.17-1.146,0.254c0.059-0.477,4.984-10.382,5.223-10.382 + c-0.199-0.062-0.369-0.169-0.51-0.318c-1.236,3.129-3.048,5.804-5.095,8.534c0.046-0.52-0.061-1.008-0.318-1.464 + c-0.23,0-1.983,2.339-2.548,2.61c0-0.253,0-0.509,0-0.763c-0.231,0.366-1.444,2.675-1.783,2.675c-0.329,0,0.481-1.796-0.51-1.467 + c-0.944,0.315-1.458,0.54-2.292,0.701c0.99-1.181,1.719-2.432-0.446-1.783c0.204-0.955-0.191-1.231-0.191-1.974 + c-0.159,0.41-0.393,0.771-0.7,1.084c-0.23-1.254-0.242-6.138-0.383-6.138c-1.46,0,0.123-2.937,0.341-3.312 + c-0.17-0.142-0.341-0.282-0.51-0.425c0.05,1.16-0.433,1.305-0.764,2.293c-1.08-1.767,1.521-3.314-0.764-3.99 + c0.311-0.256,0.623-0.51,0.934-0.765c-0.199-0.198-0.396-0.396-0.595-0.595c-0.269,0.61-0.729,1.216-1.02,1.783 + c-0.154-0.479,0.034-2.888,0.51-2.888c-0.313-0.017-0.624-0.044-0.935-0.084c0.723-0.973,0.495-1.264,1.444-1.699 + c-0.17-0.51-0.339-1.019-0.509-1.529c0.17,0.058,0.339,0.114,0.509,0.171c0.149,0.083-0.41-0.829-0.68-0.424 + c0.503-0.754,1.123-1.223,1.868-1.614c-0.283-0.17-0.566-0.34-0.849-0.51c0.664-0.432,1.176-1.357,2.038-1.698 + c-0.566-1.104-0.674-1.464-1.868-1.784c-0.033-2.104,1.163-9.234,2.717-8.407c-0.049-0.578-0.062-0.699,0.509-0.765 + c-0.087-1.145-0.637-0.797,0.595-1.104c-0.979-4.102,1.847-2.083,3.651-1.104c0-0.341,0-0.68,0-1.02 + c0.534,0.116,1.853,0.641,2.177,0.085c0.109-0.188-0.92-0.513-1.073-0.594c1.126-0.569,0.975-1.844,0.17-3.143 + c1.503,0.075,3.008,0.738,3.482-0.594c0.613,0.591,1.188,0.584,1.697,1.358c0.284-0.481,0.566-0.963,0.85-1.443 + c0.53,0.646,1.549,2.504,2.59,1.983c0.223-0.111,1.486,0.661,1.486,0.394c0-1.159,0.588-2.121,1.529-2.717 + C35.584,34.716,35.005,38.027,36.791,43.727"/> + </g> + </g> + </g> + </svg> + </a> + </td> + </tr> +</table> +<!-- Email Header : END --> + +<!-- Email Body : BEGIN --> +<table role="presentation" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" width="600" style="margin: auto;" class="email-container"> + + [CONTENT] + +</table> +<!-- Email Body : END --> + +<!-- Email Footer : BEGIN --> +<table role="presentation" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" width="600" style="margin: auto;" class="email-container"> + <tr> + <td style="padding: 0px;width: 100%;" class="x-gmail-data-detectors"> + <div class="bottom-strip" style="background-color: #39468A;"></div> + <div class="bottom-strip" style="background-color: #E74F23;"></div> + <div class="bottom-strip" style="background-color: #923288;"></div> + <div class="bottom-strip" style="background-color: #1C9DB2;"></div> + <div class="bottom-strip" style="background-color: #E10759;"></div> + </td> + </tr> +</table> +<table role="presentation" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" width="600" style="margin: auto;" class="email-container"> + <tr> + <td style="padding: 10px;width: 50%;font-size: 12px; font-family: sans-serif; line-height:18px; text-align: center; color: #888888; cursor:pointer;" class="x-gmail-data-detectors"> + <a class="square-logo-layout" href="https://twitter.com/Veremes_Info" target="_blank" style="color: #24292E; cursor:pointer;"> + <!--<i class="fa fa-twitter" style=""></i>--> + <svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" style="fill: currentColor; cursor:pointer;"> + <title>Twitter</title> + <path d="M50,0a50,50,0,1,0,50,50A50,50,0,0,0,50,0ZM75.28,37c0,.56,0,1.12,0,1.68C75.32,56,62.2,75.83,38.21,75.83h0a37,37,0,0,1-20-5.86,24.62,24.62,0,0,0,3.11.18,26.13,26.13,0,0,0,16.2-5.58,13,13,0,0,1-12.18-9.06,12.34,12.34,0,0,0,2.45.24,13,13,0,0,0,3.44-.46A13,13,0,0,1,20.77,42.5v-.16A13.11,13.11,0,0,0,26.68,44a13.05,13.05,0,0,1-4-17.42A37,37,0,0,0,49.52,40.18a13.19,13.19,0,0,1-.34-3,13.05,13.05,0,0,1,22.57-8.92A26.11,26.11,0,0,0,80,25.12a13.08,13.08,0,0,1-5.73,7.22,26.23,26.23,0,0,0,7.49-2.06A26.49,26.49,0,0,1,75.28,37Z"/> + </svg> + </a> + <a class="square-logo-layout" href="https://www.linkedin.com/company/veremes/" target="_blank" style="color: #24292E; cursor:pointer;"> + <!--<i class="fa fa-linkedin" style=""></i>--> + <svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" style="fill: currentColor; cursor:pointer;"> + <title>LinkedIn</title> + <path d="M50,0a50,50,0,1,0,50,50A50,50,0,0,0,50,0ZM60.71,51a6.48,6.48,0,0,0-6.33,6.32V79.68H41.74V41.74H54.38v5a13.63,13.63,0,0,1,10.54-5.9A15,15,0,0,1,79.68,55.65v24H67V57.33A6.48,6.48,0,0,0,60.71,51ZM27,34.57A7.59,7.59,0,1,1,34.57,27,7.55,7.55,0,0,1,27,34.57Zm6.32,7.17V79.68H20.66V41.74Z"/> + </svg> + </a> + <a class="square-logo-layout" href="http://vm09.veremes.net/" target="_blank" style="color: #24292E; cursor:pointer;"> + <!--<i class="fa fa-github" style=""></i>--> + <svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" style="fill: currentColor; cursor:pointer;"> + <title>GitLab</title> + <path d="M50,0a50,50,0,1,0,50,50A50,50,0,0,0,50,0ZM75.18,15.1a1,1,0,0,1,2,0l9,27.81h-20Zm-52.34,0a1,1,0,0,1,2,0l9,27.81h-20ZM9.85,61A2.63,2.63,0,0,1,8.9,58l4.35-13.4L47.16,88.07Zm4.33-17h20l14.3,44Zm21.19,0H64.63L50,89Zm30.42,0h20L51.49,88ZM90.15,61,52.84,88.07,86.75,44.62,91.1,58A2.63,2.63,0,0,1,90.15,61Z"/> + </svg> + </a> + <a class="square-logo-layout" href="http://www.veremes.com/" target="_blank" style="color: #24292E; cursor:pointer;"> + <!--<i class="fa fa-globe" style=""></i>--> + <svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" style="fill: currentColor; cursor:pointer;"> + <defs> + <style>.cls-1{fill:none;}</style> + </defs> + <title>Veremes</title> + <path class="cls-1" d="M60.17,18.09h0S60.15,18.05,60.17,18.09Z"/> + <path class="cls-1" d="M48.39,26.38c.66-6.65,2.7-11.56,6.06-14.6a11.45,11.45,0,0,1,1.82-1.29A40.5,40.5,0,0,0,50,10l-1,0c-3.18,3.87-5.13,9.17-5.79,15.85l-.15,1.47c-.21,2.06-.42,4.16-.47,6.28-1.35-5.7-.83-9.69-1.1-15.87A4,4,0,0,0,39.6,21.2c0,.34-1.6-.64-1.88-.5-1.33.67-2.62-1.69-3.29-2.51L33.35,20c-.65-1-1.38-1-2.16-1.73-.6,1.69-2.51.85-4.42.76,1,1.65,1.21,3.26-.21,4,.19.1,1.5.51,1.36.75-.41.71-2.09,0-2.77-.11V25c-2.29-1.25-5.88-3.81-4.63,1.4-1.57.39-.87-.05-.76,1.4-.72.09-.71.24-.64,1-2-1.05-3.5,8-3.45,10.68,1.51.4,1.65.86,2.37,2.26-1.1.43-1.75,1.61-2.59,2.16l1.08.64a6,6,0,0,0-2.37,2c.34-.51,1.05.65.86.54l-.65-.22c.22.65.43,1.3.65,2-1.21.55-.92.92-1.83,2.15.39,0,.78.09,1.18.11-.6,0-.84,3.06-.65,3.67.37-.72,1-1.49,1.3-2.27l.75.76-1.18,1c2.9.86-.4,2.82,1,5.06.42-1.25,1-1.43,1-2.91l.65.54c-.28.48-2.29,4.21-.44,4.21.18,0,.2,6.2.49,7.79a4,4,0,0,0,.89-1.38c0,.95.5,1.3.24,2.51,2.75-.82,1.82.76.57,2.26a20.92,20.92,0,0,0,2.91-.89c1.26-.41.23,1.86.64,1.86s2-2.93,2.27-3.39v1c.72-.35,2.94-3.32,3.23-3.32a3.11,3.11,0,0,1,.41,1.86,46.51,46.51,0,0,0,6.47-10.83,1.46,1.46,0,0,0,.65.4c-.31,0-6.56,12.58-6.64,13.18l1.46-.32c-.63.9-.68,2.15-1,3,2.51-.35,1.5,2,1.37,4.13,2.12-1.33,5.14-2.15,4.05,1.45a15.73,15.73,0,0,1,2.18-1c-1.76.58.82,4.33,1.11,5.17.37,1.13,3.66.26,4.87.73,1.16-1.87,1.6.33,1.86,2.11s2.24-1,3.12-.73c.67.24-.4,4.46,2,2.53,1-.79,1.32.68,2.76-.75,0,0,4.29.64,4.23.62.77-4.21,3.94-.21,3.61-3.88l1,0c-.16-3.3,3.24,1.5,3.24-3.18,0-1.11-2.52-2.52.59-1.4-.29-1.5.37-1.84-1.24-2.16a.62.62,0,0,1,.16-.81c1.49,0,4,2.79,5,1.46.25-.35-1.33-3.28-1.4-4,.82.2,1.77-.12,2.53.06-1.45-.8-.52-1.07-2.32-1.46,1.45-2.84,4.12-.15,5.45-2.32C70.78,71.9,69.3,66,71,65.52c-1.38-1.3-2.57-1.61-3.72-3.13-2.9-3.83,2.66.65,3.78,1.51-.06-.71.28-1.42.27-2.1L72.76,63c0-.34.11-.69.16-1,1.4,1,3,1.83,4.69,1.35-.35-.76-.08-1-.27-1.83,1.22.4,2.12-.06,3.61.11-1-2.93,2.5-2.84,4.67-3.51,3.68-1.15-2.29-1.68-2.51-1.88-.65-.6.8-1.53,1-1.35.44.35-1.23-1.87-1-1.24-.52-1.56-4.19-.51-.92-2.7-1.44-.32-3.4-.65-3.45-2.69,1.28,0,2.36-.73,3.56-.87-.89-.64-1.43-1.76-2.37-2.37l.75-.32c-4.51-.74.49-4.35,1.62-6.47-3,.68-3.19-1.72-5.93-2.16l1.29-1.18a20.84,20.84,0,0,1-4.52-.54c.19-1.83,1.55-2.87,3.12-3.56-5.07-2.49-3.84-6.3-9.06-7.66L68.28,22c-1.38-2.21-2.62-.72-4.15-1.13-3.39-.93-3.07,3.75-3.07-1.78,0,.62-.81-.72-.89-1-1.22.8-5.47,4.21-6.34,3.49-1.27-1.06-1.35-.72-2.26.59-.4.58-2,1.36-1.73.87-.9,1.41-1,7.1-2.05,10.79,0-2,.25-4,.45-6Z"/> + <path d="M99.94,47.71l0-.64c0-.61-.08-1.23-.14-1.84,0-.16,0-.31,0-.46-.08-.74-.17-1.47-.28-2.2,0-.19-.06-.38-.1-.57q-.13-.86-.3-1.68l-.12-.64c-.15-.7-.31-1.39-.48-2.08,0-.15-.09-.3-.13-.45-.14-.56-.3-1.11-.46-1.65-.08-.24-.15-.49-.23-.73-.16-.51-.34-1-.52-1.54-.06-.17-.12-.35-.19-.53-.23-.62-.47-1.24-.73-1.85-.11-.27-.22-.53-.34-.8s-.35-.78-.53-1.17l-.38-.81c-.27-.56-.56-1.11-.85-1.66-.16-.3-.33-.59-.49-.88s-.35-.61-.53-.92-.37-.63-.57-.94L92,22.86q-.55-.86-1.14-1.68l-.45-.62c-.25-.35-.51-.69-.77-1-.13-.18-.27-.35-.41-.52q-1.36-1.74-2.9-3.35L86,15.35q-1.66-1.72-3.48-3.29L82.46,12a51.79,51.79,0,0,0-5.4-4h0a49.56,49.56,0,0,0-4.42-2.54h0A49.59,49.59,0,0,0,63.94,2h0c-1.56-.45-3.16-.83-4.78-1.13L58.49.73,57.21.52C56.59.43,56,.35,55.33.29L54.54.21,53,.1l-.73,0C51.51,0,50.76,0,50,0a50,50,0,1,0,50,50C100,49.23,100,48.47,99.94,47.71ZM49.84,23c-.31.49,1.33-.29,1.73-.87.91-1.31,1-1.65,2.26-.59.87.72,5.12-2.69,6.34-3.49,0,0,0-.06,0,0h0c.08.24.89,1.58.89,1,0,5.53-.32.85,3.07,1.78,1.53.41,2.77-1.08,4.15,1.13L67.2,23.14c5.22,1.36,4,5.17,9.06,7.66-1.57.69-2.93,1.73-3.12,3.56a20.84,20.84,0,0,0,4.52.54l-1.29,1.18c2.74.44,2.92,2.84,5.93,2.16-1.13,2.12-6.13,5.73-1.62,6.47l-.75.32c.94.61,1.48,1.73,2.37,2.37-1.2.14-2.28.86-3.56.87.05,2,2,2.37,3.45,2.69-3.27,2.19.4,1.14.92,2.7-.21-.63,1.46,1.59,1,1.24-.22-.18-1.67.75-1,1.35.22.2,6.19.73,2.51,1.88-2.17.67-5.64.58-4.67,3.51-1.49-.17-2.39.29-3.61-.11.19.87-.08,1.07.27,1.83-1.7.48-3.29-.34-4.69-1.35,0,.34-.11.69-.16,1l-1.4-1.24c0,.68-.33,1.39-.27,2.1C70,63,64.41,58.56,67.31,62.39c1.15,1.52,2.34,1.83,3.72,3.13-1.73.46-.25,6.38,2.43,5.87-1.33,2.17-4-.52-5.45,2.32,1.8.39.87.66,2.32,1.46-.76-.18-1.71.14-2.53-.06.07.77,1.65,3.7,1.4,4-1,1.33-3.53-1.46-5-1.46a.62.62,0,0,0-.16.81c1.61.32,1,.66,1.24,2.16-3.11-1.12-.59.29-.59,1.4,0,4.68-3.4-.12-3.24,3.18l-1,0c.33,3.67-2.84-.33-3.61,3.88.06,0-4.19-.67-4.23-.62-1.44,1.43-1.78,0-2.76.75-2.37,1.93-1.3-2.29-2-2.53-.88-.32-2.86,2.52-3.12.73s-.7-4-1.86-2.11c-1.21-.47-4.5.4-4.87-.73-.29-.84-2.87-4.59-1.11-5.17a15.73,15.73,0,0,0-2.18,1c1.09-3.6-1.93-2.78-4.05-1.45.13-2.15,1.14-4.48-1.37-4.13.37-.84.42-2.09,1-3l-1.46.32c.08-.6,6.33-13.18,6.64-13.18a1.46,1.46,0,0,1-.65-.4,46.51,46.51,0,0,1-6.47,10.83A3.11,3.11,0,0,0,28,67.51c-.29,0-2.51,3-3.23,3.32v-1c-.3.46-1.83,3.39-2.27,3.39s.62-2.27-.64-1.86a20.92,20.92,0,0,1-2.91.89c1.25-1.5,2.18-3.08-.57-2.26.26-1.21-.24-1.56-.24-2.51a4,4,0,0,1-.89,1.38c-.29-1.59-.31-7.79-.49-7.79-1.85,0,.16-3.73.44-4.21l-.65-.54c.06,1.48-.55,1.66-1,2.91-1.37-2.24,1.93-4.2-1-5.06l1.18-1L15,52.47c-.34.78-.93,1.55-1.3,2.27-.19-.61,0-3.67.65-3.67-.4,0-.79-.06-1.18-.11.91-1.23.62-1.6,1.83-2.15-.22-.65-.43-1.3-.65-2l.65.22c.19.11-.52-1-.86-.54a6,6,0,0,1,2.37-2l-1.08-.64c.84-.55,1.49-1.73,2.59-2.16-.72-1.4-.86-1.86-2.37-2.26-.05-2.68,1.47-11.73,3.45-10.68-.07-.73-.08-.88.64-1-.11-1.45-.81-1,.76-1.4-1.25-5.21,2.34-2.65,4.63-1.4v-1.3c.68.15,2.36.82,2.77.11.14-.24-1.17-.65-1.36-.75,1.42-.73,1.23-2.34.21-4,1.91.09,3.82.93,4.42-.76C32,19,32.7,19,33.35,20l1.08-1.83c.67.82,2,3.18,3.29,2.51.28-.14,1.88.84,1.88.5a4,4,0,0,1,1.94-3.45c.27,6.18-.25,10.17,1.1,15.87,0-2.12.26-4.22.47-6.28l.15-1.47c.66-6.68,2.61-12,5.79-15.85l1,0a40.5,40.5,0,0,1,6.27.49,11.45,11.45,0,0,0-1.82,1.29c-3.36,3-5.4,8-6.06,14.6l-.15,1.49c-.2,2-.41,4-.45,6C48.82,30.14,48.94,24.45,49.84,23Z"/> + </svg> + </a> + </td> + <td style="padding: 10px;width: 50%;font-size: 20px; font-family: sans-serif; line-height:18px; text-align: center; color: #000000;" class="x-gmail-data-detectors"> + <div style="margin-bottom:10px;">Pour toute question :</div> + <div>support@veremes.com</div> + </td> + </tr> +</table> +<!-- Email Footer : END --> + +</center> +[SCRIPT] +</body> +</html>'; ?> \ No newline at end of file diff --git a/src/module_extraction/web_service/conf/properties.inc b/src/module_extraction/web_service/conf/properties.inc new file mode 100755 index 00000000..62a488a9 --- /dev/null +++ b/src/module_extraction/web_service/conf/properties.inc @@ -0,0 +1,7 @@ +<?php +$properties['color_mutualized'] = 'green'; +$properties['color_no_mutualized'] = 'red'; +$properties['sig'] = '*.shp'; +$properties['dao'] = '*.dao'; +$properties['shared_dir'] = 'D:/serveur/gtf/vas/shared'; +?> \ No newline at end of file diff --git a/src/module_extraction/web_service/conf/properties_server.inc b/src/module_extraction/web_service/conf/properties_server.inc new file mode 100644 index 00000000..1f67047d --- /dev/null +++ b/src/module_extraction/web_service/conf/properties_server.inc @@ -0,0 +1,3 @@ +<?php + $properties['schema_extraction'] = 's_extraction'; +?> \ No newline at end of file diff --git a/src/module_extraction/web_service/conf/selected_properties.inc b/src/module_extraction/web_service/conf/selected_properties.inc new file mode 100644 index 00000000..90da243f --- /dev/null +++ b/src/module_extraction/web_service/conf/selected_properties.inc @@ -0,0 +1,18 @@ +<?php + +$aAdminFields = Array( + 'color_mutualized', + 'color_no_mutualized', + 'sig', + 'dao' +); +$aUserFields = Array( + 'color_mutualized', + 'color_no_mutualized', + 'sig', + 'dao' +); + +$properties['aAdminFields'] = array_merge($properties['aAdminFields'], $aAdminFields); +$properties['aUserFields'] = array_merge($properties['aUserFields'], $aUserFields); +?> \ No newline at end of file diff --git a/src/module_extraction/web_service/conf/version.inc b/src/module_extraction/web_service/conf/version.inc new file mode 100755 index 00000000..42fa9895 --- /dev/null +++ b/src/module_extraction/web_service/conf/version.inc @@ -0,0 +1,7 @@ +<?php +// Numéro de la version de extraction +define ("VM_VERSION", "20XX.XX.XX"); +define ("VM_BUILD", "XXXXX"); +define ("VM_MONTH_YEAR", "XX_20XX"); +define ("VM_STATUS", "STABLE"); +?> \ No newline at end of file diff --git a/src/module_extraction/web_service/sql/sqlQueries.xml b/src/module_extraction/web_service/sql/sqlQueries.xml new file mode 100755 index 00000000..04344a79 --- /dev/null +++ b/src/module_extraction/web_service/sql/sqlQueries.xml @@ -0,0 +1,493 @@ +<?xml version="1.0" encoding="utf-8"?> +<sqlQueries> + <title>Scripts d'installation et de mises à jour de la base du VAS</title> + <queriesCollection> + <query> + <type>init</type> + <version>2017-01-00</version> + <code> + <![CDATA[ + --Partie pour le module extraction version 2017-01-00 généré par WAB le 22/05/2018 à 09:09:32 + --Partie pour le module extraction version 2017-01-01 généré par WAB le 18/07/2017 à 09:52:00 + CREATE SCHEMA s_extraction AUTHORIZATION u_vitis; + GRANT ALL ON SCHEMA s_extraction TO u_vitis; + GRANT USAGE ON SCHEMA s_extraction TO extraction_admin; + GRANT USAGE ON SCHEMA s_extraction TO extraction_user; + CREATE SEQUENCE s_extraction.bo_id_extraction_seq START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; + ALTER TABLE s_extraction.bo_id_extraction_seq OWNER TO u_vitis; + GRANT ALL ON SEQUENCE s_extraction.bo_id_extraction_seq TO u_vitis; + GRANT ALL ON SEQUENCE s_extraction.bo_id_extraction_seq TO extraction_admin; + GRANT ALL ON SEQUENCE s_extraction.bo_id_extraction_seq TO extraction_user; + CREATE SEQUENCE s_extraction.seq_common START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; + ALTER TABLE s_extraction.seq_common OWNER TO u_vitis; + GRANT ALL ON SEQUENCE s_extraction.seq_common TO u_vitis; + GRANT ALL ON SEQUENCE s_extraction.seq_common TO extraction_admin; + GRANT ALL ON SEQUENCE s_extraction.seq_common TO extraction_user; + CREATE TABLE s_extraction.extraction (bo_id integer NOT NULL, status character varying(100), history text, creation_date date DEFAULT ('now'::text)::date, requestor character varying(50) DEFAULT "current_user"(), ae character varying(255), extent text, company character varying(50), layers text, vector_format_id character varying(100), coordsys_id character varying(50), note text, note_line text, raster_format_id character varying(100), extent_method character varying(50), signed boolean, accepted_by_cpa boolean, identification_complete boolean, definition_complete boolean, comment text, priority_id integer, id_com text, id_conseil text, email varchar(100),status_id integer); + ALTER TABLE s_extraction.extraction OWNER TO u_vitis; + CREATE TABLE s_extraction.rt_coordsys (coordsys_id character varying(50) NOT NULL, coordsys character varying(100)); + ALTER TABLE s_extraction.rt_coordsys OWNER TO u_vitis; + CREATE TABLE s_extraction.rt_feature_model (feature_type character varying(200) NOT NULL, attribute_name character varying(200) NOT NULL, attribute_data_type character varying(200), geometry_type character varying(200), "order" integer); + ALTER TABLE s_extraction.rt_feature_model OWNER TO u_vitis; + CREATE TABLE s_extraction.rt_format (format_id character varying(100) NOT NULL, format character varying(255), use_for_raster boolean, use_for_vector boolean); + ALTER TABLE s_extraction.rt_format OWNER TO u_vitis; + CREATE TABLE s_extraction.rt_layer (layer_id character varying(100) NOT NULL, layer character varying(255), category character varying(50), restriction character varying(50), unused_attributes text); + ALTER TABLE s_extraction.rt_layer OWNER TO u_vitis; + CREATE TABLE s_extraction.version(version character varying(100) NOT NULL, build integer NOT NULL, date timestamp with time zone NOT NULL, active boolean NOT NULL, CONSTRAINT version_pkey PRIMARY KEY (version)); + ALTER TABLE s_extraction.version OWNER TO u_vitis; + INSERT INTO s_extraction.rt_coordsys (coordsys_id, coordsys) VALUES ('EPSG:27572', 'Lambert 2 étendu'); + INSERT INTO s_extraction.rt_coordsys (coordsys_id, coordsys) VALUES ('Lambert93', 'Lambert 93'); + INSERT INTO s_extraction.rt_coordsys (coordsys_id, coordsys) VALUES ('EPSG:3944', 'Lambert 93 CC44'); + INSERT INTO s_extraction.rt_coordsys (coordsys_id, coordsys) VALUES ('EPSG:4326', 'WGS 84'); + INSERT INTO s_extraction.rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('ECW', 'Er Mapper ECW', true, false); + INSERT INTO s_extraction.rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('ACAD', 'Autocad DWG', false, true); + INSERT INTO s_extraction.rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('SHAPE', 'Esri Shapefile', false, true); + INSERT INTO s_extraction.rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('MAPINFO', 'Mapinfo Tab', false, true); + INSERT INTO s_extraction.rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('MIF', 'Mapinfo MIF/MID', false, true); + INSERT INTO s_extraction.rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('GML', 'GML', false, true); + INSERT INTO s_extraction.rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('OGCKML', 'KML', false, true); + INSERT INTO s_extraction.rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('GEOJSON', 'GEOJSON', false, true); + INSERT INTO s_extraction.rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('TIFF', 'TIFF', true, false); + INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.arrondissement', 'id_geofla', 'fme_real64', 'fme_no_geom;fme_point;fme_line;fme_area;fme_surface;fme_collection', 1); + INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.arrondissement', 'code_arr', 'fme_varchar(1)', '', 2); + INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.arrondissement', 'code_chf', 'fme_varchar(3)', '', 3); + INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.arrondissement', 'nom_chf', 'fme_varchar(50)', '', 4); + INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.arrondissement', 'x_chf_lieu', 'fme_varchar(255)', '', 5); + INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.arrondissement', 'y_chf_lieu', 'fme_varchar(255)', '', 6); + INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.arrondissement', 'code_dept', 'fme_varchar(2)', '', 7); + INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.arrondissement', 'nom_dept', 'fme_varchar(30)', '', 8); + INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.arrondissement', 'code_reg', 'fme_varchar(2)', '', 9); + INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.arrondissement', 'nom_region', 'fme_varchar(30)', '', 10); + INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.canton', 'id_geofla', 'fme_real64', 'fme_no_geom;fme_point;fme_line;fme_area;fme_surface;fme_collection', 1); + INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.canton', 'code_cant', 'fme_varchar(2)', '', 2); + INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.canton', 'code_chf', 'fme_varchar(3)', '', 3); + INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.canton', 'nom_chf', 'fme_varchar(50)', '', 4); + INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.canton', 'x_chf_lieu', 'fme_varchar(255)', '', 5); + INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.canton', 'y_chf_lieu', 'fme_varchar(255)', '', 6); + INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.canton', 'code_arr', 'fme_varchar(1)', '', 7); + INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.canton', 'code_dept', 'fme_varchar(2)', '', 8); + INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.canton', 'nom_dept', 'fme_varchar(30)', '', 9); + INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.canton', 'code_reg', 'fme_varchar(2)', '', 10); + INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.canton', 'nom_region', 'fme_varchar(30)', '', 11); + INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.commune', 'id_geofla', 'fme_real64', 'fme_no_geom;fme_point;fme_line;fme_area;fme_surface;fme_collection', 1); + INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.commune', 'code_comm', 'fme_varchar(3)', '', 2); + INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.commune', 'insee_com', 'fme_varchar(5)', '', 3); + INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.commune', 'nom_comm', 'fme_varchar(50)', '', 4); + INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.commune', 'statut', 'fme_varchar(20)', '', 5); + INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.commune', 'x_chf_lieu', 'fme_varchar(255)', '', 6); + INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.commune', 'y_chf_lieu', 'fme_varchar(255)', '', 7); + INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.commune', 'z_moyen', 'fme_varchar(255)', '', 8); + INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.commune', 'superficie', 'fme_real64', '', 9); + INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.commune', 'population', 'fme_real64', '', 10); + INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.commune', 'code_cant', 'fme_varchar(2)', '', 11); + INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.commune', 'code_arr', 'fme_varchar(1)', '', 12); + INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.commune', 'code_dept', 'fme_varchar(2)', '', 13); + INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.commune', 'nom_dept', 'fme_varchar(30)', '', 14); + INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.commune', 'code_reg', 'fme_varchar(2)', '', 15); + INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.commune', 'nom_region', 'fme_varchar(30)', '', 16); + INSERT INTO s_extraction.rt_layer (layer_id, layer, category, restriction, unused_attributes) VALUES ('geofla.arrondissement', 'Arrondissement', 'Arrondissement', 'interne', 'x_centroid;y_centroid'); + INSERT INTO s_extraction.rt_layer (layer_id, layer, category, restriction, unused_attributes) VALUES ('geofla.canton', 'Canton', 'Arrondissement', 'restreinit', 'x_centroid;y_centroid'); + INSERT INTO s_extraction.rt_layer (layer_id, layer, category, restriction, unused_attributes) VALUES ('geofla.commune', 'Commune', 'Commune', 'public', 'x_centroid;y_centroid'); + ALTER TABLE ONLY s_extraction.extraction ADD CONSTRAINT pk_plan_bo_id PRIMARY KEY (bo_id); + ALTER TABLE ONLY s_extraction.rt_layer ADD CONSTRAINT pk_projet_type PRIMARY KEY (layer_id); + ALTER TABLE ONLY s_extraction.rt_format ADD CONSTRAINT pk_reseau PRIMARY KEY (format_id); + ALTER TABLE ONLY s_extraction.rt_coordsys ADD CONSTRAINT pk_rt_coordsys PRIMARY KEY (coordsys_id); + ALTER TABLE ONLY s_extraction.rt_feature_model ADD CONSTRAINT pk_rt_feature_model PRIMARY KEY (feature_type, attribute_name); + ALTER TABLE ONLY s_extraction.extraction ADD CONSTRAINT fk_coordsys_id FOREIGN KEY (coordsys_id) REFERENCES s_extraction.rt_coordsys(coordsys_id); + ALTER TABLE ONLY s_extraction.extraction ADD CONSTRAINT fk_format_id FOREIGN KEY (vector_format_id) REFERENCES s_extraction.rt_format(format_id); + GRANT ALL ON TABLE s_extraction.extraction TO u_vitis; + GRANT ALL ON TABLE s_extraction.extraction TO extraction_user; + GRANT ALL ON TABLE s_extraction.rt_coordsys TO u_vitis; + GRANT ALL ON TABLE s_extraction.rt_coordsys TO extraction_admin; + GRANT ALL ON TABLE s_extraction.rt_feature_model TO u_vitis; + GRANT ALL ON TABLE s_extraction.rt_feature_model TO extraction_admin; + GRANT ALL ON TABLE s_extraction.rt_format TO u_vitis; + GRANT ALL ON TABLE s_extraction.rt_format TO extraction_admin; + GRANT ALL ON TABLE s_extraction.rt_layer TO u_vitis; + GRANT ALL ON TABLE s_extraction.rt_layer TO extraction_admin; + CREATE TABLE s_extraction.rt_extraction_status (status_id int4 NOT NULL DEFAULT nextval('s_extraction.seq_common'::regclass), name varchar(50) NOT NULL, progress int4 NOT NULL, PRIMARY KEY (status_id)); + ALTER TABLE s_extraction.rt_extraction_status OWNER TO u_vitis; + GRANT ALL ON TABLE s_extraction.rt_extraction_status TO extraction_admin; + CREATE TABLE s_extraction.rt_extraction_status_group( status_id integer NOT NULL, group_id integer NOT NULL, extraction_status_group_id integer NOT NULL, CONSTRAINT pk_workspace_group PRIMARY KEY (extraction_status_group_id), CONSTRAINT fk_group_id_workspace FOREIGN KEY (group_id) REFERENCES s_vitis."group" (group_id) MATCH SIMPLE ON UPDATE RESTRICT ON DELETE CASCADE, CONSTRAINT fk_status_id FOREIGN KEY (status_id) REFERENCES s_extraction.rt_extraction_status (status_id) MATCH SIMPLE ON UPDATE RESTRICT ON DELETE CASCADE)WITH ( OIDS=FALSE); + ALTER TABLE s_extraction.rt_extraction_status_group OWNER TO u_vitis; + GRANT ALL ON TABLE s_extraction.rt_extraction_status_group TO u_vitis; + GRANT SELECT ON TABLE s_extraction.rt_extraction_status_group TO extraction_user; + GRANT SELECT ON TABLE s_extraction.rt_extraction_status_group TO extraction_admin; + CREATE VIEW s_extraction.v_extraction AS SELECT DISTINCT extraction.bo_id, extraction.status_id, extraction.history, extraction.creation_date, extraction.requestor, extraction.ae, extraction.extent, extraction.company, extraction.layers, extraction.vector_format_id, extraction.vector_format_id AS format_id, extraction.coordsys_id, extraction.raster_format_id, extraction.extent_method, extraction.signed, extraction.accepted_by_cpa, extraction.identification_complete, extraction.definition_complete, extraction.priority_id, extraction.id_com, extraction.id_conseil, extraction.note, rt_extraction_status.progress AS progress_level, rt_extraction_status.name AS status_name, rt_extraction_status.name AS status FROM ((((s_extraction.extraction LEFT JOIN s_extraction.rt_extraction_status ON ((extraction.status_id = rt_extraction_status.status_id))) LEFT JOIN s_extraction.rt_extraction_status_group ON ((rt_extraction_status.status_id = rt_extraction_status_group.status_id))) LEFT JOIN s_vitis.user_group ON ((rt_extraction_status_group.group_id = user_group.group_id))) LEFT JOIN s_vitis."user" ON ((user_group.user_id = "user".user_id))) WHERE ((("user".login)::name = "current_user"()) AND (((extraction.requestor)::name = "current_user"()) OR (rt_extraction_status_group.group_id = 12))); + ALTER TABLE s_extraction.v_extraction OWNER TO u_vitis; + GRANT ALL ON TABLE s_extraction.v_extraction TO u_vitis; + GRANT ALL ON TABLE s_extraction.v_extraction TO extraction_admin; + GRANT ALL ON TABLE s_extraction.v_extraction TO extraction_user; + GRANT ALL ON TABLE s_extraction.extraction TO extraction_admin; + GRANT ALL ON TABLE s_extraction.extraction TO extraction_user; + GRANT ALL ON TABLE s_extraction.rt_coordsys TO extraction_admin; + GRANT SELECT ON TABLE s_extraction.rt_coordsys TO extraction_user; + GRANT ALL ON TABLE s_extraction.rt_extraction_status TO extraction_admin; + GRANT SELECT ON TABLE s_extraction.rt_extraction_status TO extraction_user; + GRANT ALL ON TABLE s_extraction.rt_format TO extraction_admin; + GRANT SELECT ON TABLE s_extraction.rt_format TO extraction_user; + GRANT ALL ON TABLE s_extraction.rt_layer TO extraction_admin; + GRANT SELECT ON TABLE s_extraction.rt_layer TO extraction_user; + GRANT SELECT ON TABLE s_extraction.rt_feature_model TO extraction_admin; + GRANT SELECT ON TABLE s_extraction.rt_feature_model TO extraction_user; + --Partie WABSQL générée par WAB le 04/05/2018 à 14:31:04 + -- Ces tables sont normalement prévues dans votre fichier VisualParadigm et sont necessaires pour le fonctionnement de vos objets WAB + --CREATE TABLE s_extraction.rt_extraction_status (status_id integer NOT NULL DEFAULT nextval('s_vitis.seq_common'::regclass), name character varying(50) NOT NULL, progress integer NOT NULL, CONSTRAINT rt_extraction_status_pkey PRIMARY KEY (status_id)); + --CREATE TABLE s_extraction.rt_extraction_status_group (status_id integer NOT NULL, group_id integer NOT NULL, link_id integer NOT NULL DEFAULT nextval('s_vitis.seq_common'::regclass), CONSTRAINT rt_extraction_status_group_pkey PRIMARY KEY (link_id), CONSTRAINT fk_extraction_status_group FOREIGN KEY (status_id) REFERENCES s_extraction.rt_extraction_status (status_id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION); + CREATE TABLE s_extraction.extraction_history (history_id integer NOT NULL DEFAULT nextval('s_extraction.seq_common'::regclass), date timestamp with time zone NOT NULL, login character varying(50) NOT NULL, comment text NOT NULL, bo_id integer NOT NULL, CONSTRAINT extraction_history_pkey PRIMARY KEY (history_id), CONSTRAINT fk_extraction_history FOREIGN KEY (bo_id) REFERENCES s_extraction.extraction (bo_id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION); + -- Vue basique pour vos objets WAB tenant compte de la restriction groupe état + --CREATE OR REPLACE VIEW s_extraction.v_extraction AS SELECT extraction.* FROM s_extraction.extraction LEFT JOIN s_extraction.rt_extraction_status ON rt_extraction_status.status_id = extraction.status_id JOIN s_extraction.rt_extraction_status_group ON rt_extraction_status.status_id = rt_extraction_status_group.status_id WHERE (rt_extraction_status_group.group_id IN ( SELECT user_group.group_id FROM s_vitis.user_group LEFT JOIN s_vitis."user" ON user_group.user_id = "user".user_id WHERE "user".login::name = "current_user"())); + -- u_vitis est propriétaire de toutes vos tables + ALTER TABLE s_extraction.version OWNER TO u_vitis; + ALTER TABLE s_extraction.rt_feature_model OWNER TO u_vitis; + ALTER TABLE s_extraction.extraction OWNER TO u_vitis; + --ALTER TABLE s_extraction.ct OWNER TO u_vitis; + --ALTER TABLE s_extraction.commune OWNER TO u_vitis; + ALTER TABLE s_extraction.rt_coordsys OWNER TO u_vitis; + ALTER TABLE s_extraction.v_extraction OWNER TO u_vitis; + ALTER TABLE s_extraction.rt_format OWNER TO u_vitis; + ALTER TABLE s_extraction.rt_layer OWNER TO u_vitis; + ALTER TABLE s_extraction.rt_extraction_status OWNER TO u_vitis; + ALTER TABLE s_extraction.rt_extraction_status_group OWNER TO u_vitis; + ALTER TABLE s_extraction.extraction_history OWNER TO u_vitis; + -- u_vitis propriétaire sur les tables des objets WAB + --ALTER TABLE s_extraction.rt_extraction_status OWNER to u_vitis; + --ALTER TABLE s_extraction.rt_extraction_status_group OWNER to u_vitis; + --ALTER TABLE s_extraction.extraction_history OWNER to u_vitis; + -- Gestion des droits d'après les méthodes php saisies pour vos objets (annule et remplace) + REVOKE ALL ON TABLE s_extraction.rt_coordsys FROM extraction_admin; + REVOKE ALL ON TABLE s_extraction.v_extraction FROM extraction_user; + REVOKE ALL ON TABLE s_extraction.rt_format FROM extraction_admin; + REVOKE ALL ON TABLE s_extraction.rt_layer FROM extraction_admin; + GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE s_extraction.rt_coordsys TO extraction_admin; + GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE s_extraction.v_extraction TO extraction_user; + GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE s_extraction.rt_format TO extraction_admin; + GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE s_extraction.rt_layer TO extraction_admin; + -- Droits sur les tables des objets WAB + GRANT SELECT ON TABLE s_extraction.rt_extraction_status TO extraction_user; + GRANT SELECT ON TABLE s_extraction.rt_extraction_status_group TO extraction_user; + GRANT SELECT, INSERT ON TABLE s_extraction.extraction_history TO extraction_user; + INSERT INTO s_gtf.messageclass (messageclass, messageclass_type) VALUES ('AE Généré','action'); + INSERT INTO s_gtf.messageclass (messageclass, messageclass_type) VALUES ('Extraction Aix','action'); + INSERT INTO s_gtf.messageclass_action (messageclass_action_id, messageclass, actionclass, index, parameters) VALUES ((SELECT nextval('s_gtf.seq_common'::regclass)),'AE Généré','BoAction',0,'bo_id_attribute=''bo_id''|method=''trGenerer''|class=''Extractions''|module=''extraction'''); + INSERT INTO s_gtf.messageclass_action (messageclass_action_id, messageclass, actionclass, index, parameters) VALUES ((SELECT nextval('s_gtf.seq_common'::regclass)),'AE Généré','EmailAction',1,'template_id = ' || (SELECT email_template_id FROM s_gtf.email_template WHERE name = 'Email demandeur AE généré')); + INSERT INTO s_gtf.messageclass_action (messageclass_action_id, messageclass, actionclass, index, parameters) VALUES ((SELECT nextval('s_gtf.seq_common'::regclass)),'Extraction Aix','EmailAction',1,'template_id = ' || (SELECT email_template_id FROM s_gtf.email_template WHERE name = 'Email controleur données extraites')); + INSERT INTO s_gtf.messageclass_action (messageclass_action_id, messageclass, actionclass, index, parameters) VALUES ((SELECT nextval('s_gtf.seq_common'::regclass)),'Extraction Aix','EmailAction',2,'template_id = ' || (SELECT email_template_id FROM s_gtf.email_template WHERE name = 'Email demandeur données extraites')); + INSERT INTO s_gtf.messageclass_action (messageclass_action_id, messageclass, actionclass, index, parameters) VALUES ((SELECT nextval('s_gtf.seq_common'::regclass)),'Extraction Aix','BoAction',0,'bo_id_attribute=''bo_id''|method=''trTerminerExtraction''|class=''Extractions''|module=''extraction'''); + INSERT INTO s_gtf.email_template (name, subject, body, "to", cc, cci, code, use_advanced, rt_emailcontext_id, attachment) VALUES ('Email demandeur AE généré', NULL, NULL, NULL, NULL, NULL, '$logo = $this->aProperties[''ws_data_dir'']."/gtf/LOGO_AMP.jpg";' || chr(13) || '$base64 = base64_encode(file_get_contents($logo));' || chr(13) || '$image = ''<img src="data:image/png;base64,''.$base64.''">'';' || chr(13) || 'require_once("gtf_lib/gtf_object/Order.class.inc");' || chr(13) || 'require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || '$iBoId = $this->aObjects["oMessage"]->getBody(''bo_id'');' || chr(13) || '$sRequest = "SELECT * from s_extraction.extraction where bo_id = ".$iBoId;' || chr(13) || '$oPDOresult = $this->oBd->executeWithParams($sRequest, array());' || chr(13) || '$aBo = $this->oBd->ligneSuivante ($oPDOresult);' || chr(13) || '$iOrderId = $this->aObjects["oMessage"]->getBody(''order_id'');' || chr(13) || '$this->aObjects["oOrder"]= new orderLib($oBd, $iOrderId, $this->aObjects["oMessage"]->aProperties, "v_order");' || chr(13) || 'error_log( print_r($this->aObjects[''oOrder''], true));' || chr(13) || '$this->aObjects[''oUser''] = new User($oBd, $this->aObjects[''oOrder'']->aFields[''user_id''], $this->aObjects["oMessage"]->aProperties);' || chr(13) || '$this->to = $aBo[''email''];' || chr(13) || '$this->cc = $this->aObjects["oOrder"]->aFields[''email_notifications''];' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[PAYS D\''AIX - SIGAM] Demande N° ''.$aBo[''bo_id''].'' - Acte d\''Engagement pour l\''utilisation des données SIG'';' || chr(13) || '$this->body = $image.''<p>Bonjour</p>' || chr(13) || '<p></p>' || chr(13) || '<p>Suite à votre demande n°''.$aBo[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($aBo[''creation_date''])).'' pour l\''extraction des données, <u>merci de bien vouloir déposer l\''acte d\''engagement</u> ci-joint complété et signé, à l\''adresse suivante:<br/>' || chr(13) || '<A HREF="https://scpa430.cpa.fr/extraction">Application Extraction</A></p>' || chr(13) || '<p>Une fois réceptionné, l\''acte d\''engagement sera soumis à la validation du Territoire du Pays d\''Aix.<br/>' || chr(13) || 'Si celui-ci est validé, vous recevrez les données par mail (taille < 5Mo) ou par lien de téléchargement (taille > 5Mo).</p>' || chr(13) || '<p>Cordialement,</p>' || chr(13) || '<p>Le service d\''Information Géographique et Applicatifs Métiers (SIGAM)<br/>' || chr(13) || 'Territoire du Pays d\''Aix<br/>' || chr(13) || 'Tel : 04 42 93 83 50<br/>' || chr(13) || 'Mail : <a href="mailto:sig.paysdaix@ampmetropole.fr">sig.paysdaix@ampmetropole.fr</a> </p>'';' || chr(13) || '// les résultats de moins de 5 Mo sont envoyés en pièce jointe' || chr(13) || ' if (filesize($this->aObjects["oOrder"]->aFields[''result_file''])> (5*1024*1024)){' || chr(13) || ' $this->body .= ''<p>Le résultat est disponible par téléchargement :<br/><a href="'' . $this->aObjects["oOrder"]->aFields[''result_url''] . ''">Télécharger le résultat</a></p>'';' || chr(13) || ' } else {' || chr(13) || ' $this->aAttachments[0] = $this->aObjects["oOrder"]->aFields[''result_file''];' || chr(13) || ' }' || chr(13) || 'error_log(print_r($this->aObjects["oOrder"]->aFields, true));', '1', 'gtf', NULL); + INSERT INTO s_gtf.email_template (name, subject, body, "to", cc, cci, code, use_advanced, rt_emailcontext_id, attachment) VALUES ('Email demandeur AE à resoumettre', NULL, NULL, NULL, NULL, NULL, 'require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || 'require_once("vmlib/logUtil.inc");' || chr(13) || '$iBoId = $this->aObjects["oBusinessObject"]->aValues[''bo_id''];' || chr(13) || '$sUserLogin = $this->aObjects["oBusinessObject"]->aValues[''requestor''];' || chr(13) || '$sSql = ''SELECT user_id FROM s_framework.user WHERE login=\''''.$this->aObjects[''oBusinessObject'']->aValues[''requestor''].''\'''';' || chr(13) || '//writeToErrorLog($sSql);' || chr(13) || '$oResult = $oBd->execute($sSql);' || chr(13) || 'if(!$oBd->erreurRencontree) {' || chr(13) || ' if ($oBd->nombreLigne ($oResult) > 0) {' || chr(13) || ' $this->aObjects[''oUser''] = new User($oBd, $oBd->objetSuivant($oResult)->user_id, $this->aObjects["oBusinessObject"]->aProperties);' || chr(13) || ' }' || chr(13) || '}' || chr(13) || '//$this->to = ''sig@agglo-paysdaix.fr'';' || chr(13) || '$this->to = $this->aObjects[''oBusinessObject'']->aValues[''email''];' || chr(13) || '$this->cc = '''';' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[PAYS D\''AIX- SIGAM] Demande N° ''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' - Acte d\''engagement non valide'';' || chr(13) || '$this->body = ''<p>Bonjour,</p>' || chr(13) || ' <p>Suite à votre demande n°''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($this->aObjects[''oBusinessObject'']->aValues[''creation_date''])).'' pour l\''extraction des données, votre demande n\''a pas encore été validée pour la ou les raisons suivantes :<br/>'';' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''signed''] == "false"){' || chr(13) || ' $this->body .= '' - L\''acte d\''engagement n\''est pas signé<br/>'';' || chr(13) || '}' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''identification_complete''] == "false"){' || chr(13) || ' $this->body .= '' - Le cadre d\''identification du dépositaire est incomplet<br/>'';' || chr(13) || '}' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''definition_complete''] == "false"){' || chr(13) || ' $this->body .= '' - La définition des traitements pour l\''usage du cadastre est non renseignée<br/>'';' || chr(13) || '}' || chr(13) || 'error_log(print_r($this->aObjects[''oBusinessObject'']->aValues, true));' || chr(13) || '//$this->body .= ''<p>''.$this->aObjects[''oBusinessObject'']->aValues[''comment''].''</p>'';' || chr(13) || '$this->body .=''<p><u>Merci de bien vouloir déposer à nouveau l\''acte d\''engagement</u> à l\''adresse suivante :<br/>' || chr(13) || '<A HREF="https://scpa430.cpa.fr/extraction">Application Extraction</A></p>' || chr(13) || '<p>Une fois réceptionné, l\''acte d\''engagement sera soumis à la validation du Territoire du Pays d\''Aix.<br/>' || chr(13) || 'Si celui-ci est validé, vous recevrez les données par mail (taille < 5Mo) ou par lien de téléchargement (taille > 5Mo).</p>' || chr(13) || '<p>Cordialement,</p>' || chr(13) || '<p>Le service d\''Information Géographique et Applicatifs Métiers (SIGAM)<br/>' || chr(13) || 'Territoire du Pays d\''Aix<br/>' || chr(13) || 'Tel : 04 42 93 83 50<br/>' || chr(13) || 'Mail : <a href="mailto:sig.paysdaix@ampmetropole.fr">sig.paysdaix@ampmetropole.fr</a> </p>'';' || chr(13) || '$this->aAttachments[0] = '''';' || chr(13) || '', '1', 'gtf', NULL); + INSERT INTO s_gtf.email_template (name, subject, body, "to", cc, cci, code, use_advanced, rt_emailcontext_id, attachment) VALUES ('Email controleur données extraites', NULL, NULL, NULL, NULL, NULL, 'require_once("gtf_lib/gtf_object/Order.class.inc");' || chr(13) || 'require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || '$iBoId = $this->aObjects["oMessage"]->getBody(''bo_id'');' || chr(13) || '$sRequest = "SELECT * from s_extraction.extraction where bo_id = ".$iBoId;' || chr(13) || '$oPDOresult = $this->oBd->executeWithParams($sRequest, array());' || chr(13) || '$aBo = $this->oBd->ligneSuivante ($oPDOresult);' || chr(13) || '$iOrderId = $this->aObjects["oMessage"]->getBody(''order_id'');' || chr(13) || '$this->aObjects["oOrder"]= new OrderLib($oBd, $iOrderId, $this->aObjects["oMessage"]->aProperties, "v_order");' || chr(13) || '$this->aObjects[''oUser''] = new User($oBd, $this->aObjects[''oOrder'']->aFields[''user_id''], $this->aObjects["oMessage"]->aProperties);' || chr(13) || '$this->to = ''sig.paysdaix@ampmetropole.fr'';' || chr(13) || '$this->cc = '''';' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[GTF] - Demande N° ''.$aBo[''bo_id''].'' - Extraction des données'';' || chr(13) || '$this->body = ''<p>Les données concernant la demande n°''.$aBo[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($aBo[''creation_date''])).'' ont été envoyées au demandeur.</p>' || chr(13) || '<p>Cordialement,</p>' || chr(13) || '<p>L\''application d\''extraction de données de GTF</p>'';' || chr(13) || '', '1', 'gtf', NULL); + INSERT INTO s_gtf.email_template (name, subject, body, "to", cc, cci, code, use_advanced, rt_emailcontext_id, attachment) VALUES ('public', NULL, NULL, NULL, NULL, NULL, '$logo = $this->aProperties[''ws_data_dir'']."/gtf/LOGO_AMP.jpg";' || chr(13) || '$base64 = base64_encode(file_get_contents($logo));' || chr(13) || '$image = ''<img src="data:image/png;base64,''.$base64.''">'';' || chr(13) || 'if ($this->aObjects["oOrder"]->aFields[''order_status_id''] == 3) {' || chr(13) || ' $this->to = '''' . $this->aObjects["oOrder"]->getUser()->aFields[''email''] . '''';' || chr(13) || ' $this->cc = '''' . $this->aObjects["oOrder"]->aFields[''email_notifications''] . '''';' || chr(13) || ' $this->cci = '''';' || chr(13) || ' $this->subject = ''[Pays d\''Aix - SIGAM] - Données extraites'';' || chr(13) || ' $this->body = $image.''<p>Bonjour,</p>'';' || chr(13) || ' $this->body .=''<p></p><p>Les données correspondant à votre demande en date du ''.date(''d/m/Y'',strtotime($this->aObjects["oOrder"]->aFields[''order_date''])).'' sont disponibles '';' || chr(13) || ' if (filesize($this->aObjects["oOrder"]->aFields[''result_file''])> 5242880){' || chr(13) || ' $this->body .= ''sur le lien de téléchargement suivant :<br/><a href="''.$this->aObjects["oOrder"]->aFields[''result_url''] . ''">Télécharger le résultat</a></p>'';' || chr(13) || ' } else {' || chr(13) || ' $this->body .= ''en pièce jointe.</p>'';' || chr(13) || ' $this->aAttachments[0] = $this->aObjects["oOrder"]->aFields[''result_file''];' || chr(13) || ' }' || chr(13) || ' $this->body .=''<p>Vous en souhaitant bonne réception,</p>' || chr(13) || ' <p>Cordialement,</p>' || chr(13) || ' <p>Le service d\''Information Géographique et Applicatifs Métiers (SIGAM)<br/>' || chr(13) || ' Conseil de Territoire du Pays d\''Aix<br/>' || chr(13) || ' Tel : 04 42 93 83 50<br/>' || chr(13) || ' Mail : <a href="mailto:sig.paysdaix@ampmetropole.fr">sig.paysdaix@ampmetropole.fr</a> </p>' || chr(13) || '' || chr(13) || ' '';' || chr(13) || '}else{' || chr(13) || ' $this->to = '''' . $this->aObjects["oOrder"]->getUser()->aFields[''email''] . '''';' || chr(13) || ' $this->subject = ''[GTF]-'' . $this->aObjects["oOrder"]->getWorkspace()->aFields[''name''] . '' - Echec du traitement'';' || chr(13) || ' $this->body = $image.''<p>Bonjour,</p>'';' || chr(13) || ' $this->body .= ''<p>La demande n°'' . $this->aObjects["oOrder"]->aFields[''order_id''] . '' pour le traitement <strong>'' . $this->aObjects["oOrder"]->getWorkspace()->aFields[''name''] . ''</strong> n\''a pu être exécutée correctement suite à une erreur.<br/> Veuillez contactez votre administrateur.<br/>'';' || chr(13) || ' $this->aAttachments[0] = $this->aObjects["oOrder"]->aFields[''log_file''];' || chr(13) || '}', '1', 'gtf', NULL); + INSERT INTO s_gtf.email_template (name, subject, body, "to", cc, cci, code, use_advanced, rt_emailcontext_id, attachment) VALUES ('Email contrôleur AE soumis', NULL, NULL, NULL, NULL, NULL, 'require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || 'require_once("vmlib/logUtil.inc");' || chr(13) || '$iBoId = $this->aObjects["oBusinessObject"]->aValues[''bo_id''];' || chr(13) || '' || chr(13) || '//$this->to = ''sig.paysdaix@ampmetropole.fr'';' || chr(13) || '$this->to = ''sofian.pujo@veremes.com'';' || chr(13) || '$this->cc = '''';' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[GTF] - Demande N° ''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' - Dépôt de l\''Acte d\''Engagement à valider'';' || chr(13) || '$this->body = ''<p>Bonjour,</p>' || chr(13) || ' <p> </p>' || chr(13) || ' <p>L\''acte d\''engagement correspondant à la demande n°''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($this->aObjects[''oBusinessObject'']->aValues[''creation_date''])).'' a été déposé sur le serveur par le demandeur.</p>' || chr(13) || ' <p></p>' || chr(13) || ' <p>Cordialement,</p>' || chr(13) || ' <p> </p>' || chr(13) || ' <p>L\''application d\''extraction de données de GTF</p>'';' || chr(13) || 'error_log($this->body);' || chr(13) || '$this->aAttachments[0] = '''';' || chr(13) || '', '1', 'gtf', NULL); + INSERT INTO s_gtf.email_template (name, subject, body, "to", cc, cci, code, use_advanced, rt_emailcontext_id, attachment) VALUES ('Email demandeur Extraction refusée', NULL, NULL, NULL, NULL, NULL, 'require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || 'require_once("vmlib/logUtil.inc");' || chr(13) || '$iBoId = $this->aObjects["oBusinessObject"]->aValues[''bo_id''];' || chr(13) || '$sUserLogin = $this->aObjects["oBusinessObject"]->aValues[''requestor''];' || chr(13) || '$sSql = ''SELECT user_id FROM s_vitis.user WHERE login=\''''.$this->aObjects[''oBusinessObject'']->aValues[''requestor''].''\'''';' || chr(13) || '//writeToErrorLog($sSql);' || chr(13) || '$oResult = $oBd->execute($sSql);' || chr(13) || '/*if(!$oBd->erreurRencontree) {' || chr(13) || ' if ($oBd->nombreLigne ($oResult) > 0) {' || chr(13) || ' $this->aObjects[''oUser''] = new User($oBd, $oBd->objetSuivant($oResult)->user_id, $this->aObjects["oBusinessObject"]->aProperties);' || chr(13) || ' }' || chr(13) || '}*/' || chr(13) || '//$this->to = ''sig.paysdaix@ampmetropole.fr'';' || chr(13) || 'error_log(print_r($this->aObjects[''oBusinessObject''], true));' || chr(13) || '//$this->to = $this->aObjects[''oBusinessObject'']->aValues[''email''];' || chr(13) || '$this->cc = '''';' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[PAYS D\''AIX - SIGAM] Demande N° ''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' - Rejet de votre demande d\''extraction de données'';' || chr(13) || '$this->body = ''<p>Bonjour,</p>' || chr(13) || ' <p>Suite à votre demande n°''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($this->aObjects[''oBusinessObject'']->aValues[''creation_date''])).'' pour l\''extraction des données, votre demande a été rejetée pour la ou les raisons suivantes :<br/>'';' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''signed''] == "false"){' || chr(13) || ' $this->body .= '' - L\''acte d\''engagement n\''est pas signé<br/>'';' || chr(13) || '}' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''accepted_by_cpa''] == "false"){' || chr(13) || ' $this->body .= '' - La CPA ne valide pas l\''usage décrit pour les données du cadastre<br/>'';' || chr(13) || '}' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''identification_complete''] == "false"){' || chr(13) || ' $this->body .= '' - Le cadre d\''identification du dépositaire est incomplet</p>'';' || chr(13) || '}' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''definition_complete''] == "false"){' || chr(13) || ' $this->body .= '' - La définition des traitements pour l\''usage du cadastre est non renseignée<br/>'';' || chr(13) || '}' || chr(13) || '$this->body .= $this->aObjects[''oBusinessObject'']->aValues[''comment''].''<br/>'';' || chr(13) || '$this->body .=''<p>Cordialement,</p>' || chr(13) || '<p>Le service d\''Information Géographique et Applicatifs Métiers (SIGAM)<br/>' || chr(13) || 'Territoire du Pays d\''Aix<br/>' || chr(13) || 'Tel : 04 42 93 83 50<br/>' || chr(13) || 'Mail : <a href="mailto:sig.paysdaix@ampmetropole.fr">sig.paysdaix@ampmetropole.fr</a> </p>'';' || chr(13) || '$this->aAttachments[0] = '''';' || chr(13) || '', '1', 'gtf', NULL); + INSERT INTO s_gtf.email_template (name, subject, body, "to", cc, cci, code, use_advanced, rt_emailcontext_id, attachment) VALUES ('Email demandeur données extraites', NULL, NULL, NULL, NULL, NULL, 'require_once("gtf_lib/gtf_object/Order.class.inc");' || chr(13) || 'require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || '$iBoId = $this->aObjects["oMessage"]->getBody(''bo_id'');' || chr(13) || '$sRequest = "SELECT * from s_extraction.extraction where bo_id = ".$iBoId;' || chr(13) || '$oPDOresult = $this->oBd->executeWithParams($sRequest, array());' || chr(13) || '$aBo = $this->oBd->ligneSuivante ($oPDOresult);' || chr(13) || '$iOrderId = $this->aObjects["oMessage"]->getBody(''order_id'');' || chr(13) || '$this->aObjects["oOrder"]= new OrderLib($oBd, $iOrderId, $this->aObjects["oMessage"]->aProperties, "v_order");' || chr(13) || '$sUserLogin = $aBo[''requestor''];' || chr(13) || '$sSql = ''SELECT user_id FROM s_framework.user WHERE login=\''''.$this->aObjects[''oBusinessObject'']->aValues[''requestor''].''\'''';' || chr(13) || '$oResult = $oBd->execute($sSql);' || chr(13) || 'if(!$oBd->erreurRencontree) {' || chr(13) || ' if ($oBd->nombreLigne ($oResult) > 0) {' || chr(13) || ' $this->aObjects[''oUser''] = new User($oBd, $oBd->objetSuivant($oResult)->user_id, $this->aObjects["oMessage"]->aProperties);' || chr(13) || ' }' || chr(13) || '}' || chr(13) || '$this->to = $aBo[''email''];' || chr(13) || '$this->cc = $this->aObjects["oOrder"]->aFields[''email_notifications''];' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[PAYS D\''AIX - SIGAM] Demande N° ''.$aBo[''bo_id''].'' - Données SIG extraites'';' || chr(13) || '$this->body = ''<p>Bonjour</p>' || chr(13) || '<p></p><p>Les données correspondant à votre demande n°''.$aBo[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($aBo[''creation_date''])).'' sont disponibles '';' || chr(13) || ' if (filesize($this->aObjects["oOrder"]->aFields[''result_file''])> 5242880){' || chr(13) || ' $this->body .= ''sur le lien de téléchargement suivant :<br/><a href="https://sigdata.agglo-paysdaix.fr/public/gtf/''.$this->aObjects["oOrder"]->aFields[''result_url''] . ''">Télécharger le résultat</a></p>'';' || chr(13) || ' } else {' || chr(13) || ' $this->body .= ''en pièce jointe.</p>'';' || chr(13) || ' $this->aAttachments[0] = $this->aObjects["oOrder"]->aFields[''result_file''];' || chr(13) || ' }' || chr(13) || '$this->body .=''<p>Vous en souhaitant bonne réception,</p>' || chr(13) || '<p>Cordialement,</p>' || chr(13) || '<p>Le service d\''Information Géographique et Applicatifs Métiers (SIGAM)<br/>' || chr(13) || 'Terriroire du Pays d\''Aix<br/>' || chr(13) || 'Tel : 04 42 93 83 50<br/>' || chr(13) || 'Mail : <a href="mailto:sig.paysdaix@ampmetropole.fr">sig.paysdaix@ampmetropole.fr</a> </p>' || chr(13) || '' || chr(13) || ''';' || chr(13) || '// les résultats de moins de 5 Mo sont envoyés en pièce jointe' || chr(13) || ' ' || chr(13) || '', '1', 'gtf', NULL); + + ]]> + </code> + </query> + <query> + <type>update</type> + <version>2018-00-00</version> + <code> + <![CDATA[ + --Partie pour le module extraction version 2018-00-00 généré par WAB le 22/05/2018 à 09:09:32 + ALTER TABLE s_extraction.rt_layer ADD COLUMN ct_id integer; + UPDATE s_extraction.rt_layer set ct_id = 2; + ALTER TABLE s_extraction.rt_layer DROP CONSTRAINT pk_projet_type; + ALTER TABLE s_extraction.rt_layer ADD COLUMN layer_ct_id serial; + ALTER TABLE s_extraction.rt_layer ADD CONSTRAINT pk_layer_ct PRIMARY KEY (layer_ct_id); + ALTER TABLE s_extraction.rt_layer ADD COLUMN mutualized boolean; + ALTER TABLE s_extraction.rt_feature_model ADD COLUMN ct_id integer; + UPDATE s_extraction.rt_feature_model set ct_id = 2; + ALTER TABLE s_extraction.rt_feature_model ADD COLUMN layer_ct_id integer; + UPDATE s_extraction.rt_feature_model SET layer_ct_id = s_extraction.rt_layer.layer_ct_id FROM s_extraction.rt_layer WHERE rt_feature_model.feature_type = s_extraction.rt_layer.layer_id and rt_feature_model.ct_id = s_extraction.rt_feature_model.ct_id; + ALTER TABLE s_extraction.rt_feature_model DROP COLUMN ct_id; + ALTER TABLE s_extraction.rt_feature_model ALTER COLUMN layer_ct_id SET NOT NULL; + ALTER TABLE s_extraction.rt_layer ADD CONSTRAINT rt_layer_layer_id_ct_id_key UNIQUE (layer_id, ct_id); + ALTER TABLE ONLY s_extraction.rt_feature_model ADD CONSTRAINT fk_layer_ct_id FOREIGN KEY (layer_ct_id) REFERENCES s_extraction.rt_layer(layer_ct_id); + ALTER TABLE s_extraction.rt_feature_model ADD UNIQUE (feature_type, attribute_name, layer_ct_id); + ALTER TABLE s_extraction.extraction ADD COLUMN preco_tech boolean; + ALTER TABLE s_extraction.extraction ADD COLUMN chart_graph boolean; + ALTER TABLE s_extraction.extraction ADD COLUMN metadonnees boolean; + DROP VIEW s_extraction.v_extraction; + CREATE OR REPLACE VIEW s_extraction.v_extraction AS SELECT DISTINCT extraction.bo_id, extraction.status_id, extraction.history, extraction.creation_date, extraction.requestor, extraction.ae, extraction.extent, extraction.company, extraction.layers, extraction.vector_format_id, extraction.vector_format_id AS format_id, extraction.coordsys_id, extraction.raster_format_id, extraction.extent_method, extraction.signed, extraction.accepted_by_cpa, extraction.identification_complete, extraction.definition_complete, extraction.priority_id, extraction.id_com, extraction.id_conseil, extraction.email, extraction.note, extraction.preco_tech, extraction.chart_graph, extraction.metadonnees, rt_extraction_status.progress AS progress_level, rt_extraction_status.name AS status_name, rt_extraction_status.name AS status FROM s_extraction.extraction LEFT JOIN s_extraction.rt_extraction_status ON extraction.status_id = rt_extraction_status.status_id LEFT JOIN s_extraction.rt_extraction_status_group ON rt_extraction_status.status_id = rt_extraction_status_group.status_id LEFT JOIN s_vitis.user_group ON rt_extraction_status_group.group_id = user_group.group_id LEFT JOIN s_vitis."user" ON user_group.user_id = "user".user_id WHERE "user".login::name = "current_user"() AND (extraction.requestor::name = "current_user"() OR rt_extraction_status_group.group_id = 12); + ALTER TABLE s_extraction.v_extraction OWNER TO u_vitis; + GRANT ALL ON TABLE s_extraction.v_extraction TO extraction_user; + GRANT ALL ON TABLE s_extraction.v_extraction TO u_vitis; + GRANT ALL ON TABLE s_extraction.v_extraction TO extraction_admin; + COMMENT ON COLUMN s_extraction.extraction.history is 'deprecated'; + COMMENT ON COLUMN s_extraction.extraction.status is 'deprecated'; + CREATE SEQUENCE s_extraction.ct_ct_id_seq; + ALTER SEQUENCE s_extraction.ct_ct_id_seq OWNER TO u_vitis; + CREATE TABLE s_extraction.ct( ct_id integer NOT NULL DEFAULT nextval('s_extraction.ct_ct_id_seq'::regclass), name character varying(50) COLLATE pg_catalog."default" NOT NULL, format character varying(255) COLLATE pg_catalog."default", namedconnection character varying(255) COLLATE pg_catalog."default", geom geometry(MultiPolygon,2154), CONSTRAINT pk_ct PRIMARY KEY (ct_id) ); + ALTER TABLE s_extraction.ct OWNER to u_vitis; + GRANT SELECT ON TABLE s_extraction.ct TO extraction_admin; + GRANT SELECT ON TABLE s_extraction.ct TO extraction_user; + GRANT ALL ON TABLE s_extraction.ct TO u_vitis; + CREATE INDEX ct_ct_id ON s_extraction.ct USING btree (ct_id); + CREATE TABLE s_extraction.commune (commune_id character(6) COLLATE pg_catalog."default" NOT NULL,ct_id integer, name varchar(255) COLLATE pg_catalog."default" NOT NULL,geom geometry(Polygon,2154) NOT NULL,CONSTRAINT pk_commune PRIMARY KEY (commune_id), CONSTRAINT fk_ct_id FOREIGN KEY (ct_id) REFERENCES s_extraction.ct (ct_id) MATCH SIMPLE ON UPDATE RESTRICT ON DELETE SET NULL); + ALTER TABLE s_extraction.commune OWNER to u_vitis; + GRANT SELECT ON TABLE s_extraction.commune TO extraction_admin; + GRANT SELECT ON TABLE s_extraction.commune TO extraction_user; + GRANT ALL ON TABLE s_extraction.commune TO u_vitis; + --Partie WABSQL générée par WAB le 04/05/2018 à 10:02:22 + -- Ces tables sont normalement prévues dans votre fichier VisualParadigm et sont necessaires pour le fonctionnement de vos objets WAB + -- CREATE TABLE s_extraction.rt_extraction_status (status_id integer NOT NULL DEFAULT nextval('s_dtnet.seq_common'::regclass), name character varying(50) NOT NULL, progress integer NOT NULL, CONSTRAINT rt_extraction_status_pkey PRIMARY KEY (status_id)); + -- CREATE TABLE s_extraction.rt_extraction_status_group (status_id integer NOT NULL, group_id integer NOT NULL, link_id integer NOT NULL DEFAULT nextval('s_dtnet.seq_common'::regclass), CONSTRAINT rt_extraction_status_group_pkey PRIMARY KEY (link_id), CONSTRAINT fk_extraction_status_group FOREIGN KEY (status_id) REFERENCES s_extraction.rt_extraction_status (status_id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION); + -- CREATE TABLE s_extraction.extraction_history (history_id integer NOT NULL DEFAULT nextval('s_extraction.seq_common'::regclass), date timestamp with time zone NOT NULL, login character varying(50) NOT NULL, comment text NOT NULL, bo_id integer NOT NULL, CONSTRAINT extraction_history_pkey PRIMARY KEY (history_id), CONSTRAINT fk_extraction_history FOREIGN KEY (bo_id) REFERENCES s_extraction.extraction (bo_id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION); + -- Vue basique pour vos objets WAB tenant compte de la restriction groupe état + --CREATE VIEW s_extraction.v_extraction AS SELECT extraction.* FROM s_extraction.extraction LEFT JOIN s_extraction.rt_extraction_status ON rt_extraction_status.status_id = extraction.status_id JOIN s_extraction.rt_extraction_status_group ON rt_extraction_status.status_id = rt_extraction_status_group.status_id WHERE (rt_extraction_status_group.group_id IN ( SELECT user_group.group_id FROM s_vitis.user_group LEFT JOIN s_vitis."user" ON user_group.user_id = "user".user_id WHERE "user".login::name = "current_user"())); + -- u_vitis est propriétaire de toutes vos tables + ALTER TABLE s_extraction.rt_extraction_status_group OWNER TO u_vitis; + ALTER TABLE s_extraction.rt_format OWNER TO u_vitis; + ALTER TABLE s_extraction.v_extraction OWNER TO u_vitis; + ALTER TABLE s_extraction.rt_coordsys OWNER TO u_vitis; + ALTER TABLE s_extraction.rt_extraction_status OWNER TO u_vitis; + ALTER TABLE s_extraction.rt_layer OWNER TO u_vitis; + ALTER TABLE s_extraction.rt_feature_model OWNER TO u_vitis; + ALTER TABLE s_extraction.extraction OWNER TO u_vitis; + ALTER TABLE s_extraction.version OWNER TO u_vitis; + -- u_vitis propriétaire sur les tables des objets WAB + --ALTER TABLE s_extraction.rt_extraction_status OWNER to u_vitis; + --ALTER TABLE s_extraction.rt_extraction_status_group OWNER to u_vitis; + --ALTER TABLE s_extraction.extraction_history OWNER to u_vitis; + -- Gestion des droits d'après les méthodes php saisies pour vos objets (annule et remplace) + REVOKE ALL ON TABLE s_extraction.rt_coordsys FROM extraction_admin; + REVOKE ALL ON TABLE s_extraction.v_extraction FROM extraction_user; + REVOKE ALL ON TABLE s_extraction.rt_format FROM extraction_admin; + REVOKE ALL ON TABLE s_extraction.rt_layer FROM extraction_admin; + GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE s_extraction.rt_coordsys TO extraction_admin; + GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE s_extraction.v_extraction TO extraction_user; + GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE s_extraction.rt_format TO extraction_admin; + GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE s_extraction.rt_layer TO extraction_admin; + -- Droits sur les tables des objets WAB + GRANT SELECT ON TABLE s_extraction.rt_extraction_status TO extraction_user; + GRANT SELECT ON TABLE s_extraction.rt_extraction_status_group TO extraction_user; + GRANT SELECT, INSERT ON TABLE s_extraction.extraction_history TO extraction_user; + + + UPDATE s_gtf.email_template SET subject=NULL, body=NULL, "to"=NULL, cc=NULL, cci=NULL, code='$logo = $this->aProperties[''ws_data_dir'']."/gtf/LOGO_AMP.jpg";' || chr(13) || '$base64 = base64_encode(file_get_contents($logo));' || chr(13) || '$image = ''<img src="data:image/png;base64,''.$base64.''">'';' || chr(13) || 'require_once("gtf_lib/gtf_object/Order.class.inc");' || chr(13) || 'require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || '$iBoId = $this->aObjects["oMessage"]->getBody(''bo_id'');' || chr(13) || '$sRequest = "SELECT * from s_extraction.extraction where bo_id = ".$iBoId;' || chr(13) || '$oPDOresult = $this->oBd->executeWithParams($sRequest, array());' || chr(13) || '$aBo = $this->oBd->ligneSuivante ($oPDOresult);' || chr(13) || '$iOrderId = $this->aObjects["oMessage"]->getBody(''order_id'');' || chr(13) || '$this->aObjects["oOrder"]= new orderLib($oBd, $iOrderId, $this->aObjects["oMessage"]->aProperties, "v_order");' || chr(13) || 'error_log( print_r($this->aObjects[''oOrder''], true));' || chr(13) || '$this->aObjects[''oUser''] = new User($oBd, $this->aObjects[''oOrder'']->aFields[''user_id''], $this->aObjects["oMessage"]->aProperties);' || chr(13) || '$this->to = $aBo[''email''];' || chr(13) || '$this->cc = $this->aObjects["oOrder"]->aFields[''email_notifications''];' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[PAYS D\''AIX - SIGAM] Demande N° ''.$aBo[''bo_id''].'' - Acte d\''Engagement pour l\''utilisation des données SIG'';' || chr(13) || '$this->body = $image.''<p>Bonjour</p>' || chr(13) || '<p></p>' || chr(13) || '<p>Suite à votre demande n°''.$aBo[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($aBo[''creation_date''])).'' pour l\''extraction des données, <u>merci de bien vouloir déposer l\''acte d\''engagement</u> ci-joint complété et signé, à l\''adresse suivante:<br/>' || chr(13) || '<A HREF="https://scpa430.cpa.fr/extraction">Application Extraction</A></p>' || chr(13) || '<p>Une fois réceptionné, l\''acte d\''engagement sera soumis à la validation du Territoire du Pays d\''Aix.<br/>' || chr(13) || 'Si celui-ci est validé, vous recevrez les données par mail (taille < 5Mo) ou par lien de téléchargement (taille > 5Mo).</p>' || chr(13) || '<p>Cordialement,</p>' || chr(13) || '<p>Le service d\''Information Géographique et Applicatifs Métiers (SIGAM)<br/>' || chr(13) || 'Territoire du Pays d\''Aix<br/>' || chr(13) || 'Tel : 04 42 93 83 50<br/>' || chr(13) || 'Mail : <a href="mailto:sig.paysdaix@ampmetropole.fr">sig.paysdaix@ampmetropole.fr</a> </p>'';' || chr(13) || '// les résultats de moins de 5 Mo sont envoyés en pièce jointe' || chr(13) || ' if (filesize($this->aObjects["oOrder"]->aFields[''result_file''])> (5*1024*1024)){' || chr(13) || ' $this->body .= ''<p>Le résultat est disponible par téléchargement :<br/><a href="'' . $this->aObjects["oOrder"]->aFields[''result_url''] . ''">Télécharger le résultat</a></p>'';' || chr(13) || ' } else {' || chr(13) || ' $this->aAttachments[0] = $this->aObjects["oOrder"]->aFields[''result_file''];' || chr(13) || ' }' || chr(13) || 'error_log(print_r($this->aObjects["oOrder"]->aFields, true));', use_advanced='1', rt_emailcontext_id='gtf', attachment=NULL WHERE "name"='Email demandeur AE généré'; + UPDATE s_gtf.email_template SET subject=NULL, body=NULL, "to"=NULL, cc=NULL, cci=NULL, code='require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || 'require_once("vmlib/logUtil.inc");' || chr(13) || '$iBoId = $this->aObjects["oBusinessObject"]->aValues[''bo_id''];' || chr(13) || '$sUserLogin = $this->aObjects["oBusinessObject"]->aValues[''requestor''];' || chr(13) || '$sSql = ''SELECT user_id FROM s_framework.user WHERE login=\''''.$this->aObjects[''oBusinessObject'']->aValues[''requestor''].''\'''';' || chr(13) || '//writeToErrorLog($sSql);' || chr(13) || '$oResult = $oBd->execute($sSql);' || chr(13) || 'if(!$oBd->erreurRencontree) {' || chr(13) || ' if ($oBd->nombreLigne ($oResult) > 0) {' || chr(13) || ' $this->aObjects[''oUser''] = new User($oBd, $oBd->objetSuivant($oResult)->user_id, $this->aObjects["oBusinessObject"]->aProperties);' || chr(13) || ' }' || chr(13) || '}' || chr(13) || '//$this->to = ''sig@agglo-paysdaix.fr'';' || chr(13) || '$this->to = $this->aObjects[''oBusinessObject'']->aValues[''email''];' || chr(13) || '$this->cc = '''';' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[PAYS D\''AIX- SIGAM] Demande N° ''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' - Acte d\''engagement non valide'';' || chr(13) || '$this->body = ''<p>Bonjour,</p>' || chr(13) || ' <p>Suite à votre demande n°''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($this->aObjects[''oBusinessObject'']->aValues[''creation_date''])).'' pour l\''extraction des données, votre demande n\''a pas encore été validée pour la ou les raisons suivantes :<br/>'';' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''signed''] == "false"){' || chr(13) || ' $this->body .= '' - L\''acte d\''engagement n\''est pas signé<br/>'';' || chr(13) || '}' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''identification_complete''] == "false"){' || chr(13) || ' $this->body .= '' - Le cadre d\''identification du dépositaire est incomplet<br/>'';' || chr(13) || '}' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''definition_complete''] == "false"){' || chr(13) || ' $this->body .= '' - La définition des traitements pour l\''usage du cadastre est non renseignée<br/>'';' || chr(13) || '}' || chr(13) || 'error_log(print_r($this->aObjects[''oBusinessObject'']->aValues, true));' || chr(13) || '//$this->body .= ''<p>''.$this->aObjects[''oBusinessObject'']->aValues[''comment''].''</p>'';' || chr(13) || '$this->body .=''<p><u>Merci de bien vouloir déposer à nouveau l\''acte d\''engagement</u> à l\''adresse suivante :<br/>' || chr(13) || '<A HREF="https://scpa430.cpa.fr/extraction">Application Extraction</A></p>' || chr(13) || '<p>Une fois réceptionné, l\''acte d\''engagement sera soumis à la validation du Territoire du Pays d\''Aix.<br/>' || chr(13) || 'Si celui-ci est validé, vous recevrez les données par mail (taille < 5Mo) ou par lien de téléchargement (taille > 5Mo).</p>' || chr(13) || '<p>Cordialement,</p>' || chr(13) || '<p>Le service d\''Information Géographique et Applicatifs Métiers (SIGAM)<br/>' || chr(13) || 'Territoire du Pays d\''Aix<br/>' || chr(13) || 'Tel : 04 42 93 83 50<br/>' || chr(13) || 'Mail : <a href="mailto:sig.paysdaix@ampmetropole.fr">sig.paysdaix@ampmetropole.fr</a> </p>'';' || chr(13) || '$this->aAttachments[0] = '''';' || chr(13) || '', use_advanced='1', rt_emailcontext_id='gtf', attachment=NULL WHERE "name"='Email demandeur AE à resoumettre'; + UPDATE s_gtf.email_template SET subject=NULL, body=NULL, "to"=NULL, cc=NULL, cci=NULL, code='require_once("gtf_lib/gtf_object/Order.class.inc");' || chr(13) || 'require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || '$iBoId = $this->aObjects["oMessage"]->getBody(''bo_id'');' || chr(13) || '$sRequest = "SELECT * from s_extraction.extraction where bo_id = ".$iBoId;' || chr(13) || '$oPDOresult = $this->oBd->executeWithParams($sRequest, array());' || chr(13) || '$aBo = $this->oBd->ligneSuivante ($oPDOresult);' || chr(13) || '$iOrderId = $this->aObjects["oMessage"]->getBody(''order_id'');' || chr(13) || '$this->aObjects["oOrder"]= new OrderLib($oBd, $iOrderId, $this->aObjects["oMessage"]->aProperties, "v_order");' || chr(13) || '$this->aObjects[''oUser''] = new User($oBd, $this->aObjects[''oOrder'']->aFields[''user_id''], $this->aObjects["oMessage"]->aProperties);' || chr(13) || '$this->to = ''sig.paysdaix@ampmetropole.fr'';' || chr(13) || '$this->cc = '''';' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[GTF] - Demande N° ''.$aBo[''bo_id''].'' - Extraction des données'';' || chr(13) || '$this->body = ''<p>Les données concernant la demande n°''.$aBo[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($aBo[''creation_date''])).'' ont été envoyées au demandeur.</p>' || chr(13) || '<p>Cordialement,</p>' || chr(13) || '<p>L\''application d\''extraction de données de GTF</p>'';' || chr(13) || '', use_advanced='1', rt_emailcontext_id='gtf', attachment=NULL WHERE "name"='Email controleur données extraites'; + UPDATE s_gtf.email_template SET subject=NULL, body=NULL, "to"=NULL, cc=NULL, cci=NULL, code='$logo = $this->aProperties[''ws_data_dir'']."/gtf/LOGO_AMP.jpg";' || chr(13) || '$base64 = base64_encode(file_get_contents($logo));' || chr(13) || '$image = ''<img src="data:image/png;base64,''.$base64.''">'';' || chr(13) || 'if ($this->aObjects["oOrder"]->aFields[''order_status_id''] == 3) {' || chr(13) || ' $this->to = '''' . $this->aObjects["oOrder"]->getUser()->aFields[''email''] . '''';' || chr(13) || ' $this->cc = '''' . $this->aObjects["oOrder"]->aFields[''email_notifications''] . '''';' || chr(13) || ' $this->cci = '''';' || chr(13) || ' $this->subject = ''[Pays d\''Aix - SIGAM] - Données extraites'';' || chr(13) || ' $this->body = $image.''<p>Bonjour,</p>'';' || chr(13) || ' $this->body .=''<p></p><p>Les données correspondant à votre demande en date du ''.date(''d/m/Y'',strtotime($this->aObjects["oOrder"]->aFields[''order_date''])).'' sont disponibles '';' || chr(13) || ' if (filesize($this->aObjects["oOrder"]->aFields[''result_file''])> 5242880){' || chr(13) || ' $this->body .= ''sur le lien de téléchargement suivant :<br/><a href="''.$this->aObjects["oOrder"]->aFields[''result_url''] . ''">Télécharger le résultat</a></p>'';' || chr(13) || ' } else {' || chr(13) || ' $this->body .= ''en pièce jointe.</p>'';' || chr(13) || ' $this->aAttachments[0] = $this->aObjects["oOrder"]->aFields[''result_file''];' || chr(13) || ' }' || chr(13) || ' $this->body .=''<p>Vous en souhaitant bonne réception,</p>' || chr(13) || ' <p>Cordialement,</p>' || chr(13) || ' <p>Le service d\''Information Géographique et Applicatifs Métiers (SIGAM)<br/>' || chr(13) || ' Conseil de Territoire du Pays d\''Aix<br/>' || chr(13) || ' Tel : 04 42 93 83 50<br/>' || chr(13) || ' Mail : <a href="mailto:sig.paysdaix@ampmetropole.fr">sig.paysdaix@ampmetropole.fr</a> </p>' || chr(13) || '' || chr(13) || ' '';' || chr(13) || '}else{' || chr(13) || ' $this->to = '''' . $this->aObjects["oOrder"]->getUser()->aFields[''email''] . '''';' || chr(13) || ' $this->subject = ''[GTF]-'' . $this->aObjects["oOrder"]->getWorkspace()->aFields[''name''] . '' - Echec du traitement'';' || chr(13) || ' $this->body = $image.''<p>Bonjour,</p>'';' || chr(13) || ' $this->body .= ''<p>La demande n°'' . $this->aObjects["oOrder"]->aFields[''order_id''] . '' pour le traitement <strong>'' . $this->aObjects["oOrder"]->getWorkspace()->aFields[''name''] . ''</strong> n\''a pu être exécutée correctement suite à une erreur.<br/> Veuillez contactez votre administrateur.<br/>'';' || chr(13) || ' $this->aAttachments[0] = $this->aObjects["oOrder"]->aFields[''log_file''];' || chr(13) || '}', use_advanced='1', rt_emailcontext_id='gtf', attachment=NULL WHERE "name"='public'; + UPDATE s_gtf.email_template SET subject=NULL, body=NULL, "to"=NULL, cc=NULL, cci=NULL, code='require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || 'require_once("vmlib/logUtil.inc");' || chr(13) || '$iBoId = $this->aObjects["oBusinessObject"]->aValues[''bo_id''];' || chr(13) || '' || chr(13) || '//$this->to = ''sig.paysdaix@ampmetropole.fr'';' || chr(13) || '$this->to = ''sofian.pujo@veremes.com'';' || chr(13) || '$this->cc = '''';' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[GTF] - Demande N° ''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' - Dépôt de l\''Acte d\''Engagement à valider'';' || chr(13) || '$this->body = ''<p>Bonjour,</p>' || chr(13) || ' <p> </p>' || chr(13) || ' <p>L\''acte d\''engagement correspondant à la demande n°''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($this->aObjects[''oBusinessObject'']->aValues[''creation_date''])).'' a été déposé sur le serveur par le demandeur.</p>' || chr(13) || ' <p></p>' || chr(13) || ' <p>Cordialement,</p>' || chr(13) || ' <p> </p>' || chr(13) || ' <p>L\''application d\''extraction de données de GTF</p>'';' || chr(13) || 'error_log($this->body);' || chr(13) || '$this->aAttachments[0] = '''';' || chr(13) || '', use_advanced='1', rt_emailcontext_id='gtf', attachment=NULL WHERE "name"='Email contrôleur AE soumis'; + UPDATE s_gtf.email_template SET subject=NULL, body=NULL, "to"=NULL, cc=NULL, cci=NULL, code='require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || 'require_once("vmlib/logUtil.inc");' || chr(13) || '$iBoId = $this->aObjects["oBusinessObject"]->aValues[''bo_id''];' || chr(13) || '$sUserLogin = $this->aObjects["oBusinessObject"]->aValues[''requestor''];' || chr(13) || '$sSql = ''SELECT user_id FROM s_vitis.user WHERE login=\''''.$this->aObjects[''oBusinessObject'']->aValues[''requestor''].''\'''';' || chr(13) || '//writeToErrorLog($sSql);' || chr(13) || '$oResult = $oBd->execute($sSql);' || chr(13) || '/*if(!$oBd->erreurRencontree) {' || chr(13) || ' if ($oBd->nombreLigne ($oResult) > 0) {' || chr(13) || ' $this->aObjects[''oUser''] = new User($oBd, $oBd->objetSuivant($oResult)->user_id, $this->aObjects["oBusinessObject"]->aProperties);' || chr(13) || ' }' || chr(13) || '}*/' || chr(13) || '//$this->to = ''sig.paysdaix@ampmetropole.fr'';' || chr(13) || 'error_log(print_r($this->aObjects[''oBusinessObject''], true));' || chr(13) || '//$this->to = $this->aObjects[''oBusinessObject'']->aValues[''email''];' || chr(13) || '$this->cc = '''';' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[PAYS D\''AIX - SIGAM] Demande N° ''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' - Rejet de votre demande d\''extraction de données'';' || chr(13) || '$this->body = ''<p>Bonjour,</p>' || chr(13) || ' <p>Suite à votre demande n°''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($this->aObjects[''oBusinessObject'']->aValues[''creation_date''])).'' pour l\''extraction des données, votre demande a été rejetée pour la ou les raisons suivantes :<br/>'';' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''signed''] == "false"){' || chr(13) || ' $this->body .= '' - L\''acte d\''engagement n\''est pas signé<br/>'';' || chr(13) || '}' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''accepted_by_cpa''] == "false"){' || chr(13) || ' $this->body .= '' - La CPA ne valide pas l\''usage décrit pour les données du cadastre<br/>'';' || chr(13) || '}' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''identification_complete''] == "false"){' || chr(13) || ' $this->body .= '' - Le cadre d\''identification du dépositaire est incomplet</p>'';' || chr(13) || '}' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''definition_complete''] == "false"){' || chr(13) || ' $this->body .= '' - La définition des traitements pour l\''usage du cadastre est non renseignée<br/>'';' || chr(13) || '}' || chr(13) || '$this->body .= $this->aObjects[''oBusinessObject'']->aValues[''comment''].''<br/>'';' || chr(13) || '$this->body .=''<p>Cordialement,</p>' || chr(13) || '<p>Le service d\''Information Géographique et Applicatifs Métiers (SIGAM)<br/>' || chr(13) || 'Territoire du Pays d\''Aix<br/>' || chr(13) || 'Tel : 04 42 93 83 50<br/>' || chr(13) || 'Mail : <a href="mailto:sig.paysdaix@ampmetropole.fr">sig.paysdaix@ampmetropole.fr</a> </p>'';' || chr(13) || '$this->aAttachments[0] = '''';' || chr(13) || '', use_advanced='1', rt_emailcontext_id='gtf', attachment=NULL WHERE "name"='Email demandeur Extraction refusée'; + UPDATE s_gtf.email_template SET subject=NULL, body=NULL, "to"=NULL, cc=NULL, cci=NULL, code='require_once("gtf_lib/gtf_object/Order.class.inc");' || chr(13) || 'require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || '$iBoId = $this->aObjects["oMessage"]->getBody(''bo_id'');' || chr(13) || '$sRequest = "SELECT * from s_extraction.extraction where bo_id = ".$iBoId;' || chr(13) || '$oPDOresult = $this->oBd->executeWithParams($sRequest, array());' || chr(13) || '$aBo = $this->oBd->ligneSuivante ($oPDOresult);' || chr(13) || '$iOrderId = $this->aObjects["oMessage"]->getBody(''order_id'');' || chr(13) || '$this->aObjects["oOrder"]= new OrderLib($oBd, $iOrderId, $this->aObjects["oMessage"]->aProperties, "v_order");' || chr(13) || '$sUserLogin = $aBo[''requestor''];' || chr(13) || '$sSql = ''SELECT user_id FROM s_framework.user WHERE login=\''''.$this->aObjects[''oBusinessObject'']->aValues[''requestor''].''\'''';' || chr(13) || '$oResult = $oBd->execute($sSql);' || chr(13) || 'if(!$oBd->erreurRencontree) {' || chr(13) || ' if ($oBd->nombreLigne ($oResult) > 0) {' || chr(13) || ' $this->aObjects[''oUser''] = new User($oBd, $oBd->objetSuivant($oResult)->user_id, $this->aObjects["oMessage"]->aProperties);' || chr(13) || ' }' || chr(13) || '}' || chr(13) || '$this->to = $aBo[''email''];' || chr(13) || '$this->cc = $this->aObjects["oOrder"]->aFields[''email_notifications''];' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[PAYS D\''AIX - SIGAM] Demande N° ''.$aBo[''bo_id''].'' - Données SIG extraites'';' || chr(13) || '$this->body = ''<p>Bonjour</p>' || chr(13) || '<p></p><p>Les données correspondant à votre demande n°''.$aBo[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($aBo[''creation_date''])).'' sont disponibles '';' || chr(13) || ' if (filesize($this->aObjects["oOrder"]->aFields[''result_file''])> 5242880){' || chr(13) || ' $this->body .= ''sur le lien de téléchargement suivant :<br/><a href="https://sigdata.agglo-paysdaix.fr/public/gtf/''.$this->aObjects["oOrder"]->aFields[''result_url''] . ''">Télécharger le résultat</a></p>'';' || chr(13) || ' } else {' || chr(13) || ' $this->body .= ''en pièce jointe.</p>'';' || chr(13) || ' $this->aAttachments[0] = $this->aObjects["oOrder"]->aFields[''result_file''];' || chr(13) || ' }' || chr(13) || '$this->body .=''<p>Vous en souhaitant bonne réception,</p>' || chr(13) || '<p>Cordialement,</p>' || chr(13) || '<p>Le service d\''Information Géographique et Applicatifs Métiers (SIGAM)<br/>' || chr(13) || 'Terriroire du Pays d\''Aix<br/>' || chr(13) || 'Tel : 04 42 93 83 50<br/>' || chr(13) || 'Mail : <a href="mailto:sig.paysdaix@ampmetropole.fr">sig.paysdaix@ampmetropole.fr</a> </p>' || chr(13) || '' || chr(13) || ''';' || chr(13) || '// les résultats de moins de 5 Mo sont envoyés en pièce jointe' || chr(13) || ' ' || chr(13) || '', use_advanced='1', rt_emailcontext_id='gtf', attachment=NULL WHERE "name"='Email demandeur données extraites'; + DELETE FROM s_gtf.messageclass_action WHERE messageclass LIKE 'extraction_%'; + INSERT INTO s_gtf.messageclass_action (messageclass_action_id, messageclass, actionclass, index, parameters) VALUES ((SELECT nextval('s_gtf.seq_common'::regclass)),'AE Généré','BoAction',0,'bo_id_attribute=''bo_id''|method=''trGenerer''|class=''Extractions''|module=''extraction'''); + INSERT INTO s_gtf.messageclass_action (messageclass_action_id, messageclass, actionclass, index, parameters) VALUES ((SELECT nextval('s_gtf.seq_common'::regclass)),'AE Généré','EmailAction',1,'template_id = ' || (SELECT email_template_id FROM s_gtf.email_template WHERE name = 'Email demandeur AE généré')); + INSERT INTO s_gtf.messageclass_action (messageclass_action_id, messageclass, actionclass, index, parameters) VALUES ((SELECT nextval('s_gtf.seq_common'::regclass)),'Extraction Aix','EmailAction',1,'template_id = ' || (SELECT email_template_id FROM s_gtf.email_template WHERE name = 'Email controleur données extraites')); + INSERT INTO s_gtf.messageclass_action (messageclass_action_id, messageclass, actionclass, index, parameters) VALUES ((SELECT nextval('s_gtf.seq_common'::regclass)),'Extraction Aix','EmailAction',2,'template_id = ' || (SELECT email_template_id FROM s_gtf.email_template WHERE name = 'Email demandeur données extraites')); + INSERT INTO s_gtf.messageclass_action (messageclass_action_id, messageclass, actionclass, index, parameters) VALUES ((SELECT nextval('s_gtf.seq_common'::regclass)),'Extraction Aix','BoAction',0,'bo_id_attribute=''bo_id''|method=''trTerminerExtraction''|class=''Extractions''|module=''extraction'''); + --Partie s_vitis généré par WAB le 22/05/2018 à 09:09:31 + DELETE FROM s_vitis.vm_section WHERE label_id ~ '^extraction_([0-9]+)$'; + DELETE FROM s_vitis.vm_table_field WHERE label_id ~ '^extraction_([0-9]+)$'; + DELETE FROM s_vitis.vm_table_button WHERE label_id ~ '^extraction_([0-9]+)$'; + DELETE FROM s_vitis.vm_module WHERE module_id='extraction'; + DELETE FROM s_vitis.vm_string WHERE string_id ~ '^extraction_([0-9]+)$'; + INSERT INTO s_vitis.vm_module (module_id, description, version, label) VALUES ('extraction','Module Extraction CG34',0.1,'Module Extraction'); + INSERT INTO s_vitis.group (group_id, name) SELECT (SELECT nextval('s_vitis.seq_common'::regclass)), 'demandeur' WHERE NOT EXISTS (SELECT group_id FROM s_vitis.group WHERE name='demandeur'); + INSERT INTO s_vitis.group (group_id, name) SELECT (SELECT nextval('s_vitis.seq_common'::regclass)), 'controleur' WHERE NOT EXISTS (SELECT group_id FROM s_vitis.group WHERE name='controleur'); + INSERT INTO s_vitis.privileges (rolname, description) SELECT 'extraction_admin', 'administrateur extraction' WHERE NOT EXISTS (SELECT rolname FROM s_vitis.privileges WHERE rolname='extraction_admin'); + INSERT INTO s_vitis.privileges (rolname, description) SELECT 'extraction_user', 'utilisateur extraction' WHERE NOT EXISTS (SELECT rolname FROM s_vitis.privileges WHERE rolname='extraction_user'); + SELECT s_vitis.create_role_if_not_exists('extraction_admin', 'NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION'); + SELECT s_vitis.create_role_if_not_exists('extraction_user', 'NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Section General', 'extraction_1'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field bo_id', 'extraction_4'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field status', 'extraction_6'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('objet extraction_extraction', 'extraction_0'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field progress_level', 'extraction_7'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Supprimer', 'extraction_2'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field company', 'extraction_8'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Ajout', 'extraction_3'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field requestor', 'extraction_5'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field layers', 'extraction_9'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('objet extraction_coordsys', 'extraction_10'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Section General', 'extraction_11'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Supprimer', 'extraction_12'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Ajout', 'extraction_13'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('objet extraction_format', 'extraction_14'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Section General', 'extraction_15'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Supprimer', 'extraction_16'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Ajout', 'extraction_17'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('objet extraction_layer', 'extraction_18'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Section General', 'extraction_19'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Supprimer', 'extraction_20'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Ajout', 'extraction_21'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field coordsys_id', 'extraction_22'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field coordsys', 'extraction_23'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field format_id', 'extraction_24'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field format', 'extraction_25'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field use_for_raster', 'extraction_26'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field use_for_vector', 'extraction_27'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field layer_id', 'extraction_28'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field layer', 'extraction_29'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field category', 'extraction_30'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field restriction', 'extraction_31'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field unused_attributes', 'extraction_32'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Section General', 'extraction_33'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Supprimer', 'extraction_34'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Ajout', 'extraction_35'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Section General', 'extraction_36'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Supprimer', 'extraction_37'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Ajout', 'extraction_38'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Section General', 'extraction_39'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Supprimer', 'extraction_40'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Ajout', 'extraction_41'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Section General', 'extraction_42'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Supprimer', 'extraction_43'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Ajout', 'extraction_44'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field bo_id', 'extraction_45'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field status', 'extraction_46'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field requestor', 'extraction_47'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field company', 'extraction_48'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field layers', 'extraction_49'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field coordsys_id', 'extraction_50'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field coordsys', 'extraction_51'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field format_id', 'extraction_52'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field format', 'extraction_53'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field use_for_raster', 'extraction_54'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field use_for_vector', 'extraction_55'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field layer_id', 'extraction_56'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field layer', 'extraction_57'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field category', 'extraction_58'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field restriction', 'extraction_59'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field unused_attributes', 'extraction_60'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('section extractionConfig', 'extraction_61'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_1','fr','Informations générales'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_1','en','General'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_4','fr','ID'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_4','en','ID'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_6','en','Status'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_6','fr','Etat'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_0','en','Extraction'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_0','fr','Extraction'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_7','en','Progress level'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_7','fr','Avancement'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_2','en','Supprimer les plans'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_2','fr','Supprimer les plans'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_8','en','Company'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_8','fr','Organisme'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_3','en','Ajouter une extraction'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_3','fr','Ajouter une extraction'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_5','fr','Demandeur'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_5','en','Demandeur'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_9','en','Layers'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_9','fr','Couches'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_10','fr','Systèmes de coordonnées'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_10','en','Coordinate systems'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_11','fr','Informations générales'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_11','en','General'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_12','fr','Supprimer les systèmes de coordonnées'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_12','en','Delete coordinate systems'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_13','fr','Ajouter un système de coordonnées'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_13','en','Add coordinate systems'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_14','fr','Formats'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_14','en','Formats'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_15','fr','Informations générales'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_15','en','General'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_16','fr','Supprimer les formats'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_16','en','Delete formats'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_17','fr','Ajouter un format'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_17','en','Add format'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_18','fr','Couches'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_18','en','Layers'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_19','fr','Informations générales'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_19','en','General'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_20','fr','Supprimer les couches'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_20','en','Delete layers'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_21','fr','Ajouter une couche'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_21','en','Add layer'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_22','fr','ID'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_22','en','ID'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_23','fr','Nom'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_23','en','Name'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_24','en','ID'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_24','fr','ID'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_25','fr','Nom'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_25','en','Name'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_26','fr','Raster'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_26','en','Raster'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_27','fr','Vecteur'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_27','en','Vector'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_28','fr','ID'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_28','en','ID'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_29','fr','Nom'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_29','en','Name'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_30','fr','Catégorie'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_30','en','Category'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_31','fr','Restriction'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_31','en','Restriction'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_32','fr','Attributs inutilisés'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_32','en','Unused attributes'); + INSERT INTO s_vitis.vm_mode (mode_id, module_id) VALUES ('extraction','extraction'); + INSERT INTO s_vitis.vm_mode (mode_id, module_id) VALUES ('extraction_ref','extraction'); + INSERT INTO s_vitis.vm_mode_rolname (index,mode_id, rolname) VALUES (0,'extraction','extraction_user'); + INSERT INTO s_vitis.vm_mode_rolname (index,mode_id, rolname) VALUES (1,'extraction_ref','extraction_admin'); + INSERT INTO s_vitis.vm_tab (tab_id, event, index, mode_id, label_id, ressource_id, edit_column, show_column, sorted_by, sorted_dir, name) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)),'loadList()', 1, 'extraction_ref', 'extraction_14', 'extraction/formats', 'editSectionForm', 'showSectionForm', 'format_id', 'ASC', 'extraction_format'); + INSERT INTO s_vitis.vm_tab (tab_id, event, index, mode_id, label_id, ressource_id, edit_column, show_column, sorted_by, sorted_dir, name) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)),'loadList()', 0, 'extraction_ref', 'extraction_10', 'extraction/coordsyss', 'editSectionForm', 'showSectionForm', 'coordsys_id', 'ASC', 'extraction_coordsys'); + INSERT INTO s_vitis.vm_tab (tab_id, event, index, mode_id, label_id, ressource_id, edit_column, show_column, sorted_by, sorted_dir, name) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)),'loadList()', 2, 'extraction_ref', 'extraction_18', 'extraction/layers', 'editSectionForm', 'showSectionForm', 'layer_id', 'ASC', 'extraction_layer'); + INSERT INTO s_vitis.vm_tab (tab_id, event, index, mode_id, label_id, ressource_id, edit_column, show_column, sorted_by, sorted_dir, name) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)),'loadList()', 0, 'extraction', 'extraction_0', 'extraction/extractions', 'editSectionForm', 'showSectionForm', 'bo_id', 'ASC', 'extraction_extraction'); + INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('add_smallFlexigrid',(SELECT nextval('s_vitis.seq_vm'::regclass)), 'AddSectionForm', 'extraction_21', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'), (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer')); + INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('deleteFlexigrid',(SELECT nextval('s_vitis.seq_vm'::regclass)), 'DeleteSelection', 'extraction_2', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction')); + INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('add_smallFlexigrid',(SELECT nextval('s_vitis.seq_vm'::regclass)), 'AddSectionForm', 'extraction_3', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction')); + INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('deleteFlexigrid',(SELECT nextval('s_vitis.seq_vm'::regclass)), 'DeleteSelection', 'extraction_12', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys'), (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys')); + INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('add_smallFlexigrid',(SELECT nextval('s_vitis.seq_vm'::regclass)), 'AddSectionForm', 'extraction_13', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys'), (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys')); + INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('deleteFlexigrid',(SELECT nextval('s_vitis.seq_vm'::regclass)), 'DeleteSelection', 'extraction_16', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'), (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format')); + INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('add_smallFlexigrid',(SELECT nextval('s_vitis.seq_vm'::regclass)), 'AddSectionForm', 'extraction_17', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'), (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format')); + INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('deleteFlexigrid',(SELECT nextval('s_vitis.seq_vm'::regclass)), 'DeleteSelection', 'extraction_20', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'), (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer')); + INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'bo_id', '1', '1', 0, 50, 'left', 'extraction_4', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction')); + INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'status', '1', '1', 2, 150, 'left', 'extraction_6', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction')); + INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'progress_level', '1', '1', 4, 150, 'center', 'extraction_7', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), '<div data-app-navbar data-mode="info" data-hidevalue data-striped data-active></div>',(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction')); + INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'company', '1', '1', 3, 200, 'left', 'extraction_8', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction')); + INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'requestor', '1', '1', 1, 200, 'left', 'extraction_5', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction')); + INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'layers', '1', '1', 5, 60, 'left', 'extraction_9', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), '<div data-app-extraction-layers-column="{{row.entity[col.field]}}"></div>',(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction')); + INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'coordsys_id', '1', '1', 0, 200, 'left', 'extraction_22', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys')); + INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'coordsys', '1', '1', 1, 200, 'left', 'extraction_23', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys')); + INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'format_id', '1', '1', 0, 100, 'left', 'extraction_24', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format')); + INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'format', '1', '1', 1, 200, 'left', 'extraction_25', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format')); + INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'use_for_raster', '1', '1', 2, 100, 'left', 'extraction_26', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'), '<div data-app-set-boolean-icon-column="{{row.entity[col.field]}}"></div>',(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format')); + INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'use_for_vector', '1', '1', 3, 100, 'left', 'extraction_27', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'), '<div data-app-set-boolean-icon-column="{{row.entity[col.field]}}"></div>',(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format')); + INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'layer_id', '1', '1', 0, 150, 'left', 'extraction_28', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer')); + INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'layer', '1', '1', 1, 150, 'left', 'extraction_29', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer')); + INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'category', '1', '1', 2, 150, 'left', 'extraction_30', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer')); + INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'restriction', '1', '1', 3, 100, 'left', 'extraction_31', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer')); + INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'unused_attributes', '1', '1', 4, 110, 'left', 'extraction_32', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'), '<div data-app-extraction-ref-unused-attributes-column="{{row.entity[col.field]}}"></div>',(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer')); + INSERT INTO s_vitis.vm_section (label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ('extraction_15', 'general', 1, 'Javascript:loadSectionForm', (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'), 'workspaceListTpl.html', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'), 'extraction'); + INSERT INTO s_vitis.vm_section (label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ('extraction_11', 'general', 1, 'Javascript:loadSectionForm', (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys'), 'workspaceListTpl.html', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys'), 'extraction'); + INSERT INTO s_vitis.vm_section (label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ('extraction_19', 'general', 1, 'Javascript:loadSectionForm', (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'), 'workspaceListTpl.html', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'), 'extraction'); + INSERT INTO s_vitis.vm_section (label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ('extraction_1', 'general', 1, 'Javascript:loadSectionForm', (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), 'workspaceListTpl.html', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), 'extraction'); + SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','START', 0); + SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','Nouveau', 10); + SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','AE Généré', 30); + SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','AE Soumis', 40); + SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','AE Demandé', 20); + SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','Dépôt terminé', 100); + SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','Fichier déposé', 90); + SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','Autorisée', 60); + SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','Fichier accepté', 100); + SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','Fichier invalidé', 80); + SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','Extraction terminée', 80); + SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','Refusée', 100); + TRUNCATE s_extraction.rt_extraction_status_group; + INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='START'), (SELECT group_id FROM s_vitis."group" WHERE "name"='demandeur'), 1); + INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='Nouveau'), (SELECT group_id FROM s_vitis."group" WHERE "name"='demandeur'), 2); + INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='AE Demandé'), (SELECT group_id FROM s_vitis."group" WHERE "name"='demandeur'), 3); + INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='AE Généré'), (SELECT group_id FROM s_vitis."group" WHERE "name"='demandeur'), 4); + INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='AE Soumis'), (SELECT group_id FROM s_vitis."group" WHERE "name"='controleur'), 5); + INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='AE Soumis'), (SELECT group_id FROM s_vitis."group" WHERE "name"='demandeur'), 6); + INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='Autorisée'), (SELECT group_id FROM s_vitis."group" WHERE "name"='demandeur'), 7); + INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='Autorisée'), (SELECT group_id FROM s_vitis."group" WHERE "name"='controleur'), 8); + INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='Refusée'), (SELECT group_id FROM s_vitis."group" WHERE "name"='controleur'), 9); + INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='Refusée'), (SELECT group_id FROM s_vitis."group" WHERE "name"='demandeur'), 10); + INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='Extraction terminée'), (SELECT group_id FROM s_vitis."group" WHERE "name"='controleur'), 11); + INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='Fichier déposé'), (SELECT group_id FROM s_vitis."group" WHERE "name"='demandeur'), 12); + INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='Fichier invalidé'), (SELECT group_id FROM s_vitis."group" WHERE "name"='demandeur'), 13); + INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='Fichier accepté'), (SELECT group_id FROM s_vitis."group" WHERE "name"='demandeur'), 14); + INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='Dépôt terminé'), (SELECT group_id FROM s_vitis."group" WHERE "name"='controleur'), 15); + + ]]> + </code> + </query> + </queriesCollection> +</sqlQueries> \ No newline at end of file diff --git a/src/module_extraction/web_service/ws/Coordsys.class.inc b/src/module_extraction/web_service/ws/Coordsys.class.inc new file mode 100755 index 00000000..7e76be5b --- /dev/null +++ b/src/module_extraction/web_service/ws/Coordsys.class.inc @@ -0,0 +1,91 @@ +<?php + +require_once __DIR__ . '/ExtractionExtraction.class.inc'; +require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc'; + +/** + * \file Coordsys.class.inc + * \class Coordsys + * + * \author WAB <support.wab@veremes.com>. + * + * \brief This file contains the Coordsys php class + * + * This class defines operation for one Coordsys + * + */ +class Coordsys extends ExtractionExtraction { + + public $oError; + + /** + * construct + * @param type $aPath url of the request + * @param type $aValues parameters of the request + * @param type $properties properties + * @param type $bShortcut false to reinit variables + * @param type $oConnection connection object + */ + function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false){ + parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection); + } + +/** + * @SWG\Get(path="/coordsyss/{id_coordsys}", + * tags={"Coordsyss"}, + * summary="Get Coordsys", + * description="Request to get Coordsys by id", + * operationId="GET", + * produces={"application/xml", "application/json"}, + * @SWG\Parameter( + * name="token", + * in="query", + * description="user token", + * required=true, + * type="string" + * ), + * @SWG\Parameter( + * name="id_coordsys", + * in="path", + * description="id_coordsys", + * required=true, + * type="integer", + * format="int32" + * ), + * @SWG\Parameter( + * name="attributs", + * in="query", + * description="list of attributs", + * required=false, + * type="string" + * ), + * @SWG\Response( + * response=200, + * description="Coordsys Response", + * @SWG\Schema(ref="#/definitions/coordsyss") + * ) + * ) + */ + + /** + * get informations about mode + */ + function GET() { + $this->aFields = $this->getFields($this->aProperties['schema_extraction'], "rt_coordsys", "coordsys_id"); + } + +/** + * delete a Point_situation + */ + function DELETE() { + $this->oConnection->oBd->delete($this->aProperties['schema_extraction'], 'rt_coordsys', 'coordsys_id', $this->aValues["my_vitis_id"], 'integer'); + if ($this->oConnection->oBd->enErreur()) { + $this->oError = new Error(1, $this->oConnection->oBd->getBDMessage()); + } else { + $this->aFields["coordsys_id"] = $this->aValues["my_vitis_id"]; + } + } + +} + +?> \ No newline at end of file diff --git a/src/module_extraction/web_service/ws/Coordsyss.class.inc b/src/module_extraction/web_service/ws/Coordsyss.class.inc new file mode 100755 index 00000000..2ff99408 --- /dev/null +++ b/src/module_extraction/web_service/ws/Coordsyss.class.inc @@ -0,0 +1,268 @@ +<?php + +/** + * \file Coordsyss.class.inc + * \class Coordsyss + * + * \author WAB <support.wab@veremes.com>. + * + * \brief This file contains the Coordsyss php class + * + * This class defines Rest Api to Vitis Coordsyss + * + */ +require_once __DIR__ . '/ExtractionExtraction.class.inc'; +require_once 'Coordsys.class.inc'; + + +class Coordsyss extends ExtractionExtraction { + /** + * @SWG\Definition( + * definition="/coordsyss", + * allOf={ + * @SWG\Schema(ref="#/definitions/coordsyss") + * } + * ) + * * @SWG\Tag( + * name="Coordsyss", + * description="Operations about Coordsyss" + * ) + */ + + /** + * construct + * @param type $aPath url of the request + * @param type $aValues parameters of the request + * @param type $properties properties + * @param type $bShortcut false to reinit variables + * @param type $oConnection connection object + */ + function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false){ + parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection); + } + +/** + * @SWG\Get(path="/coordsyss", + * tags={"Coordsyss"}, + * summary="Get Coordsyss", + * description="Request to get Coordsyss", + * operationId="GET", + * produces={"application/xml", "application/json", "application/x-vm-json"}, + * @SWG\Parameter( + * name="token", + * in="query", + * description="user token", + * required=true, + * type="string" + * ), + * @SWG\Parameter( + * name="order_by", + * in="query", + * description="list of ordering fields", + * required=false, + * type="string" + * ), + * @SWG\Parameter( + * name="sort_order", + * in="query", + * description="sort_order", + * required=false, + * type="string" + * ), + * @SWG\Parameter( + * name="limit", + * in="query", + * description="number of element", + * required=false, + * type="integer", + * format="int32" + * ), + * @SWG\Parameter( + * name="offset", + * in="query", + * description="index of first element", + * required=false, + * type="string", + * format="int32" + * ), + * @SWG\Parameter( + * name="attributs", + * in="query", + * description="list of attributs", + * required=false, + * type="string" + * ), + * @SWG\Parameter( + * name="filter", + * in="query", + * description="filter results", + * required=false, + * type="string" + * ), + * @SWG\Parameter( + * name="distinct", + * in="query", + * description="delete duplicates", + * required=false, + * type="boolean" + * ), + * @SWG\Response( + * response=200, + * description="coordsys Response", + * @SWG\Schema(ref="#/definitions/coordsyss") + * ) + * ) + */ + + /** + * get Coordsyss + * @return Coordsyss + */ + function GET() { + $aReturn = $this->genericGet($this->aProperties['schema_extraction'], "rt_coordsys", "coordsys_id"); + $sMessage = $aReturn['sMessage']; + return $sMessage; + } + +/** + * @SWG\Post(path="/coordsyss", + * tags={"Coordsyss"}, + * summary="Add coordsys", + * description="Request to add Coordsyss", + * operationId="POST", + * produces={"application/xml", "application/json"}, + * @SWG\Parameter( + * name="token", + * in="query", + * description="user token", + * required=true, + * type="string" + * ), + * @SWG\Response( + * response=200, + * description="coordsys Response", + * @SWG\Schema(ref="#/definitions/coordsyss") + * ) + * ) + */ + + /** + * insert coordsys + * @return id of the coordsys created + */ + function POST() { + $aReturn = $this->genericPost($this->aProperties['schema_extraction'], 'rt_coordsys', '', 'coordsys_id'); + return $aReturn['sMessage']; + } + +/** + * @SWG\Put(path="/coordsyss/{id_coordsys}", + * tags={"Coordsyss"}, + * summary="update Coordsyss", + * description="Request to update Coordsyss", + * operationId="PUT", + * produces={"application/xml", "application/json"}, + * @SWG\Parameter( + * name="token", + * in="query", + * description="Coordsys token", + * required=true, + * type="string" + * ), + * * @SWG\Parameter( + * name="id_coordsys", + * in="path", + * description="id of the Coordsyss", + * required=true, + * type="integer", + * format = "int32" + * ), + * @SWG\Response( + * response=200, + * description="Poprerties Response", + * @SWG\Schema(ref="#/definitions/coordsyss") + * ) + * ) + */ + + /** + * update coordsyss + * @return id of coordsyss updated or error object if a coordsyss is not updated + */ + function PUT() { + $aReturn = $this->genericPut($this->aProperties['schema_extraction'], 'rt_coordsys', 'coordsys_id'); + + return $aReturn['sMessage']; + } + +/** + * @SWG\Delete(path="/coordsyss", + * tags={"Coordsyss"}, + * summary="delete Coordsyss", + * description="Request to delete Coordsyss", + * operationId="DELETE", + * produces={"application/xml", "application/json"}, + * @SWG\Parameter( + * name="token", + * in="query", + * description="token", + * required=true, + * type="string" + * ), + * * @SWG\Parameter( + * name="idList", + * in="query", + * description="id of the coordsys", + * required=true, + * type="string" + * ), + * @SWG\Response( + * response=200, + * description="coordsys Response", + * @SWG\Schema(ref="#/definitions/coordsyss") + * ) + * ) + */ + /** + * @SWG\Delete(path="/coordsyss/{id_coordsys}", + * tags={"Coordsyss"}, + * summary="delete Coordsyss", + * description="Request to delete Coordsyss", + * operationId="DELETE", + * produces={"application/xml", "application/json"}, + * @SWG\Parameter( + * name="token", + * in="query", + * description="Coordsys token", + * required=true, + * type="string" + * ), + * * @SWG\Parameter( + * name="id_coordsys", + * in="path", + * description="id of the Coordsyss", + * required=true, + * type="integer", + * format = "int32" + * ), + * @SWG\Response( + * response=200, + * description="Poprerties Response", + * @SWG\Schema(ref="#/definitions/coordsyss") + * ) + * ) + */ + + /** + * delete coordsyss + * @return id of coordsyss deleted or error object if a coordsyss is not deleted + */ + function DELETE() { + $aReturn = $this->genericDelete($this->aProperties['schema_extraction'], 'rt_coordsys', 'coordsys_id'); + return $aReturn['sMessage']; + } + + +} + +?> \ No newline at end of file diff --git a/src/module_extraction/web_service/ws/Extraction.class.inc b/src/module_extraction/web_service/ws/Extraction.class.inc new file mode 100755 index 00000000..f1c76f9d --- /dev/null +++ b/src/module_extraction/web_service/ws/Extraction.class.inc @@ -0,0 +1,147 @@ +<?php + +require_once __DIR__ . '/ExtractionExtraction.class.inc'; +require_once __DIR__. '/../../class/vitis_lib/Connection.class.inc'; + +/** + * \file Extraction.class.inc + * \class Extraction + * + * \author WAB <support.wab@veremes.com>. + * + * \brief This file contains the Extraction php class + * + * This class defines operation for one Extraction + * + */ +class Extraction extends ExtractionExtraction +{ + + public $oError; + + /** + * construct + * @param type $aPath url of the request + * @param type $aValues parameters of the request + * @param type $properties properties + * @param type $bShortcut false to reinit variables + * @param type $oConnection connection object + */ + public function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) + { + parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection); + } + +/** + * @SWG\Get(path="/extractions/{id_extraction}", + * tags={"Extractions"}, + * summary="Get Extraction", + * description="Request to get Extraction by id", + * operationId="GET", + * produces={"application/xml", "application/json"}, + * @SWG\Parameter( + * name="token", + * in="query", + * description="user token", + * required=true, + * type="string" + * ), + * @SWG\Parameter( + * name="id_extraction", + * in="path", + * description="id_extraction", + * required=true, + * type="integer", + * format="int32" + * ), + * @SWG\Parameter( + * name="attributs", + * in="query", + * description="list of attributs", + * required=false, + * type="string" + * ), + * @SWG\Response( + * response=200, + * description="Extraction Response", + * @SWG\Schema(ref="#/definitions/extractions") + * ) + * ) + */ + + /** + * get informations about mode + */ + public function GET() + { + require $this->sRessourcesFile; + $this->aFields = $this->getFields($this->aProperties['schema_extraction'], "v_extraction", "bo_id"); + // Url vers l'acte d'engagement. + if (!empty($this->aFields['ae'])) { + $this->aFields['ae'] = $this->aProperties['web_server_name'] . '/' . $this->aProperties['ws_data_alias'] . '/extraction/extraction_extraction_extraction/documents/' . $this->aValues["my_vitis_id"] . '/ae/' . $this->aFields['ae']; + } + + // Date au format Français. + if ($this->aProperties["language"] == 'fr') { + $oDate = new DateTime($this->aFields['creation_date']); + $this->aFields['creation_date'] = $oDate->format('d/m/Y'); + } + + // Libellés du champ "Commune". + if (!empty($this->aFields['id_com'])) { + //On donne les paramètres à remplacer dans la requête + $aSQLParams = array( + 'id_com' => array('value' => $this->aFields['id_com'], 'type' => 'group'), + ); + + $sSql = $aSql['getCommuneLabel']; + + $oPDOresult = $this->oConnection->oBd->executeWithParams($sSql, $aSQLParams); + if (!$this->oConnection->oBd->enErreur()) { + while ($aLine = $this->oConnection->oBd->ligneSuivante($oPDOresult)) { + $aCommune[] = $aLine['nom_com']; + } + $this->aFields['id_com_label'] = implode(',', $aCommune); + } + } + + // Libellés du champ "Conseil de Territoire". + if (!empty($this->aFields['id_conseil'])) { + + $aSQLParams = array( + 'id_conseil' => array('value' => $this->aFields['id_conseil'], 'type' => 'group'), + ); + //$sSql = str_replace('[id_conseil]', str_replace('|', ',', $this->aFields['id_conseil']), $aSql['getConseilLabel']); + $aConseil = []; + $sSql = $aSql['getConseilLabel']; + $oPDOresult = $this->oConnection->oBd->executeWithParams($sSql, $aSQLParams); + if (!$this->oConnection->oBd->enErreur()) { + while ($aLine = $this->oConnection->oBd->ligneSuivante($oPDOresult)) { + $aConseil[] = $aLine['nom_epci']; + } + if (is_array($aConseil)) { + $this->aFields['id_conseil_label'] = implode(',', $aConseil); + } else { + $this->aFields['id_conseil_label'][0] = $aConseil; + } + } + } + + // Nom de l'état de l'extraction. + $this->aFields['status_name'] = $this->aFields['status']; + } + +/** + * delete a Point_situation + */ + public function DELETE() + { + $this->oConnection->oBd->delete($this->aProperties['schema_extraction'], 'extraction', 'bo_id', $this->aValues["my_vitis_id"], 'integer'); + if ($this->oConnection->oBd->enErreur()) { + $this->oError = new Error(1, $this->oConnection->oBd->getBDMessage()); + } else { + $this->aFields["bo_id"] = $this->aValues["my_vitis_id"]; + } + } + +} diff --git a/src/module_extraction/web_service/ws/ExtractionExtraction.class.inc b/src/module_extraction/web_service/ws/ExtractionExtraction.class.inc new file mode 100755 index 00000000..770729dd --- /dev/null +++ b/src/module_extraction/web_service/ws/ExtractionExtraction.class.inc @@ -0,0 +1,44 @@ +<?php + require_once __DIR__ . "/../../class/vitis_lib/DbClass.class.inc"; + require_once __DIR__ . '/../vitis/Vitis.class.inc'; +require_once 'vmlib/logUtil.inc'; + +class ExtractionExtraction extends Vitis +{ + + //Chemin du fichier de ressources contenant les requêtes SQL + public $sRessourcesFile = 'ws/extraction/ExtractionExtraction.class.sql.inc'; + + /** + * Upload un document dans le ws_data du module Extraction. + * @param type $sIndex + * @param type $sFolder + */ + public function uploadDocument($sIndex, $sFolder) + { + // Crée le répertoire si inexistant. + $sDirPath = $this->aProperties['ws_data_dir'] . '/extraction/' . $sFolder . '/documents/' . $this->aValues["my_vitis_id"] . '/' . $sIndex . '/'; + if (!is_dir($sDirPath)) { + mkdir($sDirPath, 0777, true); + } + + // Ecrit le fichier. + if (!empty($_FILES[$sIndex])) { + $sErrorMessage = uploadFile($sIndex, "", $sDirPath . $_FILES[$sIndex]["name"], $_FILES[$sIndex]['size'] + 1); + if ($sErrorMessage != "") { + writeToErrorLog($sErrorMessage); + } + + } else { + $sfileContentIndex = $sIndex . '_file'; + $sfileNameIndex = $sIndex . '_name'; + if (!empty($this->aValues[$sfileContentIndex])) { + + $this->aValues[$sIndex] = $this->aValues[$sfileNameIndex]; + $fp = fopen($sDirPath . $this->aValues[$sfileNameIndex], "w"); + fwrite($fp, $this->aValues[$sfileContentIndex]); + fclose($fp); + } + } + } +} diff --git a/src/module_extraction/web_service/ws/ExtractionExtraction.class.sql.inc b/src/module_extraction/web_service/ws/ExtractionExtraction.class.sql.inc new file mode 100755 index 00000000..bf92c6ac --- /dev/null +++ b/src/module_extraction/web_service/ws/ExtractionExtraction.class.sql.inc @@ -0,0 +1,22 @@ +<?php +//Définition des requêtes de l'api Vitis +$aSql['checkIP'] = "SELECT user_id, ip_constraint FROM [sSchemaFramework].user WHERE login ='[sLogin]'"; +$aSql['getGroups'] = "SELECT group_id FROM [sSchemaFramework].user_group WHERE user_id = [user_id]"; +$aSql['loginUnique'] = 'SELECT UPPER("login") FROM [sSchemaFramework]."user" WHERE UPPER("login")=UPPER(\'sLoginUser\')'; +$aSql['getLoginbyId'] = 'SELECT "login" FROM [sSchemaFramework]."user" WHERE user_id=[user_id]'; +$aSql['getTableColumn'] = 'SELECT column_name FROM INFORMATION_SCHEMA.COLUMNS WHERE table_schema = \'[sSchemaFramework]\' and table_name= \'[sTable]\''; +$aSql['getUserPrivileges'] = 'SELECT groname FROM pg_user s LEFT OUTER JOIN pg_group g on (s.usesysid = any(g.grolist) )inner join [sSchemaFramework].user on "user".login = usename WHERE user_id = [user_id]'; +$aSql['listDomain'] = 'SELECT distinct domain, alias FROM [sSchemaFramework].domain WHERE "type" = \'AD\''; +$aSql['createRolname'] = 'CREATE ROLE "vitis_[sDomain]" NOSUPERUSER INHERIT NOCREATEDB CREATEROLE;'; +$aSql['getInfoRolname'] = 'SELECT * FROM pg_catalog.pg_roles WHERE rolname = \'vitis_[sDomain]\''; +// Extraction +$aSql['getCommuneLabel'] = 'SELECT nom_com FROM public.ref_cpa_limadm_commune WHERE id_com IN([id_com])'; +$aSql['getConseilLabel'] = 'SELECT nom_epci FROM public.ref_amp_lim_ct WHERE objectid IN([id_conseil])'; +$aSql['getCtId'] = 'SELECT distinct ct_id from [schema_extraction].commune'; +$aSql['getRtLayerWithCtId'] = 'SELECT distinct layer_id, layer, category, mutualized, statistique FROM [schema_extraction].rt_layer INNER JOIN s_extraction.commune ON rt_layer.ct_id = commune.ct_id WHERE (rt_layer."ct_id" IN ([aCtId]))'; +$aSql['getRtLayer'] = 'SELECT distinct layer_id, layer, category, mutualized, statistique FROM [schema_extraction].rt_layer INNER JOIN s_extraction.commune ON rt_layer.ct_id = commune.ct_id'; + +$aSql['getUserGroups'] = 'SELECT name FROM [schema_framework]."group",[schema_framework].user_group WHERE "group".group_id = user_group.group_id AND user_group.user_id = [user_id]'; + +$aSql['getFormat'] = 'SELECT id_format FROM q_control."format" WHERE "format".extensions like [extension]'; +?> \ No newline at end of file diff --git a/src/module_extraction/web_service/ws/Extraction_depot.class.inc b/src/module_extraction/web_service/ws/Extraction_depot.class.inc new file mode 100755 index 00000000..51e0c62e --- /dev/null +++ b/src/module_extraction/web_service/ws/Extraction_depot.class.inc @@ -0,0 +1,81 @@ +<?php + +require_once __DIR__ . '/ExtractionExtraction.class.inc'; +require_once __DIR__ . '/../../class/vitis_lib/Connection.class.inc'; + +/** + * \file Extraction_depot.class.inc + * \class Extraction_depot + * + * \author WAB <support.wab@veremes.com>. + * + * \brief This file contains the Extraction_depot php class + * + * This class defines operation for one Extraction_depot + * + */ +class Extraction_depot extends ExtractionExtraction { + + public $oError; + + /** + * construct + * @param type $aPath url of the request + * @param type $aValues parameters of the request + * @param type $properties properties + * @param type $bShortcut false to reinit variables + * @param type $oConnection connection object + */ + function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false){ + parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection); + } + + /** + * @SWG\Get(path="/extraction_depots/{id_extraction_depot}", + * tags={"Extraction_depots"}, + * summary="Get Extraction_depot", + * description="Request to get Extraction_depot by id", + * operationId="GET", + * produces={"application/xml", "application/json"}, + * @SWG\Parameter( + * name="token", + * in="query", + * description="user token", + * required=true, + * type="string" + * ), + * @SWG\Parameter( + * name="id_extraction_depot", + * in="path", + * description="id_extraction_depot", + * required=true, + * type="integer", + * format="int32" + * ), + * @SWG\Parameter( + * name="attributs", + * in="query", + * description="list of attributs", + * required=false, + * type="string" + * ), + * @SWG\Response( + * response=200, + * description="Extraction_depot Response", + * @SWG\Schema(ref="#/definitions/extraction_depots") + * ) + * ) + */ + + /** + * get informations about mode + */ + function GET() { + $this->aFields = $this->getFields($this->aProperties['schema_extraction'], "", ""); + } + + + +} + +?> \ No newline at end of file diff --git a/src/module_extraction/web_service/ws/Extraction_depots.class.inc b/src/module_extraction/web_service/ws/Extraction_depots.class.inc new file mode 100755 index 00000000..e424f2ce --- /dev/null +++ b/src/module_extraction/web_service/ws/Extraction_depots.class.inc @@ -0,0 +1,440 @@ +<?php + +/** + * \file Extraction_depots.class.inc + * \class Extraction_depots + * + * \author WAB <support.wab@veremes.com>. + * + * \brief This file contains the Extraction_depots php class + * + * This class defines Rest Api to Vitis Extraction_depots + * + */ +require_once __DIR__ . '/ExtractionExtraction.class.inc'; +require_once 'Extraction_depot.class.inc'; +require_once __DIR__ . '/../../class/wab_lib/BusinessObject.class.inc'; +require_once __DIR__ . '/Extractions.class.inc'; + +class Extraction_depots extends ExtractionExtraction +{ + /** + * @SWG\Definition( + * definition="/extraction_depots", + * allOf={ + * @SWG\Schema(ref="#/definitions/extraction_depots") + * } + * ) + * * @SWG\Tag( + * name="Extraction_depots", + * description="Operations about Extraction_depots" + * ) + */ + + /** + * construct + * @param type $aPath url of the request + * @param type $aValues parameters of the request + * @param type $properties properties + * @param type $bShortcut false to reinit variables + * @param type $oConnection connection object + */ + public function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) + { + parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection); + } + + /** + * @SWG\Get(path="/extraction_depots", + * tags={"Extraction_depots"}, + * summary="Get Extraction_depots", + * description="Request to get Extraction_depots", + * operationId="GET", + * produces={"application/xml", "application/json", "application/x-vm-json"}, + * @SWG\Parameter( + * name="token", + * in="query", + * description="user token", + * required=true, + * type="string" + * ), + * @SWG\Parameter( + * name="order_by", + * in="query", + * description="list of ordering fields", + * required=false, + * type="string" + * ), + * @SWG\Parameter( + * name="sort_order", + * in="query", + * description="sort_order", + * required=false, + * type="string" + * ), + * @SWG\Parameter( + * name="limit", + * in="query", + * description="number of element", + * required=false, + * type="integer", + * format="int32" + * ), + * @SWG\Parameter( + * name="offset", + * in="query", + * description="index of first element", + * required=false, + * type="string", + * format="int32" + * ), + * @SWG\Parameter( + * name="attributs", + * in="query", + * description="list of attributs", + * required=false, + * type="string" + * ), + * @SWG\Parameter( + * name="filter", + * in="query", + * description="filter results", + * required=false, + * type="string" + * ), + * @SWG\Parameter( + * name="distinct", + * in="query", + * description="delete duplicates", + * required=false, + * type="boolean" + * ), + * @SWG\Response( + * response=200, + * description="extraction_depot Response", + * @SWG\Schema(ref="#/definitions/extraction_depots") + * ) + * ) + */ + + /** + * get Extraction_depots + * @return Extraction_depots + */ + public function GET() + { + if (!empty($this->aPath[2])) { + if ($this->aPath[2] == "Tree") { + $sDirPath = $this->aProperties['ws_data_dir'] . '/extraction/extraction_depot'; + //Création du dossier extraction_depot + if (!is_dir($sDirPath)) { + //Création du dossier du demandeur + if (!mkdir($sDirPath)) { + //Mettre une erreur dans le log d'erreur + } + } + $sDirPath = $this->aProperties['ws_data_dir'] . '/extraction/extraction_depot/' . $_SERVER["REMOTE_ADDR"]; + if (!is_dir($sDirPath)) { + if (!mkdir($sDirPath)) { + //Mettre une erreur dans le log d'erreur + } + } + $sDirPath = $this->aProperties['ws_data_dir'] . '/extraction/extraction_depot/' . $_SERVER["REMOTE_ADDR"] . "/Fichiers déposés"; + if (!is_dir($sDirPath)) { + if (!mkdir($sDirPath)) { + //Mettre une erreur dans le log d'erreur + } + } + $sDirPath = $this->aProperties['ws_data_dir'] . '/extraction/extraction_depot/' . $_SERVER["REMOTE_ADDR"] . "/Résultats"; + if (!is_dir($sDirPath)) { + if (!mkdir($sDirPath)) { + //Mettre une erreur dans le log d'erreur + } + } + $sDirPath = $this->aProperties['ws_data_dir'] . '/extraction/extraction_depot/' . $_SERVER["REMOTE_ADDR"]; + return json_encode($this->getFolderInfos($sDirPath)); + } elseif ($this->aPath[2] == "File") { + $this->getWorkspaceFile(); + } + } + } + + /** + * Get file. + */ + public function getWorkspaceFile() + { + $aReturn = array('status' => 1, 'message' => ''); + $sFilePath = $this->aProperties['ws_data_dir'] . '/extraction/extraction_depot/' . $_SERVER["REMOTE_ADDR"] . "/" . $this->aValues['file_name']; + // Le fichier existe ? + if (file_exists($sFilePath)) { + header("Content-Type: application/octet-stream"); + header("Content-Transfer-Encoding: Binary"); + header("Content-disposition: attachment; filename=\"" . $this->aValues['file_name'] . "\""); + header('Content-Length: ' . filesize($sFilePath)); + error_log(readfile($sFilePath)); + } + } + + /** + * + * @param string $sDirectoryPath + * @return array $aTree + */ + public function getFolderInfos($sDirectoryPath) + { + + if (is_dir($sDirectoryPath)) { + $aContentDir = scandir($sDirectoryPath); + $aTree = $this->getFileInfos($sDirectoryPath); + $aDir = array(); + for ($i = 0; $i < count($aContentDir); $i++) { + if ($aContentDir[$i] !== "." && $aContentDir[$i] !== "..") { + array_push($aDir, $this->getFolderInfos($sDirectoryPath . "/" . $aContentDir[$i])); + } + } + + $aTree["content"] = $aDir; + $aTree["status"] = 1; + return $aTree; + } else { + return $this->getFileInfos($sDirectoryPath); + } + } + + /** + * + * @param string $sFilePath + * @return array + */ + public function getFileInfos($sFilePath) + { + $iFileSize = filesize($sFilePath); + + $sFileSize = $iFileSize . "octets"; + if ($iFileSize > 1024) { + if ($iFileSize > 1024 * 1024) { + if ($iFileSize > 1024 * 1024 * 1024) { + $sFileSize = "-"; + } else { + $sFileSize = (ceil($iFileSize / (1024 * 1024))) . "Mo"; + } + } else { + $sFileSize = (ceil($iFileSize / 1024)) . "Ko"; + } + } + + $aFileName = explode(DIRECTORY_SEPARATOR, $sFilePath); + + return array("filename" => $aFileName[count($aFileName) - 1], "size" => $sFileSize, "lastModification" => date("d/m/Y H:i:s", filemtime($sFilePath))); + } + + /** + * @SWG\Delete(path="/[Class_name]s", + * tags={"[Class_name_upper]s"}, + * summary="delete [Class_name_upper]s", + * description="Request to delete [Class_name_upper]s", + * operationId="DELETE", + * produces={"application/xml", "application/json"}, + * @SWG\Parameter( + * name="token", + * in="query", + * description="token", + * required=true, + * type="string" + * ), + * * @SWG\Parameter( + * name="idList", + * in="query", + * description="id of the [Class_name]", + * required=true, + * type="string" + * ), + * @SWG\Response( + * response=200, + * description="[Class_name] Response", + * @SWG\Schema(ref="#/definitions/[Class_name]s") + * ) + * ) + */ + /** + * @SWG\Delete(path="/[Class_name]s/{id_[Class_name]}", + * tags={"[Class_name_upper]s"}, + * summary="delete [Class_name_upper]s", + * description="Request to delete [Class_name_upper]s", + * operationId="DELETE", + * produces={"application/xml", "application/json"}, + * @SWG\Parameter( + * name="token", + * in="query", + * description="[Class_name_upper] token", + * required=true, + * type="string" + * ), + * * @SWG\Parameter( + * name="id_[Class_name]", + * in="path", + * description="id of the [Class_name_upper]s", + * required=true, + * type="integer", + * format = "int32" + * ), + * @SWG\Response( + * response=200, + * description="Poprerties Response", + * @SWG\Schema(ref="#/definitions/[Class_name]s") + * ) + * ) + */ + + /** + * delete [Class_name]s + * @return id of [Class_name]s deleted or error object if a [Class_name]s is not deleted + */ + public function DELETES() + { + $sDirPath = $this->aProperties['ws_data_dir'] . '/extraction/extraction_depot/' . $_SERVER["REMOTE_ADDR"]; + //On supprime le fichier + $sMessage = unlink($sDirPath . "/" . $this->aValues['file_name']); + return $sMessage; + } + + /** + * @SWG\Put(path="/[Class_name]s/{id_[Class_name]}", + * tags={"[Class_name_upper]s"}, + * summary="update [Class_name_upper]s", + * description="Request to update [Class_name_upper]s", + * operationId="PUT", + * produces={"application/xml", "application/json"}, + * @SWG\Parameter( + * name="token", + * in="query", + * description="[Class_name_upper] token", + * required=true, + * type="string" + * ), + * * @SWG\Parameter( + * name="id_[Class_name]", + * in="path", + * description="id of the [Class_name_upper]s", + * required=true, + * type="integer", + * format = "int32" + * ), + * @SWG\Response( + * response=200, + * description="Poprerties Response", + * @SWG\Schema(ref="#/definitions/[Class_name]s") + * ) + * ) + */ + + /** + * update [Class_name]s + * @return id of [Class_name]s updated or error object if a [Class_name]s is not updated + */ + public function PUT() + { + if (!empty($this->aValues["action"]) && $this->aValues["action"] == "Metadata") { + $aReturn = $this->reintegrateMetadata(); + + $aXmlRacineAttribute['status'] = $aReturn['status']; + $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], true, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); + } else { + $sDirName = $this->aProperties['ws_data_dir'] . '/extraction/extraction_depot/' . $_SERVER["REMOTE_ADDR"]; + $error_message = ""; + + // Si le dossier {id} n'existe pas (Important pour gérer les erreurs) + if (!is_dir($sDirName)) { + $error_message .= $sDirName . " does not exist"; + writeToErrorLog("WARNING: " . $error_message); + + $aXmlRacineAttribute['status'] = 0; + $this->aFields = array(); + $this->aFields['errorMessage'] = $error_message; + $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], true, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); + return $sMessage; + } + // Si le dossier {id}/Fichiers déposés n'existe pas (Important pour gérer les erreurs) + if (!is_dir($sDirName . "/Fichiers déposés")) { + $error_message .= $sDirName . "/Fichiers déposés does not exist"; + writeToErrorLog("WARNING: " . $error_message); + + $aXmlRacineAttribute['status'] = 0; + $this->aFields = array(); + $this->aFields['errorMessage'] = $error_message; + $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], true, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); + return $sMessage; + } + + // Si le dossier {id}/form n'existe pas il est crée + if (!is_dir($sDirName . "/Résultats")) { + writeToErrorLog("WARNING: " . $sDirName . "/Résultats"); + @mkdir($sDirName . "/Résultats"); + } + + if (!empty($this->aValues["control_file_file"])) { + $this->aValues["control_file"] = $this->aValues["control_file_name"]; + } + if (!empty($this->aValues["control_file_file"])) { + //if ($aReturn['sStatus'] == 1) { + $aXmlRacineAttribute['status'] = 1; + $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], true, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); + $sDirPath = $this->aProperties["upload_dir"] . "/" . getUniqRandomId(); + while (is_dir($sDirPath)) { + $sDirPath = $this->aProperties["upload_dir"] . "/" . getUniqRandomId(); + } + if (!mkdir($sDirPath)) { + return false; + } + // Sauvegarde le nouveau fichier. + $fp = fopen($sDirPath . '/' . utf8_decode($this->aValues["control_file_name"]), "w"); + fwrite($fp, $this->aValues["control_file_file"]); + fclose($fp); + + $sExtension = '*.' . end(explode(".", $this->aValues["control_file_name"])); + if (in_array($sExtension, explode("|", $this->aProperties['sig'])) or in_array($sExtension, explode("|", $this->aProperties['dao']))) { + $sSchemaContrainte = ""; + if (in_array($sExtension, explode("|", $this->aProperties['sig']))) { + $sSchemaContrainte = $this->aProperties["schema_sig"]; + } elseif (in_array($sExtension, explode("|", $this->aProperties['dao']))) { + $sSchemaContrainte = $this->aProperties["schema_dao"]; + } + + $this->sRessourcesFile = "ExtractionExtraction.class.sql.inc"; + require $this->sRessourcesFile; + $sSql = $aSql['getFormat']; + $aSQLParams = array( + 'extension' => array('type' => 'quoted_string', 'value' => '%' . $sExtension . '%'), + ); + + $oPDOresult = $this->oConnection->oBd->executeWithParams($sSql, $aSQLParams); + $sFormat = ""; + if (!$this->oConnection->oBd->enErreur()) { + $aResult = $this->oConnection->oBd->getResultTableAssoc($oPDOresult); + foreach ($aResult as $sFormats) { + $sFormat = $sFormats['id_format']; + } + } + + $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']); + //$this->oBO->insertOrder('EM0160AYYTK48', 'bo_id=' . $this->aValues["bo_id"] . '|sourceDir=' . end(explode("/", $sDirPath)) . '/' . $this->aValues["control_file_name"] . '|sourceMotif=' . $sExtension . '|schema=' . $sSchemaContrainte . '|format=ACAD|destDir=' . $this->aProperties['ws_data_dir'] . '/extraction/extraction_depot/' . $_SERVER["REMOTE_ADDR"] . "/Fichiers déposés"); + $this->oBO->insertOrder('EM0160AYYTK48', 'bo_id=' . $this->aValues["bo_id"] . '|sourceDir=' . $sDirPath . '/' . $this->aValues["control_file_name"] . '|sourceMotif=' . $sExtension . '|schema=' . $sSchemaContrainte . '|format='.$sFormat.'|depotDir=' . $this->aProperties['ws_data_dir'] . '/extraction/extraction_depot/' . $_SERVER["REMOTE_ADDR"] . '/Fichiers déposés/' . $this->aValues["control_file_name"]); + } else { + //Si l'extension n'est pas bonne + $error_message .= $this->aValues["control_file_name"] . " format is not authaurized (" . $sExtension . ")"; + writeToErrorLog("WARNING: " . $error_message); + + $aXmlRacineAttribute['status'] = 0; + $this->aFields = array(); + $this->aFields['errorMessage'] = $error_message; + $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], true, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); + return $sMessage; + } + } + } + + return $sMessage; + } + +} diff --git a/src/module_extraction/web_service/ws/Extractions.class.inc b/src/module_extraction/web_service/ws/Extractions.class.inc new file mode 100755 index 00000000..20ba20bb --- /dev/null +++ b/src/module_extraction/web_service/ws/Extractions.class.inc @@ -0,0 +1,650 @@ +<?php + +/** + * \file Extractions.class.inc + * \class Extractions + * + * \author WAB <support.wab@veremes.com>. + * + * \brief This file contains the Extractions php class + * + * This class defines Rest Api to Vitis Extractions + * + */ +require_once __DIR__ . '/ExtractionExtraction.class.inc'; +require_once 'Extraction.class.inc'; + +require_once __DIR__ . '/../../class/wab_lib/BusinessObject.class.inc'; + +class Extractions extends ExtractionExtraction +{ + + protected $iIdExtraction; + /** + * @SWG\Definition( + * definition="/extractions", + * allOf={ + * @SWG\Schema(ref="#/definitions/extractions") + * } + * ) + * * @SWG\Tag( + * name="Extractions", + * description="Operations about Extractions" + * ) + */ + + /** + * construct + * @param type $aPath url of the request + * @param type $aValues parameters of the request + * @param type $properties properties + * @param type $bShortcut false to reinit variables + * @param type $oConnection connection object + */ + public function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) + { + parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection); + } + +/** + * @SWG\Get(path="/extractions", + * tags={"Extractions"}, + * summary="Get Extractions", + * description="Request to get Extractions", + * operationId="GET", + * produces={"application/xml", "application/json", "application/x-vm-json"}, + * @SWG\Parameter( + * name="token", + * in="query", + * description="user token", + * required=true, + * type="string" + * ), + * @SWG\Parameter( + * name="order_by", + * in="query", + * description="list of ordering fields", + * required=false, + * type="string" + * ), + * @SWG\Parameter( + * name="sort_order", + * in="query", + * description="sort_order", + * required=false, + * type="string" + * ), + * @SWG\Parameter( + * name="limit", + * in="query", + * description="number of element", + * required=false, + * type="integer", + * format="int32" + * ), + * @SWG\Parameter( + * name="offset", + * in="query", + * description="index of first element", + * required=false, + * type="string", + * format="int32" + * ), + * @SWG\Parameter( + * name="attributs", + * in="query", + * description="list of attributs", + * required=false, + * type="string" + * ), + * @SWG\Parameter( + * name="filter", + * in="query", + * description="filter results", + * required=false, + * type="string" + * ), + * @SWG\Parameter( + * name="distinct", + * in="query", + * description="delete duplicates", + * required=false, + * type="boolean" + * ), + * @SWG\Response( + * response=200, + * description="extraction Response", + * @SWG\Schema(ref="#/definitions/extractions") + * ) + * ) + */ + /** + * @SWG\Get(path="/extractions/Layers", + * tags={"Extractions"}, + * summary="Get extraction layers", + * description="Request to get the layers of the extractions", + * operationId="GET", + * produces={"application/xml", "application/json", "application/x-vm-json"}, + * @SWG\Parameter( + * name="token", + * in="query", + * description="user token", + * required=true, + * type="string" + * ), + * @SWG\Response( + * response=200, + * description="Poprerties Response", + * @SWG\Schema(ref="#/definitions/extractions") + * ) + * ) + */ + + /** + * get Extractions + * @return Extractions + */ + public function GET() + { + if (!empty($this->aPath[2]) && $this->aPath[2] == "Layers") { + $sMessage = $this->getLayers(); + } else { + $aReturn = $this->genericGet($this->aProperties['schema_extraction'], "v_extraction", "bo_id"); + $sMessage = $aReturn['sMessage']; + } + return $sMessage; + } + +/** + * @SWG\Post(path="/extractions", + * tags={"Extractions"}, + * summary="Add extraction", + * description="Request to add Extractions", + * operationId="POST", + * produces={"application/xml", "application/json"}, + * @SWG\Parameter( + * name="token", + * in="query", + * description="user token", + * required=true, + * type="string" + * ), + * @SWG\Response( + * response=200, + * description="extraction Response", + * @SWG\Schema(ref="#/definitions/extractions") + * ) + * ) + */ + + /** + * insert extraction + * @return id of the extraction created + */ + public function POST() + { + $aReturn = $this->genericPost($this->aProperties['schema_extraction'], 'extraction', $this->aProperties['schema_extraction'] . '.bo_id_extraction_seq', 'bo_id'); + $this->aValues["bo_id"] = $this->aValues['my_vitis_id']; + eval('$this->' . $this->aValues['tr_status_method'] . '();'); + return $aReturn['sMessage']; + } + +/** + * @SWG\Put(path="/extractions/{id_extraction}", + * tags={"Extractions"}, + * summary="update Extractions", + * description="Request to update Extractions", + * operationId="PUT", + * produces={"application/xml", "application/json"}, + * @SWG\Parameter( + * name="token", + * in="query", + * description="Extraction token", + * required=true, + * type="string" + * ), + * * @SWG\Parameter( + * name="id_extraction", + * in="path", + * description="id of the Extractions", + * required=true, + * type="integer", + * format = "int32" + * ), + * @SWG\Response( + * response=200, + * description="Poprerties Response", + * @SWG\Schema(ref="#/definitions/extractions") + * ) + * ) + */ + + /** + * update extractions + * @return id of extractions updated or error object if a extractions is not updated + */ + public function PUT() + { + // Upload l'acte d'engagement. + $this->uploadDocument('ae', 'extraction_extraction_extraction'); + // + $aReturn = $this->genericPut($this->aProperties['schema_extraction'], 'extraction', 'bo_id'); + $this->aValues["bo_id"] = $this->aValues['my_vitis_id']; + + //On vérifie que le fichier existe et ne soit pas vide + if (!empty($this->aValues['input_deposit_file'])) { + //On va déplacer le fichier dans un dossier temporaire + $aXmlRacineAttribute['status'] = 1; + $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], true, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); + $sDirPath = $this->aProperties["upload_dir"] . "/" . getUniqRandomId(); + //Récupération de sDirPath pour trDéposer + $this->sDirPath = $sDirPath; + + $sExtension = '*.' . end(explode(".", $this->aValues["input_deposit_name"])); + + //Si l'extension est autorisée + if (in_array($sExtension, explode("|", $this->aProperties['sig'])) || in_array($sExtension, explode("|", $this->aProperties['dao']))) { + + // Méthode de transition. + if (!empty($this->aValues['tr_status_method'])) { + eval('$this->' . $this->aValues['tr_status_method'] . '();'); + } + + $sSchemaContrainte = ""; + if (in_array($sExtension, explode("|", $this->aProperties['sig']))) { + $sSchemaContrainte = $this->aProperties["schema_sig"]; + } elseif (in_array($sExtension, explode("|", $this->aProperties['dao']))) { + $sSchemaContrainte = $this->aProperties["schema_dao"]; + } + + while (is_dir($sDirPath)) { + $sDirPath = $this->aProperties["upload_dir"] . "/" . getUniqRandomId(); + } + if (!mkdir($sDirPath)) { + return false; + } + // Sauvegarde le nouveau fichier. + $fp = fopen($sDirPath . '/' . utf8_decode($this->aValues["input_deposit_name"]), "w"); + fwrite($fp, $this->aValues["input_deposit_file"]); + fclose($fp); + + $this->sRessourcesFile = "ExtractionExtraction.class.sql.inc"; + require $this->sRessourcesFile; + $sSql = $aSql['getFormat']; + $aSQLParams = array( + 'extension' => array('type' => 'quoted_string', 'value' => '%' . $sExtension . '%'), + ); + + $oPDOresult = $this->oConnection->oBd->executeWithParams($sSql, $aSQLParams); + $sFormat = ""; + if (!$this->oConnection->oBd->enErreur()) { + $aResult = $this->oConnection->oBd->getResultTableAssoc($oPDOresult); + foreach ($aResult as $sFormats) { + $sFormat = $sFormats['id_format']; + } + } + + //Demande GTF + $this->oBO->insertOrder('EM0160AYYTK48', 'bo_id=' . $this->aValues["bo_id"] . '|sourceDir=' . end(explode("/", $sDirPath)) . '/' . $this->aValues["input_deposit_name"] . '|sourceMotif=' . $sExtension . '|depotDir=' . $sSchemaContrainte . '|format=' . $sFormat . '|depotDir=' . $this->aProperties['ws_data_dir'] . '/extraction/extraction_depot/' . $_SERVER["REMOTE_ADDR"] . "/Fichiers déposés/" . $this->aValues["input_deposit_name"]); + } else { + //Si l'extension n'est pas bonne + $error_message .= $this->aValues["input_deposit_name"] . " format is not authaurized (" . $sExtension . ")"; + writeToErrorLog("WARNING: " . $error_message); + + $aXmlRacineAttribute['status'] = 0; + $this->aFields = array(); + $this->aFields['errorMessage'] = $error_message; + $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], true, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); + return $sMessage; + } + } + return $aReturn['sMessage']; + } + +/** + * @SWG\Delete(path="/extractions", + * tags={"Extractions"}, + * summary="delete Extractions", + * description="Request to delete Extractions", + * operationId="DELETE", + * produces={"application/xml", "application/json"}, + * @SWG\Parameter( + * name="token", + * in="query", + * description="token", + * required=true, + * type="string" + * ), + * * @SWG\Parameter( + * name="idList", + * in="query", + * description="id of the extraction", + * required=true, + * type="string" + * ), + * @SWG\Response( + * response=200, + * description="extraction Response", + * @SWG\Schema(ref="#/definitions/extractions") + * ) + * ) + */ + /** + * @SWG\Delete(path="/extractions/{id_extraction}", + * tags={"Extractions"}, + * summary="delete Extractions", + * description="Request to delete Extractions", + * operationId="DELETE", + * produces={"application/xml", "application/json"}, + * @SWG\Parameter( + * name="token", + * in="query", + * description="Extraction token", + * required=true, + * type="string" + * ), + * * @SWG\Parameter( + * name="id_extraction", + * in="path", + * description="id of the Extractions", + * required=true, + * type="integer", + * format = "int32" + * ), + * @SWG\Response( + * response=200, + * description="Poprerties Response", + * @SWG\Schema(ref="#/definitions/extractions") + * ) + * ) + */ + + /** + * delete extractions + * @return id of extractions deleted or error object if a extractions is not deleted + */ + public function DELETE() + { + $aReturn = $this->genericDelete($this->aProperties['schema_extraction'], 'extraction', 'bo_id'); + return $aReturn['sMessage']; + } + + /** + * Liste des couches. + */ + public function getLayers() + { + require $this->sRessourcesFile; + //On décode le json récupéré via le filtre + if (!empty($this->aValues["filter"])) { + $decode = $this->decodeJSONFilter($this->aValues["filter"], $this->aProperties['schema_extraction'], $this->aValues["table"]); + } + + if (is_object($this->aValues) || is_array($this->aValues)) { + $sJSONFilter = json_encode($this->aValues); + } + + if (!empty($sJSONFilter)) { + $aJSONFilter = json_decode($sJSONFilter, true); + + if (!empty($aJSONFilter["filter"])) { + if (is_object($aJSONFilter["filter"]) || is_array($aJSONFilter["filter"])) { + $sJSONFilter = json_encode($aJSONFilter["filter"]); + } + } + } + $aSQLParams = array( + 'schema_framework' => array('value' => $this->aProperties['schema_framework'], 'type' => 'schema_name'), + 'user_id' => array('value' => $_SESSION['ses_user_id'], 'type' => 'string'), + ); + + $sSql = $aSql['getUserGroups']; + $oPDOresult = $this->oConnection->oBd->executeWithParams($sSql, $aSQLParams); + if (!$this->oConnection->oBd->enErreur()) { + $aResult = $this->oConnection->oBd->getResultTableAssoc($oPDOresult); + foreach ($aResult as $aUserGroup) { + $aUserGroups[] = $aUserGroup['name']; + } + + if (!empty($aValues["filter"])) { + $aSQLParams = array( + 'schema_extraction' => array('value' => $this->aProperties['schema_extraction'], 'type' => 'schema_name'), + ); + + $sSql = $aSql['getCtId']; + //On donne la condition + if ($decode["request"]) { + $sSql .= " WHERE "; + $sSql .= $decode["request"]; + $sSql .= 'ORDER BY ct_id;'; + } + //error_log(print_r($sSql, true)); + $merge = array_merge($aSQLParams, $decode["params"]); + + $oPDOresult = $this->oConnection->oBd->executeWithParams($sSql, $merge); + + $aCtResult = $this->oConnection->oBd->getResultTableAssoc($oPDOresult); + } + // Restriction de l'utilisateur suivant ses groupes. + if (in_array('interne', $aUserGroups)) { + $sSqlParams = " ORDER BY category, layer_id;"; + } else if (in_array('restreint', $aUserGroups)) { + $sSqlParams = " AND restriction <> 'interne' ORDER BY category, layer_id;"; + } else { + $sSqlParams = " AND restriction = 'public' ORDER BY category, layer_id;"; + } + + // Liste des cartes. + $this->aFields['treeview_layers'] = array(); + + //Requête pour récupérer les couches + if (!empty($aValues["filter"])) { + $sSql = $aSql['getRtLayerWithCtId'] . $sSqlParams; + } else { + $sSql = $aSql['getRtLayer'] . $sSqlParams; + } + $ct_id; + if (!empty($aCtResult)) { + for ($i = 0; $i < sizeof($aCtResult); $i++) { + $ct_id .= $aCtResult[$i]["ct_id"] . "|"; + } + //On retire la dernière pipe qui ne sert à rien + $ct_idToSend = substr($ct_id, 0, -1); + } else { + //On donne un id qui n'existe pas pour éviter une erreur dans la requête SQL + $ct_idToSend = -1; + } + //error_log(print_r($aCtResult[$i]["ct_id"], true)); + $aSQLParams = array( + 'schema_extraction' => array('value' => $this->aProperties['schema_extraction'], 'type' => 'schema_name'), + 'aCtId' => array('value' => $ct_idToSend, 'type' => 'group'), + ); + $oPDOresult = $this->oConnection->oBd->executeWithParams($sSql, $aSQLParams); + if (!$this->oConnection->oBd->enErreur()) { + $aRtLayer = $this->oConnection->oBd->getResultTableAssoc($oPDOresult); + $aLayers = array(); + if (!empty($aRtLayer)) { + foreach ($aRtLayer as $aLayer) { + + $aLayers[$aLayer['category']][] = array("text" => $aLayer['layer'], "value" => $aLayer['layer_id'], "mutualized" => $aLayer['mutualized'], "statistique" => $aLayer['statistique']); + + } + } + $this->aFields['layers'] = $aLayers; + $aXmlRacineAttribute['status'] = 1; + $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], true, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); + } else { + $aXmlRacineAttribute['status'] = 0; + $this->aFields['error'] = "Request error."; + $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], true, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); + } + } else { + $aXmlRacineAttribute['status'] = 0; + $this->aFields['error'] = "Request error."; + $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], true, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); + } + //error_log(print_r($sMessage, true)); + return $sMessage; + } + + /** + * Transition Method trNouveau + */ + public function trNouveau() + { + $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']); + + // Check si la table existe si oui change l'état + $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "Nouveau"); + + } + + /** + * Transition Method trGenerer + */ + public function trGenerer() + { + $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']); + // Check si la table existe si oui change l'état + $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "AE Généré"); + + } + + /** + * Transition Method trResoumettre + */ + public function trResoumettre() + { + $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']); + + // Check si la table existe si oui change l'état + $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "AE Généré"); + //$this->sendmail(9904); + $this->sendmail(171); + } + + /** + * Transition Method trSoumettre + */ + public function trSoumettre() + { + $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']); + + // Check si la table existe si oui change l'état + $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "AE Soumis"); + //$this->oBO->sendmail(39); + $this->oBO->sendmail(174); + } + + /** + * Transition Method trDemander + */ + public function trDemander() + { + $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']); + $this->oBO->insertOrder('832HZ8J2PTCSG', 'bo_id=' . $this->aValues['bo_id']); + // Check si la table existe si oui change l'état + $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "AE Demandé"); + + } + + /** + * Transition Method trReception + */ + public function trReception() + { + $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']); + + // Check si la table existe si oui change l'état + $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "Dépôt terminé"); + + } + + /** + * Transition Method trDeposer + */ + public function trDeposer() + { + $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']); + // Check si la table existe si oui change l'état + $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "Fichier déposé"); + + } + + /** + * Transition Method trAutoriser + */ + public function trAutoriser() + { + $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']); + $this->oBO->insertOrder('8BCP8WGIOW4KO', 'bo_id=' . $this->aValues['bo_id']); + // Check si la table existe si oui change l'état + $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "Autorisée"); + + } + + /** + * Transition Method trAccepter + */ + public function trAccepter() + { + $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']); + // Check si la table existe si oui change l'état + $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "Fichier accepté"); + + //$this->oBO->sendmail(id_du_mail_pour_dire_que_le_fichier_est_accepté); + $this->trReception(); + + } + + /** + * Transition Method trInvalider + */ + public function trInvalider() + { + $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']); + + // Check si la table existe si oui change l'état + $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "Fichier invalidé"); + $this->oBO->sendmail(1057); + $this->trRetour(); + + } + + /** + * Transition Method trRetour + */ + public function trRetour() + { + $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']); + + // Check si la table existe si oui change l'état + $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "Extraction terminée"); + + } + + /** + * Transition Method trTerminerExtraction + */ + public function trTerminerExtraction() + { + $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']); + // Check si la table existe si oui change l'état + $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "Extraction terminée"); + + } + + /** + * Transition Method trRefuser + */ + public function trRefuser() + { + $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']); + + // Check si la table existe si oui change l'état + $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "Refusée"); +//$this->sendmail(9902); + $this->oBO->sendmail(175); + } + +} diff --git a/src/module_extraction/web_service/ws/Format.class.inc b/src/module_extraction/web_service/ws/Format.class.inc new file mode 100755 index 00000000..6c9d733b --- /dev/null +++ b/src/module_extraction/web_service/ws/Format.class.inc @@ -0,0 +1,91 @@ +<?php + +require_once __DIR__ . '/ExtractionExtraction.class.inc'; +require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc'; + +/** + * \file Format.class.inc + * \class Format + * + * \author WAB <support.wab@veremes.com>. + * + * \brief This file contains the Format php class + * + * This class defines operation for one Format + * + */ +class Format extends ExtractionExtraction { + + public $oError; + + /** + * construct + * @param type $aPath url of the request + * @param type $aValues parameters of the request + * @param type $properties properties + * @param type $bShortcut false to reinit variables + * @param type $oConnection connection object + */ + function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false){ + parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection); + } + +/** + * @SWG\Get(path="/formats/{id_format}", + * tags={"Formats"}, + * summary="Get Format", + * description="Request to get Format by id", + * operationId="GET", + * produces={"application/xml", "application/json"}, + * @SWG\Parameter( + * name="token", + * in="query", + * description="user token", + * required=true, + * type="string" + * ), + * @SWG\Parameter( + * name="id_format", + * in="path", + * description="id_format", + * required=true, + * type="integer", + * format="int32" + * ), + * @SWG\Parameter( + * name="attributs", + * in="query", + * description="list of attributs", + * required=false, + * type="string" + * ), + * @SWG\Response( + * response=200, + * description="Format Response", + * @SWG\Schema(ref="#/definitions/formats") + * ) + * ) + */ + + /** + * get informations about mode + */ + function GET() { + $this->aFields = $this->getFields($this->aProperties['schema_extraction'], "rt_format", "format_id"); + } + +/** + * delete a Point_situation + */ + function DELETE() { + $this->oConnection->oBd->delete($this->aProperties['schema_extraction'], 'rt_format', 'format_id', $this->aValues["my_vitis_id"], 'integer'); + if ($this->oConnection->oBd->enErreur()) { + $this->oError = new Error(1, $this->oConnection->oBd->getBDMessage()); + } else { + $this->aFields["format_id"] = $this->aValues["my_vitis_id"]; + } + } + +} + +?> \ No newline at end of file diff --git a/src/module_extraction/web_service/ws/Formats.class.inc b/src/module_extraction/web_service/ws/Formats.class.inc new file mode 100755 index 00000000..141f0fd4 --- /dev/null +++ b/src/module_extraction/web_service/ws/Formats.class.inc @@ -0,0 +1,269 @@ +<?php + +/** + * \file Formats.class.inc + * \class Formats + * + * \author WAB <support.wab@veremes.com>. + * + * \brief This file contains the Formats php class + * + * This class defines Rest Api to Vitis Formats + * + */ +require_once __DIR__ . '/ExtractionExtraction.class.inc'; +require_once 'Format.class.inc'; + + +class Formats extends ExtractionExtraction { + /** + * @SWG\Definition( + * definition="/formats", + * allOf={ + * @SWG\Schema(ref="#/definitions/formats") + * } + * ) + * * @SWG\Tag( + * name="Formats", + * description="Operations about Formats" + * ) + */ + + /** + * construct + * @param type $aPath url of the request + * @param type $aValues parameters of the request + * @param type $properties properties + * @param type $bShortcut false to reinit variables + * @param type $oConnection connection object + */ + function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false){ + parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection); + } + +/** + * @SWG\Get(path="/formats", + * tags={"Formats"}, + * summary="Get Formats", + * description="Request to get Formats", + * operationId="GET", + * produces={"application/xml", "application/json", "application/x-vm-json"}, + * @SWG\Parameter( + * name="token", + * in="query", + * description="user token", + * required=true, + * type="string" + * ), + * @SWG\Parameter( + * name="order_by", + * in="query", + * description="list of ordering fields", + * required=false, + * type="string" + * ), + * @SWG\Parameter( + * name="sort_order", + * in="query", + * description="sort_order", + * required=false, + * type="string" + * ), + * @SWG\Parameter( + * name="limit", + * in="query", + * description="number of element", + * required=false, + * type="integer", + * format="int32" + * ), + * @SWG\Parameter( + * name="offset", + * in="query", + * description="index of first element", + * required=false, + * type="string", + * format="int32" + * ), + * @SWG\Parameter( + * name="attributs", + * in="query", + * description="list of attributs", + * required=false, + * type="string" + * ), + * @SWG\Parameter( + * name="filter", + * in="query", + * description="filter results", + * required=false, + * type="string" + * ), + * @SWG\Parameter( + * name="distinct", + * in="query", + * description="delete duplicates", + * required=false, + * type="boolean" + * ), + * @SWG\Response( + * response=200, + * description="format Response", + * @SWG\Schema(ref="#/definitions/formats") + * ) + * ) + */ + + /** + * get Formats + * @return Formats + */ + function GET() { + $aReturn = $this->genericGet($this->aProperties['schema_extraction'], "rt_format", "format_id"); + $sMessage = $aReturn['sMessage']; + return $sMessage; + } + +/** + * @SWG\Post(path="/formats", + * tags={"Formats"}, + * summary="Add format", + * description="Request to add Formats", + * operationId="POST", + * produces={"application/xml", "application/json"}, + * @SWG\Parameter( + * name="token", + * in="query", + * description="user token", + * required=true, + * type="string" + * ), + * @SWG\Response( + * response=200, + * description="format Response", + * @SWG\Schema(ref="#/definitions/formats") + * ) + * ) + */ + + /** + * insert format + * @return id of the format created + */ + function POST() { + $aReturn = $this->genericPost($this->aProperties['schema_extraction'], 'rt_format', '', 'format_id'); + + return $aReturn['sMessage']; + } + +/** + * @SWG\Put(path="/formats/{id_format}", + * tags={"Formats"}, + * summary="update Formats", + * description="Request to update Formats", + * operationId="PUT", + * produces={"application/xml", "application/json"}, + * @SWG\Parameter( + * name="token", + * in="query", + * description="Format token", + * required=true, + * type="string" + * ), + * * @SWG\Parameter( + * name="id_format", + * in="path", + * description="id of the Formats", + * required=true, + * type="integer", + * format = "int32" + * ), + * @SWG\Response( + * response=200, + * description="Poprerties Response", + * @SWG\Schema(ref="#/definitions/formats") + * ) + * ) + */ + + /** + * update formats + * @return id of formats updated or error object if a formats is not updated + */ + function PUT() { + $aReturn = $this->genericPut($this->aProperties['schema_extraction'], 'rt_format', 'format_id'); + + return $aReturn['sMessage']; + } + +/** + * @SWG\Delete(path="/formats", + * tags={"Formats"}, + * summary="delete Formats", + * description="Request to delete Formats", + * operationId="DELETE", + * produces={"application/xml", "application/json"}, + * @SWG\Parameter( + * name="token", + * in="query", + * description="token", + * required=true, + * type="string" + * ), + * * @SWG\Parameter( + * name="idList", + * in="query", + * description="id of the format", + * required=true, + * type="string" + * ), + * @SWG\Response( + * response=200, + * description="format Response", + * @SWG\Schema(ref="#/definitions/formats") + * ) + * ) + */ + /** + * @SWG\Delete(path="/formats/{id_format}", + * tags={"Formats"}, + * summary="delete Formats", + * description="Request to delete Formats", + * operationId="DELETE", + * produces={"application/xml", "application/json"}, + * @SWG\Parameter( + * name="token", + * in="query", + * description="Format token", + * required=true, + * type="string" + * ), + * * @SWG\Parameter( + * name="id_format", + * in="path", + * description="id of the Formats", + * required=true, + * type="integer", + * format = "int32" + * ), + * @SWG\Response( + * response=200, + * description="Poprerties Response", + * @SWG\Schema(ref="#/definitions/formats") + * ) + * ) + */ + + /** + * delete formats + * @return id of formats deleted or error object if a formats is not deleted + */ + function DELETE() { + $aReturn = $this->genericDelete($this->aProperties['schema_extraction'], 'rt_format', 'format_id'); + return $aReturn['sMessage']; + } + + +} + +?> \ No newline at end of file diff --git a/src/module_extraction/web_service/ws/Layer.class.inc b/src/module_extraction/web_service/ws/Layer.class.inc new file mode 100755 index 00000000..af7d4af1 --- /dev/null +++ b/src/module_extraction/web_service/ws/Layer.class.inc @@ -0,0 +1,91 @@ +<?php + +require_once __DIR__ . '/ExtractionExtraction.class.inc'; +require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc'; + +/** + * \file Layer.class.inc + * \class Layer + * + * \author WAB <support.wab@veremes.com>. + * + * \brief This file contains the Layer php class + * + * This class defines operation for one Layer + * + */ +class Layer extends ExtractionExtraction { + + public $oError; + + /** + * construct + * @param type $aPath url of the request + * @param type $aValues parameters of the request + * @param type $properties properties + * @param type $bShortcut false to reinit variables + * @param type $oConnection connection object + */ + function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false){ + parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection); + } + +/** + * @SWG\Get(path="/layers/{id_layer}", + * tags={"Layers"}, + * summary="Get Layer", + * description="Request to get Layer by id", + * operationId="GET", + * produces={"application/xml", "application/json"}, + * @SWG\Parameter( + * name="token", + * in="query", + * description="user token", + * required=true, + * type="string" + * ), + * @SWG\Parameter( + * name="id_layer", + * in="path", + * description="id_layer", + * required=true, + * type="integer", + * format="int32" + * ), + * @SWG\Parameter( + * name="attributs", + * in="query", + * description="list of attributs", + * required=false, + * type="string" + * ), + * @SWG\Response( + * response=200, + * description="Layer Response", + * @SWG\Schema(ref="#/definitions/layers") + * ) + * ) + */ + + /** + * get informations about mode + */ + function GET() { + $this->aFields = $this->getFields($this->aProperties['schema_extraction'], "rt_layer", "layer_id"); + } + +/** + * delete a Point_situation + */ + function DELETE() { + $this->oConnection->oBd->delete($this->aProperties['schema_extraction'], 'rt_layer', 'layer_id', $this->aValues["my_vitis_id"], 'integer'); + if ($this->oConnection->oBd->enErreur()) { + $this->oError = new Error(1, $this->oConnection->oBd->getBDMessage()); + } else { + $this->aFields["layer_id"] = $this->aValues["my_vitis_id"]; + } + } + +} + +?> \ No newline at end of file diff --git a/src/module_extraction/web_service/ws/Layers.class.inc b/src/module_extraction/web_service/ws/Layers.class.inc new file mode 100755 index 00000000..0cdb17b2 --- /dev/null +++ b/src/module_extraction/web_service/ws/Layers.class.inc @@ -0,0 +1,269 @@ +<?php + +/** + * \file Layers.class.inc + * \class Layers + * + * \author WAB <support.wab@veremes.com>. + * + * \brief This file contains the Layers php class + * + * This class defines Rest Api to Vitis Layers + * + */ +require_once __DIR__ . '/ExtractionExtraction.class.inc'; +require_once 'Layer.class.inc'; + + +class Layers extends ExtractionExtraction { + /** + * @SWG\Definition( + * definition="/layers", + * allOf={ + * @SWG\Schema(ref="#/definitions/layers") + * } + * ) + * * @SWG\Tag( + * name="Layers", + * description="Operations about Layers" + * ) + */ + + /** + * construct + * @param type $aPath url of the request + * @param type $aValues parameters of the request + * @param type $properties properties + * @param type $bShortcut false to reinit variables + * @param type $oConnection connection object + */ + function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false){ + parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection); + } + +/** + * @SWG\Get(path="/layers", + * tags={"Layers"}, + * summary="Get Layers", + * description="Request to get Layers", + * operationId="GET", + * produces={"application/xml", "application/json", "application/x-vm-json"}, + * @SWG\Parameter( + * name="token", + * in="query", + * description="user token", + * required=true, + * type="string" + * ), + * @SWG\Parameter( + * name="order_by", + * in="query", + * description="list of ordering fields", + * required=false, + * type="string" + * ), + * @SWG\Parameter( + * name="sort_order", + * in="query", + * description="sort_order", + * required=false, + * type="string" + * ), + * @SWG\Parameter( + * name="limit", + * in="query", + * description="number of element", + * required=false, + * type="integer", + * format="int32" + * ), + * @SWG\Parameter( + * name="offset", + * in="query", + * description="index of first element", + * required=false, + * type="string", + * format="int32" + * ), + * @SWG\Parameter( + * name="attributs", + * in="query", + * description="list of attributs", + * required=false, + * type="string" + * ), + * @SWG\Parameter( + * name="filter", + * in="query", + * description="filter results", + * required=false, + * type="string" + * ), + * @SWG\Parameter( + * name="distinct", + * in="query", + * description="delete duplicates", + * required=false, + * type="boolean" + * ), + * @SWG\Response( + * response=200, + * description="layer Response", + * @SWG\Schema(ref="#/definitions/layers") + * ) + * ) + */ + + /** + * get Layers + * @return Layers + */ + function GET() { + $aReturn = $this->genericGet($this->aProperties['schema_extraction'], $this->aValues["table"], $this->aValues["filter"]["column"]); + $sMessage = $aReturn['sMessage']; + return $sMessage; + } + +/** + * @SWG\Post(path="/layers", + * tags={"Layers"}, + * summary="Add layer", + * description="Request to add Layers", + * operationId="POST", + * produces={"application/xml", "application/json"}, + * @SWG\Parameter( + * name="token", + * in="query", + * description="user token", + * required=true, + * type="string" + * ), + * @SWG\Response( + * response=200, + * description="layer Response", + * @SWG\Schema(ref="#/definitions/layers") + * ) + * ) + */ + + /** + * insert layer + * @return id of the layer created + */ + function POST() { + $aReturn = $this->genericPost($this->aProperties['schema_extraction'], 'rt_layer', '', 'layer_id'); + + return $aReturn['sMessage']; + } + +/** + * @SWG\Put(path="/layers/{id_layer}", + * tags={"Layers"}, + * summary="update Layers", + * description="Request to update Layers", + * operationId="PUT", + * produces={"application/xml", "application/json"}, + * @SWG\Parameter( + * name="token", + * in="query", + * description="Layer token", + * required=true, + * type="string" + * ), + * * @SWG\Parameter( + * name="id_layer", + * in="path", + * description="id of the Layers", + * required=true, + * type="integer", + * format = "int32" + * ), + * @SWG\Response( + * response=200, + * description="Poprerties Response", + * @SWG\Schema(ref="#/definitions/layers") + * ) + * ) + */ + + /** + * update layers + * @return id of layers updated or error object if a layers is not updated + */ + function PUT() { + $aReturn = $this->genericPut($this->aProperties['schema_extraction'], 'rt_layer', 'layer_id'); + + return $aReturn['sMessage']; + } + +/** + * @SWG\Delete(path="/layers", + * tags={"Layers"}, + * summary="delete Layers", + * description="Request to delete Layers", + * operationId="DELETE", + * produces={"application/xml", "application/json"}, + * @SWG\Parameter( + * name="token", + * in="query", + * description="token", + * required=true, + * type="string" + * ), + * * @SWG\Parameter( + * name="idList", + * in="query", + * description="id of the layer", + * required=true, + * type="string" + * ), + * @SWG\Response( + * response=200, + * description="layer Response", + * @SWG\Schema(ref="#/definitions/layers") + * ) + * ) + */ + /** + * @SWG\Delete(path="/layers/{id_layer}", + * tags={"Layers"}, + * summary="delete Layers", + * description="Request to delete Layers", + * operationId="DELETE", + * produces={"application/xml", "application/json"}, + * @SWG\Parameter( + * name="token", + * in="query", + * description="Layer token", + * required=true, + * type="string" + * ), + * * @SWG\Parameter( + * name="id_layer", + * in="path", + * description="id of the Layers", + * required=true, + * type="integer", + * format = "int32" + * ), + * @SWG\Response( + * response=200, + * description="Poprerties Response", + * @SWG\Schema(ref="#/definitions/layers") + * ) + * ) + */ + + /** + * delete layers + * @return id of layers deleted or error object if a layers is not deleted + */ + function DELETE() { + $aReturn = $this->genericDelete($this->aProperties['schema_extraction'], 'rt_layer', 'layer_id'); + return $aReturn['sMessage']; + } + + +} + +?> \ No newline at end of file diff --git a/src/module_extraction/web_service/ws/overview.phtml b/src/module_extraction/web_service/ws/overview.phtml new file mode 100755 index 00000000..27e165d3 --- /dev/null +++ b/src/module_extraction/web_service/ws/overview.phtml @@ -0,0 +1,24 @@ +<?php +/** + * @SWG\Swagger( + * basePath="/[service_alias]/extraction", + * host="[server]", + * schemes={"[protocol]"}, + * produces={ + * "application/json", + "application/xml", + "text/html" + * }, + * @SWG\Info( + * version="1.0.0", + * title="Extraction Test Rest", + * description="All fetaures to access server operation for extraction", + * ) + * ) + */ +?> + +<h1 class="titleOverview">Service Extraction</h1> +<p> + <a class="linkOverview" href="javascript:sService='extraction';LoadApi()">Extraction</a>: this is the most comprehensive service which should be used as a preference when developing applications communicating with Extraction. Those services allow you to administrate Extraction applications. +</p> \ No newline at end of file diff --git a/vas/doc/vendor/symfony/finder/Tests/Fixtures/A/B/C/abc.dat b/src/vitis/.gitignore old mode 100755 new mode 100644 similarity index 100% rename from vas/doc/vendor/symfony/finder/Tests/Fixtures/A/B/C/abc.dat rename to src/vitis/.gitignore diff --git a/src/vitis/README.md b/src/vitis/README.md new file mode 100644 index 00000000..73a21c98 --- /dev/null +++ b/src/vitis/README.md @@ -0,0 +1 @@ +Vitis framework \ No newline at end of file diff --git a/src/vitis/_install/client/fileToDelete.txt b/src/vitis/_install/client/fileToDelete.txt new file mode 100644 index 00000000..ca3a9114 --- /dev/null +++ b/src/vitis/_install/client/fileToDelete.txt @@ -0,0 +1,4 @@ +javascript/externs/formreader/formreader.js +javascript/externs/formreader/formreaderCtrl.js +javascript/externs/formreader/formreaderDrtv.js +javascript/externs/formreader/formreaderSrvc.js \ No newline at end of file diff --git a/src/vitis/_install/client/folderToDelete.txt b/src/vitis/_install/client/folderToDelete.txt new file mode 100644 index 00000000..a0e7984d --- /dev/null +++ b/src/vitis/_install/client/folderToDelete.txt @@ -0,0 +1,8 @@ +javascript/app +javascript/require +javascript/test +javascript/externs/openLayers/ol +javascript/externs/openLayers/ol.ext +javascript/externs/studio/properties +javascript/externs/studio/javascript +modules/vitis/javascript \ No newline at end of file diff --git a/src/vitis/_install/client/listModuleApache.txt b/src/vitis/_install/client/listModuleApache.txt new file mode 100644 index 00000000..2c0309e3 --- /dev/null +++ b/src/vitis/_install/client/listModuleApache.txt @@ -0,0 +1,5 @@ +alias +deflate +headers +rewrite +ssl \ No newline at end of file diff --git a/_install/dependencies/mapserver/.htaccess b/src/vitis/_install/dependencies/mapserver/.htaccess similarity index 100% rename from _install/dependencies/mapserver/.htaccess rename to src/vitis/_install/dependencies/mapserver/.htaccess diff --git a/_install/dependencies/mapserver/linux/apache.conf b/src/vitis/_install/dependencies/mapserver/linux/apache.conf similarity index 100% rename from _install/dependencies/mapserver/linux/apache.conf rename to src/vitis/_install/dependencies/mapserver/linux/apache.conf diff --git a/_install/dependencies/mapserver/windows/apache.conf b/src/vitis/_install/dependencies/mapserver/windows/apache.conf similarity index 100% rename from _install/dependencies/mapserver/windows/apache.conf rename to src/vitis/_install/dependencies/mapserver/windows/apache.conf diff --git a/_install/dependencies/php/linux/apache.conf b/src/vitis/_install/dependencies/php/linux/apache.conf similarity index 100% rename from _install/dependencies/php/linux/apache.conf rename to src/vitis/_install/dependencies/php/linux/apache.conf diff --git a/_install/dependencies/php/php.ini b/src/vitis/_install/dependencies/php/php.ini similarity index 100% rename from _install/dependencies/php/php.ini rename to src/vitis/_install/dependencies/php/php.ini diff --git a/_install/dependencies/php/windows/apache.conf b/src/vitis/_install/dependencies/php/windows/apache.conf similarity index 100% rename from _install/dependencies/php/windows/apache.conf rename to src/vitis/_install/dependencies/php/windows/apache.conf diff --git a/_install/dependencies/pycron/crontab.txt b/src/vitis/_install/dependencies/pycron/crontab.txt similarity index 100% rename from _install/dependencies/pycron/crontab.txt rename to src/vitis/_install/dependencies/pycron/crontab.txt diff --git a/_install/dependencies/websocket/apache.conf b/src/vitis/_install/dependencies/websocket/apache.conf similarity index 100% rename from _install/dependencies/websocket/apache.conf rename to src/vitis/_install/dependencies/websocket/apache.conf diff --git a/_install/dependencies/websocket/linux/websocket_vitis b/src/vitis/_install/dependencies/websocket/linux/websocket_vitis similarity index 100% rename from _install/dependencies/websocket/linux/websocket_vitis rename to src/vitis/_install/dependencies/websocket/linux/websocket_vitis diff --git a/_install/dependencies/websocket/websocket.cfg b/src/vitis/_install/dependencies/websocket/websocket.cfg similarity index 100% rename from _install/dependencies/websocket/websocket.cfg rename to src/vitis/_install/dependencies/websocket/websocket.cfg diff --git a/_install/dependency.xml b/src/vitis/_install/dependency.xml similarity index 100% rename from _install/dependency.xml rename to src/vitis/_install/dependency.xml diff --git a/src/vitis/_install/vas/apache.conf b/src/vitis/_install/vas/apache.conf new file mode 100644 index 00000000..2281b2e2 --- /dev/null +++ b/src/vitis/_install/vas/apache.conf @@ -0,0 +1,70 @@ +PassEnv TEMP +Alias /rest[ENV] "[VASDIRECTORY]/rest" + <Directory "[VASDIRECTORY]/rest"> + <FilesMatch ".+\.ph(p[345]?|t|tml)$"> + SetHandler application/x-httpd-php_vitis[ENV] + </FilesMatch> + AllowOverride FileInfo + Options FollowSymLinks + Require all granted + <Files ~ "\.(map|log|inc|php)$"> + Order allow,deny + Deny from all + </Files> + </Directory> + +Alias /doc[ENV] "[VASDIRECTORY]/doc" + <Directory "[VASDIRECTORY]/doc"> + <FilesMatch ".+\.ph(p[345]?|t|tml)$"> + SetHandler application/x-httpd-php_vitis[ENV] + </FilesMatch> + AllowOverride FileInfo + Options FollowSymLinks + Require all granted + </Directory> + +Alias /public[ENV] "[VASDIRECTORY]/public" + <Directory "[VASDIRECTORY]/public"> + AllowOverride FileInfo + Options FollowSymLinks + Require all granted + <Files ~ "\.(map|inc|php)$"> + Order allow,deny + Deny from all + </Files> + SetHandler application/x-download + </Directory> +Alias /ws_data[ENV] "[VASDIRECTORY]/ws_data" + <Directory "[VASDIRECTORY]/ws_data"> + AllowOverride All + Options FollowSymLinks + Require all granted + <Files ~ "\.(map|log|inc|php)$"> + Order allow,deny + Deny from all + </Files> + SetHandler application/x-download + </Directory> +Alias /proxy[ENV] "[VASDIRECTORY]/util/proxy" + <Directory "[VASDIRECTORY]/util/proxy"> + <FilesMatch ".+\.ph(p[345]?|t|tml)$"> + SetHandler application/x-httpd-php_vitis[ENV] + </FilesMatch> + AllowOverride FileInfo + Options FollowSymLinks + Require all granted + <Files ~ "\.(map|log|inc)$"> + Order allow,deny + Deny from all + </Files> + </Directory> +Alias /printserver[ENV] "[VASDIRECTORY]/util/printserver" + <Directory "[VASDIRECTORY]/util/printserver"> + AllowOverride FileInfo + Options FollowSymLinks + Require all granted + <Files ~ "\.(map|log|inc|php)$"> + Order allow,deny + Deny from all + </Files> + </Directory> \ No newline at end of file diff --git a/src/vitis/_install/vas/listModuleApache.txt b/src/vitis/_install/vas/listModuleApache.txt new file mode 100644 index 00000000..c2626d94 --- /dev/null +++ b/src/vitis/_install/vas/listModuleApache.txt @@ -0,0 +1,16 @@ +actions +alias +cgi +deflate +headers +ldap +rewrite +ssl +proxy +proxy_ajp +proxy_connect +proxy_fcgi +proxy_ftp +proxy_http +proxy_scgi +proxy_wstunnel \ No newline at end of file diff --git a/client/.htaccess b/src/vitis/client/.htaccess similarity index 100% rename from client/.htaccess rename to src/vitis/client/.htaccess diff --git a/client/css/icons/fonts/veremes.eot b/src/vitis/client/css/icons/fonts/veremes.eot similarity index 100% rename from client/css/icons/fonts/veremes.eot rename to src/vitis/client/css/icons/fonts/veremes.eot diff --git a/client/css/icons/fonts/veremes.svg b/src/vitis/client/css/icons/fonts/veremes.svg similarity index 100% rename from client/css/icons/fonts/veremes.svg rename to src/vitis/client/css/icons/fonts/veremes.svg diff --git a/client/css/icons/fonts/veremes.ttf b/src/vitis/client/css/icons/fonts/veremes.ttf similarity index 100% rename from client/css/icons/fonts/veremes.ttf rename to src/vitis/client/css/icons/fonts/veremes.ttf diff --git a/client/css/icons/fonts/veremes.woff b/src/vitis/client/css/icons/fonts/veremes.woff similarity index 100% rename from client/css/icons/fonts/veremes.woff rename to src/vitis/client/css/icons/fonts/veremes.woff diff --git a/client/css/icons/selection.json b/src/vitis/client/css/icons/selection.json similarity index 100% rename from client/css/icons/selection.json rename to src/vitis/client/css/icons/selection.json diff --git a/client/css/icons/style.css b/src/vitis/client/css/icons/style.css similarity index 100% rename from client/css/icons/style.css rename to src/vitis/client/css/icons/style.css diff --git a/client/css/lib/awesome-bootstrap-checkbox.css b/src/vitis/client/css/lib/awesome-bootstrap-checkbox.css similarity index 100% rename from client/css/lib/awesome-bootstrap-checkbox.css rename to src/vitis/client/css/lib/awesome-bootstrap-checkbox.css diff --git a/client/css/lib/bootstrap-checkbox/build.css b/src/vitis/client/css/lib/bootstrap-checkbox/build.css similarity index 100% rename from client/css/lib/bootstrap-checkbox/build.css rename to src/vitis/client/css/lib/bootstrap-checkbox/build.css diff --git a/client/css/lib/bootstrap-checkbox/font-awesome.css b/src/vitis/client/css/lib/bootstrap-checkbox/font-awesome.css similarity index 100% rename from client/css/lib/bootstrap-checkbox/font-awesome.css rename to src/vitis/client/css/lib/bootstrap-checkbox/font-awesome.css diff --git a/client/css/lib/bootstrap-checkbox/font-awesome.min.css b/src/vitis/client/css/lib/bootstrap-checkbox/font-awesome.min.css similarity index 100% rename from client/css/lib/bootstrap-checkbox/font-awesome.min.css rename to src/vitis/client/css/lib/bootstrap-checkbox/font-awesome.min.css diff --git a/client/css/lib/bootstrap/css/bootstrap-theme.css b/src/vitis/client/css/lib/bootstrap/css/bootstrap-theme.css similarity index 100% rename from client/css/lib/bootstrap/css/bootstrap-theme.css rename to src/vitis/client/css/lib/bootstrap/css/bootstrap-theme.css diff --git a/client/css/lib/bootstrap/css/bootstrap-theme.css.map b/src/vitis/client/css/lib/bootstrap/css/bootstrap-theme.css.map similarity index 100% rename from client/css/lib/bootstrap/css/bootstrap-theme.css.map rename to src/vitis/client/css/lib/bootstrap/css/bootstrap-theme.css.map diff --git a/client/css/lib/bootstrap/css/bootstrap-theme.min.css b/src/vitis/client/css/lib/bootstrap/css/bootstrap-theme.min.css similarity index 100% rename from client/css/lib/bootstrap/css/bootstrap-theme.min.css rename to src/vitis/client/css/lib/bootstrap/css/bootstrap-theme.min.css diff --git a/client/css/lib/bootstrap/css/bootstrap.css b/src/vitis/client/css/lib/bootstrap/css/bootstrap.css similarity index 100% rename from client/css/lib/bootstrap/css/bootstrap.css rename to src/vitis/client/css/lib/bootstrap/css/bootstrap.css diff --git a/client/css/lib/bootstrap/css/bootstrap.css.map b/src/vitis/client/css/lib/bootstrap/css/bootstrap.css.map similarity index 100% rename from client/css/lib/bootstrap/css/bootstrap.css.map rename to src/vitis/client/css/lib/bootstrap/css/bootstrap.css.map diff --git a/client/css/lib/bootstrap/css/bootstrap.min.css b/src/vitis/client/css/lib/bootstrap/css/bootstrap.min.css similarity index 100% rename from client/css/lib/bootstrap/css/bootstrap.min.css rename to src/vitis/client/css/lib/bootstrap/css/bootstrap.min.css diff --git a/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.eot b/src/vitis/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.eot similarity index 100% rename from client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.eot rename to src/vitis/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.eot diff --git a/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.svg b/src/vitis/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.svg similarity index 100% rename from client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.svg rename to src/vitis/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.svg diff --git a/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf b/src/vitis/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf similarity index 100% rename from client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf rename to src/vitis/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf diff --git a/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.woff b/src/vitis/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.woff similarity index 100% rename from client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.woff rename to src/vitis/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.woff diff --git a/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2 b/src/vitis/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2 similarity index 100% rename from client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2 rename to src/vitis/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2 diff --git a/client/css/lib/codemirror/codemirror.css b/src/vitis/client/css/lib/codemirror/codemirror.css similarity index 100% rename from client/css/lib/codemirror/codemirror.css rename to src/vitis/client/css/lib/codemirror/codemirror.css diff --git a/client/css/lib/codemirror/codemirror_foldgutter.css b/src/vitis/client/css/lib/codemirror/codemirror_foldgutter.css similarity index 100% rename from client/css/lib/codemirror/codemirror_foldgutter.css rename to src/vitis/client/css/lib/codemirror/codemirror_foldgutter.css diff --git a/client/css/lib/codemirror/dialog.css b/src/vitis/client/css/lib/codemirror/dialog.css similarity index 100% rename from client/css/lib/codemirror/dialog.css rename to src/vitis/client/css/lib/codemirror/dialog.css diff --git a/client/css/lib/codemirror/docs.css b/src/vitis/client/css/lib/codemirror/docs.css similarity index 100% rename from client/css/lib/codemirror/docs.css rename to src/vitis/client/css/lib/codemirror/docs.css diff --git a/client/css/lib/codemirror/map.css b/src/vitis/client/css/lib/codemirror/map.css similarity index 100% rename from client/css/lib/codemirror/map.css rename to src/vitis/client/css/lib/codemirror/map.css diff --git a/client/css/lib/codemirror/show-hint.css b/src/vitis/client/css/lib/codemirror/show-hint.css similarity index 100% rename from client/css/lib/codemirror/show-hint.css rename to src/vitis/client/css/lib/codemirror/show-hint.css diff --git a/client/css/lib/codemirror/theme/3024-day.css b/src/vitis/client/css/lib/codemirror/theme/3024-day.css similarity index 100% rename from client/css/lib/codemirror/theme/3024-day.css rename to src/vitis/client/css/lib/codemirror/theme/3024-day.css diff --git a/client/css/lib/codemirror/theme/3024-night.css b/src/vitis/client/css/lib/codemirror/theme/3024-night.css similarity index 100% rename from client/css/lib/codemirror/theme/3024-night.css rename to src/vitis/client/css/lib/codemirror/theme/3024-night.css diff --git a/client/css/lib/codemirror/theme/Veremes.css b/src/vitis/client/css/lib/codemirror/theme/Veremes.css similarity index 100% rename from client/css/lib/codemirror/theme/Veremes.css rename to src/vitis/client/css/lib/codemirror/theme/Veremes.css diff --git a/client/css/lib/codemirror/theme/abcdef.css b/src/vitis/client/css/lib/codemirror/theme/abcdef.css similarity index 100% rename from client/css/lib/codemirror/theme/abcdef.css rename to src/vitis/client/css/lib/codemirror/theme/abcdef.css diff --git a/client/css/lib/codemirror/theme/ambiance-mobile.css b/src/vitis/client/css/lib/codemirror/theme/ambiance-mobile.css similarity index 100% rename from client/css/lib/codemirror/theme/ambiance-mobile.css rename to src/vitis/client/css/lib/codemirror/theme/ambiance-mobile.css diff --git a/client/css/lib/codemirror/theme/ambiance.css b/src/vitis/client/css/lib/codemirror/theme/ambiance.css similarity index 100% rename from client/css/lib/codemirror/theme/ambiance.css rename to src/vitis/client/css/lib/codemirror/theme/ambiance.css diff --git a/client/css/lib/codemirror/theme/base16-dark.css b/src/vitis/client/css/lib/codemirror/theme/base16-dark.css similarity index 100% rename from client/css/lib/codemirror/theme/base16-dark.css rename to src/vitis/client/css/lib/codemirror/theme/base16-dark.css diff --git a/client/css/lib/codemirror/theme/base16-light.css b/src/vitis/client/css/lib/codemirror/theme/base16-light.css similarity index 100% rename from client/css/lib/codemirror/theme/base16-light.css rename to src/vitis/client/css/lib/codemirror/theme/base16-light.css diff --git a/client/css/lib/codemirror/theme/bespin.css b/src/vitis/client/css/lib/codemirror/theme/bespin.css similarity index 100% rename from client/css/lib/codemirror/theme/bespin.css rename to src/vitis/client/css/lib/codemirror/theme/bespin.css diff --git a/client/css/lib/codemirror/theme/blackboard.css b/src/vitis/client/css/lib/codemirror/theme/blackboard.css similarity index 100% rename from client/css/lib/codemirror/theme/blackboard.css rename to src/vitis/client/css/lib/codemirror/theme/blackboard.css diff --git a/client/css/lib/codemirror/theme/cobalt.css b/src/vitis/client/css/lib/codemirror/theme/cobalt.css similarity index 100% rename from client/css/lib/codemirror/theme/cobalt.css rename to src/vitis/client/css/lib/codemirror/theme/cobalt.css diff --git a/client/css/lib/codemirror/theme/colorforth.css b/src/vitis/client/css/lib/codemirror/theme/colorforth.css similarity index 100% rename from client/css/lib/codemirror/theme/colorforth.css rename to src/vitis/client/css/lib/codemirror/theme/colorforth.css diff --git a/client/css/lib/codemirror/theme/dracula.css b/src/vitis/client/css/lib/codemirror/theme/dracula.css similarity index 100% rename from client/css/lib/codemirror/theme/dracula.css rename to src/vitis/client/css/lib/codemirror/theme/dracula.css diff --git a/client/css/lib/codemirror/theme/eclipse.css b/src/vitis/client/css/lib/codemirror/theme/eclipse.css similarity index 100% rename from client/css/lib/codemirror/theme/eclipse.css rename to src/vitis/client/css/lib/codemirror/theme/eclipse.css diff --git a/client/css/lib/codemirror/theme/elegant.css b/src/vitis/client/css/lib/codemirror/theme/elegant.css similarity index 100% rename from client/css/lib/codemirror/theme/elegant.css rename to src/vitis/client/css/lib/codemirror/theme/elegant.css diff --git a/client/css/lib/codemirror/theme/erlang-dark.css b/src/vitis/client/css/lib/codemirror/theme/erlang-dark.css similarity index 100% rename from client/css/lib/codemirror/theme/erlang-dark.css rename to src/vitis/client/css/lib/codemirror/theme/erlang-dark.css diff --git a/client/css/lib/codemirror/theme/hopscotch.css b/src/vitis/client/css/lib/codemirror/theme/hopscotch.css similarity index 100% rename from client/css/lib/codemirror/theme/hopscotch.css rename to src/vitis/client/css/lib/codemirror/theme/hopscotch.css diff --git a/client/css/lib/codemirror/theme/icecoder.css b/src/vitis/client/css/lib/codemirror/theme/icecoder.css similarity index 100% rename from client/css/lib/codemirror/theme/icecoder.css rename to src/vitis/client/css/lib/codemirror/theme/icecoder.css diff --git a/client/css/lib/codemirror/theme/isotope.css b/src/vitis/client/css/lib/codemirror/theme/isotope.css similarity index 100% rename from client/css/lib/codemirror/theme/isotope.css rename to src/vitis/client/css/lib/codemirror/theme/isotope.css diff --git a/client/css/lib/codemirror/theme/lesser-dark.css b/src/vitis/client/css/lib/codemirror/theme/lesser-dark.css similarity index 100% rename from client/css/lib/codemirror/theme/lesser-dark.css rename to src/vitis/client/css/lib/codemirror/theme/lesser-dark.css diff --git a/client/css/lib/codemirror/theme/liquibyte.css b/src/vitis/client/css/lib/codemirror/theme/liquibyte.css similarity index 100% rename from client/css/lib/codemirror/theme/liquibyte.css rename to src/vitis/client/css/lib/codemirror/theme/liquibyte.css diff --git a/client/css/lib/codemirror/theme/material.css b/src/vitis/client/css/lib/codemirror/theme/material.css similarity index 100% rename from client/css/lib/codemirror/theme/material.css rename to src/vitis/client/css/lib/codemirror/theme/material.css diff --git a/client/css/lib/codemirror/theme/mbo.css b/src/vitis/client/css/lib/codemirror/theme/mbo.css similarity index 100% rename from client/css/lib/codemirror/theme/mbo.css rename to src/vitis/client/css/lib/codemirror/theme/mbo.css diff --git a/client/css/lib/codemirror/theme/mdn-like.css b/src/vitis/client/css/lib/codemirror/theme/mdn-like.css similarity index 100% rename from client/css/lib/codemirror/theme/mdn-like.css rename to src/vitis/client/css/lib/codemirror/theme/mdn-like.css diff --git a/client/css/lib/codemirror/theme/midnight.css b/src/vitis/client/css/lib/codemirror/theme/midnight.css similarity index 100% rename from client/css/lib/codemirror/theme/midnight.css rename to src/vitis/client/css/lib/codemirror/theme/midnight.css diff --git a/client/css/lib/codemirror/theme/monokai.css b/src/vitis/client/css/lib/codemirror/theme/monokai.css similarity index 100% rename from client/css/lib/codemirror/theme/monokai.css rename to src/vitis/client/css/lib/codemirror/theme/monokai.css diff --git a/client/css/lib/codemirror/theme/neat.css b/src/vitis/client/css/lib/codemirror/theme/neat.css similarity index 100% rename from client/css/lib/codemirror/theme/neat.css rename to src/vitis/client/css/lib/codemirror/theme/neat.css diff --git a/client/css/lib/codemirror/theme/neo.css b/src/vitis/client/css/lib/codemirror/theme/neo.css similarity index 100% rename from client/css/lib/codemirror/theme/neo.css rename to src/vitis/client/css/lib/codemirror/theme/neo.css diff --git a/client/css/lib/codemirror/theme/night.css b/src/vitis/client/css/lib/codemirror/theme/night.css similarity index 100% rename from client/css/lib/codemirror/theme/night.css rename to src/vitis/client/css/lib/codemirror/theme/night.css diff --git a/client/css/lib/codemirror/theme/paraiso-dark.css b/src/vitis/client/css/lib/codemirror/theme/paraiso-dark.css similarity index 100% rename from client/css/lib/codemirror/theme/paraiso-dark.css rename to src/vitis/client/css/lib/codemirror/theme/paraiso-dark.css diff --git a/client/css/lib/codemirror/theme/paraiso-light.css b/src/vitis/client/css/lib/codemirror/theme/paraiso-light.css similarity index 100% rename from client/css/lib/codemirror/theme/paraiso-light.css rename to src/vitis/client/css/lib/codemirror/theme/paraiso-light.css diff --git a/client/css/lib/codemirror/theme/pastel-on-dark.css b/src/vitis/client/css/lib/codemirror/theme/pastel-on-dark.css similarity index 100% rename from client/css/lib/codemirror/theme/pastel-on-dark.css rename to src/vitis/client/css/lib/codemirror/theme/pastel-on-dark.css diff --git a/client/css/lib/codemirror/theme/railscasts.css b/src/vitis/client/css/lib/codemirror/theme/railscasts.css similarity index 100% rename from client/css/lib/codemirror/theme/railscasts.css rename to src/vitis/client/css/lib/codemirror/theme/railscasts.css diff --git a/client/css/lib/codemirror/theme/rubyblue.css b/src/vitis/client/css/lib/codemirror/theme/rubyblue.css similarity index 100% rename from client/css/lib/codemirror/theme/rubyblue.css rename to src/vitis/client/css/lib/codemirror/theme/rubyblue.css diff --git a/client/css/lib/codemirror/theme/seti.css b/src/vitis/client/css/lib/codemirror/theme/seti.css similarity index 100% rename from client/css/lib/codemirror/theme/seti.css rename to src/vitis/client/css/lib/codemirror/theme/seti.css diff --git a/client/css/lib/codemirror/theme/solarized.css b/src/vitis/client/css/lib/codemirror/theme/solarized.css similarity index 100% rename from client/css/lib/codemirror/theme/solarized.css rename to src/vitis/client/css/lib/codemirror/theme/solarized.css diff --git a/client/css/lib/codemirror/theme/the-matrix.css b/src/vitis/client/css/lib/codemirror/theme/the-matrix.css similarity index 100% rename from client/css/lib/codemirror/theme/the-matrix.css rename to src/vitis/client/css/lib/codemirror/theme/the-matrix.css diff --git a/client/css/lib/codemirror/theme/tomorrow-night-bright.css b/src/vitis/client/css/lib/codemirror/theme/tomorrow-night-bright.css similarity index 100% rename from client/css/lib/codemirror/theme/tomorrow-night-bright.css rename to src/vitis/client/css/lib/codemirror/theme/tomorrow-night-bright.css diff --git a/client/css/lib/codemirror/theme/tomorrow-night-eighties.css b/src/vitis/client/css/lib/codemirror/theme/tomorrow-night-eighties.css similarity index 100% rename from client/css/lib/codemirror/theme/tomorrow-night-eighties.css rename to src/vitis/client/css/lib/codemirror/theme/tomorrow-night-eighties.css diff --git a/client/css/lib/codemirror/theme/ttcn.css b/src/vitis/client/css/lib/codemirror/theme/ttcn.css similarity index 100% rename from client/css/lib/codemirror/theme/ttcn.css rename to src/vitis/client/css/lib/codemirror/theme/ttcn.css diff --git a/client/css/lib/codemirror/theme/twilight.css b/src/vitis/client/css/lib/codemirror/theme/twilight.css similarity index 100% rename from client/css/lib/codemirror/theme/twilight.css rename to src/vitis/client/css/lib/codemirror/theme/twilight.css diff --git a/client/css/lib/codemirror/theme/vibrant-ink.css b/src/vitis/client/css/lib/codemirror/theme/vibrant-ink.css similarity index 100% rename from client/css/lib/codemirror/theme/vibrant-ink.css rename to src/vitis/client/css/lib/codemirror/theme/vibrant-ink.css diff --git a/client/css/lib/codemirror/theme/xq-dark.css b/src/vitis/client/css/lib/codemirror/theme/xq-dark.css similarity index 100% rename from client/css/lib/codemirror/theme/xq-dark.css rename to src/vitis/client/css/lib/codemirror/theme/xq-dark.css diff --git a/client/css/lib/codemirror/theme/xq-light.css b/src/vitis/client/css/lib/codemirror/theme/xq-light.css similarity index 100% rename from client/css/lib/codemirror/theme/xq-light.css rename to src/vitis/client/css/lib/codemirror/theme/xq-light.css diff --git a/client/css/lib/codemirror/theme/yeti.css b/src/vitis/client/css/lib/codemirror/theme/yeti.css similarity index 100% rename from client/css/lib/codemirror/theme/yeti.css rename to src/vitis/client/css/lib/codemirror/theme/yeti.css diff --git a/client/css/lib/codemirror/theme/zenburn.css b/src/vitis/client/css/lib/codemirror/theme/zenburn.css similarity index 100% rename from client/css/lib/codemirror/theme/zenburn.css rename to src/vitis/client/css/lib/codemirror/theme/zenburn.css diff --git a/client/css/lib/font-awesome/HELP-US-OUT.txt b/src/vitis/client/css/lib/font-awesome/HELP-US-OUT.txt similarity index 100% rename from client/css/lib/font-awesome/HELP-US-OUT.txt rename to src/vitis/client/css/lib/font-awesome/HELP-US-OUT.txt diff --git a/client/css/lib/font-awesome/css/font-awesome.css b/src/vitis/client/css/lib/font-awesome/css/font-awesome.css similarity index 100% rename from client/css/lib/font-awesome/css/font-awesome.css rename to src/vitis/client/css/lib/font-awesome/css/font-awesome.css diff --git a/client/css/lib/font-awesome/css/font-awesome.min.css b/src/vitis/client/css/lib/font-awesome/css/font-awesome.min.css similarity index 100% rename from client/css/lib/font-awesome/css/font-awesome.min.css rename to src/vitis/client/css/lib/font-awesome/css/font-awesome.min.css diff --git a/client/css/lib/font-awesome/fonts/FontAwesome.otf b/src/vitis/client/css/lib/font-awesome/fonts/FontAwesome.otf similarity index 100% rename from client/css/lib/font-awesome/fonts/FontAwesome.otf rename to src/vitis/client/css/lib/font-awesome/fonts/FontAwesome.otf diff --git a/client/css/lib/font-awesome/fonts/fontawesome-webfont.eot b/src/vitis/client/css/lib/font-awesome/fonts/fontawesome-webfont.eot similarity index 100% rename from client/css/lib/font-awesome/fonts/fontawesome-webfont.eot rename to src/vitis/client/css/lib/font-awesome/fonts/fontawesome-webfont.eot diff --git a/client/css/lib/font-awesome/fonts/fontawesome-webfont.svg b/src/vitis/client/css/lib/font-awesome/fonts/fontawesome-webfont.svg similarity index 100% rename from client/css/lib/font-awesome/fonts/fontawesome-webfont.svg rename to src/vitis/client/css/lib/font-awesome/fonts/fontawesome-webfont.svg diff --git a/client/css/lib/font-awesome/fonts/fontawesome-webfont.ttf b/src/vitis/client/css/lib/font-awesome/fonts/fontawesome-webfont.ttf similarity index 100% rename from client/css/lib/font-awesome/fonts/fontawesome-webfont.ttf rename to src/vitis/client/css/lib/font-awesome/fonts/fontawesome-webfont.ttf diff --git a/client/css/lib/font-awesome/fonts/fontawesome-webfont.woff b/src/vitis/client/css/lib/font-awesome/fonts/fontawesome-webfont.woff similarity index 100% rename from client/css/lib/font-awesome/fonts/fontawesome-webfont.woff rename to src/vitis/client/css/lib/font-awesome/fonts/fontawesome-webfont.woff diff --git a/client/css/lib/font-awesome/fonts/fontawesome-webfont.woff2 b/src/vitis/client/css/lib/font-awesome/fonts/fontawesome-webfont.woff2 similarity index 100% rename from client/css/lib/font-awesome/fonts/fontawesome-webfont.woff2 rename to src/vitis/client/css/lib/font-awesome/fonts/fontawesome-webfont.woff2 diff --git a/client/css/lib/font-awesome/less/animated.less b/src/vitis/client/css/lib/font-awesome/less/animated.less similarity index 100% rename from client/css/lib/font-awesome/less/animated.less rename to src/vitis/client/css/lib/font-awesome/less/animated.less diff --git a/client/css/lib/font-awesome/less/bordered-pulled.less b/src/vitis/client/css/lib/font-awesome/less/bordered-pulled.less similarity index 100% rename from client/css/lib/font-awesome/less/bordered-pulled.less rename to src/vitis/client/css/lib/font-awesome/less/bordered-pulled.less diff --git a/client/css/lib/font-awesome/less/core.less b/src/vitis/client/css/lib/font-awesome/less/core.less similarity index 100% rename from client/css/lib/font-awesome/less/core.less rename to src/vitis/client/css/lib/font-awesome/less/core.less diff --git a/client/css/lib/font-awesome/less/fixed-width.less b/src/vitis/client/css/lib/font-awesome/less/fixed-width.less similarity index 100% rename from client/css/lib/font-awesome/less/fixed-width.less rename to src/vitis/client/css/lib/font-awesome/less/fixed-width.less diff --git a/client/css/lib/font-awesome/less/font-awesome.less b/src/vitis/client/css/lib/font-awesome/less/font-awesome.less similarity index 100% rename from client/css/lib/font-awesome/less/font-awesome.less rename to src/vitis/client/css/lib/font-awesome/less/font-awesome.less diff --git a/client/css/lib/font-awesome/less/icons.less b/src/vitis/client/css/lib/font-awesome/less/icons.less similarity index 100% rename from client/css/lib/font-awesome/less/icons.less rename to src/vitis/client/css/lib/font-awesome/less/icons.less diff --git a/client/css/lib/font-awesome/less/larger.less b/src/vitis/client/css/lib/font-awesome/less/larger.less similarity index 100% rename from client/css/lib/font-awesome/less/larger.less rename to src/vitis/client/css/lib/font-awesome/less/larger.less diff --git a/client/css/lib/font-awesome/less/list.less b/src/vitis/client/css/lib/font-awesome/less/list.less similarity index 100% rename from client/css/lib/font-awesome/less/list.less rename to src/vitis/client/css/lib/font-awesome/less/list.less diff --git a/client/css/lib/font-awesome/less/mixins.less b/src/vitis/client/css/lib/font-awesome/less/mixins.less similarity index 100% rename from client/css/lib/font-awesome/less/mixins.less rename to src/vitis/client/css/lib/font-awesome/less/mixins.less diff --git a/client/css/lib/font-awesome/less/path.less b/src/vitis/client/css/lib/font-awesome/less/path.less similarity index 100% rename from client/css/lib/font-awesome/less/path.less rename to src/vitis/client/css/lib/font-awesome/less/path.less diff --git a/client/css/lib/font-awesome/less/rotated-flipped.less b/src/vitis/client/css/lib/font-awesome/less/rotated-flipped.less similarity index 100% rename from client/css/lib/font-awesome/less/rotated-flipped.less rename to src/vitis/client/css/lib/font-awesome/less/rotated-flipped.less diff --git a/client/css/lib/font-awesome/less/stacked.less b/src/vitis/client/css/lib/font-awesome/less/stacked.less similarity index 100% rename from client/css/lib/font-awesome/less/stacked.less rename to src/vitis/client/css/lib/font-awesome/less/stacked.less diff --git a/client/css/lib/font-awesome/less/variables.less b/src/vitis/client/css/lib/font-awesome/less/variables.less similarity index 100% rename from client/css/lib/font-awesome/less/variables.less rename to src/vitis/client/css/lib/font-awesome/less/variables.less diff --git a/client/css/lib/font-awesome/scss/_animated.scss b/src/vitis/client/css/lib/font-awesome/scss/_animated.scss similarity index 100% rename from client/css/lib/font-awesome/scss/_animated.scss rename to src/vitis/client/css/lib/font-awesome/scss/_animated.scss diff --git a/client/css/lib/font-awesome/scss/_bordered-pulled.scss b/src/vitis/client/css/lib/font-awesome/scss/_bordered-pulled.scss similarity index 100% rename from client/css/lib/font-awesome/scss/_bordered-pulled.scss rename to src/vitis/client/css/lib/font-awesome/scss/_bordered-pulled.scss diff --git a/client/css/lib/font-awesome/scss/_core.scss b/src/vitis/client/css/lib/font-awesome/scss/_core.scss similarity index 100% rename from client/css/lib/font-awesome/scss/_core.scss rename to src/vitis/client/css/lib/font-awesome/scss/_core.scss diff --git a/client/css/lib/font-awesome/scss/_fixed-width.scss b/src/vitis/client/css/lib/font-awesome/scss/_fixed-width.scss similarity index 100% rename from client/css/lib/font-awesome/scss/_fixed-width.scss rename to src/vitis/client/css/lib/font-awesome/scss/_fixed-width.scss diff --git a/client/css/lib/font-awesome/scss/_icons.scss b/src/vitis/client/css/lib/font-awesome/scss/_icons.scss similarity index 100% rename from client/css/lib/font-awesome/scss/_icons.scss rename to src/vitis/client/css/lib/font-awesome/scss/_icons.scss diff --git a/client/css/lib/font-awesome/scss/_larger.scss b/src/vitis/client/css/lib/font-awesome/scss/_larger.scss similarity index 100% rename from client/css/lib/font-awesome/scss/_larger.scss rename to src/vitis/client/css/lib/font-awesome/scss/_larger.scss diff --git a/client/css/lib/font-awesome/scss/_list.scss b/src/vitis/client/css/lib/font-awesome/scss/_list.scss similarity index 100% rename from client/css/lib/font-awesome/scss/_list.scss rename to src/vitis/client/css/lib/font-awesome/scss/_list.scss diff --git a/client/css/lib/font-awesome/scss/_mixins.scss b/src/vitis/client/css/lib/font-awesome/scss/_mixins.scss similarity index 100% rename from client/css/lib/font-awesome/scss/_mixins.scss rename to src/vitis/client/css/lib/font-awesome/scss/_mixins.scss diff --git a/client/css/lib/font-awesome/scss/_path.scss b/src/vitis/client/css/lib/font-awesome/scss/_path.scss similarity index 100% rename from client/css/lib/font-awesome/scss/_path.scss rename to src/vitis/client/css/lib/font-awesome/scss/_path.scss diff --git a/client/css/lib/font-awesome/scss/_rotated-flipped.scss b/src/vitis/client/css/lib/font-awesome/scss/_rotated-flipped.scss similarity index 100% rename from client/css/lib/font-awesome/scss/_rotated-flipped.scss rename to src/vitis/client/css/lib/font-awesome/scss/_rotated-flipped.scss diff --git a/client/css/lib/font-awesome/scss/_stacked.scss b/src/vitis/client/css/lib/font-awesome/scss/_stacked.scss similarity index 100% rename from client/css/lib/font-awesome/scss/_stacked.scss rename to src/vitis/client/css/lib/font-awesome/scss/_stacked.scss diff --git a/client/css/lib/font-awesome/scss/_variables.scss b/src/vitis/client/css/lib/font-awesome/scss/_variables.scss similarity index 100% rename from client/css/lib/font-awesome/scss/_variables.scss rename to src/vitis/client/css/lib/font-awesome/scss/_variables.scss diff --git a/client/css/lib/font-awesome/scss/font-awesome.scss b/src/vitis/client/css/lib/font-awesome/scss/font-awesome.scss similarity index 100% rename from client/css/lib/font-awesome/scss/font-awesome.scss rename to src/vitis/client/css/lib/font-awesome/scss/font-awesome.scss diff --git a/client/css/lib/fonts/FontAwesome.otf b/src/vitis/client/css/lib/fonts/FontAwesome.otf similarity index 100% rename from client/css/lib/fonts/FontAwesome.otf rename to src/vitis/client/css/lib/fonts/FontAwesome.otf diff --git a/client/css/lib/fonts/fontawesome-webfont.eot b/src/vitis/client/css/lib/fonts/fontawesome-webfont.eot similarity index 100% rename from client/css/lib/fonts/fontawesome-webfont.eot rename to src/vitis/client/css/lib/fonts/fontawesome-webfont.eot diff --git a/client/css/lib/fonts/fontawesome-webfont.svg b/src/vitis/client/css/lib/fonts/fontawesome-webfont.svg similarity index 100% rename from client/css/lib/fonts/fontawesome-webfont.svg rename to src/vitis/client/css/lib/fonts/fontawesome-webfont.svg diff --git a/client/css/lib/fonts/fontawesome-webfont.ttf b/src/vitis/client/css/lib/fonts/fontawesome-webfont.ttf similarity index 100% rename from client/css/lib/fonts/fontawesome-webfont.ttf rename to src/vitis/client/css/lib/fonts/fontawesome-webfont.ttf diff --git a/client/css/lib/fonts/fontawesome-webfont.woff b/src/vitis/client/css/lib/fonts/fontawesome-webfont.woff similarity index 100% rename from client/css/lib/fonts/fontawesome-webfont.woff rename to src/vitis/client/css/lib/fonts/fontawesome-webfont.woff diff --git a/client/css/lib/fonts/fontawesome-webfont.woff2 b/src/vitis/client/css/lib/fonts/fontawesome-webfont.woff2 similarity index 100% rename from client/css/lib/fonts/fontawesome-webfont.woff2 rename to src/vitis/client/css/lib/fonts/fontawesome-webfont.woff2 diff --git a/client/css/lib/fonts/glyphicons-halflings-regular.eot b/src/vitis/client/css/lib/fonts/glyphicons-halflings-regular.eot similarity index 100% rename from client/css/lib/fonts/glyphicons-halflings-regular.eot rename to src/vitis/client/css/lib/fonts/glyphicons-halflings-regular.eot diff --git a/client/css/lib/fonts/glyphicons-halflings-regular.svg b/src/vitis/client/css/lib/fonts/glyphicons-halflings-regular.svg similarity index 100% rename from client/css/lib/fonts/glyphicons-halflings-regular.svg rename to src/vitis/client/css/lib/fonts/glyphicons-halflings-regular.svg diff --git a/client/css/lib/fonts/glyphicons-halflings-regular.ttf b/src/vitis/client/css/lib/fonts/glyphicons-halflings-regular.ttf similarity index 100% rename from client/css/lib/fonts/glyphicons-halflings-regular.ttf rename to src/vitis/client/css/lib/fonts/glyphicons-halflings-regular.ttf diff --git a/client/css/lib/fonts/glyphicons-halflings-regular.woff b/src/vitis/client/css/lib/fonts/glyphicons-halflings-regular.woff similarity index 100% rename from client/css/lib/fonts/glyphicons-halflings-regular.woff rename to src/vitis/client/css/lib/fonts/glyphicons-halflings-regular.woff diff --git a/client/css/lib/fonts/glyphicons-halflings-regular.woff2 b/src/vitis/client/css/lib/fonts/glyphicons-halflings-regular.woff2 similarity index 100% rename from client/css/lib/fonts/glyphicons-halflings-regular.woff2 rename to src/vitis/client/css/lib/fonts/glyphicons-halflings-regular.woff2 diff --git a/client/css/lib/jquery/plugins/bootstrap-colorpicker/css/bootstrap-colorpicker.min.css b/src/vitis/client/css/lib/jquery/plugins/bootstrap-colorpicker/css/bootstrap-colorpicker.min.css similarity index 100% rename from client/css/lib/jquery/plugins/bootstrap-colorpicker/css/bootstrap-colorpicker.min.css rename to src/vitis/client/css/lib/jquery/plugins/bootstrap-colorpicker/css/bootstrap-colorpicker.min.css diff --git a/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/alpha-horizontal.png b/src/vitis/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/alpha-horizontal.png similarity index 100% rename from client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/alpha-horizontal.png rename to src/vitis/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/alpha-horizontal.png diff --git a/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/alpha.png b/src/vitis/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/alpha.png similarity index 100% rename from client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/alpha.png rename to src/vitis/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/alpha.png diff --git a/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/hue-horizontal.png b/src/vitis/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/hue-horizontal.png similarity index 100% rename from client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/hue-horizontal.png rename to src/vitis/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/hue-horizontal.png diff --git a/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/hue.png b/src/vitis/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/hue.png similarity index 100% rename from client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/hue.png rename to src/vitis/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/hue.png diff --git a/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/saturation.png b/src/vitis/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/saturation.png similarity index 100% rename from client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/saturation.png rename to src/vitis/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/saturation.png diff --git a/client/css/lib/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker3.css b/src/vitis/client/css/lib/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker3.css similarity index 100% rename from client/css/lib/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker3.css rename to src/vitis/client/css/lib/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker3.css diff --git a/client/css/lib/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker3.min.css b/src/vitis/client/css/lib/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker3.min.css similarity index 100% rename from client/css/lib/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker3.min.css rename to src/vitis/client/css/lib/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker3.min.css diff --git a/client/css/lib/jquery/plugins/bootstrap-fileinput/css/fileinput.css b/src/vitis/client/css/lib/jquery/plugins/bootstrap-fileinput/css/fileinput.css similarity index 100% rename from client/css/lib/jquery/plugins/bootstrap-fileinput/css/fileinput.css rename to src/vitis/client/css/lib/jquery/plugins/bootstrap-fileinput/css/fileinput.css diff --git a/client/css/lib/jquery/plugins/bootstrap-fileinput/css/fileinput.min.css b/src/vitis/client/css/lib/jquery/plugins/bootstrap-fileinput/css/fileinput.min.css similarity index 100% rename from client/css/lib/jquery/plugins/bootstrap-fileinput/css/fileinput.min.css rename to src/vitis/client/css/lib/jquery/plugins/bootstrap-fileinput/css/fileinput.min.css diff --git a/client/css/lib/jquery/plugins/bootstrap-fileinput/img/loading-sm.gif b/src/vitis/client/css/lib/jquery/plugins/bootstrap-fileinput/img/loading-sm.gif similarity index 100% rename from client/css/lib/jquery/plugins/bootstrap-fileinput/img/loading-sm.gif rename to src/vitis/client/css/lib/jquery/plugins/bootstrap-fileinput/img/loading-sm.gif diff --git a/client/css/lib/jquery/plugins/bootstrap-fileinput/img/loading.gif b/src/vitis/client/css/lib/jquery/plugins/bootstrap-fileinput/img/loading.gif similarity index 100% rename from client/css/lib/jquery/plugins/bootstrap-fileinput/img/loading.gif rename to src/vitis/client/css/lib/jquery/plugins/bootstrap-fileinput/img/loading.gif diff --git a/client/css/lib/jquery/plugins/bootstrap-slider/bootstrap-slider.min.css b/src/vitis/client/css/lib/jquery/plugins/bootstrap-slider/bootstrap-slider.min.css similarity index 100% rename from client/css/lib/jquery/plugins/bootstrap-slider/bootstrap-slider.min.css rename to src/vitis/client/css/lib/jquery/plugins/bootstrap-slider/bootstrap-slider.min.css diff --git a/client/css/lib/jquery/plugins/bootstrap-tagsinput/bootstrap-tagsinput.css b/src/vitis/client/css/lib/jquery/plugins/bootstrap-tagsinput/bootstrap-tagsinput.css similarity index 100% rename from client/css/lib/jquery/plugins/bootstrap-tagsinput/bootstrap-tagsinput.css rename to src/vitis/client/css/lib/jquery/plugins/bootstrap-tagsinput/bootstrap-tagsinput.css diff --git a/client/css/lib/jquery/plugins/bootstrap-treeview/bootstrap-treeview.css b/src/vitis/client/css/lib/jquery/plugins/bootstrap-treeview/bootstrap-treeview.css similarity index 100% rename from client/css/lib/jquery/plugins/bootstrap-treeview/bootstrap-treeview.css rename to src/vitis/client/css/lib/jquery/plugins/bootstrap-treeview/bootstrap-treeview.css diff --git a/client/css/lib/jquery/plugins/bootstrap-treeview/bootstrap-treeview.min.css b/src/vitis/client/css/lib/jquery/plugins/bootstrap-treeview/bootstrap-treeview.min.css similarity index 100% rename from client/css/lib/jquery/plugins/bootstrap-treeview/bootstrap-treeview.min.css rename to src/vitis/client/css/lib/jquery/plugins/bootstrap-treeview/bootstrap-treeview.min.css diff --git a/client/css/lib/jquery/plugins/malihu-custom-scrollbar/jquery.mCustomScrollbar.min.css b/src/vitis/client/css/lib/jquery/plugins/malihu-custom-scrollbar/jquery.mCustomScrollbar.min.css similarity index 100% rename from client/css/lib/jquery/plugins/malihu-custom-scrollbar/jquery.mCustomScrollbar.min.css rename to src/vitis/client/css/lib/jquery/plugins/malihu-custom-scrollbar/jquery.mCustomScrollbar.min.css diff --git a/client/css/lib/materialize/materialize.css b/src/vitis/client/css/lib/materialize/materialize.css similarity index 100% rename from client/css/lib/materialize/materialize.css rename to src/vitis/client/css/lib/materialize/materialize.css diff --git a/client/css/lib/materialize/materialize.min.css b/src/vitis/client/css/lib/materialize/materialize.min.css similarity index 100% rename from client/css/lib/materialize/materialize.min.css rename to src/vitis/client/css/lib/materialize/materialize.min.css diff --git a/client/css/lib/openlayers/ol.css b/src/vitis/client/css/lib/openlayers/ol.css similarity index 100% rename from client/css/lib/openlayers/ol.css rename to src/vitis/client/css/lib/openlayers/ol.css diff --git a/client/css/lib/ui-grid/plugins/draggable-rows.less b/src/vitis/client/css/lib/ui-grid/plugins/draggable-rows.less similarity index 100% rename from client/css/lib/ui-grid/plugins/draggable-rows.less rename to src/vitis/client/css/lib/ui-grid/plugins/draggable-rows.less diff --git a/client/css/lib/ui-grid/ui-grid.css b/src/vitis/client/css/lib/ui-grid/ui-grid.css similarity index 100% rename from client/css/lib/ui-grid/ui-grid.css rename to src/vitis/client/css/lib/ui-grid/ui-grid.css diff --git a/client/css/lib/ui-grid/ui-grid.eot b/src/vitis/client/css/lib/ui-grid/ui-grid.eot similarity index 100% rename from client/css/lib/ui-grid/ui-grid.eot rename to src/vitis/client/css/lib/ui-grid/ui-grid.eot diff --git a/client/css/lib/ui-grid/ui-grid.min.css b/src/vitis/client/css/lib/ui-grid/ui-grid.min.css similarity index 100% rename from client/css/lib/ui-grid/ui-grid.min.css rename to src/vitis/client/css/lib/ui-grid/ui-grid.min.css diff --git a/client/css/lib/ui-grid/ui-grid.svg b/src/vitis/client/css/lib/ui-grid/ui-grid.svg similarity index 100% rename from client/css/lib/ui-grid/ui-grid.svg rename to src/vitis/client/css/lib/ui-grid/ui-grid.svg diff --git a/client/css/lib/ui-grid/ui-grid.ttf b/src/vitis/client/css/lib/ui-grid/ui-grid.ttf similarity index 100% rename from client/css/lib/ui-grid/ui-grid.ttf rename to src/vitis/client/css/lib/ui-grid/ui-grid.ttf diff --git a/client/css/lib/ui-grid/ui-grid.woff b/src/vitis/client/css/lib/ui-grid/ui-grid.woff similarity index 100% rename from client/css/lib/ui-grid/ui-grid.woff rename to src/vitis/client/css/lib/ui-grid/ui-grid.woff diff --git a/client/css/lib/viewer/viewer.min.css b/src/vitis/client/css/lib/viewer/viewer.min.css similarity index 100% rename from client/css/lib/viewer/viewer.min.css rename to src/vitis/client/css/lib/viewer/viewer.min.css diff --git a/client/forms/forgotten_password.json b/src/vitis/client/forms/forgotten_password.json similarity index 100% rename from client/forms/forgotten_password.json rename to src/vitis/client/forms/forgotten_password.json diff --git a/client/forms/login.js b/src/vitis/client/forms/login.js similarity index 100% rename from client/forms/login.js rename to src/vitis/client/forms/login.js diff --git a/client/forms/login.json b/src/vitis/client/forms/login.json similarity index 100% rename from client/forms/login.json rename to src/vitis/client/forms/login.json diff --git a/client/forms/sign_up.json b/src/vitis/client/forms/sign_up.json similarity index 100% rename from client/forms/sign_up.json rename to src/vitis/client/forms/sign_up.json diff --git a/client/images/ajax-big-loader.GIF b/src/vitis/client/images/ajax-big-loader.GIF similarity index 100% rename from client/images/ajax-big-loader.GIF rename to src/vitis/client/images/ajax-big-loader.GIF diff --git a/client/images/ajax-load-big.gif b/src/vitis/client/images/ajax-load-big.gif similarity index 100% rename from client/images/ajax-load-big.gif rename to src/vitis/client/images/ajax-load-big.gif diff --git a/client/images/ajax-load.gif b/src/vitis/client/images/ajax-load.gif similarity index 100% rename from client/images/ajax-load.gif rename to src/vitis/client/images/ajax-load.gif diff --git a/client/images/bandeau.png b/src/vitis/client/images/bandeau.png similarity index 100% rename from client/images/bandeau.png rename to src/vitis/client/images/bandeau.png diff --git a/client/images/custom.png b/src/vitis/client/images/custom.png similarity index 100% rename from client/images/custom.png rename to src/vitis/client/images/custom.png diff --git a/client/images/disconnect_button.png b/src/vitis/client/images/disconnect_button.png similarity index 100% rename from client/images/disconnect_button.png rename to src/vitis/client/images/disconnect_button.png diff --git a/client/images/download.png b/src/vitis/client/images/download.png similarity index 100% rename from client/images/download.png rename to src/vitis/client/images/download.png diff --git a/client/images/editer.png b/src/vitis/client/images/editer.png similarity index 100% rename from client/images/editer.png rename to src/vitis/client/images/editer.png diff --git a/client/images/enveloppe.png b/src/vitis/client/images/enveloppe.png similarity index 100% rename from client/images/enveloppe.png rename to src/vitis/client/images/enveloppe.png diff --git a/client/images/false.png b/src/vitis/client/images/false.png similarity index 100% rename from client/images/false.png rename to src/vitis/client/images/false.png diff --git a/client/images/favicon.ico b/src/vitis/client/images/favicon.ico similarity index 100% rename from client/images/favicon.ico rename to src/vitis/client/images/favicon.ico diff --git a/client/images/i.png b/src/vitis/client/images/i.png similarity index 100% rename from client/images/i.png rename to src/vitis/client/images/i.png diff --git a/client/images/icons/geolocation_marker.png b/src/vitis/client/images/icons/geolocation_marker.png similarity index 100% rename from client/images/icons/geolocation_marker.png rename to src/vitis/client/images/icons/geolocation_marker.png diff --git a/client/images/icons/geolocation_marker_heading.png b/src/vitis/client/images/icons/geolocation_marker_heading.png similarity index 100% rename from client/images/icons/geolocation_marker_heading.png rename to src/vitis/client/images/icons/geolocation_marker_heading.png diff --git a/client/images/icons/icon-arrow-FME.png b/src/vitis/client/images/icons/icon-arrow-FME.png similarity index 100% rename from client/images/icons/icon-arrow-FME.png rename to src/vitis/client/images/icons/icon-arrow-FME.png diff --git a/client/images/icons/icon-arrow-FME2.png b/src/vitis/client/images/icons/icon-arrow-FME2.png similarity index 100% rename from client/images/icons/icon-arrow-FME2.png rename to src/vitis/client/images/icons/icon-arrow-FME2.png diff --git a/client/images/icons/icon-filtrage.png b/src/vitis/client/images/icons/icon-filtrage.png similarity index 100% rename from client/images/icons/icon-filtrage.png rename to src/vitis/client/images/icons/icon-filtrage.png diff --git a/client/images/icons/icons-down-search-arrow.png b/src/vitis/client/images/icons/icons-down-search-arrow.png similarity index 100% rename from client/images/icons/icons-down-search-arrow.png rename to src/vitis/client/images/icons/icons-down-search-arrow.png diff --git a/client/images/icons/icons-right-search-arrow.png b/src/vitis/client/images/icons/icons-right-search-arrow.png similarity index 100% rename from client/images/icons/icons-right-search-arrow.png rename to src/vitis/client/images/icons/icons-right-search-arrow.png diff --git a/client/images/logo-veremes.jpg b/src/vitis/client/images/logo-veremes.jpg similarity index 100% rename from client/images/logo-veremes.jpg rename to src/vitis/client/images/logo-veremes.jpg diff --git a/client/images/logo-veremes.png b/src/vitis/client/images/logo-veremes.png similarity index 100% rename from client/images/logo-veremes.png rename to src/vitis/client/images/logo-veremes.png diff --git a/client/images/mode/configuration.png b/src/vitis/client/images/mode/configuration.png similarity index 100% rename from client/images/mode/configuration.png rename to src/vitis/client/images/mode/configuration.png diff --git a/client/images/mode/development.png b/src/vitis/client/images/mode/development.png similarity index 100% rename from client/images/mode/development.png rename to src/vitis/client/images/mode/development.png diff --git a/client/images/mode/engine.png b/src/vitis/client/images/mode/engine.png similarity index 100% rename from client/images/mode/engine.png rename to src/vitis/client/images/mode/engine.png diff --git a/client/images/mode/help.png b/src/vitis/client/images/mode/help.png similarity index 100% rename from client/images/mode/help.png rename to src/vitis/client/images/mode/help.png diff --git a/client/images/mode/logs.png b/src/vitis/client/images/mode/logs.png similarity index 100% rename from client/images/mode/logs.png rename to src/vitis/client/images/mode/logs.png diff --git a/client/images/mode/my_work.png b/src/vitis/client/images/mode/my_work.png similarity index 100% rename from client/images/mode/my_work.png rename to src/vitis/client/images/mode/my_work.png diff --git a/client/images/mode/publication.png b/src/vitis/client/images/mode/publication.png similarity index 100% rename from client/images/mode/publication.png rename to src/vitis/client/images/mode/publication.png diff --git a/client/images/mode/statistics.png b/src/vitis/client/images/mode/statistics.png similarity index 100% rename from client/images/mode/statistics.png rename to src/vitis/client/images/mode/statistics.png diff --git a/client/images/mode/supervision.png b/src/vitis/client/images/mode/supervision.png similarity index 100% rename from client/images/mode/supervision.png rename to src/vitis/client/images/mode/supervision.png diff --git a/client/images/mode/user.png b/src/vitis/client/images/mode/user.png similarity index 100% rename from client/images/mode/user.png rename to src/vitis/client/images/mode/user.png diff --git a/client/images/mode/users.png b/src/vitis/client/images/mode/users.png similarity index 100% rename from client/images/mode/users.png rename to src/vitis/client/images/mode/users.png diff --git a/client/images/mode/vmap.png b/src/vitis/client/images/mode/vmap.png similarity index 100% rename from client/images/mode/vmap.png rename to src/vitis/client/images/mode/vmap.png diff --git a/client/images/page.png b/src/vitis/client/images/page.png similarity index 100% rename from client/images/page.png rename to src/vitis/client/images/page.png diff --git a/client/images/sql_list/st1.gif b/src/vitis/client/images/sql_list/st1.gif similarity index 100% rename from client/images/sql_list/st1.gif rename to src/vitis/client/images/sql_list/st1.gif diff --git a/client/images/sql_list/st1.png b/src/vitis/client/images/sql_list/st1.png similarity index 100% rename from client/images/sql_list/st1.png rename to src/vitis/client/images/sql_list/st1.png diff --git a/client/images/sql_list/st2.png b/src/vitis/client/images/sql_list/st2.png similarity index 100% rename from client/images/sql_list/st2.png rename to src/vitis/client/images/sql_list/st2.png diff --git a/client/images/sql_list/st3.png b/src/vitis/client/images/sql_list/st3.png similarity index 100% rename from client/images/sql_list/st3.png rename to src/vitis/client/images/sql_list/st3.png diff --git a/client/images/sql_list/st4.png b/src/vitis/client/images/sql_list/st4.png similarity index 100% rename from client/images/sql_list/st4.png rename to src/vitis/client/images/sql_list/st4.png diff --git a/client/images/sql_list/st5.gif b/src/vitis/client/images/sql_list/st5.gif similarity index 100% rename from client/images/sql_list/st5.gif rename to src/vitis/client/images/sql_list/st5.gif diff --git a/client/images/sql_list/st6.png b/src/vitis/client/images/sql_list/st6.png similarity index 100% rename from client/images/sql_list/st6.png rename to src/vitis/client/images/sql_list/st6.png diff --git a/client/images/true.png b/src/vitis/client/images/true.png similarity index 100% rename from client/images/true.png rename to src/vitis/client/images/true.png diff --git a/client/images/ui-grid/wbg.gif b/src/vitis/client/images/ui-grid/wbg.gif similarity index 100% rename from client/images/ui-grid/wbg.gif rename to src/vitis/client/images/ui-grid/wbg.gif diff --git a/client/images/visualiser.png b/src/vitis/client/images/visualiser.png similarity index 100% rename from client/images/visualiser.png rename to src/vitis/client/images/visualiser.png diff --git a/client/images/wk_params.png b/src/vitis/client/images/wk_params.png similarity index 100% rename from client/images/wk_params.png rename to src/vitis/client/images/wk_params.png diff --git a/client/index.html b/src/vitis/client/index.html similarity index 100% rename from client/index.html rename to src/vitis/client/index.html diff --git a/client/javascript/app/app.js b/src/vitis/client/javascript/app/app.js similarity index 100% rename from client/javascript/app/app.js rename to src/vitis/client/javascript/app/app.js diff --git a/client/javascript/app/config.js b/src/vitis/client/javascript/app/config.js similarity index 100% rename from client/javascript/app/config.js rename to src/vitis/client/javascript/app/config.js diff --git a/client/javascript/app/controllers/doubleFormCtrl.js b/src/vitis/client/javascript/app/controllers/doubleFormCtrl.js similarity index 100% rename from client/javascript/app/controllers/doubleFormCtrl.js rename to src/vitis/client/javascript/app/controllers/doubleFormCtrl.js diff --git a/client/javascript/app/controllers/htmlFormCtrl.js b/src/vitis/client/javascript/app/controllers/htmlFormCtrl.js old mode 100755 new mode 100644 similarity index 100% rename from client/javascript/app/controllers/htmlFormCtrl.js rename to src/vitis/client/javascript/app/controllers/htmlFormCtrl.js diff --git a/client/javascript/app/controllers/initCtrl.js b/src/vitis/client/javascript/app/controllers/initCtrl.js old mode 100755 new mode 100644 similarity index 85% rename from client/javascript/app/controllers/initCtrl.js rename to src/vitis/client/javascript/app/controllers/initCtrl.js index 48855c56..70431eef --- a/client/javascript/app/controllers/initCtrl.js +++ b/src/vitis/client/javascript/app/controllers/initCtrl.js @@ -20,6 +20,7 @@ goog.require("vitis.modules.main"); vitisApp.initCtrl = function ($scope, $log, $q, envSrvc, sessionSrvc, propertiesSrvc, userSrvc, $translate) { // Informe l'application que le contrôleur a été chargée. vitisApp.broadcast('appInitCtrlLoaded'); + /** * getMainTemplateUrl function. * Change le template de l'élément principal de l'application. @@ -98,6 +99,43 @@ vitisApp.initCtrl = function ($scope, $log, $q, envSrvc, sessionSrvc, properties }); }; + + /** + * connectFromUrl function. + * Connexion à l'application avec les identifiants passés dans l'url. + * @param {string} oConnexionId Identifiants de connexion + **/ + $scope.$root["connectWithTokenUrl"] = function () { + $log.info("connectFromUrl"); + // Demande de token pour l'utilisateur. + ajaxRequest({ + "method": "POST", + "url": oClientProperties["web_server_name"] + "/" + oClientProperties["services_alias"] + "/" + sessionSrvc["web_service"] + "/" + sessionSrvc["web_service_controller"], + "scope": $scope, + "success": function (response) { + if (response["data"]["status"] == 1) { + // Cache le message d'erreur. + //$scope["hideErrorAlert"](); + // Sauve les données du token. + //sessionSrvc["token"] = oUrlParams['token']; + sessionSrvc["validity_date"] = response["data"]["validity_date"]; + sessionStorage["session_token"] = sessionSrvc["token"]; + // Sauve les données de l'utilisateur. + userSrvc["login"] = response["data"]["user"]; + userSrvc["id"] = parseInt(response["data"]["user_id"]); + userSrvc["privileges"] = response["data"]["privileges"]; + sessionStorage["user_login"] = response["data"]["user"]; + sessionStorage["user_id"] = userSrvc["id"]; + sessionStorage["privileges"] = userSrvc["privileges"]; + sessionSrvc["saveSessionToLocalStorage"](); + // + deferred.resolve(); + } else + sessionSrvc["disconnect"](); + } + }); + }; + // Sauve le nom de l'application (pour les modes de l'utilisateur) //sessionStorage["application"] = document.location.pathname.split("/").pop(); @@ -114,6 +152,14 @@ vitisApp.initCtrl = function ($scope, $log, $q, envSrvc, sessionSrvc, properties var deferred = $q.defer(); var promise = deferred.promise; + if (goog.isDefAndNotNull(oUrlParams['token'])){ + sessionStorage['session_token'] = oUrlParams['token']; + sessionSrvc["token"] = oUrlParams['token']; + sessionSrvc["saveSessionToLocalStorage"](); + $scope.$root["connectWithTokenUrl"](); + } else + deferred.resolve(); + // Connexion avec les identifiants passés dans l'url (si le cookie avec le token n'existe pas). var aUrlParamsKeys = Object.keys(oUrlParams); if (sessionSrvc["getAppLocalStorageItem"]("session_token") === null && aUrlParamsKeys.indexOf("login") !== -1 && aUrlParamsKeys.indexOf("password") !== -1) diff --git a/client/javascript/app/controllers/loginCtrl.js b/src/vitis/client/javascript/app/controllers/loginCtrl.js similarity index 98% rename from client/javascript/app/controllers/loginCtrl.js rename to src/vitis/client/javascript/app/controllers/loginCtrl.js index 4e6e1461..a5456b97 100644 --- a/client/javascript/app/controllers/loginCtrl.js +++ b/src/vitis/client/javascript/app/controllers/loginCtrl.js @@ -432,6 +432,7 @@ vitisApp.loginCtrl = function ($scope, $translate, $rootScope, $q, sessionSrvc, $translate([sConnectionErrorMessage]).then(function (translations) { sConnectionErrorMessage = translations[sConnectionErrorMessage]; $scope["showErrorAlert"](sConnectionErrorMessage.replace('[IPAddress]', ipAddress)); + deferred.reject(); sConnectionErrorMessage = undefined; deferred.reject(); }); @@ -440,6 +441,12 @@ vitisApp.loginCtrl = function ($scope, $translate, $rootScope, $q, sessionSrvc, case 18: sConnectionErrorMessage = "FORM_LOGIN_CONNECTION_ERROR_MISSING_PRIVILEGES"; break; + // Base de données injoignable. + case 19: + sConnectionErrorMessage = "FORM_LOGIN_CONNECTION_ERROR_UNREACHABLE_DATABASE"; + $scope["showErrorAlert"](sConnectionErrorMessage); + deferred.reject(); + break; default: sConnectionErrorMessage = "FORM_LOGIN_CONNECTION_ERROR"; } diff --git a/client/javascript/app/controllers/mainCtrl.js b/src/vitis/client/javascript/app/controllers/mainCtrl.js similarity index 100% rename from client/javascript/app/controllers/mainCtrl.js rename to src/vitis/client/javascript/app/controllers/mainCtrl.js diff --git a/client/javascript/app/controllers/sectionFormCtrl.js b/src/vitis/client/javascript/app/controllers/sectionFormCtrl.js similarity index 100% rename from client/javascript/app/controllers/sectionFormCtrl.js rename to src/vitis/client/javascript/app/controllers/sectionFormCtrl.js diff --git a/client/javascript/app/controllers/simpleFormCtrl.js b/src/vitis/client/javascript/app/controllers/simpleFormCtrl.js similarity index 100% rename from client/javascript/app/controllers/simpleFormCtrl.js rename to src/vitis/client/javascript/app/controllers/simpleFormCtrl.js diff --git a/client/javascript/app/controllers/workspaceListCtrl.js b/src/vitis/client/javascript/app/controllers/workspaceListCtrl.js similarity index 100% rename from client/javascript/app/controllers/workspaceListCtrl.js rename to src/vitis/client/javascript/app/controllers/workspaceListCtrl.js diff --git a/client/javascript/app/directives/doubleFormDrtv.js b/src/vitis/client/javascript/app/directives/doubleFormDrtv.js similarity index 100% rename from client/javascript/app/directives/doubleFormDrtv.js rename to src/vitis/client/javascript/app/directives/doubleFormDrtv.js diff --git a/client/javascript/app/directives/htmlFormDrtv.js b/src/vitis/client/javascript/app/directives/htmlFormDrtv.js similarity index 100% rename from client/javascript/app/directives/htmlFormDrtv.js rename to src/vitis/client/javascript/app/directives/htmlFormDrtv.js diff --git a/client/javascript/app/directives/initDrtv.js b/src/vitis/client/javascript/app/directives/initDrtv.js similarity index 100% rename from client/javascript/app/directives/initDrtv.js rename to src/vitis/client/javascript/app/directives/initDrtv.js diff --git a/client/javascript/app/directives/loginDrtv.js b/src/vitis/client/javascript/app/directives/loginDrtv.js similarity index 100% rename from client/javascript/app/directives/loginDrtv.js rename to src/vitis/client/javascript/app/directives/loginDrtv.js diff --git a/client/javascript/app/directives/mainDrtv.js b/src/vitis/client/javascript/app/directives/mainDrtv.js similarity index 100% rename from client/javascript/app/directives/mainDrtv.js rename to src/vitis/client/javascript/app/directives/mainDrtv.js diff --git a/client/javascript/app/directives/sectionFormDrtv.js b/src/vitis/client/javascript/app/directives/sectionFormDrtv.js similarity index 100% rename from client/javascript/app/directives/sectionFormDrtv.js rename to src/vitis/client/javascript/app/directives/sectionFormDrtv.js diff --git a/client/javascript/app/directives/simpleFormDrtv.js b/src/vitis/client/javascript/app/directives/simpleFormDrtv.js similarity index 100% rename from client/javascript/app/directives/simpleFormDrtv.js rename to src/vitis/client/javascript/app/directives/simpleFormDrtv.js diff --git a/client/javascript/app/directives/workspaceListDrtv.js b/src/vitis/client/javascript/app/directives/workspaceListDrtv.js similarity index 100% rename from client/javascript/app/directives/workspaceListDrtv.js rename to src/vitis/client/javascript/app/directives/workspaceListDrtv.js diff --git a/client/javascript/app/loadApp.js b/src/vitis/client/javascript/app/loadApp.js similarity index 100% rename from client/javascript/app/loadApp.js rename to src/vitis/client/javascript/app/loadApp.js diff --git a/client/javascript/app/loadExternalFiles.js b/src/vitis/client/javascript/app/loadExternalFiles.js similarity index 100% rename from client/javascript/app/loadExternalFiles.js rename to src/vitis/client/javascript/app/loadExternalFiles.js diff --git a/client/javascript/app/modules/mainMod.js b/src/vitis/client/javascript/app/modules/mainMod.js similarity index 100% rename from client/javascript/app/modules/mainMod.js rename to src/vitis/client/javascript/app/modules/mainMod.js diff --git a/client/javascript/app/script_client.js b/src/vitis/client/javascript/app/script_client.js similarity index 98% rename from client/javascript/app/script_client.js rename to src/vitis/client/javascript/app/script_client.js index 1f56beac..02bda1b1 100644 --- a/client/javascript/app/script_client.js +++ b/src/vitis/client/javascript/app/script_client.js @@ -1725,4 +1725,34 @@ vitisApp.on('appInitCtrlLoaded', function () { } }); vitisApp.module.directive("appHideColumn", vitisApp.appHideColumn); + + /** + * addAjaxLoaderToElement function. + * Ajoute un loader Ajax à côté d'un élément HTML. + * @param {string} sElementId Id de l'élément html. + **/ + angular.element(vitisApp.appMainDrtv).scope()["addAjaxLoaderToElement"] = function (sElementId) { + $log.info("addAjaxLoaderToElement"); + var oElem = document.getElementById(sElementId); + if (oElem !== null) { + var oAjaxLoaderElem = document.createElement('span'); + oAjaxLoaderElem.className = "icon-refresh form-glyphicon-refresh-animate"; + oElem.parentNode.appendChild(oAjaxLoaderElem); + } + }; + + /** + * removeAjaxLoaderFromElement function. + * Supprime un loader Ajax placé à côté d'un élément HTML. + * @param {string} sElementId Id de l'élément html. + **/ + angular.element(vitisApp.appMainDrtv).scope()["removeAjaxLoaderFromElement"] = function (sElementId) { + $log.info("removeAjaxLoaderFromElement"); + var oElem = document.getElementById(sElementId); + if (oElem !== null) { + var oAjaxLoaderElem = oElem.parentNode.querySelector(".form-glyphicon-refresh-animate"); + if (oAjaxLoaderElem !== null) + oElem.parentNode.removeChild(oAjaxLoaderElem); + } + }; }); diff --git a/client/javascript/app/services/formSrvc.js b/src/vitis/client/javascript/app/services/formSrvc.js similarity index 100% rename from client/javascript/app/services/formSrvc.js rename to src/vitis/client/javascript/app/services/formSrvc.js diff --git a/client/javascript/app/services/mainSrvc.js b/src/vitis/client/javascript/app/services/mainSrvc.js similarity index 100% rename from client/javascript/app/services/mainSrvc.js rename to src/vitis/client/javascript/app/services/mainSrvc.js diff --git a/client/javascript/app/vitiswebsocket.js b/src/vitis/client/javascript/app/vitiswebsocket.js similarity index 100% rename from client/javascript/app/vitiswebsocket.js rename to src/vitis/client/javascript/app/vitiswebsocket.js diff --git a/client/javascript/externs/LICENSE b/src/vitis/client/javascript/externs/LICENSE similarity index 100% rename from client/javascript/externs/LICENSE rename to src/vitis/client/javascript/externs/LICENSE diff --git a/client/javascript/externs/alasql/alasql.min.js b/src/vitis/client/javascript/externs/alasql/alasql.min.js similarity index 100% rename from client/javascript/externs/alasql/alasql.min.js rename to src/vitis/client/javascript/externs/alasql/alasql.min.js diff --git a/client/javascript/externs/alasql/xlsx.core.min.js b/src/vitis/client/javascript/externs/alasql/xlsx.core.min.js similarity index 100% rename from client/javascript/externs/alasql/xlsx.core.min.js rename to src/vitis/client/javascript/externs/alasql/xlsx.core.min.js diff --git a/client/javascript/externs/angular-bind-notifier/LICENSE b/src/vitis/client/javascript/externs/angular-bind-notifier/LICENSE similarity index 100% rename from client/javascript/externs/angular-bind-notifier/LICENSE rename to src/vitis/client/javascript/externs/angular-bind-notifier/LICENSE diff --git a/client/javascript/externs/angular-bind-notifier/bindNotifier.js b/src/vitis/client/javascript/externs/angular-bind-notifier/bindNotifier.js similarity index 100% rename from client/javascript/externs/angular-bind-notifier/bindNotifier.js rename to src/vitis/client/javascript/externs/angular-bind-notifier/bindNotifier.js diff --git a/client/javascript/externs/angular-ui-codemirror/LICENSE b/src/vitis/client/javascript/externs/angular-ui-codemirror/LICENSE similarity index 100% rename from client/javascript/externs/angular-ui-codemirror/LICENSE rename to src/vitis/client/javascript/externs/angular-ui-codemirror/LICENSE diff --git a/client/javascript/externs/angular-ui-codemirror/ui-codemirror.js b/src/vitis/client/javascript/externs/angular-ui-codemirror/ui-codemirror.js similarity index 100% rename from client/javascript/externs/angular-ui-codemirror/ui-codemirror.js rename to src/vitis/client/javascript/externs/angular-ui-codemirror/ui-codemirror.js diff --git a/client/javascript/externs/angular-ui-codemirror/ui-codemirror.min.js b/src/vitis/client/javascript/externs/angular-ui-codemirror/ui-codemirror.min.js similarity index 100% rename from client/javascript/externs/angular-ui-codemirror/ui-codemirror.min.js rename to src/vitis/client/javascript/externs/angular-ui-codemirror/ui-codemirror.min.js diff --git a/client/javascript/externs/angular/LICENSE b/src/vitis/client/javascript/externs/angular/LICENSE similarity index 100% rename from client/javascript/externs/angular/LICENSE rename to src/vitis/client/javascript/externs/angular/LICENSE diff --git a/client/javascript/externs/angular/angular.js b/src/vitis/client/javascript/externs/angular/angular.js similarity index 100% rename from client/javascript/externs/angular/angular.js rename to src/vitis/client/javascript/externs/angular/angular.js diff --git a/client/javascript/externs/angular/angular.min.js b/src/vitis/client/javascript/externs/angular/angular.min.js similarity index 100% rename from client/javascript/externs/angular/angular.min.js rename to src/vitis/client/javascript/externs/angular/angular.min.js diff --git a/client/javascript/externs/angular/angular.min.js.map b/src/vitis/client/javascript/externs/angular/angular.min.js.map similarity index 100% rename from client/javascript/externs/angular/angular.min.js.map rename to src/vitis/client/javascript/externs/angular/angular.min.js.map diff --git a/client/javascript/externs/angular/modules/angular-translate/LICENSE b/src/vitis/client/javascript/externs/angular/modules/angular-translate/LICENSE similarity index 100% rename from client/javascript/externs/angular/modules/angular-translate/LICENSE rename to src/vitis/client/javascript/externs/angular/modules/angular-translate/LICENSE diff --git a/client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-partial.js b/src/vitis/client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-partial.js similarity index 100% rename from client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-partial.js rename to src/vitis/client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-partial.js diff --git a/client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-partial.min.js b/src/vitis/client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-partial.min.js similarity index 100% rename from client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-partial.min.js rename to src/vitis/client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-partial.min.js diff --git a/client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-static-files.js b/src/vitis/client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-static-files.js similarity index 100% rename from client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-static-files.js rename to src/vitis/client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-static-files.js diff --git a/client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-static-files.min.js b/src/vitis/client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-static-files.min.js similarity index 100% rename from client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-static-files.min.js rename to src/vitis/client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-static-files.min.js diff --git a/client/javascript/externs/angular/modules/angular-translate/angular-translate.js b/src/vitis/client/javascript/externs/angular/modules/angular-translate/angular-translate.js similarity index 100% rename from client/javascript/externs/angular/modules/angular-translate/angular-translate.js rename to src/vitis/client/javascript/externs/angular/modules/angular-translate/angular-translate.js diff --git a/client/javascript/externs/angular/modules/angular-translate/angular-translate.min.js b/src/vitis/client/javascript/externs/angular/modules/angular-translate/angular-translate.min.js similarity index 100% rename from client/javascript/externs/angular/modules/angular-translate/angular-translate.min.js rename to src/vitis/client/javascript/externs/angular/modules/angular-translate/angular-translate.min.js diff --git a/client/javascript/externs/angular/modules/sanitize/angular-sanitize.js b/src/vitis/client/javascript/externs/angular/modules/sanitize/angular-sanitize.js similarity index 100% rename from client/javascript/externs/angular/modules/sanitize/angular-sanitize.js rename to src/vitis/client/javascript/externs/angular/modules/sanitize/angular-sanitize.js diff --git a/client/javascript/externs/angular/modules/sanitize/angular-sanitize.min.js b/src/vitis/client/javascript/externs/angular/modules/sanitize/angular-sanitize.min.js similarity index 100% rename from client/javascript/externs/angular/modules/sanitize/angular-sanitize.min.js rename to src/vitis/client/javascript/externs/angular/modules/sanitize/angular-sanitize.min.js diff --git a/client/javascript/externs/angular/modules/sanitize/angular-sanitize.min.js.map b/src/vitis/client/javascript/externs/angular/modules/sanitize/angular-sanitize.min.js.map similarity index 100% rename from client/javascript/externs/angular/modules/sanitize/angular-sanitize.min.js.map rename to src/vitis/client/javascript/externs/angular/modules/sanitize/angular-sanitize.min.js.map diff --git a/client/javascript/externs/angular/modules/ui-codemirror/LICENSE b/src/vitis/client/javascript/externs/angular/modules/ui-codemirror/LICENSE similarity index 100% rename from client/javascript/externs/angular/modules/ui-codemirror/LICENSE rename to src/vitis/client/javascript/externs/angular/modules/ui-codemirror/LICENSE diff --git a/client/javascript/externs/angular/modules/ui-codemirror/ui-codemirror.min.js b/src/vitis/client/javascript/externs/angular/modules/ui-codemirror/ui-codemirror.min.js similarity index 100% rename from client/javascript/externs/angular/modules/ui-codemirror/ui-codemirror.min.js rename to src/vitis/client/javascript/externs/angular/modules/ui-codemirror/ui-codemirror.min.js diff --git a/client/javascript/externs/angular/modules/ui-grid/LICENSE.md b/src/vitis/client/javascript/externs/angular/modules/ui-grid/LICENSE.md similarity index 100% rename from client/javascript/externs/angular/modules/ui-grid/LICENSE.md rename to src/vitis/client/javascript/externs/angular/modules/ui-grid/LICENSE.md diff --git a/client/javascript/externs/angular/modules/ui-grid/plugins/draggable-rows.js b/src/vitis/client/javascript/externs/angular/modules/ui-grid/plugins/draggable-rows.js similarity index 100% rename from client/javascript/externs/angular/modules/ui-grid/plugins/draggable-rows.js rename to src/vitis/client/javascript/externs/angular/modules/ui-grid/plugins/draggable-rows.js diff --git a/client/javascript/externs/angular/modules/ui-grid/ui-grid.js b/src/vitis/client/javascript/externs/angular/modules/ui-grid/ui-grid.js similarity index 100% rename from client/javascript/externs/angular/modules/ui-grid/ui-grid.js rename to src/vitis/client/javascript/externs/angular/modules/ui-grid/ui-grid.js diff --git a/client/javascript/externs/angular/modules/ui-grid/ui-grid.min.js b/src/vitis/client/javascript/externs/angular/modules/ui-grid/ui-grid.min.js similarity index 100% rename from client/javascript/externs/angular/modules/ui-grid/ui-grid.min.js rename to src/vitis/client/javascript/externs/angular/modules/ui-grid/ui-grid.min.js diff --git a/client/javascript/externs/angular/modules/ui-tinymce/LICENSE b/src/vitis/client/javascript/externs/angular/modules/ui-tinymce/LICENSE similarity index 100% rename from client/javascript/externs/angular/modules/ui-tinymce/LICENSE rename to src/vitis/client/javascript/externs/angular/modules/ui-tinymce/LICENSE diff --git a/client/javascript/externs/angular/modules/ui-tinymce/tinymce.js b/src/vitis/client/javascript/externs/angular/modules/ui-tinymce/tinymce.js similarity index 100% rename from client/javascript/externs/angular/modules/ui-tinymce/tinymce.js rename to src/vitis/client/javascript/externs/angular/modules/ui-tinymce/tinymce.js diff --git a/client/javascript/externs/bootbox/LICENSE.md b/src/vitis/client/javascript/externs/bootbox/LICENSE.md similarity index 100% rename from client/javascript/externs/bootbox/LICENSE.md rename to src/vitis/client/javascript/externs/bootbox/LICENSE.md diff --git a/client/javascript/externs/bootbox/bootbox.min.js b/src/vitis/client/javascript/externs/bootbox/bootbox.min.js similarity index 100% rename from client/javascript/externs/bootbox/bootbox.min.js rename to src/vitis/client/javascript/externs/bootbox/bootbox.min.js diff --git a/client/javascript/externs/bootstrap/LICENSE b/src/vitis/client/javascript/externs/bootstrap/LICENSE similarity index 100% rename from client/javascript/externs/bootstrap/LICENSE rename to src/vitis/client/javascript/externs/bootstrap/LICENSE diff --git a/client/javascript/externs/bootstrap/bootstrap.js b/src/vitis/client/javascript/externs/bootstrap/bootstrap.js similarity index 100% rename from client/javascript/externs/bootstrap/bootstrap.js rename to src/vitis/client/javascript/externs/bootstrap/bootstrap.js diff --git a/client/javascript/externs/bootstrap/bootstrap.min.js b/src/vitis/client/javascript/externs/bootstrap/bootstrap.min.js similarity index 100% rename from client/javascript/externs/bootstrap/bootstrap.min.js rename to src/vitis/client/javascript/externs/bootstrap/bootstrap.min.js diff --git a/client/javascript/externs/codemirror/LICENSE b/src/vitis/client/javascript/externs/codemirror/LICENSE similarity index 100% rename from client/javascript/externs/codemirror/LICENSE rename to src/vitis/client/javascript/externs/codemirror/LICENSE diff --git a/client/javascript/externs/codemirror/addon/comment/comment.js b/src/vitis/client/javascript/externs/codemirror/addon/comment/comment.js similarity index 100% rename from client/javascript/externs/codemirror/addon/comment/comment.js rename to src/vitis/client/javascript/externs/codemirror/addon/comment/comment.js diff --git a/client/javascript/externs/codemirror/addon/comment/continuecomment.js b/src/vitis/client/javascript/externs/codemirror/addon/comment/continuecomment.js similarity index 100% rename from client/javascript/externs/codemirror/addon/comment/continuecomment.js rename to src/vitis/client/javascript/externs/codemirror/addon/comment/continuecomment.js diff --git a/client/javascript/externs/codemirror/addon/dialog/dialog.css b/src/vitis/client/javascript/externs/codemirror/addon/dialog/dialog.css similarity index 100% rename from client/javascript/externs/codemirror/addon/dialog/dialog.css rename to src/vitis/client/javascript/externs/codemirror/addon/dialog/dialog.css diff --git a/client/javascript/externs/codemirror/addon/dialog/dialog.js b/src/vitis/client/javascript/externs/codemirror/addon/dialog/dialog.js similarity index 100% rename from client/javascript/externs/codemirror/addon/dialog/dialog.js rename to src/vitis/client/javascript/externs/codemirror/addon/dialog/dialog.js diff --git a/client/javascript/externs/codemirror/addon/display/autorefresh.js b/src/vitis/client/javascript/externs/codemirror/addon/display/autorefresh.js similarity index 100% rename from client/javascript/externs/codemirror/addon/display/autorefresh.js rename to src/vitis/client/javascript/externs/codemirror/addon/display/autorefresh.js diff --git a/client/javascript/externs/codemirror/addon/display/fullscreen.css b/src/vitis/client/javascript/externs/codemirror/addon/display/fullscreen.css similarity index 100% rename from client/javascript/externs/codemirror/addon/display/fullscreen.css rename to src/vitis/client/javascript/externs/codemirror/addon/display/fullscreen.css diff --git a/client/javascript/externs/codemirror/addon/display/fullscreen.js b/src/vitis/client/javascript/externs/codemirror/addon/display/fullscreen.js similarity index 100% rename from client/javascript/externs/codemirror/addon/display/fullscreen.js rename to src/vitis/client/javascript/externs/codemirror/addon/display/fullscreen.js diff --git a/client/javascript/externs/codemirror/addon/display/panel.js b/src/vitis/client/javascript/externs/codemirror/addon/display/panel.js similarity index 100% rename from client/javascript/externs/codemirror/addon/display/panel.js rename to src/vitis/client/javascript/externs/codemirror/addon/display/panel.js diff --git a/client/javascript/externs/codemirror/addon/display/placeholder.js b/src/vitis/client/javascript/externs/codemirror/addon/display/placeholder.js similarity index 100% rename from client/javascript/externs/codemirror/addon/display/placeholder.js rename to src/vitis/client/javascript/externs/codemirror/addon/display/placeholder.js diff --git a/client/javascript/externs/codemirror/addon/display/rulers.js b/src/vitis/client/javascript/externs/codemirror/addon/display/rulers.js similarity index 100% rename from client/javascript/externs/codemirror/addon/display/rulers.js rename to src/vitis/client/javascript/externs/codemirror/addon/display/rulers.js diff --git a/client/javascript/externs/codemirror/addon/edit/closebrackets.js b/src/vitis/client/javascript/externs/codemirror/addon/edit/closebrackets.js similarity index 100% rename from client/javascript/externs/codemirror/addon/edit/closebrackets.js rename to src/vitis/client/javascript/externs/codemirror/addon/edit/closebrackets.js diff --git a/client/javascript/externs/codemirror/addon/edit/closetag.js b/src/vitis/client/javascript/externs/codemirror/addon/edit/closetag.js similarity index 100% rename from client/javascript/externs/codemirror/addon/edit/closetag.js rename to src/vitis/client/javascript/externs/codemirror/addon/edit/closetag.js diff --git a/client/javascript/externs/codemirror/addon/edit/continuelist.js b/src/vitis/client/javascript/externs/codemirror/addon/edit/continuelist.js similarity index 100% rename from client/javascript/externs/codemirror/addon/edit/continuelist.js rename to src/vitis/client/javascript/externs/codemirror/addon/edit/continuelist.js diff --git a/client/javascript/externs/codemirror/addon/edit/matchbrackets.js b/src/vitis/client/javascript/externs/codemirror/addon/edit/matchbrackets.js similarity index 100% rename from client/javascript/externs/codemirror/addon/edit/matchbrackets.js rename to src/vitis/client/javascript/externs/codemirror/addon/edit/matchbrackets.js diff --git a/client/javascript/externs/codemirror/addon/edit/matchtags.js b/src/vitis/client/javascript/externs/codemirror/addon/edit/matchtags.js similarity index 100% rename from client/javascript/externs/codemirror/addon/edit/matchtags.js rename to src/vitis/client/javascript/externs/codemirror/addon/edit/matchtags.js diff --git a/client/javascript/externs/codemirror/addon/edit/trailingspace.js b/src/vitis/client/javascript/externs/codemirror/addon/edit/trailingspace.js similarity index 100% rename from client/javascript/externs/codemirror/addon/edit/trailingspace.js rename to src/vitis/client/javascript/externs/codemirror/addon/edit/trailingspace.js diff --git a/client/javascript/externs/codemirror/addon/fold/brace-fold.js b/src/vitis/client/javascript/externs/codemirror/addon/fold/brace-fold.js similarity index 100% rename from client/javascript/externs/codemirror/addon/fold/brace-fold.js rename to src/vitis/client/javascript/externs/codemirror/addon/fold/brace-fold.js diff --git a/client/javascript/externs/codemirror/addon/fold/comment-fold.js b/src/vitis/client/javascript/externs/codemirror/addon/fold/comment-fold.js similarity index 100% rename from client/javascript/externs/codemirror/addon/fold/comment-fold.js rename to src/vitis/client/javascript/externs/codemirror/addon/fold/comment-fold.js diff --git a/client/javascript/externs/codemirror/addon/fold/foldcode.js b/src/vitis/client/javascript/externs/codemirror/addon/fold/foldcode.js similarity index 100% rename from client/javascript/externs/codemirror/addon/fold/foldcode.js rename to src/vitis/client/javascript/externs/codemirror/addon/fold/foldcode.js diff --git a/client/javascript/externs/codemirror/addon/fold/foldgutter.css b/src/vitis/client/javascript/externs/codemirror/addon/fold/foldgutter.css similarity index 100% rename from client/javascript/externs/codemirror/addon/fold/foldgutter.css rename to src/vitis/client/javascript/externs/codemirror/addon/fold/foldgutter.css diff --git a/client/javascript/externs/codemirror/addon/fold/foldgutter.js b/src/vitis/client/javascript/externs/codemirror/addon/fold/foldgutter.js similarity index 100% rename from client/javascript/externs/codemirror/addon/fold/foldgutter.js rename to src/vitis/client/javascript/externs/codemirror/addon/fold/foldgutter.js diff --git a/client/javascript/externs/codemirror/addon/fold/indent-fold.js b/src/vitis/client/javascript/externs/codemirror/addon/fold/indent-fold.js similarity index 100% rename from client/javascript/externs/codemirror/addon/fold/indent-fold.js rename to src/vitis/client/javascript/externs/codemirror/addon/fold/indent-fold.js diff --git a/client/javascript/externs/codemirror/addon/fold/markdown-fold.js b/src/vitis/client/javascript/externs/codemirror/addon/fold/markdown-fold.js similarity index 100% rename from client/javascript/externs/codemirror/addon/fold/markdown-fold.js rename to src/vitis/client/javascript/externs/codemirror/addon/fold/markdown-fold.js diff --git a/client/javascript/externs/codemirror/addon/fold/xml-fold.js b/src/vitis/client/javascript/externs/codemirror/addon/fold/xml-fold.js similarity index 100% rename from client/javascript/externs/codemirror/addon/fold/xml-fold.js rename to src/vitis/client/javascript/externs/codemirror/addon/fold/xml-fold.js diff --git a/client/javascript/externs/codemirror/addon/hint/anyword-hint.js b/src/vitis/client/javascript/externs/codemirror/addon/hint/anyword-hint.js similarity index 100% rename from client/javascript/externs/codemirror/addon/hint/anyword-hint.js rename to src/vitis/client/javascript/externs/codemirror/addon/hint/anyword-hint.js diff --git a/client/javascript/externs/codemirror/addon/hint/css-hint.js b/src/vitis/client/javascript/externs/codemirror/addon/hint/css-hint.js similarity index 100% rename from client/javascript/externs/codemirror/addon/hint/css-hint.js rename to src/vitis/client/javascript/externs/codemirror/addon/hint/css-hint.js diff --git a/client/javascript/externs/codemirror/addon/hint/html-hint.js b/src/vitis/client/javascript/externs/codemirror/addon/hint/html-hint.js similarity index 100% rename from client/javascript/externs/codemirror/addon/hint/html-hint.js rename to src/vitis/client/javascript/externs/codemirror/addon/hint/html-hint.js diff --git a/client/javascript/externs/codemirror/addon/hint/javascript-hint.js b/src/vitis/client/javascript/externs/codemirror/addon/hint/javascript-hint.js similarity index 100% rename from client/javascript/externs/codemirror/addon/hint/javascript-hint.js rename to src/vitis/client/javascript/externs/codemirror/addon/hint/javascript-hint.js diff --git a/client/javascript/externs/codemirror/addon/hint/show-hint.css b/src/vitis/client/javascript/externs/codemirror/addon/hint/show-hint.css similarity index 100% rename from client/javascript/externs/codemirror/addon/hint/show-hint.css rename to src/vitis/client/javascript/externs/codemirror/addon/hint/show-hint.css diff --git a/client/javascript/externs/codemirror/addon/hint/show-hint.js b/src/vitis/client/javascript/externs/codemirror/addon/hint/show-hint.js similarity index 100% rename from client/javascript/externs/codemirror/addon/hint/show-hint.js rename to src/vitis/client/javascript/externs/codemirror/addon/hint/show-hint.js diff --git a/client/javascript/externs/codemirror/addon/hint/sql-hint.js b/src/vitis/client/javascript/externs/codemirror/addon/hint/sql-hint.js similarity index 100% rename from client/javascript/externs/codemirror/addon/hint/sql-hint.js rename to src/vitis/client/javascript/externs/codemirror/addon/hint/sql-hint.js diff --git a/client/javascript/externs/codemirror/addon/hint/xml-hint.js b/src/vitis/client/javascript/externs/codemirror/addon/hint/xml-hint.js similarity index 100% rename from client/javascript/externs/codemirror/addon/hint/xml-hint.js rename to src/vitis/client/javascript/externs/codemirror/addon/hint/xml-hint.js diff --git a/client/javascript/externs/codemirror/addon/keymap/sublime.js b/src/vitis/client/javascript/externs/codemirror/addon/keymap/sublime.js similarity index 100% rename from client/javascript/externs/codemirror/addon/keymap/sublime.js rename to src/vitis/client/javascript/externs/codemirror/addon/keymap/sublime.js diff --git a/client/javascript/externs/codemirror/addon/lint/coffeescript-lint.js b/src/vitis/client/javascript/externs/codemirror/addon/lint/coffeescript-lint.js similarity index 100% rename from client/javascript/externs/codemirror/addon/lint/coffeescript-lint.js rename to src/vitis/client/javascript/externs/codemirror/addon/lint/coffeescript-lint.js diff --git a/client/javascript/externs/codemirror/addon/lint/css-lint.js b/src/vitis/client/javascript/externs/codemirror/addon/lint/css-lint.js similarity index 100% rename from client/javascript/externs/codemirror/addon/lint/css-lint.js rename to src/vitis/client/javascript/externs/codemirror/addon/lint/css-lint.js diff --git a/client/javascript/externs/codemirror/addon/lint/html-lint.js b/src/vitis/client/javascript/externs/codemirror/addon/lint/html-lint.js similarity index 100% rename from client/javascript/externs/codemirror/addon/lint/html-lint.js rename to src/vitis/client/javascript/externs/codemirror/addon/lint/html-lint.js diff --git a/client/javascript/externs/codemirror/addon/lint/javascript-lint.js b/src/vitis/client/javascript/externs/codemirror/addon/lint/javascript-lint.js similarity index 100% rename from client/javascript/externs/codemirror/addon/lint/javascript-lint.js rename to src/vitis/client/javascript/externs/codemirror/addon/lint/javascript-lint.js diff --git a/client/javascript/externs/codemirror/addon/lint/json-lint.js b/src/vitis/client/javascript/externs/codemirror/addon/lint/json-lint.js similarity index 100% rename from client/javascript/externs/codemirror/addon/lint/json-lint.js rename to src/vitis/client/javascript/externs/codemirror/addon/lint/json-lint.js diff --git a/client/javascript/externs/codemirror/addon/lint/lint.css b/src/vitis/client/javascript/externs/codemirror/addon/lint/lint.css similarity index 100% rename from client/javascript/externs/codemirror/addon/lint/lint.css rename to src/vitis/client/javascript/externs/codemirror/addon/lint/lint.css diff --git a/client/javascript/externs/codemirror/addon/lint/lint.js b/src/vitis/client/javascript/externs/codemirror/addon/lint/lint.js similarity index 100% rename from client/javascript/externs/codemirror/addon/lint/lint.js rename to src/vitis/client/javascript/externs/codemirror/addon/lint/lint.js diff --git a/client/javascript/externs/codemirror/addon/lint/yaml-lint.js b/src/vitis/client/javascript/externs/codemirror/addon/lint/yaml-lint.js similarity index 100% rename from client/javascript/externs/codemirror/addon/lint/yaml-lint.js rename to src/vitis/client/javascript/externs/codemirror/addon/lint/yaml-lint.js diff --git a/client/javascript/externs/codemirror/addon/merge/merge.css b/src/vitis/client/javascript/externs/codemirror/addon/merge/merge.css similarity index 100% rename from client/javascript/externs/codemirror/addon/merge/merge.css rename to src/vitis/client/javascript/externs/codemirror/addon/merge/merge.css diff --git a/client/javascript/externs/codemirror/addon/merge/merge.js b/src/vitis/client/javascript/externs/codemirror/addon/merge/merge.js similarity index 100% rename from client/javascript/externs/codemirror/addon/merge/merge.js rename to src/vitis/client/javascript/externs/codemirror/addon/merge/merge.js diff --git a/client/javascript/externs/codemirror/addon/mode/loadmode.js b/src/vitis/client/javascript/externs/codemirror/addon/mode/loadmode.js similarity index 100% rename from client/javascript/externs/codemirror/addon/mode/loadmode.js rename to src/vitis/client/javascript/externs/codemirror/addon/mode/loadmode.js diff --git a/client/javascript/externs/codemirror/addon/mode/multiplex.js b/src/vitis/client/javascript/externs/codemirror/addon/mode/multiplex.js similarity index 100% rename from client/javascript/externs/codemirror/addon/mode/multiplex.js rename to src/vitis/client/javascript/externs/codemirror/addon/mode/multiplex.js diff --git a/client/javascript/externs/codemirror/addon/mode/multiplex_test.js b/src/vitis/client/javascript/externs/codemirror/addon/mode/multiplex_test.js similarity index 100% rename from client/javascript/externs/codemirror/addon/mode/multiplex_test.js rename to src/vitis/client/javascript/externs/codemirror/addon/mode/multiplex_test.js diff --git a/client/javascript/externs/codemirror/addon/mode/overlay.js b/src/vitis/client/javascript/externs/codemirror/addon/mode/overlay.js similarity index 100% rename from client/javascript/externs/codemirror/addon/mode/overlay.js rename to src/vitis/client/javascript/externs/codemirror/addon/mode/overlay.js diff --git a/client/javascript/externs/codemirror/addon/mode/simple.js b/src/vitis/client/javascript/externs/codemirror/addon/mode/simple.js similarity index 100% rename from client/javascript/externs/codemirror/addon/mode/simple.js rename to src/vitis/client/javascript/externs/codemirror/addon/mode/simple.js diff --git a/client/javascript/externs/codemirror/addon/runmode/colorize.js b/src/vitis/client/javascript/externs/codemirror/addon/runmode/colorize.js similarity index 100% rename from client/javascript/externs/codemirror/addon/runmode/colorize.js rename to src/vitis/client/javascript/externs/codemirror/addon/runmode/colorize.js diff --git a/client/javascript/externs/codemirror/addon/runmode/runmode-standalone.js b/src/vitis/client/javascript/externs/codemirror/addon/runmode/runmode-standalone.js similarity index 100% rename from client/javascript/externs/codemirror/addon/runmode/runmode-standalone.js rename to src/vitis/client/javascript/externs/codemirror/addon/runmode/runmode-standalone.js diff --git a/client/javascript/externs/codemirror/addon/runmode/runmode.js b/src/vitis/client/javascript/externs/codemirror/addon/runmode/runmode.js similarity index 100% rename from client/javascript/externs/codemirror/addon/runmode/runmode.js rename to src/vitis/client/javascript/externs/codemirror/addon/runmode/runmode.js diff --git a/client/javascript/externs/codemirror/addon/runmode/runmode.node.js b/src/vitis/client/javascript/externs/codemirror/addon/runmode/runmode.node.js similarity index 100% rename from client/javascript/externs/codemirror/addon/runmode/runmode.node.js rename to src/vitis/client/javascript/externs/codemirror/addon/runmode/runmode.node.js diff --git a/client/javascript/externs/codemirror/addon/scroll/annotatescrollbar.js b/src/vitis/client/javascript/externs/codemirror/addon/scroll/annotatescrollbar.js similarity index 100% rename from client/javascript/externs/codemirror/addon/scroll/annotatescrollbar.js rename to src/vitis/client/javascript/externs/codemirror/addon/scroll/annotatescrollbar.js diff --git a/client/javascript/externs/codemirror/addon/scroll/scrollpastend.js b/src/vitis/client/javascript/externs/codemirror/addon/scroll/scrollpastend.js similarity index 100% rename from client/javascript/externs/codemirror/addon/scroll/scrollpastend.js rename to src/vitis/client/javascript/externs/codemirror/addon/scroll/scrollpastend.js diff --git a/client/javascript/externs/codemirror/addon/scroll/simplescrollbars.css b/src/vitis/client/javascript/externs/codemirror/addon/scroll/simplescrollbars.css similarity index 100% rename from client/javascript/externs/codemirror/addon/scroll/simplescrollbars.css rename to src/vitis/client/javascript/externs/codemirror/addon/scroll/simplescrollbars.css diff --git a/client/javascript/externs/codemirror/addon/scroll/simplescrollbars.js b/src/vitis/client/javascript/externs/codemirror/addon/scroll/simplescrollbars.js similarity index 100% rename from client/javascript/externs/codemirror/addon/scroll/simplescrollbars.js rename to src/vitis/client/javascript/externs/codemirror/addon/scroll/simplescrollbars.js diff --git a/client/javascript/externs/codemirror/addon/search/jump-to-line.js b/src/vitis/client/javascript/externs/codemirror/addon/search/jump-to-line.js similarity index 100% rename from client/javascript/externs/codemirror/addon/search/jump-to-line.js rename to src/vitis/client/javascript/externs/codemirror/addon/search/jump-to-line.js diff --git a/client/javascript/externs/codemirror/addon/search/match-highlighter.js b/src/vitis/client/javascript/externs/codemirror/addon/search/match-highlighter.js similarity index 100% rename from client/javascript/externs/codemirror/addon/search/match-highlighter.js rename to src/vitis/client/javascript/externs/codemirror/addon/search/match-highlighter.js diff --git a/client/javascript/externs/codemirror/addon/search/matchesonscrollbar.css b/src/vitis/client/javascript/externs/codemirror/addon/search/matchesonscrollbar.css similarity index 100% rename from client/javascript/externs/codemirror/addon/search/matchesonscrollbar.css rename to src/vitis/client/javascript/externs/codemirror/addon/search/matchesonscrollbar.css diff --git a/client/javascript/externs/codemirror/addon/search/matchesonscrollbar.js b/src/vitis/client/javascript/externs/codemirror/addon/search/matchesonscrollbar.js similarity index 100% rename from client/javascript/externs/codemirror/addon/search/matchesonscrollbar.js rename to src/vitis/client/javascript/externs/codemirror/addon/search/matchesonscrollbar.js diff --git a/client/javascript/externs/codemirror/addon/search/search.js b/src/vitis/client/javascript/externs/codemirror/addon/search/search.js similarity index 100% rename from client/javascript/externs/codemirror/addon/search/search.js rename to src/vitis/client/javascript/externs/codemirror/addon/search/search.js diff --git a/client/javascript/externs/codemirror/addon/search/searchcursor.js b/src/vitis/client/javascript/externs/codemirror/addon/search/searchcursor.js similarity index 100% rename from client/javascript/externs/codemirror/addon/search/searchcursor.js rename to src/vitis/client/javascript/externs/codemirror/addon/search/searchcursor.js diff --git a/client/javascript/externs/codemirror/addon/selection/active-line.js b/src/vitis/client/javascript/externs/codemirror/addon/selection/active-line.js similarity index 100% rename from client/javascript/externs/codemirror/addon/selection/active-line.js rename to src/vitis/client/javascript/externs/codemirror/addon/selection/active-line.js diff --git a/client/javascript/externs/codemirror/addon/selection/mark-selection.js b/src/vitis/client/javascript/externs/codemirror/addon/selection/mark-selection.js similarity index 100% rename from client/javascript/externs/codemirror/addon/selection/mark-selection.js rename to src/vitis/client/javascript/externs/codemirror/addon/selection/mark-selection.js diff --git a/client/javascript/externs/codemirror/addon/selection/selection-pointer.js b/src/vitis/client/javascript/externs/codemirror/addon/selection/selection-pointer.js similarity index 100% rename from client/javascript/externs/codemirror/addon/selection/selection-pointer.js rename to src/vitis/client/javascript/externs/codemirror/addon/selection/selection-pointer.js diff --git a/client/javascript/externs/codemirror/addon/tern/tern.css b/src/vitis/client/javascript/externs/codemirror/addon/tern/tern.css similarity index 100% rename from client/javascript/externs/codemirror/addon/tern/tern.css rename to src/vitis/client/javascript/externs/codemirror/addon/tern/tern.css diff --git a/client/javascript/externs/codemirror/addon/tern/tern.js b/src/vitis/client/javascript/externs/codemirror/addon/tern/tern.js similarity index 100% rename from client/javascript/externs/codemirror/addon/tern/tern.js rename to src/vitis/client/javascript/externs/codemirror/addon/tern/tern.js diff --git a/client/javascript/externs/codemirror/addon/tern/worker.js b/src/vitis/client/javascript/externs/codemirror/addon/tern/worker.js similarity index 100% rename from client/javascript/externs/codemirror/addon/tern/worker.js rename to src/vitis/client/javascript/externs/codemirror/addon/tern/worker.js diff --git a/client/javascript/externs/codemirror/addon/wrap/hardwrap.js b/src/vitis/client/javascript/externs/codemirror/addon/wrap/hardwrap.js similarity index 100% rename from client/javascript/externs/codemirror/addon/wrap/hardwrap.js rename to src/vitis/client/javascript/externs/codemirror/addon/wrap/hardwrap.js diff --git a/client/javascript/externs/codemirror/clike.js b/src/vitis/client/javascript/externs/codemirror/clike.js similarity index 100% rename from client/javascript/externs/codemirror/clike.js rename to src/vitis/client/javascript/externs/codemirror/clike.js diff --git a/client/javascript/externs/codemirror/codemirror.js b/src/vitis/client/javascript/externs/codemirror/codemirror.js similarity index 100% rename from client/javascript/externs/codemirror/codemirror.js rename to src/vitis/client/javascript/externs/codemirror/codemirror.js diff --git a/client/javascript/externs/codemirror/codemirror.min.js b/src/vitis/client/javascript/externs/codemirror/codemirror.min.js similarity index 100% rename from client/javascript/externs/codemirror/codemirror.min.js rename to src/vitis/client/javascript/externs/codemirror/codemirror.min.js diff --git a/client/javascript/externs/codemirror/css.js b/src/vitis/client/javascript/externs/codemirror/css.js similarity index 100% rename from client/javascript/externs/codemirror/css.js rename to src/vitis/client/javascript/externs/codemirror/css.js diff --git a/client/javascript/externs/codemirror/htmlmixed.js b/src/vitis/client/javascript/externs/codemirror/htmlmixed.js similarity index 100% rename from client/javascript/externs/codemirror/htmlmixed.js rename to src/vitis/client/javascript/externs/codemirror/htmlmixed.js diff --git a/client/javascript/externs/codemirror/javascript.js b/src/vitis/client/javascript/externs/codemirror/javascript.js similarity index 100% rename from client/javascript/externs/codemirror/javascript.js rename to src/vitis/client/javascript/externs/codemirror/javascript.js diff --git a/client/javascript/externs/codemirror/map.js b/src/vitis/client/javascript/externs/codemirror/map.js similarity index 100% rename from client/javascript/externs/codemirror/map.js rename to src/vitis/client/javascript/externs/codemirror/map.js diff --git a/client/javascript/externs/codemirror/php.js b/src/vitis/client/javascript/externs/codemirror/php.js similarity index 100% rename from client/javascript/externs/codemirror/php.js rename to src/vitis/client/javascript/externs/codemirror/php.js diff --git a/client/javascript/externs/codemirror/show-hint.js b/src/vitis/client/javascript/externs/codemirror/show-hint.js similarity index 100% rename from client/javascript/externs/codemirror/show-hint.js rename to src/vitis/client/javascript/externs/codemirror/show-hint.js diff --git a/client/javascript/externs/codemirror/sql.js b/src/vitis/client/javascript/externs/codemirror/sql.js similarity index 100% rename from client/javascript/externs/codemirror/sql.js rename to src/vitis/client/javascript/externs/codemirror/sql.js diff --git a/client/javascript/externs/codemirror/xml.js b/src/vitis/client/javascript/externs/codemirror/xml.js similarity index 100% rename from client/javascript/externs/codemirror/xml.js rename to src/vitis/client/javascript/externs/codemirror/xml.js diff --git a/client/javascript/externs/formReader/component/component.js b/src/vitis/client/javascript/externs/formReader/component/component.js similarity index 100% rename from client/javascript/externs/formReader/component/component.js rename to src/vitis/client/javascript/externs/formReader/component/component.js diff --git a/client/javascript/externs/formReader/component/map.js b/src/vitis/client/javascript/externs/formReader/component/map.js similarity index 100% rename from client/javascript/externs/formReader/component/map.js rename to src/vitis/client/javascript/externs/formReader/component/map.js diff --git a/client/javascript/externs/formReader/component/map_workbench/map_workbench.html b/src/vitis/client/javascript/externs/formReader/component/map_workbench/map_workbench.html similarity index 100% rename from client/javascript/externs/formReader/component/map_workbench/map_workbench.html rename to src/vitis/client/javascript/externs/formReader/component/map_workbench/map_workbench.html diff --git a/client/javascript/externs/formReader/component/map_workbench/map_workbench.js b/src/vitis/client/javascript/externs/formReader/component/map_workbench/map_workbench.js similarity index 100% rename from client/javascript/externs/formReader/component/map_workbench/map_workbench.js rename to src/vitis/client/javascript/externs/formReader/component/map_workbench/map_workbench.js diff --git a/client/javascript/externs/formReader/formReader.html b/src/vitis/client/javascript/externs/formReader/formReader.html similarity index 100% rename from client/javascript/externs/formReader/formReader.html rename to src/vitis/client/javascript/externs/formReader/formReader.html diff --git a/client/javascript/externs/formReader/formReader.js b/src/vitis/client/javascript/externs/formReader/formReader.js similarity index 100% rename from client/javascript/externs/formReader/formReader.js rename to src/vitis/client/javascript/externs/formReader/formReader.js diff --git a/client/javascript/externs/formReader/formReaderCtrl.js b/src/vitis/client/javascript/externs/formReader/formReaderCtrl.js old mode 100755 new mode 100644 similarity index 100% rename from client/javascript/externs/formReader/formReaderCtrl.js rename to src/vitis/client/javascript/externs/formReader/formReaderCtrl.js diff --git a/client/javascript/externs/formReader/formReaderDrtv.js b/src/vitis/client/javascript/externs/formReader/formReaderDrtv.js similarity index 100% rename from client/javascript/externs/formReader/formReaderDrtv.js rename to src/vitis/client/javascript/externs/formReader/formReaderDrtv.js diff --git a/client/javascript/externs/formReader/formReaderSrvc.js b/src/vitis/client/javascript/externs/formReader/formReaderSrvc.js similarity index 100% rename from client/javascript/externs/formReader/formReaderSrvc.js rename to src/vitis/client/javascript/externs/formReader/formReaderSrvc.js diff --git a/client/javascript/externs/jquery/LICENSE.txt b/src/vitis/client/javascript/externs/jquery/LICENSE.txt similarity index 100% rename from client/javascript/externs/jquery/LICENSE.txt rename to src/vitis/client/javascript/externs/jquery/LICENSE.txt diff --git a/client/javascript/externs/jquery/jquery-1.11.3.js b/src/vitis/client/javascript/externs/jquery/jquery-1.11.3.js similarity index 100% rename from client/javascript/externs/jquery/jquery-1.11.3.js rename to src/vitis/client/javascript/externs/jquery/jquery-1.11.3.js diff --git a/client/javascript/externs/jquery/jquery-1.11.3.min.js b/src/vitis/client/javascript/externs/jquery/jquery-1.11.3.min.js similarity index 100% rename from client/javascript/externs/jquery/jquery-1.11.3.min.js rename to src/vitis/client/javascript/externs/jquery/jquery-1.11.3.min.js diff --git a/client/javascript/externs/jquery/jquery-1.11.3.min.map b/src/vitis/client/javascript/externs/jquery/jquery-1.11.3.min.map similarity index 100% rename from client/javascript/externs/jquery/jquery-1.11.3.min.map rename to src/vitis/client/javascript/externs/jquery/jquery-1.11.3.min.map diff --git a/client/javascript/externs/jquery/plugins/bootbox/bootbox.js b/src/vitis/client/javascript/externs/jquery/plugins/bootbox/bootbox.js similarity index 100% rename from client/javascript/externs/jquery/plugins/bootbox/bootbox.js rename to src/vitis/client/javascript/externs/jquery/plugins/bootbox/bootbox.js diff --git a/client/javascript/externs/jquery/plugins/bootbox/bootbox.min.js b/src/vitis/client/javascript/externs/jquery/plugins/bootbox/bootbox.min.js similarity index 100% rename from client/javascript/externs/jquery/plugins/bootbox/bootbox.min.js rename to src/vitis/client/javascript/externs/jquery/plugins/bootbox/bootbox.min.js diff --git a/client/javascript/externs/jquery/plugins/bootstrap-colorpicker/bootstrap-colorpicker.min.js b/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-colorpicker/bootstrap-colorpicker.min.js similarity index 100% rename from client/javascript/externs/jquery/plugins/bootstrap-colorpicker/bootstrap-colorpicker.min.js rename to src/vitis/client/javascript/externs/jquery/plugins/bootstrap-colorpicker/bootstrap-colorpicker.min.js diff --git a/client/javascript/externs/jquery/plugins/bootstrap-colorpicker/js/bootstrap-colorpicker.js b/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-colorpicker/js/bootstrap-colorpicker.js similarity index 100% rename from client/javascript/externs/jquery/plugins/bootstrap-colorpicker/js/bootstrap-colorpicker.js rename to src/vitis/client/javascript/externs/jquery/plugins/bootstrap-colorpicker/js/bootstrap-colorpicker.js diff --git a/client/javascript/externs/jquery/plugins/bootstrap-colorpicker/js/bootstrap-colorpicker.min.js b/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-colorpicker/js/bootstrap-colorpicker.min.js similarity index 100% rename from client/javascript/externs/jquery/plugins/bootstrap-colorpicker/js/bootstrap-colorpicker.min.js rename to src/vitis/client/javascript/externs/jquery/plugins/bootstrap-colorpicker/js/bootstrap-colorpicker.min.js diff --git a/client/javascript/externs/jquery/plugins/bootstrap-confirmation/bootstrap-confirmation.min.js b/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-confirmation/bootstrap-confirmation.min.js similarity index 100% rename from client/javascript/externs/jquery/plugins/bootstrap-confirmation/bootstrap-confirmation.min.js rename to src/vitis/client/javascript/externs/jquery/plugins/bootstrap-confirmation/bootstrap-confirmation.min.js diff --git a/client/javascript/externs/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker.js b/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker.js similarity index 100% rename from client/javascript/externs/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker.js rename to src/vitis/client/javascript/externs/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker.js diff --git a/client/javascript/externs/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker.min.js b/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker.min.js similarity index 100% rename from client/javascript/externs/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker.min.js rename to src/vitis/client/javascript/externs/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker.min.js diff --git a/client/javascript/externs/jquery/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.fr.min.js b/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.fr.min.js similarity index 100% rename from client/javascript/externs/jquery/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.fr.min.js rename to src/vitis/client/javascript/externs/jquery/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.fr.min.js diff --git a/client/javascript/externs/jquery/plugins/bootstrap-datetimepicker/bootstrap-datetimepicker.min.js b/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-datetimepicker/bootstrap-datetimepicker.min.js similarity index 100% rename from client/javascript/externs/jquery/plugins/bootstrap-datetimepicker/bootstrap-datetimepicker.min.js rename to src/vitis/client/javascript/externs/jquery/plugins/bootstrap-datetimepicker/bootstrap-datetimepicker.min.js diff --git a/client/javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput.js b/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput.js similarity index 100% rename from client/javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput.js rename to src/vitis/client/javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput.js diff --git a/client/javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput.min.js b/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput.min.js similarity index 100% rename from client/javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput.min.js rename to src/vitis/client/javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput.min.js diff --git a/client/javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput_locale_fr.js b/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput_locale_fr.js similarity index 100% rename from client/javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput_locale_fr.js rename to src/vitis/client/javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput_locale_fr.js diff --git a/client/javascript/externs/jquery/plugins/bootstrap-slider/bootstrap-slider.min.js b/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-slider/bootstrap-slider.min.js similarity index 100% rename from client/javascript/externs/jquery/plugins/bootstrap-slider/bootstrap-slider.min.js rename to src/vitis/client/javascript/externs/jquery/plugins/bootstrap-slider/bootstrap-slider.min.js diff --git a/client/javascript/externs/jquery/plugins/bootstrap-tagsinput/bootstrap-tagsinput.min.js b/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-tagsinput/bootstrap-tagsinput.min.js similarity index 100% rename from client/javascript/externs/jquery/plugins/bootstrap-tagsinput/bootstrap-tagsinput.min.js rename to src/vitis/client/javascript/externs/jquery/plugins/bootstrap-tagsinput/bootstrap-tagsinput.min.js diff --git a/client/javascript/externs/jquery/plugins/bootstrap-treeview/bootstrap-treeview.js b/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-treeview/bootstrap-treeview.js similarity index 100% rename from client/javascript/externs/jquery/plugins/bootstrap-treeview/bootstrap-treeview.js rename to src/vitis/client/javascript/externs/jquery/plugins/bootstrap-treeview/bootstrap-treeview.js diff --git a/client/javascript/externs/jquery/plugins/bootstrap-treeview/bootstrap-treeview.min.js b/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-treeview/bootstrap-treeview.min.js similarity index 100% rename from client/javascript/externs/jquery/plugins/bootstrap-treeview/bootstrap-treeview.min.js rename to src/vitis/client/javascript/externs/jquery/plugins/bootstrap-treeview/bootstrap-treeview.min.js diff --git a/client/javascript/externs/jquery/plugins/malihu-custom-scrollbar/jquery.mCustomScrollbar.concat.min.js b/src/vitis/client/javascript/externs/jquery/plugins/malihu-custom-scrollbar/jquery.mCustomScrollbar.concat.min.js similarity index 100% rename from client/javascript/externs/jquery/plugins/malihu-custom-scrollbar/jquery.mCustomScrollbar.concat.min.js rename to src/vitis/client/javascript/externs/jquery/plugins/malihu-custom-scrollbar/jquery.mCustomScrollbar.concat.min.js diff --git a/client/javascript/externs/jquery/plugins/notify/notify.js b/src/vitis/client/javascript/externs/jquery/plugins/notify/notify.js similarity index 100% rename from client/javascript/externs/jquery/plugins/notify/notify.js rename to src/vitis/client/javascript/externs/jquery/plugins/notify/notify.js diff --git a/client/javascript/externs/jquery/plugins/notify/notify.min.js b/src/vitis/client/javascript/externs/jquery/plugins/notify/notify.min.js similarity index 100% rename from client/javascript/externs/jquery/plugins/notify/notify.min.js rename to src/vitis/client/javascript/externs/jquery/plugins/notify/notify.min.js diff --git a/client/javascript/externs/less/LICENSE b/src/vitis/client/javascript/externs/less/LICENSE similarity index 100% rename from client/javascript/externs/less/LICENSE rename to src/vitis/client/javascript/externs/less/LICENSE diff --git a/client/javascript/externs/less/less.min.js b/src/vitis/client/javascript/externs/less/less.min.js similarity index 100% rename from client/javascript/externs/less/less.min.js rename to src/vitis/client/javascript/externs/less/less.min.js diff --git a/client/javascript/externs/letter-avatar/ngletteravatar.js b/src/vitis/client/javascript/externs/letter-avatar/ngletteravatar.js similarity index 100% rename from client/javascript/externs/letter-avatar/ngletteravatar.js rename to src/vitis/client/javascript/externs/letter-avatar/ngletteravatar.js diff --git a/client/javascript/externs/letter-avatar/ngletteravatar.min.js b/src/vitis/client/javascript/externs/letter-avatar/ngletteravatar.min.js similarity index 100% rename from client/javascript/externs/letter-avatar/ngletteravatar.min.js rename to src/vitis/client/javascript/externs/letter-avatar/ngletteravatar.min.js diff --git a/client/javascript/externs/mapJSON/MapJSON.js b/src/vitis/client/javascript/externs/mapJSON/MapJSON.js similarity index 100% rename from client/javascript/externs/mapJSON/MapJSON.js rename to src/vitis/client/javascript/externs/mapJSON/MapJSON.js diff --git a/client/javascript/externs/materialize/materialize.js b/src/vitis/client/javascript/externs/materialize/materialize.js similarity index 100% rename from client/javascript/externs/materialize/materialize.js rename to src/vitis/client/javascript/externs/materialize/materialize.js diff --git a/client/javascript/externs/materialize/materialize.min.js b/src/vitis/client/javascript/externs/materialize/materialize.min.js similarity index 100% rename from client/javascript/externs/materialize/materialize.min.js rename to src/vitis/client/javascript/externs/materialize/materialize.min.js diff --git a/client/javascript/externs/mobile-detect/LICENSE b/src/vitis/client/javascript/externs/mobile-detect/LICENSE similarity index 100% rename from client/javascript/externs/mobile-detect/LICENSE rename to src/vitis/client/javascript/externs/mobile-detect/LICENSE diff --git a/client/javascript/externs/mobile-detect/mobile-detect.js b/src/vitis/client/javascript/externs/mobile-detect/mobile-detect.js similarity index 100% rename from client/javascript/externs/mobile-detect/mobile-detect.js rename to src/vitis/client/javascript/externs/mobile-detect/mobile-detect.js diff --git a/client/javascript/externs/mobile-detect/mobile-detect.min.js b/src/vitis/client/javascript/externs/mobile-detect/mobile-detect.min.js similarity index 100% rename from client/javascript/externs/mobile-detect/mobile-detect.min.js rename to src/vitis/client/javascript/externs/mobile-detect/mobile-detect.min.js diff --git a/client/javascript/externs/moment/LICENSE b/src/vitis/client/javascript/externs/moment/LICENSE similarity index 100% rename from client/javascript/externs/moment/LICENSE rename to src/vitis/client/javascript/externs/moment/LICENSE diff --git a/client/javascript/externs/moment/locale/af.js b/src/vitis/client/javascript/externs/moment/locale/af.js similarity index 100% rename from client/javascript/externs/moment/locale/af.js rename to src/vitis/client/javascript/externs/moment/locale/af.js diff --git a/client/javascript/externs/moment/locale/ar-ma.js b/src/vitis/client/javascript/externs/moment/locale/ar-ma.js similarity index 100% rename from client/javascript/externs/moment/locale/ar-ma.js rename to src/vitis/client/javascript/externs/moment/locale/ar-ma.js diff --git a/client/javascript/externs/moment/locale/ar-sa.js b/src/vitis/client/javascript/externs/moment/locale/ar-sa.js similarity index 100% rename from client/javascript/externs/moment/locale/ar-sa.js rename to src/vitis/client/javascript/externs/moment/locale/ar-sa.js diff --git a/client/javascript/externs/moment/locale/ar-tn.js b/src/vitis/client/javascript/externs/moment/locale/ar-tn.js similarity index 100% rename from client/javascript/externs/moment/locale/ar-tn.js rename to src/vitis/client/javascript/externs/moment/locale/ar-tn.js diff --git a/client/javascript/externs/moment/locale/ar.js b/src/vitis/client/javascript/externs/moment/locale/ar.js similarity index 100% rename from client/javascript/externs/moment/locale/ar.js rename to src/vitis/client/javascript/externs/moment/locale/ar.js diff --git a/client/javascript/externs/moment/locale/az.js b/src/vitis/client/javascript/externs/moment/locale/az.js similarity index 100% rename from client/javascript/externs/moment/locale/az.js rename to src/vitis/client/javascript/externs/moment/locale/az.js diff --git a/client/javascript/externs/moment/locale/be.js b/src/vitis/client/javascript/externs/moment/locale/be.js similarity index 100% rename from client/javascript/externs/moment/locale/be.js rename to src/vitis/client/javascript/externs/moment/locale/be.js diff --git a/client/javascript/externs/moment/locale/bg.js b/src/vitis/client/javascript/externs/moment/locale/bg.js similarity index 100% rename from client/javascript/externs/moment/locale/bg.js rename to src/vitis/client/javascript/externs/moment/locale/bg.js diff --git a/client/javascript/externs/moment/locale/bn.js b/src/vitis/client/javascript/externs/moment/locale/bn.js similarity index 100% rename from client/javascript/externs/moment/locale/bn.js rename to src/vitis/client/javascript/externs/moment/locale/bn.js diff --git a/client/javascript/externs/moment/locale/bo.js b/src/vitis/client/javascript/externs/moment/locale/bo.js similarity index 100% rename from client/javascript/externs/moment/locale/bo.js rename to src/vitis/client/javascript/externs/moment/locale/bo.js diff --git a/client/javascript/externs/moment/locale/br.js b/src/vitis/client/javascript/externs/moment/locale/br.js similarity index 100% rename from client/javascript/externs/moment/locale/br.js rename to src/vitis/client/javascript/externs/moment/locale/br.js diff --git a/client/javascript/externs/moment/locale/bs.js b/src/vitis/client/javascript/externs/moment/locale/bs.js similarity index 100% rename from client/javascript/externs/moment/locale/bs.js rename to src/vitis/client/javascript/externs/moment/locale/bs.js diff --git a/client/javascript/externs/moment/locale/ca.js b/src/vitis/client/javascript/externs/moment/locale/ca.js similarity index 100% rename from client/javascript/externs/moment/locale/ca.js rename to src/vitis/client/javascript/externs/moment/locale/ca.js diff --git a/client/javascript/externs/moment/locale/cs.js b/src/vitis/client/javascript/externs/moment/locale/cs.js similarity index 100% rename from client/javascript/externs/moment/locale/cs.js rename to src/vitis/client/javascript/externs/moment/locale/cs.js diff --git a/client/javascript/externs/moment/locale/cv.js b/src/vitis/client/javascript/externs/moment/locale/cv.js similarity index 100% rename from client/javascript/externs/moment/locale/cv.js rename to src/vitis/client/javascript/externs/moment/locale/cv.js diff --git a/client/javascript/externs/moment/locale/cy.js b/src/vitis/client/javascript/externs/moment/locale/cy.js similarity index 100% rename from client/javascript/externs/moment/locale/cy.js rename to src/vitis/client/javascript/externs/moment/locale/cy.js diff --git a/client/javascript/externs/moment/locale/da.js b/src/vitis/client/javascript/externs/moment/locale/da.js similarity index 100% rename from client/javascript/externs/moment/locale/da.js rename to src/vitis/client/javascript/externs/moment/locale/da.js diff --git a/client/javascript/externs/moment/locale/de-at.js b/src/vitis/client/javascript/externs/moment/locale/de-at.js similarity index 100% rename from client/javascript/externs/moment/locale/de-at.js rename to src/vitis/client/javascript/externs/moment/locale/de-at.js diff --git a/client/javascript/externs/moment/locale/de.js b/src/vitis/client/javascript/externs/moment/locale/de.js similarity index 100% rename from client/javascript/externs/moment/locale/de.js rename to src/vitis/client/javascript/externs/moment/locale/de.js diff --git a/client/javascript/externs/moment/locale/dv.js b/src/vitis/client/javascript/externs/moment/locale/dv.js similarity index 100% rename from client/javascript/externs/moment/locale/dv.js rename to src/vitis/client/javascript/externs/moment/locale/dv.js diff --git a/client/javascript/externs/moment/locale/el.js b/src/vitis/client/javascript/externs/moment/locale/el.js similarity index 100% rename from client/javascript/externs/moment/locale/el.js rename to src/vitis/client/javascript/externs/moment/locale/el.js diff --git a/client/javascript/externs/moment/locale/en-au.js b/src/vitis/client/javascript/externs/moment/locale/en-au.js similarity index 100% rename from client/javascript/externs/moment/locale/en-au.js rename to src/vitis/client/javascript/externs/moment/locale/en-au.js diff --git a/client/javascript/externs/moment/locale/en-ca.js b/src/vitis/client/javascript/externs/moment/locale/en-ca.js similarity index 100% rename from client/javascript/externs/moment/locale/en-ca.js rename to src/vitis/client/javascript/externs/moment/locale/en-ca.js diff --git a/client/javascript/externs/moment/locale/en-gb.js b/src/vitis/client/javascript/externs/moment/locale/en-gb.js similarity index 100% rename from client/javascript/externs/moment/locale/en-gb.js rename to src/vitis/client/javascript/externs/moment/locale/en-gb.js diff --git a/client/javascript/externs/moment/locale/en-ie.js b/src/vitis/client/javascript/externs/moment/locale/en-ie.js similarity index 100% rename from client/javascript/externs/moment/locale/en-ie.js rename to src/vitis/client/javascript/externs/moment/locale/en-ie.js diff --git a/client/javascript/externs/moment/locale/en-nz.js b/src/vitis/client/javascript/externs/moment/locale/en-nz.js similarity index 100% rename from client/javascript/externs/moment/locale/en-nz.js rename to src/vitis/client/javascript/externs/moment/locale/en-nz.js diff --git a/client/javascript/externs/moment/locale/eo.js b/src/vitis/client/javascript/externs/moment/locale/eo.js similarity index 100% rename from client/javascript/externs/moment/locale/eo.js rename to src/vitis/client/javascript/externs/moment/locale/eo.js diff --git a/client/javascript/externs/moment/locale/es.js b/src/vitis/client/javascript/externs/moment/locale/es.js similarity index 100% rename from client/javascript/externs/moment/locale/es.js rename to src/vitis/client/javascript/externs/moment/locale/es.js diff --git a/client/javascript/externs/moment/locale/et.js b/src/vitis/client/javascript/externs/moment/locale/et.js similarity index 100% rename from client/javascript/externs/moment/locale/et.js rename to src/vitis/client/javascript/externs/moment/locale/et.js diff --git a/client/javascript/externs/moment/locale/eu.js b/src/vitis/client/javascript/externs/moment/locale/eu.js similarity index 100% rename from client/javascript/externs/moment/locale/eu.js rename to src/vitis/client/javascript/externs/moment/locale/eu.js diff --git a/client/javascript/externs/moment/locale/fa.js b/src/vitis/client/javascript/externs/moment/locale/fa.js similarity index 100% rename from client/javascript/externs/moment/locale/fa.js rename to src/vitis/client/javascript/externs/moment/locale/fa.js diff --git a/client/javascript/externs/moment/locale/fi.js b/src/vitis/client/javascript/externs/moment/locale/fi.js similarity index 100% rename from client/javascript/externs/moment/locale/fi.js rename to src/vitis/client/javascript/externs/moment/locale/fi.js diff --git a/client/javascript/externs/moment/locale/fo.js b/src/vitis/client/javascript/externs/moment/locale/fo.js similarity index 100% rename from client/javascript/externs/moment/locale/fo.js rename to src/vitis/client/javascript/externs/moment/locale/fo.js diff --git a/client/javascript/externs/moment/locale/fr-ca.js b/src/vitis/client/javascript/externs/moment/locale/fr-ca.js similarity index 100% rename from client/javascript/externs/moment/locale/fr-ca.js rename to src/vitis/client/javascript/externs/moment/locale/fr-ca.js diff --git a/client/javascript/externs/moment/locale/fr-ch.js b/src/vitis/client/javascript/externs/moment/locale/fr-ch.js similarity index 100% rename from client/javascript/externs/moment/locale/fr-ch.js rename to src/vitis/client/javascript/externs/moment/locale/fr-ch.js diff --git a/client/javascript/externs/moment/locale/fr.js b/src/vitis/client/javascript/externs/moment/locale/fr.js similarity index 100% rename from client/javascript/externs/moment/locale/fr.js rename to src/vitis/client/javascript/externs/moment/locale/fr.js diff --git a/client/javascript/externs/moment/locale/fy.js b/src/vitis/client/javascript/externs/moment/locale/fy.js similarity index 100% rename from client/javascript/externs/moment/locale/fy.js rename to src/vitis/client/javascript/externs/moment/locale/fy.js diff --git a/client/javascript/externs/moment/locale/gd.js b/src/vitis/client/javascript/externs/moment/locale/gd.js similarity index 100% rename from client/javascript/externs/moment/locale/gd.js rename to src/vitis/client/javascript/externs/moment/locale/gd.js diff --git a/client/javascript/externs/moment/locale/gl.js b/src/vitis/client/javascript/externs/moment/locale/gl.js similarity index 100% rename from client/javascript/externs/moment/locale/gl.js rename to src/vitis/client/javascript/externs/moment/locale/gl.js diff --git a/client/javascript/externs/moment/locale/he.js b/src/vitis/client/javascript/externs/moment/locale/he.js similarity index 100% rename from client/javascript/externs/moment/locale/he.js rename to src/vitis/client/javascript/externs/moment/locale/he.js diff --git a/client/javascript/externs/moment/locale/hi.js b/src/vitis/client/javascript/externs/moment/locale/hi.js similarity index 100% rename from client/javascript/externs/moment/locale/hi.js rename to src/vitis/client/javascript/externs/moment/locale/hi.js diff --git a/client/javascript/externs/moment/locale/hr.js b/src/vitis/client/javascript/externs/moment/locale/hr.js similarity index 100% rename from client/javascript/externs/moment/locale/hr.js rename to src/vitis/client/javascript/externs/moment/locale/hr.js diff --git a/client/javascript/externs/moment/locale/hu.js b/src/vitis/client/javascript/externs/moment/locale/hu.js similarity index 100% rename from client/javascript/externs/moment/locale/hu.js rename to src/vitis/client/javascript/externs/moment/locale/hu.js diff --git a/client/javascript/externs/moment/locale/hy-am.js b/src/vitis/client/javascript/externs/moment/locale/hy-am.js similarity index 100% rename from client/javascript/externs/moment/locale/hy-am.js rename to src/vitis/client/javascript/externs/moment/locale/hy-am.js diff --git a/client/javascript/externs/moment/locale/id.js b/src/vitis/client/javascript/externs/moment/locale/id.js similarity index 100% rename from client/javascript/externs/moment/locale/id.js rename to src/vitis/client/javascript/externs/moment/locale/id.js diff --git a/client/javascript/externs/moment/locale/is.js b/src/vitis/client/javascript/externs/moment/locale/is.js similarity index 100% rename from client/javascript/externs/moment/locale/is.js rename to src/vitis/client/javascript/externs/moment/locale/is.js diff --git a/client/javascript/externs/moment/locale/it.js b/src/vitis/client/javascript/externs/moment/locale/it.js similarity index 100% rename from client/javascript/externs/moment/locale/it.js rename to src/vitis/client/javascript/externs/moment/locale/it.js diff --git a/client/javascript/externs/moment/locale/ja.js b/src/vitis/client/javascript/externs/moment/locale/ja.js similarity index 100% rename from client/javascript/externs/moment/locale/ja.js rename to src/vitis/client/javascript/externs/moment/locale/ja.js diff --git a/client/javascript/externs/moment/locale/jv.js b/src/vitis/client/javascript/externs/moment/locale/jv.js similarity index 100% rename from client/javascript/externs/moment/locale/jv.js rename to src/vitis/client/javascript/externs/moment/locale/jv.js diff --git a/client/javascript/externs/moment/locale/ka.js b/src/vitis/client/javascript/externs/moment/locale/ka.js similarity index 100% rename from client/javascript/externs/moment/locale/ka.js rename to src/vitis/client/javascript/externs/moment/locale/ka.js diff --git a/client/javascript/externs/moment/locale/kk.js b/src/vitis/client/javascript/externs/moment/locale/kk.js similarity index 100% rename from client/javascript/externs/moment/locale/kk.js rename to src/vitis/client/javascript/externs/moment/locale/kk.js diff --git a/client/javascript/externs/moment/locale/km.js b/src/vitis/client/javascript/externs/moment/locale/km.js similarity index 100% rename from client/javascript/externs/moment/locale/km.js rename to src/vitis/client/javascript/externs/moment/locale/km.js diff --git a/client/javascript/externs/moment/locale/ko.js b/src/vitis/client/javascript/externs/moment/locale/ko.js similarity index 100% rename from client/javascript/externs/moment/locale/ko.js rename to src/vitis/client/javascript/externs/moment/locale/ko.js diff --git a/client/javascript/externs/moment/locale/lb.js b/src/vitis/client/javascript/externs/moment/locale/lb.js similarity index 100% rename from client/javascript/externs/moment/locale/lb.js rename to src/vitis/client/javascript/externs/moment/locale/lb.js diff --git a/client/javascript/externs/moment/locale/lo.js b/src/vitis/client/javascript/externs/moment/locale/lo.js similarity index 100% rename from client/javascript/externs/moment/locale/lo.js rename to src/vitis/client/javascript/externs/moment/locale/lo.js diff --git a/client/javascript/externs/moment/locale/lt.js b/src/vitis/client/javascript/externs/moment/locale/lt.js similarity index 100% rename from client/javascript/externs/moment/locale/lt.js rename to src/vitis/client/javascript/externs/moment/locale/lt.js diff --git a/client/javascript/externs/moment/locale/lv.js b/src/vitis/client/javascript/externs/moment/locale/lv.js similarity index 100% rename from client/javascript/externs/moment/locale/lv.js rename to src/vitis/client/javascript/externs/moment/locale/lv.js diff --git a/client/javascript/externs/moment/locale/me.js b/src/vitis/client/javascript/externs/moment/locale/me.js similarity index 100% rename from client/javascript/externs/moment/locale/me.js rename to src/vitis/client/javascript/externs/moment/locale/me.js diff --git a/client/javascript/externs/moment/locale/mk.js b/src/vitis/client/javascript/externs/moment/locale/mk.js similarity index 100% rename from client/javascript/externs/moment/locale/mk.js rename to src/vitis/client/javascript/externs/moment/locale/mk.js diff --git a/client/javascript/externs/moment/locale/ml.js b/src/vitis/client/javascript/externs/moment/locale/ml.js similarity index 100% rename from client/javascript/externs/moment/locale/ml.js rename to src/vitis/client/javascript/externs/moment/locale/ml.js diff --git a/client/javascript/externs/moment/locale/mr.js b/src/vitis/client/javascript/externs/moment/locale/mr.js similarity index 100% rename from client/javascript/externs/moment/locale/mr.js rename to src/vitis/client/javascript/externs/moment/locale/mr.js diff --git a/client/javascript/externs/moment/locale/ms-my.js b/src/vitis/client/javascript/externs/moment/locale/ms-my.js similarity index 100% rename from client/javascript/externs/moment/locale/ms-my.js rename to src/vitis/client/javascript/externs/moment/locale/ms-my.js diff --git a/client/javascript/externs/moment/locale/ms.js b/src/vitis/client/javascript/externs/moment/locale/ms.js similarity index 100% rename from client/javascript/externs/moment/locale/ms.js rename to src/vitis/client/javascript/externs/moment/locale/ms.js diff --git a/client/javascript/externs/moment/locale/my.js b/src/vitis/client/javascript/externs/moment/locale/my.js similarity index 100% rename from client/javascript/externs/moment/locale/my.js rename to src/vitis/client/javascript/externs/moment/locale/my.js diff --git a/client/javascript/externs/moment/locale/nb.js b/src/vitis/client/javascript/externs/moment/locale/nb.js similarity index 100% rename from client/javascript/externs/moment/locale/nb.js rename to src/vitis/client/javascript/externs/moment/locale/nb.js diff --git a/client/javascript/externs/moment/locale/ne.js b/src/vitis/client/javascript/externs/moment/locale/ne.js similarity index 100% rename from client/javascript/externs/moment/locale/ne.js rename to src/vitis/client/javascript/externs/moment/locale/ne.js diff --git a/client/javascript/externs/moment/locale/nl.js b/src/vitis/client/javascript/externs/moment/locale/nl.js similarity index 100% rename from client/javascript/externs/moment/locale/nl.js rename to src/vitis/client/javascript/externs/moment/locale/nl.js diff --git a/client/javascript/externs/moment/locale/nn.js b/src/vitis/client/javascript/externs/moment/locale/nn.js similarity index 100% rename from client/javascript/externs/moment/locale/nn.js rename to src/vitis/client/javascript/externs/moment/locale/nn.js diff --git a/client/javascript/externs/moment/locale/pl.js b/src/vitis/client/javascript/externs/moment/locale/pl.js similarity index 100% rename from client/javascript/externs/moment/locale/pl.js rename to src/vitis/client/javascript/externs/moment/locale/pl.js diff --git a/client/javascript/externs/moment/locale/pt-br.js b/src/vitis/client/javascript/externs/moment/locale/pt-br.js similarity index 100% rename from client/javascript/externs/moment/locale/pt-br.js rename to src/vitis/client/javascript/externs/moment/locale/pt-br.js diff --git a/client/javascript/externs/moment/locale/pt.js b/src/vitis/client/javascript/externs/moment/locale/pt.js similarity index 100% rename from client/javascript/externs/moment/locale/pt.js rename to src/vitis/client/javascript/externs/moment/locale/pt.js diff --git a/client/javascript/externs/moment/locale/ro.js b/src/vitis/client/javascript/externs/moment/locale/ro.js similarity index 100% rename from client/javascript/externs/moment/locale/ro.js rename to src/vitis/client/javascript/externs/moment/locale/ro.js diff --git a/client/javascript/externs/moment/locale/ru.js b/src/vitis/client/javascript/externs/moment/locale/ru.js similarity index 100% rename from client/javascript/externs/moment/locale/ru.js rename to src/vitis/client/javascript/externs/moment/locale/ru.js diff --git a/client/javascript/externs/moment/locale/se.js b/src/vitis/client/javascript/externs/moment/locale/se.js similarity index 100% rename from client/javascript/externs/moment/locale/se.js rename to src/vitis/client/javascript/externs/moment/locale/se.js diff --git a/client/javascript/externs/moment/locale/si.js b/src/vitis/client/javascript/externs/moment/locale/si.js similarity index 100% rename from client/javascript/externs/moment/locale/si.js rename to src/vitis/client/javascript/externs/moment/locale/si.js diff --git a/client/javascript/externs/moment/locale/sk.js b/src/vitis/client/javascript/externs/moment/locale/sk.js similarity index 100% rename from client/javascript/externs/moment/locale/sk.js rename to src/vitis/client/javascript/externs/moment/locale/sk.js diff --git a/client/javascript/externs/moment/locale/sl.js b/src/vitis/client/javascript/externs/moment/locale/sl.js similarity index 100% rename from client/javascript/externs/moment/locale/sl.js rename to src/vitis/client/javascript/externs/moment/locale/sl.js diff --git a/client/javascript/externs/moment/locale/sq.js b/src/vitis/client/javascript/externs/moment/locale/sq.js similarity index 100% rename from client/javascript/externs/moment/locale/sq.js rename to src/vitis/client/javascript/externs/moment/locale/sq.js diff --git a/client/javascript/externs/moment/locale/sr-cyrl.js b/src/vitis/client/javascript/externs/moment/locale/sr-cyrl.js similarity index 100% rename from client/javascript/externs/moment/locale/sr-cyrl.js rename to src/vitis/client/javascript/externs/moment/locale/sr-cyrl.js diff --git a/client/javascript/externs/moment/locale/sr.js b/src/vitis/client/javascript/externs/moment/locale/sr.js similarity index 100% rename from client/javascript/externs/moment/locale/sr.js rename to src/vitis/client/javascript/externs/moment/locale/sr.js diff --git a/client/javascript/externs/moment/locale/sv.js b/src/vitis/client/javascript/externs/moment/locale/sv.js similarity index 100% rename from client/javascript/externs/moment/locale/sv.js rename to src/vitis/client/javascript/externs/moment/locale/sv.js diff --git a/client/javascript/externs/moment/locale/sw.js b/src/vitis/client/javascript/externs/moment/locale/sw.js similarity index 100% rename from client/javascript/externs/moment/locale/sw.js rename to src/vitis/client/javascript/externs/moment/locale/sw.js diff --git a/client/javascript/externs/moment/locale/ta.js b/src/vitis/client/javascript/externs/moment/locale/ta.js similarity index 100% rename from client/javascript/externs/moment/locale/ta.js rename to src/vitis/client/javascript/externs/moment/locale/ta.js diff --git a/client/javascript/externs/moment/locale/te.js b/src/vitis/client/javascript/externs/moment/locale/te.js similarity index 100% rename from client/javascript/externs/moment/locale/te.js rename to src/vitis/client/javascript/externs/moment/locale/te.js diff --git a/client/javascript/externs/moment/locale/th.js b/src/vitis/client/javascript/externs/moment/locale/th.js similarity index 100% rename from client/javascript/externs/moment/locale/th.js rename to src/vitis/client/javascript/externs/moment/locale/th.js diff --git a/client/javascript/externs/moment/locale/tl-ph.js b/src/vitis/client/javascript/externs/moment/locale/tl-ph.js similarity index 100% rename from client/javascript/externs/moment/locale/tl-ph.js rename to src/vitis/client/javascript/externs/moment/locale/tl-ph.js diff --git a/client/javascript/externs/moment/locale/tlh.js b/src/vitis/client/javascript/externs/moment/locale/tlh.js similarity index 100% rename from client/javascript/externs/moment/locale/tlh.js rename to src/vitis/client/javascript/externs/moment/locale/tlh.js diff --git a/client/javascript/externs/moment/locale/tr.js b/src/vitis/client/javascript/externs/moment/locale/tr.js similarity index 100% rename from client/javascript/externs/moment/locale/tr.js rename to src/vitis/client/javascript/externs/moment/locale/tr.js diff --git a/client/javascript/externs/moment/locale/tzl.js b/src/vitis/client/javascript/externs/moment/locale/tzl.js similarity index 100% rename from client/javascript/externs/moment/locale/tzl.js rename to src/vitis/client/javascript/externs/moment/locale/tzl.js diff --git a/client/javascript/externs/moment/locale/tzm-latn.js b/src/vitis/client/javascript/externs/moment/locale/tzm-latn.js similarity index 100% rename from client/javascript/externs/moment/locale/tzm-latn.js rename to src/vitis/client/javascript/externs/moment/locale/tzm-latn.js diff --git a/client/javascript/externs/moment/locale/tzm.js b/src/vitis/client/javascript/externs/moment/locale/tzm.js similarity index 100% rename from client/javascript/externs/moment/locale/tzm.js rename to src/vitis/client/javascript/externs/moment/locale/tzm.js diff --git a/client/javascript/externs/moment/locale/uk.js b/src/vitis/client/javascript/externs/moment/locale/uk.js similarity index 100% rename from client/javascript/externs/moment/locale/uk.js rename to src/vitis/client/javascript/externs/moment/locale/uk.js diff --git a/client/javascript/externs/moment/locale/uz.js b/src/vitis/client/javascript/externs/moment/locale/uz.js similarity index 100% rename from client/javascript/externs/moment/locale/uz.js rename to src/vitis/client/javascript/externs/moment/locale/uz.js diff --git a/client/javascript/externs/moment/locale/vi.js b/src/vitis/client/javascript/externs/moment/locale/vi.js similarity index 100% rename from client/javascript/externs/moment/locale/vi.js rename to src/vitis/client/javascript/externs/moment/locale/vi.js diff --git a/client/javascript/externs/moment/locale/zh-cn.js b/src/vitis/client/javascript/externs/moment/locale/zh-cn.js similarity index 100% rename from client/javascript/externs/moment/locale/zh-cn.js rename to src/vitis/client/javascript/externs/moment/locale/zh-cn.js diff --git a/client/javascript/externs/moment/locale/zh-tw.js b/src/vitis/client/javascript/externs/moment/locale/zh-tw.js similarity index 100% rename from client/javascript/externs/moment/locale/zh-tw.js rename to src/vitis/client/javascript/externs/moment/locale/zh-tw.js diff --git a/client/javascript/externs/moment/min/locales.js b/src/vitis/client/javascript/externs/moment/min/locales.js similarity index 100% rename from client/javascript/externs/moment/min/locales.js rename to src/vitis/client/javascript/externs/moment/min/locales.js diff --git a/client/javascript/externs/moment/min/locales.min.js b/src/vitis/client/javascript/externs/moment/min/locales.min.js similarity index 100% rename from client/javascript/externs/moment/min/locales.min.js rename to src/vitis/client/javascript/externs/moment/min/locales.min.js diff --git a/client/javascript/externs/moment/min/moment-with-locales.js b/src/vitis/client/javascript/externs/moment/min/moment-with-locales.js similarity index 100% rename from client/javascript/externs/moment/min/moment-with-locales.js rename to src/vitis/client/javascript/externs/moment/min/moment-with-locales.js diff --git a/client/javascript/externs/moment/min/moment-with-locales.min.js b/src/vitis/client/javascript/externs/moment/min/moment-with-locales.min.js similarity index 100% rename from client/javascript/externs/moment/min/moment-with-locales.min.js rename to src/vitis/client/javascript/externs/moment/min/moment-with-locales.min.js diff --git a/client/javascript/externs/moment/min/moment.min.js b/src/vitis/client/javascript/externs/moment/min/moment.min.js similarity index 100% rename from client/javascript/externs/moment/min/moment.min.js rename to src/vitis/client/javascript/externs/moment/min/moment.min.js diff --git a/client/javascript/externs/moment/min/tests.js b/src/vitis/client/javascript/externs/moment/min/tests.js similarity index 100% rename from client/javascript/externs/moment/min/tests.js rename to src/vitis/client/javascript/externs/moment/min/tests.js diff --git a/client/javascript/externs/moment/moment.min.js b/src/vitis/client/javascript/externs/moment/moment.min.js similarity index 100% rename from client/javascript/externs/moment/moment.min.js rename to src/vitis/client/javascript/externs/moment/moment.min.js diff --git a/client/javascript/externs/moment/src/lib/create/check-overflow.js b/src/vitis/client/javascript/externs/moment/src/lib/create/check-overflow.js similarity index 100% rename from client/javascript/externs/moment/src/lib/create/check-overflow.js rename to src/vitis/client/javascript/externs/moment/src/lib/create/check-overflow.js diff --git a/client/javascript/externs/moment/src/lib/create/date-from-array.js b/src/vitis/client/javascript/externs/moment/src/lib/create/date-from-array.js similarity index 100% rename from client/javascript/externs/moment/src/lib/create/date-from-array.js rename to src/vitis/client/javascript/externs/moment/src/lib/create/date-from-array.js diff --git a/client/javascript/externs/moment/src/lib/create/from-anything.js b/src/vitis/client/javascript/externs/moment/src/lib/create/from-anything.js similarity index 100% rename from client/javascript/externs/moment/src/lib/create/from-anything.js rename to src/vitis/client/javascript/externs/moment/src/lib/create/from-anything.js diff --git a/client/javascript/externs/moment/src/lib/create/from-array.js b/src/vitis/client/javascript/externs/moment/src/lib/create/from-array.js similarity index 100% rename from client/javascript/externs/moment/src/lib/create/from-array.js rename to src/vitis/client/javascript/externs/moment/src/lib/create/from-array.js diff --git a/client/javascript/externs/moment/src/lib/create/from-object.js b/src/vitis/client/javascript/externs/moment/src/lib/create/from-object.js similarity index 100% rename from client/javascript/externs/moment/src/lib/create/from-object.js rename to src/vitis/client/javascript/externs/moment/src/lib/create/from-object.js diff --git a/client/javascript/externs/moment/src/lib/create/from-string-and-array.js b/src/vitis/client/javascript/externs/moment/src/lib/create/from-string-and-array.js similarity index 100% rename from client/javascript/externs/moment/src/lib/create/from-string-and-array.js rename to src/vitis/client/javascript/externs/moment/src/lib/create/from-string-and-array.js diff --git a/client/javascript/externs/moment/src/lib/create/from-string-and-format.js b/src/vitis/client/javascript/externs/moment/src/lib/create/from-string-and-format.js similarity index 100% rename from client/javascript/externs/moment/src/lib/create/from-string-and-format.js rename to src/vitis/client/javascript/externs/moment/src/lib/create/from-string-and-format.js diff --git a/client/javascript/externs/moment/src/lib/create/from-string.js b/src/vitis/client/javascript/externs/moment/src/lib/create/from-string.js similarity index 100% rename from client/javascript/externs/moment/src/lib/create/from-string.js rename to src/vitis/client/javascript/externs/moment/src/lib/create/from-string.js diff --git a/client/javascript/externs/moment/src/lib/create/local.js b/src/vitis/client/javascript/externs/moment/src/lib/create/local.js similarity index 100% rename from client/javascript/externs/moment/src/lib/create/local.js rename to src/vitis/client/javascript/externs/moment/src/lib/create/local.js diff --git a/client/javascript/externs/moment/src/lib/create/parsing-flags.js b/src/vitis/client/javascript/externs/moment/src/lib/create/parsing-flags.js similarity index 100% rename from client/javascript/externs/moment/src/lib/create/parsing-flags.js rename to src/vitis/client/javascript/externs/moment/src/lib/create/parsing-flags.js diff --git a/client/javascript/externs/moment/src/lib/create/utc.js b/src/vitis/client/javascript/externs/moment/src/lib/create/utc.js similarity index 100% rename from client/javascript/externs/moment/src/lib/create/utc.js rename to src/vitis/client/javascript/externs/moment/src/lib/create/utc.js diff --git a/client/javascript/externs/moment/src/lib/create/valid.js b/src/vitis/client/javascript/externs/moment/src/lib/create/valid.js similarity index 100% rename from client/javascript/externs/moment/src/lib/create/valid.js rename to src/vitis/client/javascript/externs/moment/src/lib/create/valid.js diff --git a/client/javascript/externs/moment/src/lib/duration/abs.js b/src/vitis/client/javascript/externs/moment/src/lib/duration/abs.js similarity index 100% rename from client/javascript/externs/moment/src/lib/duration/abs.js rename to src/vitis/client/javascript/externs/moment/src/lib/duration/abs.js diff --git a/client/javascript/externs/moment/src/lib/duration/add-subtract.js b/src/vitis/client/javascript/externs/moment/src/lib/duration/add-subtract.js similarity index 100% rename from client/javascript/externs/moment/src/lib/duration/add-subtract.js rename to src/vitis/client/javascript/externs/moment/src/lib/duration/add-subtract.js diff --git a/client/javascript/externs/moment/src/lib/duration/as.js b/src/vitis/client/javascript/externs/moment/src/lib/duration/as.js similarity index 100% rename from client/javascript/externs/moment/src/lib/duration/as.js rename to src/vitis/client/javascript/externs/moment/src/lib/duration/as.js diff --git a/client/javascript/externs/moment/src/lib/duration/bubble.js b/src/vitis/client/javascript/externs/moment/src/lib/duration/bubble.js similarity index 100% rename from client/javascript/externs/moment/src/lib/duration/bubble.js rename to src/vitis/client/javascript/externs/moment/src/lib/duration/bubble.js diff --git a/client/javascript/externs/moment/src/lib/duration/constructor.js b/src/vitis/client/javascript/externs/moment/src/lib/duration/constructor.js similarity index 100% rename from client/javascript/externs/moment/src/lib/duration/constructor.js rename to src/vitis/client/javascript/externs/moment/src/lib/duration/constructor.js diff --git a/client/javascript/externs/moment/src/lib/duration/create.js b/src/vitis/client/javascript/externs/moment/src/lib/duration/create.js similarity index 100% rename from client/javascript/externs/moment/src/lib/duration/create.js rename to src/vitis/client/javascript/externs/moment/src/lib/duration/create.js diff --git a/client/javascript/externs/moment/src/lib/duration/duration.js b/src/vitis/client/javascript/externs/moment/src/lib/duration/duration.js similarity index 100% rename from client/javascript/externs/moment/src/lib/duration/duration.js rename to src/vitis/client/javascript/externs/moment/src/lib/duration/duration.js diff --git a/client/javascript/externs/moment/src/lib/duration/get.js b/src/vitis/client/javascript/externs/moment/src/lib/duration/get.js similarity index 100% rename from client/javascript/externs/moment/src/lib/duration/get.js rename to src/vitis/client/javascript/externs/moment/src/lib/duration/get.js diff --git a/client/javascript/externs/moment/src/lib/duration/humanize.js b/src/vitis/client/javascript/externs/moment/src/lib/duration/humanize.js similarity index 100% rename from client/javascript/externs/moment/src/lib/duration/humanize.js rename to src/vitis/client/javascript/externs/moment/src/lib/duration/humanize.js diff --git a/client/javascript/externs/moment/src/lib/duration/iso-string.js b/src/vitis/client/javascript/externs/moment/src/lib/duration/iso-string.js similarity index 100% rename from client/javascript/externs/moment/src/lib/duration/iso-string.js rename to src/vitis/client/javascript/externs/moment/src/lib/duration/iso-string.js diff --git a/client/javascript/externs/moment/src/lib/duration/prototype.js b/src/vitis/client/javascript/externs/moment/src/lib/duration/prototype.js similarity index 100% rename from client/javascript/externs/moment/src/lib/duration/prototype.js rename to src/vitis/client/javascript/externs/moment/src/lib/duration/prototype.js diff --git a/client/javascript/externs/moment/src/lib/format/format.js b/src/vitis/client/javascript/externs/moment/src/lib/format/format.js similarity index 100% rename from client/javascript/externs/moment/src/lib/format/format.js rename to src/vitis/client/javascript/externs/moment/src/lib/format/format.js diff --git a/client/javascript/externs/moment/src/lib/locale/calendar.js b/src/vitis/client/javascript/externs/moment/src/lib/locale/calendar.js similarity index 100% rename from client/javascript/externs/moment/src/lib/locale/calendar.js rename to src/vitis/client/javascript/externs/moment/src/lib/locale/calendar.js diff --git a/client/javascript/externs/moment/src/lib/locale/constructor.js b/src/vitis/client/javascript/externs/moment/src/lib/locale/constructor.js similarity index 100% rename from client/javascript/externs/moment/src/lib/locale/constructor.js rename to src/vitis/client/javascript/externs/moment/src/lib/locale/constructor.js diff --git a/client/javascript/externs/moment/src/lib/locale/en.js b/src/vitis/client/javascript/externs/moment/src/lib/locale/en.js similarity index 100% rename from client/javascript/externs/moment/src/lib/locale/en.js rename to src/vitis/client/javascript/externs/moment/src/lib/locale/en.js diff --git a/client/javascript/externs/moment/src/lib/locale/formats.js b/src/vitis/client/javascript/externs/moment/src/lib/locale/formats.js similarity index 100% rename from client/javascript/externs/moment/src/lib/locale/formats.js rename to src/vitis/client/javascript/externs/moment/src/lib/locale/formats.js diff --git a/client/javascript/externs/moment/src/lib/locale/invalid.js b/src/vitis/client/javascript/externs/moment/src/lib/locale/invalid.js similarity index 100% rename from client/javascript/externs/moment/src/lib/locale/invalid.js rename to src/vitis/client/javascript/externs/moment/src/lib/locale/invalid.js diff --git a/client/javascript/externs/moment/src/lib/locale/lists.js b/src/vitis/client/javascript/externs/moment/src/lib/locale/lists.js similarity index 100% rename from client/javascript/externs/moment/src/lib/locale/lists.js rename to src/vitis/client/javascript/externs/moment/src/lib/locale/lists.js diff --git a/client/javascript/externs/moment/src/lib/locale/locale.js b/src/vitis/client/javascript/externs/moment/src/lib/locale/locale.js similarity index 100% rename from client/javascript/externs/moment/src/lib/locale/locale.js rename to src/vitis/client/javascript/externs/moment/src/lib/locale/locale.js diff --git a/client/javascript/externs/moment/src/lib/locale/locales.js b/src/vitis/client/javascript/externs/moment/src/lib/locale/locales.js similarity index 100% rename from client/javascript/externs/moment/src/lib/locale/locales.js rename to src/vitis/client/javascript/externs/moment/src/lib/locale/locales.js diff --git a/client/javascript/externs/moment/src/lib/locale/ordinal.js b/src/vitis/client/javascript/externs/moment/src/lib/locale/ordinal.js similarity index 100% rename from client/javascript/externs/moment/src/lib/locale/ordinal.js rename to src/vitis/client/javascript/externs/moment/src/lib/locale/ordinal.js diff --git a/client/javascript/externs/moment/src/lib/locale/pre-post-format.js b/src/vitis/client/javascript/externs/moment/src/lib/locale/pre-post-format.js similarity index 100% rename from client/javascript/externs/moment/src/lib/locale/pre-post-format.js rename to src/vitis/client/javascript/externs/moment/src/lib/locale/pre-post-format.js diff --git a/client/javascript/externs/moment/src/lib/locale/prototype.js b/src/vitis/client/javascript/externs/moment/src/lib/locale/prototype.js similarity index 100% rename from client/javascript/externs/moment/src/lib/locale/prototype.js rename to src/vitis/client/javascript/externs/moment/src/lib/locale/prototype.js diff --git a/client/javascript/externs/moment/src/lib/locale/relative.js b/src/vitis/client/javascript/externs/moment/src/lib/locale/relative.js similarity index 100% rename from client/javascript/externs/moment/src/lib/locale/relative.js rename to src/vitis/client/javascript/externs/moment/src/lib/locale/relative.js diff --git a/client/javascript/externs/moment/src/lib/locale/set.js b/src/vitis/client/javascript/externs/moment/src/lib/locale/set.js similarity index 100% rename from client/javascript/externs/moment/src/lib/locale/set.js rename to src/vitis/client/javascript/externs/moment/src/lib/locale/set.js diff --git a/client/javascript/externs/moment/src/lib/moment/add-subtract.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/add-subtract.js similarity index 100% rename from client/javascript/externs/moment/src/lib/moment/add-subtract.js rename to src/vitis/client/javascript/externs/moment/src/lib/moment/add-subtract.js diff --git a/client/javascript/externs/moment/src/lib/moment/calendar.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/calendar.js similarity index 100% rename from client/javascript/externs/moment/src/lib/moment/calendar.js rename to src/vitis/client/javascript/externs/moment/src/lib/moment/calendar.js diff --git a/client/javascript/externs/moment/src/lib/moment/clone.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/clone.js similarity index 100% rename from client/javascript/externs/moment/src/lib/moment/clone.js rename to src/vitis/client/javascript/externs/moment/src/lib/moment/clone.js diff --git a/client/javascript/externs/moment/src/lib/moment/compare.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/compare.js similarity index 100% rename from client/javascript/externs/moment/src/lib/moment/compare.js rename to src/vitis/client/javascript/externs/moment/src/lib/moment/compare.js diff --git a/client/javascript/externs/moment/src/lib/moment/constructor.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/constructor.js similarity index 100% rename from client/javascript/externs/moment/src/lib/moment/constructor.js rename to src/vitis/client/javascript/externs/moment/src/lib/moment/constructor.js diff --git a/client/javascript/externs/moment/src/lib/moment/creation-data.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/creation-data.js similarity index 100% rename from client/javascript/externs/moment/src/lib/moment/creation-data.js rename to src/vitis/client/javascript/externs/moment/src/lib/moment/creation-data.js diff --git a/client/javascript/externs/moment/src/lib/moment/diff.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/diff.js similarity index 100% rename from client/javascript/externs/moment/src/lib/moment/diff.js rename to src/vitis/client/javascript/externs/moment/src/lib/moment/diff.js diff --git a/client/javascript/externs/moment/src/lib/moment/format.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/format.js similarity index 100% rename from client/javascript/externs/moment/src/lib/moment/format.js rename to src/vitis/client/javascript/externs/moment/src/lib/moment/format.js diff --git a/client/javascript/externs/moment/src/lib/moment/from.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/from.js similarity index 100% rename from client/javascript/externs/moment/src/lib/moment/from.js rename to src/vitis/client/javascript/externs/moment/src/lib/moment/from.js diff --git a/client/javascript/externs/moment/src/lib/moment/get-set.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/get-set.js similarity index 100% rename from client/javascript/externs/moment/src/lib/moment/get-set.js rename to src/vitis/client/javascript/externs/moment/src/lib/moment/get-set.js diff --git a/client/javascript/externs/moment/src/lib/moment/locale.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/locale.js similarity index 100% rename from client/javascript/externs/moment/src/lib/moment/locale.js rename to src/vitis/client/javascript/externs/moment/src/lib/moment/locale.js diff --git a/client/javascript/externs/moment/src/lib/moment/min-max.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/min-max.js similarity index 100% rename from client/javascript/externs/moment/src/lib/moment/min-max.js rename to src/vitis/client/javascript/externs/moment/src/lib/moment/min-max.js diff --git a/client/javascript/externs/moment/src/lib/moment/moment.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/moment.js similarity index 100% rename from client/javascript/externs/moment/src/lib/moment/moment.js rename to src/vitis/client/javascript/externs/moment/src/lib/moment/moment.js diff --git a/client/javascript/externs/moment/src/lib/moment/now.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/now.js similarity index 100% rename from client/javascript/externs/moment/src/lib/moment/now.js rename to src/vitis/client/javascript/externs/moment/src/lib/moment/now.js diff --git a/client/javascript/externs/moment/src/lib/moment/prototype.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/prototype.js similarity index 100% rename from client/javascript/externs/moment/src/lib/moment/prototype.js rename to src/vitis/client/javascript/externs/moment/src/lib/moment/prototype.js diff --git a/client/javascript/externs/moment/src/lib/moment/start-end-of.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/start-end-of.js similarity index 100% rename from client/javascript/externs/moment/src/lib/moment/start-end-of.js rename to src/vitis/client/javascript/externs/moment/src/lib/moment/start-end-of.js diff --git a/client/javascript/externs/moment/src/lib/moment/to-type.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/to-type.js similarity index 100% rename from client/javascript/externs/moment/src/lib/moment/to-type.js rename to src/vitis/client/javascript/externs/moment/src/lib/moment/to-type.js diff --git a/client/javascript/externs/moment/src/lib/moment/to.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/to.js similarity index 100% rename from client/javascript/externs/moment/src/lib/moment/to.js rename to src/vitis/client/javascript/externs/moment/src/lib/moment/to.js diff --git a/client/javascript/externs/moment/src/lib/moment/valid.js b/src/vitis/client/javascript/externs/moment/src/lib/moment/valid.js similarity index 100% rename from client/javascript/externs/moment/src/lib/moment/valid.js rename to src/vitis/client/javascript/externs/moment/src/lib/moment/valid.js diff --git a/client/javascript/externs/moment/src/lib/parse/regex.js b/src/vitis/client/javascript/externs/moment/src/lib/parse/regex.js similarity index 100% rename from client/javascript/externs/moment/src/lib/parse/regex.js rename to src/vitis/client/javascript/externs/moment/src/lib/parse/regex.js diff --git a/client/javascript/externs/moment/src/lib/parse/token.js b/src/vitis/client/javascript/externs/moment/src/lib/parse/token.js similarity index 100% rename from client/javascript/externs/moment/src/lib/parse/token.js rename to src/vitis/client/javascript/externs/moment/src/lib/parse/token.js diff --git a/client/javascript/externs/moment/src/lib/units/aliases.js b/src/vitis/client/javascript/externs/moment/src/lib/units/aliases.js similarity index 100% rename from client/javascript/externs/moment/src/lib/units/aliases.js rename to src/vitis/client/javascript/externs/moment/src/lib/units/aliases.js diff --git a/client/javascript/externs/moment/src/lib/units/constants.js b/src/vitis/client/javascript/externs/moment/src/lib/units/constants.js similarity index 100% rename from client/javascript/externs/moment/src/lib/units/constants.js rename to src/vitis/client/javascript/externs/moment/src/lib/units/constants.js diff --git a/client/javascript/externs/moment/src/lib/units/day-of-month.js b/src/vitis/client/javascript/externs/moment/src/lib/units/day-of-month.js similarity index 100% rename from client/javascript/externs/moment/src/lib/units/day-of-month.js rename to src/vitis/client/javascript/externs/moment/src/lib/units/day-of-month.js diff --git a/client/javascript/externs/moment/src/lib/units/day-of-week.js b/src/vitis/client/javascript/externs/moment/src/lib/units/day-of-week.js similarity index 100% rename from client/javascript/externs/moment/src/lib/units/day-of-week.js rename to src/vitis/client/javascript/externs/moment/src/lib/units/day-of-week.js diff --git a/client/javascript/externs/moment/src/lib/units/day-of-year.js b/src/vitis/client/javascript/externs/moment/src/lib/units/day-of-year.js similarity index 100% rename from client/javascript/externs/moment/src/lib/units/day-of-year.js rename to src/vitis/client/javascript/externs/moment/src/lib/units/day-of-year.js diff --git a/client/javascript/externs/moment/src/lib/units/hour.js b/src/vitis/client/javascript/externs/moment/src/lib/units/hour.js similarity index 100% rename from client/javascript/externs/moment/src/lib/units/hour.js rename to src/vitis/client/javascript/externs/moment/src/lib/units/hour.js diff --git a/client/javascript/externs/moment/src/lib/units/millisecond.js b/src/vitis/client/javascript/externs/moment/src/lib/units/millisecond.js similarity index 100% rename from client/javascript/externs/moment/src/lib/units/millisecond.js rename to src/vitis/client/javascript/externs/moment/src/lib/units/millisecond.js diff --git a/client/javascript/externs/moment/src/lib/units/minute.js b/src/vitis/client/javascript/externs/moment/src/lib/units/minute.js similarity index 100% rename from client/javascript/externs/moment/src/lib/units/minute.js rename to src/vitis/client/javascript/externs/moment/src/lib/units/minute.js diff --git a/client/javascript/externs/moment/src/lib/units/month.js b/src/vitis/client/javascript/externs/moment/src/lib/units/month.js similarity index 100% rename from client/javascript/externs/moment/src/lib/units/month.js rename to src/vitis/client/javascript/externs/moment/src/lib/units/month.js diff --git a/client/javascript/externs/moment/src/lib/units/offset.js b/src/vitis/client/javascript/externs/moment/src/lib/units/offset.js similarity index 100% rename from client/javascript/externs/moment/src/lib/units/offset.js rename to src/vitis/client/javascript/externs/moment/src/lib/units/offset.js diff --git a/client/javascript/externs/moment/src/lib/units/quarter.js b/src/vitis/client/javascript/externs/moment/src/lib/units/quarter.js similarity index 100% rename from client/javascript/externs/moment/src/lib/units/quarter.js rename to src/vitis/client/javascript/externs/moment/src/lib/units/quarter.js diff --git a/client/javascript/externs/moment/src/lib/units/second.js b/src/vitis/client/javascript/externs/moment/src/lib/units/second.js similarity index 100% rename from client/javascript/externs/moment/src/lib/units/second.js rename to src/vitis/client/javascript/externs/moment/src/lib/units/second.js diff --git a/client/javascript/externs/moment/src/lib/units/timestamp.js b/src/vitis/client/javascript/externs/moment/src/lib/units/timestamp.js similarity index 100% rename from client/javascript/externs/moment/src/lib/units/timestamp.js rename to src/vitis/client/javascript/externs/moment/src/lib/units/timestamp.js diff --git a/client/javascript/externs/moment/src/lib/units/timezone.js b/src/vitis/client/javascript/externs/moment/src/lib/units/timezone.js similarity index 100% rename from client/javascript/externs/moment/src/lib/units/timezone.js rename to src/vitis/client/javascript/externs/moment/src/lib/units/timezone.js diff --git a/client/javascript/externs/moment/src/lib/units/units.js b/src/vitis/client/javascript/externs/moment/src/lib/units/units.js similarity index 100% rename from client/javascript/externs/moment/src/lib/units/units.js rename to src/vitis/client/javascript/externs/moment/src/lib/units/units.js diff --git a/client/javascript/externs/moment/src/lib/units/week-calendar-utils.js b/src/vitis/client/javascript/externs/moment/src/lib/units/week-calendar-utils.js similarity index 100% rename from client/javascript/externs/moment/src/lib/units/week-calendar-utils.js rename to src/vitis/client/javascript/externs/moment/src/lib/units/week-calendar-utils.js diff --git a/client/javascript/externs/moment/src/lib/units/week-year.js b/src/vitis/client/javascript/externs/moment/src/lib/units/week-year.js similarity index 100% rename from client/javascript/externs/moment/src/lib/units/week-year.js rename to src/vitis/client/javascript/externs/moment/src/lib/units/week-year.js diff --git a/client/javascript/externs/moment/src/lib/units/week.js b/src/vitis/client/javascript/externs/moment/src/lib/units/week.js similarity index 100% rename from client/javascript/externs/moment/src/lib/units/week.js rename to src/vitis/client/javascript/externs/moment/src/lib/units/week.js diff --git a/client/javascript/externs/moment/src/lib/units/year.js b/src/vitis/client/javascript/externs/moment/src/lib/units/year.js similarity index 100% rename from client/javascript/externs/moment/src/lib/units/year.js rename to src/vitis/client/javascript/externs/moment/src/lib/units/year.js diff --git a/client/javascript/externs/moment/src/lib/utils/abs-ceil.js b/src/vitis/client/javascript/externs/moment/src/lib/utils/abs-ceil.js similarity index 100% rename from client/javascript/externs/moment/src/lib/utils/abs-ceil.js rename to src/vitis/client/javascript/externs/moment/src/lib/utils/abs-ceil.js diff --git a/client/javascript/externs/moment/src/lib/utils/abs-floor.js b/src/vitis/client/javascript/externs/moment/src/lib/utils/abs-floor.js similarity index 100% rename from client/javascript/externs/moment/src/lib/utils/abs-floor.js rename to src/vitis/client/javascript/externs/moment/src/lib/utils/abs-floor.js diff --git a/client/javascript/externs/moment/src/lib/utils/compare-arrays.js b/src/vitis/client/javascript/externs/moment/src/lib/utils/compare-arrays.js similarity index 100% rename from client/javascript/externs/moment/src/lib/utils/compare-arrays.js rename to src/vitis/client/javascript/externs/moment/src/lib/utils/compare-arrays.js diff --git a/client/javascript/externs/moment/src/lib/utils/defaults.js b/src/vitis/client/javascript/externs/moment/src/lib/utils/defaults.js similarity index 100% rename from client/javascript/externs/moment/src/lib/utils/defaults.js rename to src/vitis/client/javascript/externs/moment/src/lib/utils/defaults.js diff --git a/client/javascript/externs/moment/src/lib/utils/deprecate.js b/src/vitis/client/javascript/externs/moment/src/lib/utils/deprecate.js similarity index 100% rename from client/javascript/externs/moment/src/lib/utils/deprecate.js rename to src/vitis/client/javascript/externs/moment/src/lib/utils/deprecate.js diff --git a/client/javascript/externs/moment/src/lib/utils/extend.js b/src/vitis/client/javascript/externs/moment/src/lib/utils/extend.js similarity index 100% rename from client/javascript/externs/moment/src/lib/utils/extend.js rename to src/vitis/client/javascript/externs/moment/src/lib/utils/extend.js diff --git a/client/javascript/externs/moment/src/lib/utils/has-own-prop.js b/src/vitis/client/javascript/externs/moment/src/lib/utils/has-own-prop.js similarity index 100% rename from client/javascript/externs/moment/src/lib/utils/has-own-prop.js rename to src/vitis/client/javascript/externs/moment/src/lib/utils/has-own-prop.js diff --git a/client/javascript/externs/moment/src/lib/utils/hooks.js b/src/vitis/client/javascript/externs/moment/src/lib/utils/hooks.js similarity index 100% rename from client/javascript/externs/moment/src/lib/utils/hooks.js rename to src/vitis/client/javascript/externs/moment/src/lib/utils/hooks.js diff --git a/client/javascript/externs/moment/src/lib/utils/is-array.js b/src/vitis/client/javascript/externs/moment/src/lib/utils/is-array.js similarity index 100% rename from client/javascript/externs/moment/src/lib/utils/is-array.js rename to src/vitis/client/javascript/externs/moment/src/lib/utils/is-array.js diff --git a/client/javascript/externs/moment/src/lib/utils/is-date.js b/src/vitis/client/javascript/externs/moment/src/lib/utils/is-date.js similarity index 100% rename from client/javascript/externs/moment/src/lib/utils/is-date.js rename to src/vitis/client/javascript/externs/moment/src/lib/utils/is-date.js diff --git a/client/javascript/externs/moment/src/lib/utils/is-function.js b/src/vitis/client/javascript/externs/moment/src/lib/utils/is-function.js similarity index 100% rename from client/javascript/externs/moment/src/lib/utils/is-function.js rename to src/vitis/client/javascript/externs/moment/src/lib/utils/is-function.js diff --git a/client/javascript/externs/moment/src/lib/utils/is-undefined.js b/src/vitis/client/javascript/externs/moment/src/lib/utils/is-undefined.js similarity index 100% rename from client/javascript/externs/moment/src/lib/utils/is-undefined.js rename to src/vitis/client/javascript/externs/moment/src/lib/utils/is-undefined.js diff --git a/client/javascript/externs/moment/src/lib/utils/map.js b/src/vitis/client/javascript/externs/moment/src/lib/utils/map.js similarity index 100% rename from client/javascript/externs/moment/src/lib/utils/map.js rename to src/vitis/client/javascript/externs/moment/src/lib/utils/map.js diff --git a/client/javascript/externs/moment/src/lib/utils/to-int.js b/src/vitis/client/javascript/externs/moment/src/lib/utils/to-int.js similarity index 100% rename from client/javascript/externs/moment/src/lib/utils/to-int.js rename to src/vitis/client/javascript/externs/moment/src/lib/utils/to-int.js diff --git a/client/javascript/externs/moment/src/lib/utils/zero-fill.js b/src/vitis/client/javascript/externs/moment/src/lib/utils/zero-fill.js similarity index 100% rename from client/javascript/externs/moment/src/lib/utils/zero-fill.js rename to src/vitis/client/javascript/externs/moment/src/lib/utils/zero-fill.js diff --git a/client/javascript/externs/moment/src/locale/af.js b/src/vitis/client/javascript/externs/moment/src/locale/af.js similarity index 100% rename from client/javascript/externs/moment/src/locale/af.js rename to src/vitis/client/javascript/externs/moment/src/locale/af.js diff --git a/client/javascript/externs/moment/src/locale/ar-ma.js b/src/vitis/client/javascript/externs/moment/src/locale/ar-ma.js similarity index 100% rename from client/javascript/externs/moment/src/locale/ar-ma.js rename to src/vitis/client/javascript/externs/moment/src/locale/ar-ma.js diff --git a/client/javascript/externs/moment/src/locale/ar-sa.js b/src/vitis/client/javascript/externs/moment/src/locale/ar-sa.js similarity index 100% rename from client/javascript/externs/moment/src/locale/ar-sa.js rename to src/vitis/client/javascript/externs/moment/src/locale/ar-sa.js diff --git a/client/javascript/externs/moment/src/locale/ar-tn.js b/src/vitis/client/javascript/externs/moment/src/locale/ar-tn.js similarity index 100% rename from client/javascript/externs/moment/src/locale/ar-tn.js rename to src/vitis/client/javascript/externs/moment/src/locale/ar-tn.js diff --git a/client/javascript/externs/moment/src/locale/ar.js b/src/vitis/client/javascript/externs/moment/src/locale/ar.js similarity index 100% rename from client/javascript/externs/moment/src/locale/ar.js rename to src/vitis/client/javascript/externs/moment/src/locale/ar.js diff --git a/client/javascript/externs/moment/src/locale/az.js b/src/vitis/client/javascript/externs/moment/src/locale/az.js similarity index 100% rename from client/javascript/externs/moment/src/locale/az.js rename to src/vitis/client/javascript/externs/moment/src/locale/az.js diff --git a/client/javascript/externs/moment/src/locale/be.js b/src/vitis/client/javascript/externs/moment/src/locale/be.js similarity index 100% rename from client/javascript/externs/moment/src/locale/be.js rename to src/vitis/client/javascript/externs/moment/src/locale/be.js diff --git a/client/javascript/externs/moment/src/locale/bg.js b/src/vitis/client/javascript/externs/moment/src/locale/bg.js similarity index 100% rename from client/javascript/externs/moment/src/locale/bg.js rename to src/vitis/client/javascript/externs/moment/src/locale/bg.js diff --git a/client/javascript/externs/moment/src/locale/bn.js b/src/vitis/client/javascript/externs/moment/src/locale/bn.js similarity index 100% rename from client/javascript/externs/moment/src/locale/bn.js rename to src/vitis/client/javascript/externs/moment/src/locale/bn.js diff --git a/client/javascript/externs/moment/src/locale/bo.js b/src/vitis/client/javascript/externs/moment/src/locale/bo.js similarity index 100% rename from client/javascript/externs/moment/src/locale/bo.js rename to src/vitis/client/javascript/externs/moment/src/locale/bo.js diff --git a/client/javascript/externs/moment/src/locale/br.js b/src/vitis/client/javascript/externs/moment/src/locale/br.js similarity index 100% rename from client/javascript/externs/moment/src/locale/br.js rename to src/vitis/client/javascript/externs/moment/src/locale/br.js diff --git a/client/javascript/externs/moment/src/locale/bs.js b/src/vitis/client/javascript/externs/moment/src/locale/bs.js similarity index 100% rename from client/javascript/externs/moment/src/locale/bs.js rename to src/vitis/client/javascript/externs/moment/src/locale/bs.js diff --git a/client/javascript/externs/moment/src/locale/ca.js b/src/vitis/client/javascript/externs/moment/src/locale/ca.js similarity index 100% rename from client/javascript/externs/moment/src/locale/ca.js rename to src/vitis/client/javascript/externs/moment/src/locale/ca.js diff --git a/client/javascript/externs/moment/src/locale/cs.js b/src/vitis/client/javascript/externs/moment/src/locale/cs.js similarity index 100% rename from client/javascript/externs/moment/src/locale/cs.js rename to src/vitis/client/javascript/externs/moment/src/locale/cs.js diff --git a/client/javascript/externs/moment/src/locale/cv.js b/src/vitis/client/javascript/externs/moment/src/locale/cv.js similarity index 100% rename from client/javascript/externs/moment/src/locale/cv.js rename to src/vitis/client/javascript/externs/moment/src/locale/cv.js diff --git a/client/javascript/externs/moment/src/locale/cy.js b/src/vitis/client/javascript/externs/moment/src/locale/cy.js similarity index 100% rename from client/javascript/externs/moment/src/locale/cy.js rename to src/vitis/client/javascript/externs/moment/src/locale/cy.js diff --git a/client/javascript/externs/moment/src/locale/da.js b/src/vitis/client/javascript/externs/moment/src/locale/da.js similarity index 100% rename from client/javascript/externs/moment/src/locale/da.js rename to src/vitis/client/javascript/externs/moment/src/locale/da.js diff --git a/client/javascript/externs/moment/src/locale/de-at.js b/src/vitis/client/javascript/externs/moment/src/locale/de-at.js similarity index 100% rename from client/javascript/externs/moment/src/locale/de-at.js rename to src/vitis/client/javascript/externs/moment/src/locale/de-at.js diff --git a/client/javascript/externs/moment/src/locale/de.js b/src/vitis/client/javascript/externs/moment/src/locale/de.js similarity index 100% rename from client/javascript/externs/moment/src/locale/de.js rename to src/vitis/client/javascript/externs/moment/src/locale/de.js diff --git a/client/javascript/externs/moment/src/locale/dv.js b/src/vitis/client/javascript/externs/moment/src/locale/dv.js similarity index 100% rename from client/javascript/externs/moment/src/locale/dv.js rename to src/vitis/client/javascript/externs/moment/src/locale/dv.js diff --git a/client/javascript/externs/moment/src/locale/el.js b/src/vitis/client/javascript/externs/moment/src/locale/el.js similarity index 100% rename from client/javascript/externs/moment/src/locale/el.js rename to src/vitis/client/javascript/externs/moment/src/locale/el.js diff --git a/client/javascript/externs/moment/src/locale/en-au.js b/src/vitis/client/javascript/externs/moment/src/locale/en-au.js similarity index 100% rename from client/javascript/externs/moment/src/locale/en-au.js rename to src/vitis/client/javascript/externs/moment/src/locale/en-au.js diff --git a/client/javascript/externs/moment/src/locale/en-ca.js b/src/vitis/client/javascript/externs/moment/src/locale/en-ca.js similarity index 100% rename from client/javascript/externs/moment/src/locale/en-ca.js rename to src/vitis/client/javascript/externs/moment/src/locale/en-ca.js diff --git a/client/javascript/externs/moment/src/locale/en-gb.js b/src/vitis/client/javascript/externs/moment/src/locale/en-gb.js similarity index 100% rename from client/javascript/externs/moment/src/locale/en-gb.js rename to src/vitis/client/javascript/externs/moment/src/locale/en-gb.js diff --git a/client/javascript/externs/moment/src/locale/en-ie.js b/src/vitis/client/javascript/externs/moment/src/locale/en-ie.js similarity index 100% rename from client/javascript/externs/moment/src/locale/en-ie.js rename to src/vitis/client/javascript/externs/moment/src/locale/en-ie.js diff --git a/client/javascript/externs/moment/src/locale/en-nz.js b/src/vitis/client/javascript/externs/moment/src/locale/en-nz.js similarity index 100% rename from client/javascript/externs/moment/src/locale/en-nz.js rename to src/vitis/client/javascript/externs/moment/src/locale/en-nz.js diff --git a/client/javascript/externs/moment/src/locale/eo.js b/src/vitis/client/javascript/externs/moment/src/locale/eo.js similarity index 100% rename from client/javascript/externs/moment/src/locale/eo.js rename to src/vitis/client/javascript/externs/moment/src/locale/eo.js diff --git a/client/javascript/externs/moment/src/locale/es.js b/src/vitis/client/javascript/externs/moment/src/locale/es.js similarity index 100% rename from client/javascript/externs/moment/src/locale/es.js rename to src/vitis/client/javascript/externs/moment/src/locale/es.js diff --git a/client/javascript/externs/moment/src/locale/et.js b/src/vitis/client/javascript/externs/moment/src/locale/et.js similarity index 100% rename from client/javascript/externs/moment/src/locale/et.js rename to src/vitis/client/javascript/externs/moment/src/locale/et.js diff --git a/client/javascript/externs/moment/src/locale/eu.js b/src/vitis/client/javascript/externs/moment/src/locale/eu.js similarity index 100% rename from client/javascript/externs/moment/src/locale/eu.js rename to src/vitis/client/javascript/externs/moment/src/locale/eu.js diff --git a/client/javascript/externs/moment/src/locale/fa.js b/src/vitis/client/javascript/externs/moment/src/locale/fa.js similarity index 100% rename from client/javascript/externs/moment/src/locale/fa.js rename to src/vitis/client/javascript/externs/moment/src/locale/fa.js diff --git a/client/javascript/externs/moment/src/locale/fi.js b/src/vitis/client/javascript/externs/moment/src/locale/fi.js similarity index 100% rename from client/javascript/externs/moment/src/locale/fi.js rename to src/vitis/client/javascript/externs/moment/src/locale/fi.js diff --git a/client/javascript/externs/moment/src/locale/fo.js b/src/vitis/client/javascript/externs/moment/src/locale/fo.js similarity index 100% rename from client/javascript/externs/moment/src/locale/fo.js rename to src/vitis/client/javascript/externs/moment/src/locale/fo.js diff --git a/client/javascript/externs/moment/src/locale/fr-ca.js b/src/vitis/client/javascript/externs/moment/src/locale/fr-ca.js similarity index 100% rename from client/javascript/externs/moment/src/locale/fr-ca.js rename to src/vitis/client/javascript/externs/moment/src/locale/fr-ca.js diff --git a/client/javascript/externs/moment/src/locale/fr-ch.js b/src/vitis/client/javascript/externs/moment/src/locale/fr-ch.js similarity index 100% rename from client/javascript/externs/moment/src/locale/fr-ch.js rename to src/vitis/client/javascript/externs/moment/src/locale/fr-ch.js diff --git a/client/javascript/externs/moment/src/locale/fr.js b/src/vitis/client/javascript/externs/moment/src/locale/fr.js similarity index 100% rename from client/javascript/externs/moment/src/locale/fr.js rename to src/vitis/client/javascript/externs/moment/src/locale/fr.js diff --git a/client/javascript/externs/moment/src/locale/fy.js b/src/vitis/client/javascript/externs/moment/src/locale/fy.js similarity index 100% rename from client/javascript/externs/moment/src/locale/fy.js rename to src/vitis/client/javascript/externs/moment/src/locale/fy.js diff --git a/client/javascript/externs/moment/src/locale/gd.js b/src/vitis/client/javascript/externs/moment/src/locale/gd.js similarity index 100% rename from client/javascript/externs/moment/src/locale/gd.js rename to src/vitis/client/javascript/externs/moment/src/locale/gd.js diff --git a/client/javascript/externs/moment/src/locale/gl.js b/src/vitis/client/javascript/externs/moment/src/locale/gl.js similarity index 100% rename from client/javascript/externs/moment/src/locale/gl.js rename to src/vitis/client/javascript/externs/moment/src/locale/gl.js diff --git a/client/javascript/externs/moment/src/locale/he.js b/src/vitis/client/javascript/externs/moment/src/locale/he.js similarity index 100% rename from client/javascript/externs/moment/src/locale/he.js rename to src/vitis/client/javascript/externs/moment/src/locale/he.js diff --git a/client/javascript/externs/moment/src/locale/hi.js b/src/vitis/client/javascript/externs/moment/src/locale/hi.js similarity index 100% rename from client/javascript/externs/moment/src/locale/hi.js rename to src/vitis/client/javascript/externs/moment/src/locale/hi.js diff --git a/client/javascript/externs/moment/src/locale/hr.js b/src/vitis/client/javascript/externs/moment/src/locale/hr.js similarity index 100% rename from client/javascript/externs/moment/src/locale/hr.js rename to src/vitis/client/javascript/externs/moment/src/locale/hr.js diff --git a/client/javascript/externs/moment/src/locale/hu.js b/src/vitis/client/javascript/externs/moment/src/locale/hu.js similarity index 100% rename from client/javascript/externs/moment/src/locale/hu.js rename to src/vitis/client/javascript/externs/moment/src/locale/hu.js diff --git a/client/javascript/externs/moment/src/locale/hy-am.js b/src/vitis/client/javascript/externs/moment/src/locale/hy-am.js similarity index 100% rename from client/javascript/externs/moment/src/locale/hy-am.js rename to src/vitis/client/javascript/externs/moment/src/locale/hy-am.js diff --git a/client/javascript/externs/moment/src/locale/id.js b/src/vitis/client/javascript/externs/moment/src/locale/id.js similarity index 100% rename from client/javascript/externs/moment/src/locale/id.js rename to src/vitis/client/javascript/externs/moment/src/locale/id.js diff --git a/client/javascript/externs/moment/src/locale/is.js b/src/vitis/client/javascript/externs/moment/src/locale/is.js similarity index 100% rename from client/javascript/externs/moment/src/locale/is.js rename to src/vitis/client/javascript/externs/moment/src/locale/is.js diff --git a/client/javascript/externs/moment/src/locale/it.js b/src/vitis/client/javascript/externs/moment/src/locale/it.js similarity index 100% rename from client/javascript/externs/moment/src/locale/it.js rename to src/vitis/client/javascript/externs/moment/src/locale/it.js diff --git a/client/javascript/externs/moment/src/locale/ja.js b/src/vitis/client/javascript/externs/moment/src/locale/ja.js similarity index 100% rename from client/javascript/externs/moment/src/locale/ja.js rename to src/vitis/client/javascript/externs/moment/src/locale/ja.js diff --git a/client/javascript/externs/moment/src/locale/jv.js b/src/vitis/client/javascript/externs/moment/src/locale/jv.js similarity index 100% rename from client/javascript/externs/moment/src/locale/jv.js rename to src/vitis/client/javascript/externs/moment/src/locale/jv.js diff --git a/client/javascript/externs/moment/src/locale/ka.js b/src/vitis/client/javascript/externs/moment/src/locale/ka.js similarity index 100% rename from client/javascript/externs/moment/src/locale/ka.js rename to src/vitis/client/javascript/externs/moment/src/locale/ka.js diff --git a/client/javascript/externs/moment/src/locale/kk.js b/src/vitis/client/javascript/externs/moment/src/locale/kk.js similarity index 100% rename from client/javascript/externs/moment/src/locale/kk.js rename to src/vitis/client/javascript/externs/moment/src/locale/kk.js diff --git a/client/javascript/externs/moment/src/locale/km.js b/src/vitis/client/javascript/externs/moment/src/locale/km.js similarity index 100% rename from client/javascript/externs/moment/src/locale/km.js rename to src/vitis/client/javascript/externs/moment/src/locale/km.js diff --git a/client/javascript/externs/moment/src/locale/ko.js b/src/vitis/client/javascript/externs/moment/src/locale/ko.js similarity index 100% rename from client/javascript/externs/moment/src/locale/ko.js rename to src/vitis/client/javascript/externs/moment/src/locale/ko.js diff --git a/client/javascript/externs/moment/src/locale/lb.js b/src/vitis/client/javascript/externs/moment/src/locale/lb.js similarity index 100% rename from client/javascript/externs/moment/src/locale/lb.js rename to src/vitis/client/javascript/externs/moment/src/locale/lb.js diff --git a/client/javascript/externs/moment/src/locale/lo.js b/src/vitis/client/javascript/externs/moment/src/locale/lo.js similarity index 100% rename from client/javascript/externs/moment/src/locale/lo.js rename to src/vitis/client/javascript/externs/moment/src/locale/lo.js diff --git a/client/javascript/externs/moment/src/locale/lt.js b/src/vitis/client/javascript/externs/moment/src/locale/lt.js similarity index 100% rename from client/javascript/externs/moment/src/locale/lt.js rename to src/vitis/client/javascript/externs/moment/src/locale/lt.js diff --git a/client/javascript/externs/moment/src/locale/lv.js b/src/vitis/client/javascript/externs/moment/src/locale/lv.js similarity index 100% rename from client/javascript/externs/moment/src/locale/lv.js rename to src/vitis/client/javascript/externs/moment/src/locale/lv.js diff --git a/client/javascript/externs/moment/src/locale/me.js b/src/vitis/client/javascript/externs/moment/src/locale/me.js similarity index 100% rename from client/javascript/externs/moment/src/locale/me.js rename to src/vitis/client/javascript/externs/moment/src/locale/me.js diff --git a/client/javascript/externs/moment/src/locale/mk.js b/src/vitis/client/javascript/externs/moment/src/locale/mk.js similarity index 100% rename from client/javascript/externs/moment/src/locale/mk.js rename to src/vitis/client/javascript/externs/moment/src/locale/mk.js diff --git a/client/javascript/externs/moment/src/locale/ml.js b/src/vitis/client/javascript/externs/moment/src/locale/ml.js similarity index 100% rename from client/javascript/externs/moment/src/locale/ml.js rename to src/vitis/client/javascript/externs/moment/src/locale/ml.js diff --git a/client/javascript/externs/moment/src/locale/mr.js b/src/vitis/client/javascript/externs/moment/src/locale/mr.js similarity index 100% rename from client/javascript/externs/moment/src/locale/mr.js rename to src/vitis/client/javascript/externs/moment/src/locale/mr.js diff --git a/client/javascript/externs/moment/src/locale/ms-my.js b/src/vitis/client/javascript/externs/moment/src/locale/ms-my.js similarity index 100% rename from client/javascript/externs/moment/src/locale/ms-my.js rename to src/vitis/client/javascript/externs/moment/src/locale/ms-my.js diff --git a/client/javascript/externs/moment/src/locale/ms.js b/src/vitis/client/javascript/externs/moment/src/locale/ms.js similarity index 100% rename from client/javascript/externs/moment/src/locale/ms.js rename to src/vitis/client/javascript/externs/moment/src/locale/ms.js diff --git a/client/javascript/externs/moment/src/locale/my.js b/src/vitis/client/javascript/externs/moment/src/locale/my.js similarity index 100% rename from client/javascript/externs/moment/src/locale/my.js rename to src/vitis/client/javascript/externs/moment/src/locale/my.js diff --git a/client/javascript/externs/moment/src/locale/nb.js b/src/vitis/client/javascript/externs/moment/src/locale/nb.js similarity index 100% rename from client/javascript/externs/moment/src/locale/nb.js rename to src/vitis/client/javascript/externs/moment/src/locale/nb.js diff --git a/client/javascript/externs/moment/src/locale/ne.js b/src/vitis/client/javascript/externs/moment/src/locale/ne.js similarity index 100% rename from client/javascript/externs/moment/src/locale/ne.js rename to src/vitis/client/javascript/externs/moment/src/locale/ne.js diff --git a/client/javascript/externs/moment/src/locale/nl.js b/src/vitis/client/javascript/externs/moment/src/locale/nl.js similarity index 100% rename from client/javascript/externs/moment/src/locale/nl.js rename to src/vitis/client/javascript/externs/moment/src/locale/nl.js diff --git a/client/javascript/externs/moment/src/locale/nn.js b/src/vitis/client/javascript/externs/moment/src/locale/nn.js similarity index 100% rename from client/javascript/externs/moment/src/locale/nn.js rename to src/vitis/client/javascript/externs/moment/src/locale/nn.js diff --git a/client/javascript/externs/moment/src/locale/pl.js b/src/vitis/client/javascript/externs/moment/src/locale/pl.js similarity index 100% rename from client/javascript/externs/moment/src/locale/pl.js rename to src/vitis/client/javascript/externs/moment/src/locale/pl.js diff --git a/client/javascript/externs/moment/src/locale/pt-br.js b/src/vitis/client/javascript/externs/moment/src/locale/pt-br.js similarity index 100% rename from client/javascript/externs/moment/src/locale/pt-br.js rename to src/vitis/client/javascript/externs/moment/src/locale/pt-br.js diff --git a/client/javascript/externs/moment/src/locale/pt.js b/src/vitis/client/javascript/externs/moment/src/locale/pt.js similarity index 100% rename from client/javascript/externs/moment/src/locale/pt.js rename to src/vitis/client/javascript/externs/moment/src/locale/pt.js diff --git a/client/javascript/externs/moment/src/locale/ro.js b/src/vitis/client/javascript/externs/moment/src/locale/ro.js similarity index 100% rename from client/javascript/externs/moment/src/locale/ro.js rename to src/vitis/client/javascript/externs/moment/src/locale/ro.js diff --git a/client/javascript/externs/moment/src/locale/ru.js b/src/vitis/client/javascript/externs/moment/src/locale/ru.js similarity index 100% rename from client/javascript/externs/moment/src/locale/ru.js rename to src/vitis/client/javascript/externs/moment/src/locale/ru.js diff --git a/client/javascript/externs/moment/src/locale/se.js b/src/vitis/client/javascript/externs/moment/src/locale/se.js similarity index 100% rename from client/javascript/externs/moment/src/locale/se.js rename to src/vitis/client/javascript/externs/moment/src/locale/se.js diff --git a/client/javascript/externs/moment/src/locale/si.js b/src/vitis/client/javascript/externs/moment/src/locale/si.js similarity index 100% rename from client/javascript/externs/moment/src/locale/si.js rename to src/vitis/client/javascript/externs/moment/src/locale/si.js diff --git a/client/javascript/externs/moment/src/locale/sk.js b/src/vitis/client/javascript/externs/moment/src/locale/sk.js similarity index 100% rename from client/javascript/externs/moment/src/locale/sk.js rename to src/vitis/client/javascript/externs/moment/src/locale/sk.js diff --git a/client/javascript/externs/moment/src/locale/sl.js b/src/vitis/client/javascript/externs/moment/src/locale/sl.js similarity index 100% rename from client/javascript/externs/moment/src/locale/sl.js rename to src/vitis/client/javascript/externs/moment/src/locale/sl.js diff --git a/client/javascript/externs/moment/src/locale/sq.js b/src/vitis/client/javascript/externs/moment/src/locale/sq.js similarity index 100% rename from client/javascript/externs/moment/src/locale/sq.js rename to src/vitis/client/javascript/externs/moment/src/locale/sq.js diff --git a/client/javascript/externs/moment/src/locale/sr-cyrl.js b/src/vitis/client/javascript/externs/moment/src/locale/sr-cyrl.js similarity index 100% rename from client/javascript/externs/moment/src/locale/sr-cyrl.js rename to src/vitis/client/javascript/externs/moment/src/locale/sr-cyrl.js diff --git a/client/javascript/externs/moment/src/locale/sr.js b/src/vitis/client/javascript/externs/moment/src/locale/sr.js similarity index 100% rename from client/javascript/externs/moment/src/locale/sr.js rename to src/vitis/client/javascript/externs/moment/src/locale/sr.js diff --git a/client/javascript/externs/moment/src/locale/sv.js b/src/vitis/client/javascript/externs/moment/src/locale/sv.js similarity index 100% rename from client/javascript/externs/moment/src/locale/sv.js rename to src/vitis/client/javascript/externs/moment/src/locale/sv.js diff --git a/client/javascript/externs/moment/src/locale/sw.js b/src/vitis/client/javascript/externs/moment/src/locale/sw.js similarity index 100% rename from client/javascript/externs/moment/src/locale/sw.js rename to src/vitis/client/javascript/externs/moment/src/locale/sw.js diff --git a/client/javascript/externs/moment/src/locale/ta.js b/src/vitis/client/javascript/externs/moment/src/locale/ta.js similarity index 100% rename from client/javascript/externs/moment/src/locale/ta.js rename to src/vitis/client/javascript/externs/moment/src/locale/ta.js diff --git a/client/javascript/externs/moment/src/locale/te.js b/src/vitis/client/javascript/externs/moment/src/locale/te.js similarity index 100% rename from client/javascript/externs/moment/src/locale/te.js rename to src/vitis/client/javascript/externs/moment/src/locale/te.js diff --git a/client/javascript/externs/moment/src/locale/th.js b/src/vitis/client/javascript/externs/moment/src/locale/th.js similarity index 100% rename from client/javascript/externs/moment/src/locale/th.js rename to src/vitis/client/javascript/externs/moment/src/locale/th.js diff --git a/client/javascript/externs/moment/src/locale/tl-ph.js b/src/vitis/client/javascript/externs/moment/src/locale/tl-ph.js similarity index 100% rename from client/javascript/externs/moment/src/locale/tl-ph.js rename to src/vitis/client/javascript/externs/moment/src/locale/tl-ph.js diff --git a/client/javascript/externs/moment/src/locale/tlh.js b/src/vitis/client/javascript/externs/moment/src/locale/tlh.js similarity index 100% rename from client/javascript/externs/moment/src/locale/tlh.js rename to src/vitis/client/javascript/externs/moment/src/locale/tlh.js diff --git a/client/javascript/externs/moment/src/locale/tr.js b/src/vitis/client/javascript/externs/moment/src/locale/tr.js similarity index 100% rename from client/javascript/externs/moment/src/locale/tr.js rename to src/vitis/client/javascript/externs/moment/src/locale/tr.js diff --git a/client/javascript/externs/moment/src/locale/tzl.js b/src/vitis/client/javascript/externs/moment/src/locale/tzl.js similarity index 100% rename from client/javascript/externs/moment/src/locale/tzl.js rename to src/vitis/client/javascript/externs/moment/src/locale/tzl.js diff --git a/client/javascript/externs/moment/src/locale/tzm-latn.js b/src/vitis/client/javascript/externs/moment/src/locale/tzm-latn.js similarity index 100% rename from client/javascript/externs/moment/src/locale/tzm-latn.js rename to src/vitis/client/javascript/externs/moment/src/locale/tzm-latn.js diff --git a/client/javascript/externs/moment/src/locale/tzm.js b/src/vitis/client/javascript/externs/moment/src/locale/tzm.js similarity index 100% rename from client/javascript/externs/moment/src/locale/tzm.js rename to src/vitis/client/javascript/externs/moment/src/locale/tzm.js diff --git a/client/javascript/externs/moment/src/locale/uk.js b/src/vitis/client/javascript/externs/moment/src/locale/uk.js similarity index 100% rename from client/javascript/externs/moment/src/locale/uk.js rename to src/vitis/client/javascript/externs/moment/src/locale/uk.js diff --git a/client/javascript/externs/moment/src/locale/uz.js b/src/vitis/client/javascript/externs/moment/src/locale/uz.js similarity index 100% rename from client/javascript/externs/moment/src/locale/uz.js rename to src/vitis/client/javascript/externs/moment/src/locale/uz.js diff --git a/client/javascript/externs/moment/src/locale/vi.js b/src/vitis/client/javascript/externs/moment/src/locale/vi.js similarity index 100% rename from client/javascript/externs/moment/src/locale/vi.js rename to src/vitis/client/javascript/externs/moment/src/locale/vi.js diff --git a/client/javascript/externs/moment/src/locale/zh-cn.js b/src/vitis/client/javascript/externs/moment/src/locale/zh-cn.js similarity index 100% rename from client/javascript/externs/moment/src/locale/zh-cn.js rename to src/vitis/client/javascript/externs/moment/src/locale/zh-cn.js diff --git a/client/javascript/externs/moment/src/locale/zh-tw.js b/src/vitis/client/javascript/externs/moment/src/locale/zh-tw.js similarity index 100% rename from client/javascript/externs/moment/src/locale/zh-tw.js rename to src/vitis/client/javascript/externs/moment/src/locale/zh-tw.js diff --git a/client/javascript/externs/moment/src/moment.js b/src/vitis/client/javascript/externs/moment/src/moment.js similarity index 100% rename from client/javascript/externs/moment/src/moment.js rename to src/vitis/client/javascript/externs/moment/src/moment.js diff --git a/client/javascript/externs/moment/templates/amd-named.js b/src/vitis/client/javascript/externs/moment/templates/amd-named.js similarity index 100% rename from client/javascript/externs/moment/templates/amd-named.js rename to src/vitis/client/javascript/externs/moment/templates/amd-named.js diff --git a/client/javascript/externs/moment/templates/amd.js b/src/vitis/client/javascript/externs/moment/templates/amd.js similarity index 100% rename from client/javascript/externs/moment/templates/amd.js rename to src/vitis/client/javascript/externs/moment/templates/amd.js diff --git a/client/javascript/externs/moment/templates/default.js b/src/vitis/client/javascript/externs/moment/templates/default.js similarity index 100% rename from client/javascript/externs/moment/templates/default.js rename to src/vitis/client/javascript/externs/moment/templates/default.js diff --git a/client/javascript/externs/moment/templates/globals.js b/src/vitis/client/javascript/externs/moment/templates/globals.js similarity index 100% rename from client/javascript/externs/moment/templates/globals.js rename to src/vitis/client/javascript/externs/moment/templates/globals.js diff --git a/client/javascript/externs/moment/templates/locale-header.js b/src/vitis/client/javascript/externs/moment/templates/locale-header.js similarity index 100% rename from client/javascript/externs/moment/templates/locale-header.js rename to src/vitis/client/javascript/externs/moment/templates/locale-header.js diff --git a/client/javascript/externs/moment/templates/test-header.js b/src/vitis/client/javascript/externs/moment/templates/test-header.js similarity index 100% rename from client/javascript/externs/moment/templates/test-header.js rename to src/vitis/client/javascript/externs/moment/templates/test-header.js diff --git a/client/javascript/externs/openLayers/licenses/APACHE-2.0.txt b/src/vitis/client/javascript/externs/openLayers/licenses/APACHE-2.0.txt similarity index 100% rename from client/javascript/externs/openLayers/licenses/APACHE-2.0.txt rename to src/vitis/client/javascript/externs/openLayers/licenses/APACHE-2.0.txt diff --git a/client/javascript/externs/openLayers/licenses/BSD-LICENSE.txt b/src/vitis/client/javascript/externs/openLayers/licenses/BSD-LICENSE.txt similarity index 100% rename from client/javascript/externs/openLayers/licenses/BSD-LICENSE.txt rename to src/vitis/client/javascript/externs/openLayers/licenses/BSD-LICENSE.txt diff --git a/client/javascript/externs/openLayers/licenses/MIT-LICENSE.txt b/src/vitis/client/javascript/externs/openLayers/licenses/MIT-LICENSE.txt similarity index 100% rename from client/javascript/externs/openLayers/licenses/MIT-LICENSE.txt rename to src/vitis/client/javascript/externs/openLayers/licenses/MIT-LICENSE.txt diff --git a/client/javascript/externs/openLayers/ol.ext/pbf.js b/src/vitis/client/javascript/externs/openLayers/ol.ext/pbf.js similarity index 100% rename from client/javascript/externs/openLayers/ol.ext/pbf.js rename to src/vitis/client/javascript/externs/openLayers/ol.ext/pbf.js diff --git a/client/javascript/externs/openLayers/ol.ext/pixelworks.js b/src/vitis/client/javascript/externs/openLayers/ol.ext/pixelworks.js similarity index 100% rename from client/javascript/externs/openLayers/ol.ext/pixelworks.js rename to src/vitis/client/javascript/externs/openLayers/ol.ext/pixelworks.js diff --git a/client/javascript/externs/openLayers/ol.ext/rbush.js b/src/vitis/client/javascript/externs/openLayers/ol.ext/rbush.js similarity index 100% rename from client/javascript/externs/openLayers/ol.ext/rbush.js rename to src/vitis/client/javascript/externs/openLayers/ol.ext/rbush.js diff --git a/client/javascript/externs/openLayers/ol.ext/vectortile.js b/src/vitis/client/javascript/externs/openLayers/ol.ext/vectortile.js similarity index 100% rename from client/javascript/externs/openLayers/ol.ext/vectortile.js rename to src/vitis/client/javascript/externs/openLayers/ol.ext/vectortile.js diff --git a/client/javascript/externs/openLayers/ol/ol/array.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/array.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/array.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/array.js diff --git a/client/javascript/externs/openLayers/ol/ol/assertionerror.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/assertionerror.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/assertionerror.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/assertionerror.js diff --git a/client/javascript/externs/openLayers/ol/ol/asserts.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/asserts.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/asserts.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/asserts.js diff --git a/client/javascript/externs/openLayers/ol/ol/attribution.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/attribution.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/attribution.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/attribution.js diff --git a/client/javascript/externs/openLayers/ol/ol/canvasmap.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/canvasmap.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/canvasmap.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/canvasmap.js diff --git a/client/javascript/externs/openLayers/ol/ol/centerconstraint.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/centerconstraint.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/centerconstraint.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/centerconstraint.js diff --git a/client/javascript/externs/openLayers/ol/ol/collection.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/collection.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/collection.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/collection.js diff --git a/client/javascript/externs/openLayers/ol/ol/collectioneventtype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/collectioneventtype.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/collectioneventtype.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/collectioneventtype.js diff --git a/client/javascript/externs/openLayers/ol/ol/color.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/color.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/color.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/color.js diff --git a/client/javascript/externs/openLayers/ol/ol/color.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/color.jsdoc similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/color.jsdoc rename to src/vitis/client/javascript/externs/openLayers/ol/ol/color.jsdoc diff --git a/client/javascript/externs/openLayers/ol/ol/colorlike.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/colorlike.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/colorlike.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/colorlike.js diff --git a/client/javascript/externs/openLayers/ol/ol/colorlike.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/colorlike.jsdoc similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/colorlike.jsdoc rename to src/vitis/client/javascript/externs/openLayers/ol/ol/colorlike.jsdoc diff --git a/client/javascript/externs/openLayers/ol/ol/control.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/control.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/control.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/control.js diff --git a/client/javascript/externs/openLayers/ol/ol/control/attribution.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/control/attribution.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/control/attribution.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/control/attribution.js diff --git a/client/javascript/externs/openLayers/ol/ol/control/control.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/control/control.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/control/control.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/control/control.js diff --git a/client/javascript/externs/openLayers/ol/ol/control/fullscreen.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/control/fullscreen.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/control/fullscreen.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/control/fullscreen.js diff --git a/client/javascript/externs/openLayers/ol/ol/control/index.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/control/index.jsdoc similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/control/index.jsdoc rename to src/vitis/client/javascript/externs/openLayers/ol/ol/control/index.jsdoc diff --git a/client/javascript/externs/openLayers/ol/ol/control/mouseposition.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/control/mouseposition.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/control/mouseposition.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/control/mouseposition.js diff --git a/client/javascript/externs/openLayers/ol/ol/control/overviewmap.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/control/overviewmap.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/control/overviewmap.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/control/overviewmap.js diff --git a/client/javascript/externs/openLayers/ol/ol/control/rotate.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/control/rotate.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/control/rotate.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/control/rotate.js diff --git a/client/javascript/externs/openLayers/ol/ol/control/scaleline.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/control/scaleline.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/control/scaleline.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/control/scaleline.js diff --git a/client/javascript/externs/openLayers/ol/ol/control/scalelineunits.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/control/scalelineunits.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/control/scalelineunits.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/control/scalelineunits.js diff --git a/client/javascript/externs/openLayers/ol/ol/control/zoom.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/control/zoom.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/control/zoom.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/control/zoom.js diff --git a/client/javascript/externs/openLayers/ol/ol/control/zoomslider.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/control/zoomslider.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/control/zoomslider.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/control/zoomslider.js diff --git a/client/javascript/externs/openLayers/ol/ol/control/zoomtoextent.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/control/zoomtoextent.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/control/zoomtoextent.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/control/zoomtoextent.js diff --git a/client/javascript/externs/openLayers/ol/ol/coordinate.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/coordinate.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/coordinate.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/coordinate.js diff --git a/client/javascript/externs/openLayers/ol/ol/coordinate.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/coordinate.jsdoc similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/coordinate.jsdoc rename to src/vitis/client/javascript/externs/openLayers/ol/ol/coordinate.jsdoc diff --git a/client/javascript/externs/openLayers/ol/ol/css.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/css.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/css.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/css.js diff --git a/client/javascript/externs/openLayers/ol/ol/deviceorientation.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/deviceorientation.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/deviceorientation.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/deviceorientation.js diff --git a/client/javascript/externs/openLayers/ol/ol/disposable.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/disposable.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/disposable.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/disposable.js diff --git a/client/javascript/externs/openLayers/ol/ol/dom.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/dom.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/dom.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/dom.js diff --git a/client/javascript/externs/openLayers/ol/ol/easing.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/easing.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/easing.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/easing.js diff --git a/client/javascript/externs/openLayers/ol/ol/easing.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/easing.jsdoc similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/easing.jsdoc rename to src/vitis/client/javascript/externs/openLayers/ol/ol/easing.jsdoc diff --git a/client/javascript/externs/openLayers/ol/ol/events.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/events.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/events.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/events.js diff --git a/client/javascript/externs/openLayers/ol/ol/events/condition.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/events/condition.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/events/condition.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/events/condition.js diff --git a/client/javascript/externs/openLayers/ol/ol/events/condition.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/events/condition.jsdoc similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/events/condition.jsdoc rename to src/vitis/client/javascript/externs/openLayers/ol/ol/events/condition.jsdoc diff --git a/client/javascript/externs/openLayers/ol/ol/events/event.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/events/event.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/events/event.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/events/event.js diff --git a/client/javascript/externs/openLayers/ol/ol/events/eventtarget.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/events/eventtarget.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/events/eventtarget.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/events/eventtarget.js diff --git a/client/javascript/externs/openLayers/ol/ol/events/eventtype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/events/eventtype.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/events/eventtype.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/events/eventtype.js diff --git a/client/javascript/externs/openLayers/ol/ol/events/keycode.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/events/keycode.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/events/keycode.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/events/keycode.js diff --git a/client/javascript/externs/openLayers/ol/ol/extent.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/extent.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/extent.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/extent.js diff --git a/client/javascript/externs/openLayers/ol/ol/extent.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/extent.jsdoc similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/extent.jsdoc rename to src/vitis/client/javascript/externs/openLayers/ol/ol/extent.jsdoc diff --git a/client/javascript/externs/openLayers/ol/ol/extent/corner.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/extent/corner.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/extent/corner.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/extent/corner.js diff --git a/client/javascript/externs/openLayers/ol/ol/extent/relationship.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/extent/relationship.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/extent/relationship.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/extent/relationship.js diff --git a/client/javascript/externs/openLayers/ol/ol/feature.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/feature.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/feature.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/feature.js diff --git a/client/javascript/externs/openLayers/ol/ol/featureloader.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/featureloader.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/featureloader.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/featureloader.js diff --git a/client/javascript/externs/openLayers/ol/ol/featureloader.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/featureloader.jsdoc similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/featureloader.jsdoc rename to src/vitis/client/javascript/externs/openLayers/ol/ol/featureloader.jsdoc diff --git a/client/javascript/externs/openLayers/ol/ol/format/esrijson.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/esrijson.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/format/esrijson.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/esrijson.js diff --git a/client/javascript/externs/openLayers/ol/ol/format/feature.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/feature.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/format/feature.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/feature.js diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/format/filter.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter.js diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/and.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/and.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/format/filter/and.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/and.js diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/bbox.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/bbox.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/format/filter/bbox.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/bbox.js diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/comparison.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/comparison.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/format/filter/comparison.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/comparison.js diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/comparisonbinary.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/comparisonbinary.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/format/filter/comparisonbinary.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/comparisonbinary.js diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/contains.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/contains.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/format/filter/contains.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/contains.js diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/during.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/during.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/format/filter/during.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/during.js diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/equalto.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/equalto.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/format/filter/equalto.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/equalto.js diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/filter.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/filter.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/format/filter/filter.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/filter.js diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/greaterthan.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/greaterthan.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/format/filter/greaterthan.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/greaterthan.js diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/greaterthanorequalto.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/greaterthanorequalto.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/format/filter/greaterthanorequalto.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/greaterthanorequalto.js diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/index.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/index.jsdoc similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/format/filter/index.jsdoc rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/index.jsdoc diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/intersects.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/intersects.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/format/filter/intersects.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/intersects.js diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/isbetween.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/isbetween.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/format/filter/isbetween.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/isbetween.js diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/islike.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/islike.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/format/filter/islike.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/islike.js diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/isnull.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/isnull.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/format/filter/isnull.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/isnull.js diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/lessthan.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/lessthan.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/format/filter/lessthan.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/lessthan.js diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/lessthanorequalto.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/lessthanorequalto.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/format/filter/lessthanorequalto.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/lessthanorequalto.js diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/logicalnary.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/logicalnary.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/format/filter/logicalnary.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/logicalnary.js diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/not.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/not.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/format/filter/not.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/not.js diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/notequalto.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/notequalto.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/format/filter/notequalto.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/notequalto.js diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/or.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/or.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/format/filter/or.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/or.js diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/spatial.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/spatial.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/format/filter/spatial.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/spatial.js diff --git a/client/javascript/externs/openLayers/ol/ol/format/filter/within.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/within.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/format/filter/within.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/within.js diff --git a/client/javascript/externs/openLayers/ol/ol/format/formattype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/formattype.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/format/formattype.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/formattype.js diff --git a/client/javascript/externs/openLayers/ol/ol/format/geojson.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/geojson.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/format/geojson.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/geojson.js diff --git a/client/javascript/externs/openLayers/ol/ol/format/gml.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/gml.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/format/gml.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/gml.js diff --git a/client/javascript/externs/openLayers/ol/ol/format/gml2.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/gml2.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/format/gml2.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/gml2.js diff --git a/client/javascript/externs/openLayers/ol/ol/format/gml3.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/gml3.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/format/gml3.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/gml3.js diff --git a/client/javascript/externs/openLayers/ol/ol/format/gmlbase.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/gmlbase.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/format/gmlbase.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/gmlbase.js diff --git a/client/javascript/externs/openLayers/ol/ol/format/gpx.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/gpx.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/format/gpx.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/gpx.js diff --git a/client/javascript/externs/openLayers/ol/ol/format/igc.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/igc.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/format/igc.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/igc.js diff --git a/client/javascript/externs/openLayers/ol/ol/format/igcz.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/igcz.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/format/igcz.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/igcz.js diff --git a/client/javascript/externs/openLayers/ol/ol/format/index.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/index.jsdoc similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/format/index.jsdoc rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/index.jsdoc diff --git a/client/javascript/externs/openLayers/ol/ol/format/jsonfeature.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/jsonfeature.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/format/jsonfeature.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/jsonfeature.js diff --git a/client/javascript/externs/openLayers/ol/ol/format/kml.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/kml.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/format/kml.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/kml.js diff --git a/client/javascript/externs/openLayers/ol/ol/format/mvt.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/mvt.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/format/mvt.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/mvt.js diff --git a/client/javascript/externs/openLayers/ol/ol/format/osmxml.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/osmxml.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/format/osmxml.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/osmxml.js diff --git a/client/javascript/externs/openLayers/ol/ol/format/ows.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/ows.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/format/ows.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/ows.js diff --git a/client/javascript/externs/openLayers/ol/ol/format/polyline.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/polyline.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/format/polyline.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/polyline.js diff --git a/client/javascript/externs/openLayers/ol/ol/format/readme.md b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/readme.md similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/format/readme.md rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/readme.md diff --git a/client/javascript/externs/openLayers/ol/ol/format/textfeature.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/textfeature.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/format/textfeature.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/textfeature.js diff --git a/client/javascript/externs/openLayers/ol/ol/format/topojson.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/topojson.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/format/topojson.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/topojson.js diff --git a/client/javascript/externs/openLayers/ol/ol/format/wfs.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/wfs.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/format/wfs.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/wfs.js diff --git a/client/javascript/externs/openLayers/ol/ol/format/wkt.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/wkt.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/format/wkt.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/wkt.js diff --git a/client/javascript/externs/openLayers/ol/ol/format/wmscapabilities.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/wmscapabilities.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/format/wmscapabilities.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/wmscapabilities.js diff --git a/client/javascript/externs/openLayers/ol/ol/format/wmsgetfeatureinfo.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/wmsgetfeatureinfo.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/format/wmsgetfeatureinfo.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/wmsgetfeatureinfo.js diff --git a/client/javascript/externs/openLayers/ol/ol/format/wmtscapabilities.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/wmtscapabilities.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/format/wmtscapabilities.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/wmtscapabilities.js diff --git a/client/javascript/externs/openLayers/ol/ol/format/xlink.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/xlink.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/format/xlink.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/xlink.js diff --git a/client/javascript/externs/openLayers/ol/ol/format/xml.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/xml.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/format/xml.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/xml.js diff --git a/client/javascript/externs/openLayers/ol/ol/format/xmlfeature.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/xmlfeature.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/format/xmlfeature.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/xmlfeature.js diff --git a/client/javascript/externs/openLayers/ol/ol/format/xsd.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/format/xsd.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/format/xsd.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/format/xsd.js diff --git a/client/javascript/externs/openLayers/ol/ol/functions.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/functions.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/functions.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/functions.js diff --git a/client/javascript/externs/openLayers/ol/ol/geolocation.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geolocation.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/geolocation.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geolocation.js diff --git a/client/javascript/externs/openLayers/ol/ol/geolocationproperty.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geolocationproperty.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/geolocationproperty.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geolocationproperty.js diff --git a/client/javascript/externs/openLayers/ol/ol/geom/circle.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/circle.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/geom/circle.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/circle.js diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/area.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/area.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/geom/flat/area.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/area.js diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/center.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/center.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/geom/flat/center.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/center.js diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/closest.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/closest.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/geom/flat/closest.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/closest.js diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/contains.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/contains.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/geom/flat/contains.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/contains.js diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/deflate.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/deflate.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/geom/flat/deflate.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/deflate.js diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/flip.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/flip.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/geom/flat/flip.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/flip.js diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/geodesic.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/geodesic.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/geom/flat/geodesic.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/geodesic.js diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/inflate.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/inflate.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/geom/flat/inflate.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/inflate.js diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/interiorpoint.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/interiorpoint.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/geom/flat/interiorpoint.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/interiorpoint.js diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/interpolate.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/interpolate.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/geom/flat/interpolate.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/interpolate.js diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/intersectsextent.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/intersectsextent.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/geom/flat/intersectsextent.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/intersectsextent.js diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/length.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/length.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/geom/flat/length.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/length.js diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/orient.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/orient.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/geom/flat/orient.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/orient.js diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/reverse.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/reverse.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/geom/flat/reverse.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/reverse.js diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/segments.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/segments.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/geom/flat/segments.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/segments.js diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/simplify.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/simplify.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/geom/flat/simplify.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/simplify.js diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/straightchunk.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/straightchunk.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/geom/flat/straightchunk.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/straightchunk.js diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/textpath.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/textpath.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/geom/flat/textpath.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/textpath.js diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/topology.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/topology.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/geom/flat/topology.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/topology.js diff --git a/client/javascript/externs/openLayers/ol/ol/geom/flat/transform.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/transform.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/geom/flat/transform.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/transform.js diff --git a/client/javascript/externs/openLayers/ol/ol/geom/geom.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/geom.jsdoc similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/geom/geom.jsdoc rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/geom.jsdoc diff --git a/client/javascript/externs/openLayers/ol/ol/geom/geometry.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/geometry.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/geom/geometry.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/geometry.js diff --git a/client/javascript/externs/openLayers/ol/ol/geom/geometrycollection.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/geometrycollection.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/geom/geometrycollection.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/geometrycollection.js diff --git a/client/javascript/externs/openLayers/ol/ol/geom/geometrylayout.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/geometrylayout.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/geom/geometrylayout.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/geometrylayout.js diff --git a/client/javascript/externs/openLayers/ol/ol/geom/geometrytype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/geometrytype.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/geom/geometrytype.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/geometrytype.js diff --git a/client/javascript/externs/openLayers/ol/ol/geom/linearring.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/linearring.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/geom/linearring.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/linearring.js diff --git a/client/javascript/externs/openLayers/ol/ol/geom/linestring.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/linestring.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/geom/linestring.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/linestring.js diff --git a/client/javascript/externs/openLayers/ol/ol/geom/multilinestring.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/multilinestring.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/geom/multilinestring.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/multilinestring.js diff --git a/client/javascript/externs/openLayers/ol/ol/geom/multipoint.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/multipoint.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/geom/multipoint.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/multipoint.js diff --git a/client/javascript/externs/openLayers/ol/ol/geom/multipolygon.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/multipolygon.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/geom/multipolygon.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/multipolygon.js diff --git a/client/javascript/externs/openLayers/ol/ol/geom/point.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/point.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/geom/point.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/point.js diff --git a/client/javascript/externs/openLayers/ol/ol/geom/polygon.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/polygon.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/geom/polygon.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/polygon.js diff --git a/client/javascript/externs/openLayers/ol/ol/geom/simplegeometry.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/simplegeometry.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/geom/simplegeometry.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/geom/simplegeometry.js diff --git a/client/javascript/externs/openLayers/ol/ol/graticule.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/graticule.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/graticule.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/graticule.js diff --git a/client/javascript/externs/openLayers/ol/ol/has.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/has.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/has.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/has.js diff --git a/client/javascript/externs/openLayers/ol/ol/has.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/has.jsdoc similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/has.jsdoc rename to src/vitis/client/javascript/externs/openLayers/ol/ol/has.jsdoc diff --git a/client/javascript/externs/openLayers/ol/ol/image.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/image.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/image.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/image.js diff --git a/client/javascript/externs/openLayers/ol/ol/imagebase.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/imagebase.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/imagebase.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/imagebase.js diff --git a/client/javascript/externs/openLayers/ol/ol/imagecanvas.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/imagecanvas.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/imagecanvas.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/imagecanvas.js diff --git a/client/javascript/externs/openLayers/ol/ol/imagestate.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/imagestate.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/imagestate.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/imagestate.js diff --git a/client/javascript/externs/openLayers/ol/ol/imagetile.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/imagetile.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/imagetile.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/imagetile.js diff --git a/client/javascript/externs/openLayers/ol/ol/index.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/index.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/index.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/index.js diff --git a/client/javascript/externs/openLayers/ol/ol/interaction.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/interaction.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction.js diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/doubleclickzoom.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/doubleclickzoom.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/interaction/doubleclickzoom.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/doubleclickzoom.js diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/draganddrop.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/draganddrop.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/interaction/draganddrop.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/draganddrop.js diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/dragbox.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/dragbox.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/interaction/dragbox.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/dragbox.js diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/dragpan.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/dragpan.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/interaction/dragpan.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/dragpan.js diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/dragrotate.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/dragrotate.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/interaction/dragrotate.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/dragrotate.js diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/dragrotateandzoom.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/dragrotateandzoom.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/interaction/dragrotateandzoom.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/dragrotateandzoom.js diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/dragzoom.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/dragzoom.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/interaction/dragzoom.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/dragzoom.js diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/draw.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/draw.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/interaction/draw.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/draw.js diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/draweventtype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/draweventtype.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/interaction/draweventtype.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/draweventtype.js diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/extent.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/extent.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/interaction/extent.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/extent.js diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/extenteventtype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/extenteventtype.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/interaction/extenteventtype.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/extenteventtype.js diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/interaction.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/interaction.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/interaction/interaction.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/interaction.js diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/interaction.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/interaction.jsdoc similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/interaction/interaction.jsdoc rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/interaction.jsdoc diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/keyboardpan.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/keyboardpan.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/interaction/keyboardpan.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/keyboardpan.js diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/keyboardzoom.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/keyboardzoom.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/interaction/keyboardzoom.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/keyboardzoom.js diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/modify.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/modify.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/interaction/modify.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/modify.js diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/modifyeventtype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/modifyeventtype.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/interaction/modifyeventtype.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/modifyeventtype.js diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/mousewheelzoom.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/mousewheelzoom.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/interaction/mousewheelzoom.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/mousewheelzoom.js diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/pinchrotate.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/pinchrotate.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/interaction/pinchrotate.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/pinchrotate.js diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/pinchzoom.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/pinchzoom.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/interaction/pinchzoom.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/pinchzoom.js diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/pointer.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/pointer.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/interaction/pointer.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/pointer.js diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/property.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/property.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/interaction/property.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/property.js diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/select.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/select.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/interaction/select.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/select.js diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/snap.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/snap.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/interaction/snap.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/snap.js diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/translate.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/translate.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/interaction/translate.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/translate.js diff --git a/client/javascript/externs/openLayers/ol/ol/interaction/translateeventtype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/translateeventtype.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/interaction/translateeventtype.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/translateeventtype.js diff --git a/client/javascript/externs/openLayers/ol/ol/kinetic.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/kinetic.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/kinetic.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/kinetic.js diff --git a/client/javascript/externs/openLayers/ol/ol/layer/base.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/layer/base.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/layer/base.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/layer/base.js diff --git a/client/javascript/externs/openLayers/ol/ol/layer/group.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/layer/group.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/layer/group.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/layer/group.js diff --git a/client/javascript/externs/openLayers/ol/ol/layer/heatmap.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/layer/heatmap.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/layer/heatmap.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/layer/heatmap.js diff --git a/client/javascript/externs/openLayers/ol/ol/layer/image.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/layer/image.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/layer/image.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/layer/image.js diff --git a/client/javascript/externs/openLayers/ol/ol/layer/layer.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/layer/layer.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/layer/layer.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/layer/layer.js diff --git a/client/javascript/externs/openLayers/ol/ol/layer/layer.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/layer/layer.jsdoc similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/layer/layer.jsdoc rename to src/vitis/client/javascript/externs/openLayers/ol/ol/layer/layer.jsdoc diff --git a/client/javascript/externs/openLayers/ol/ol/layer/property.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/layer/property.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/layer/property.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/layer/property.js diff --git a/client/javascript/externs/openLayers/ol/ol/layer/tile.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/layer/tile.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/layer/tile.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/layer/tile.js diff --git a/client/javascript/externs/openLayers/ol/ol/layer/tileproperty.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/layer/tileproperty.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/layer/tileproperty.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/layer/tileproperty.js diff --git a/client/javascript/externs/openLayers/ol/ol/layer/vector.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/layer/vector.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/layer/vector.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/layer/vector.js diff --git a/client/javascript/externs/openLayers/ol/ol/layer/vectorrendertype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/layer/vectorrendertype.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/layer/vectorrendertype.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/layer/vectorrendertype.js diff --git a/client/javascript/externs/openLayers/ol/ol/layer/vectortile.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/layer/vectortile.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/layer/vectortile.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/layer/vectortile.js diff --git a/client/javascript/externs/openLayers/ol/ol/layer/vectortilerendertype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/layer/vectortilerendertype.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/layer/vectortilerendertype.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/layer/vectortilerendertype.js diff --git a/client/javascript/externs/openLayers/ol/ol/layertype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/layertype.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/layertype.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/layertype.js diff --git a/client/javascript/externs/openLayers/ol/ol/loadingstrategy.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/loadingstrategy.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/loadingstrategy.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/loadingstrategy.js diff --git a/client/javascript/externs/openLayers/ol/ol/loadingstrategy.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/loadingstrategy.jsdoc similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/loadingstrategy.jsdoc rename to src/vitis/client/javascript/externs/openLayers/ol/ol/loadingstrategy.jsdoc diff --git a/client/javascript/externs/openLayers/ol/ol/map.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/map.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/map.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/map.js diff --git a/client/javascript/externs/openLayers/ol/ol/mapbrowserevent.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/mapbrowserevent.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/mapbrowserevent.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/mapbrowserevent.js diff --git a/client/javascript/externs/openLayers/ol/ol/mapbrowsereventhandler.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/mapbrowsereventhandler.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/mapbrowsereventhandler.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/mapbrowsereventhandler.js diff --git a/client/javascript/externs/openLayers/ol/ol/mapbrowsereventtype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/mapbrowsereventtype.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/mapbrowsereventtype.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/mapbrowsereventtype.js diff --git a/client/javascript/externs/openLayers/ol/ol/mapbrowserpointerevent.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/mapbrowserpointerevent.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/mapbrowserpointerevent.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/mapbrowserpointerevent.js diff --git a/client/javascript/externs/openLayers/ol/ol/mapevent.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/mapevent.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/mapevent.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/mapevent.js diff --git a/client/javascript/externs/openLayers/ol/ol/mapeventtype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/mapeventtype.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/mapeventtype.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/mapeventtype.js diff --git a/client/javascript/externs/openLayers/ol/ol/mapproperty.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/mapproperty.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/mapproperty.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/mapproperty.js diff --git a/client/javascript/externs/openLayers/ol/ol/math.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/math.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/math.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/math.js diff --git a/client/javascript/externs/openLayers/ol/ol/net.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/net.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/net.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/net.js diff --git a/client/javascript/externs/openLayers/ol/ol/obj.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/obj.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/obj.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/obj.js diff --git a/client/javascript/externs/openLayers/ol/ol/object.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/object.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/object.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/object.js diff --git a/client/javascript/externs/openLayers/ol/ol/objecteventtype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/objecteventtype.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/objecteventtype.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/objecteventtype.js diff --git a/client/javascript/externs/openLayers/ol/ol/observable.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/observable.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/observable.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/observable.js diff --git a/client/javascript/externs/openLayers/ol/ol/overlay.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/overlay.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/overlay.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/overlay.js diff --git a/client/javascript/externs/openLayers/ol/ol/overlaypositioning.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/overlaypositioning.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/overlaypositioning.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/overlaypositioning.js diff --git a/client/javascript/externs/openLayers/ol/ol/pluggablemap.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/pluggablemap.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/pluggablemap.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/pluggablemap.js diff --git a/client/javascript/externs/openLayers/ol/ol/plugins.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/plugins.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/plugins.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/plugins.js diff --git a/client/javascript/externs/openLayers/ol/ol/plugintype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/plugintype.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/plugintype.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/plugintype.js diff --git a/client/javascript/externs/openLayers/ol/ol/pointer/eventsource.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/eventsource.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/pointer/eventsource.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/eventsource.js diff --git a/client/javascript/externs/openLayers/ol/ol/pointer/eventtype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/eventtype.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/pointer/eventtype.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/eventtype.js diff --git a/client/javascript/externs/openLayers/ol/ol/pointer/mousesource.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/mousesource.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/pointer/mousesource.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/mousesource.js diff --git a/client/javascript/externs/openLayers/ol/ol/pointer/mssource.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/mssource.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/pointer/mssource.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/mssource.js diff --git a/client/javascript/externs/openLayers/ol/ol/pointer/nativesource.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/nativesource.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/pointer/nativesource.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/nativesource.js diff --git a/client/javascript/externs/openLayers/ol/ol/pointer/pointerevent.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/pointerevent.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/pointer/pointerevent.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/pointerevent.js diff --git a/client/javascript/externs/openLayers/ol/ol/pointer/pointereventhandler.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/pointereventhandler.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/pointer/pointereventhandler.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/pointereventhandler.js diff --git a/client/javascript/externs/openLayers/ol/ol/pointer/touchsource.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/touchsource.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/pointer/touchsource.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/touchsource.js diff --git a/client/javascript/externs/openLayers/ol/ol/proj.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/proj.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/proj.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/proj.js diff --git a/client/javascript/externs/openLayers/ol/ol/proj/common.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/proj/common.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/proj/common.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/proj/common.js diff --git a/client/javascript/externs/openLayers/ol/ol/proj/epsg3857.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/proj/epsg3857.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/proj/epsg3857.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/proj/epsg3857.js diff --git a/client/javascript/externs/openLayers/ol/ol/proj/epsg4326.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/proj/epsg4326.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/proj/epsg4326.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/proj/epsg4326.js diff --git a/client/javascript/externs/openLayers/ol/ol/proj/index.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/proj/index.jsdoc similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/proj/index.jsdoc rename to src/vitis/client/javascript/externs/openLayers/ol/ol/proj/index.jsdoc diff --git a/client/javascript/externs/openLayers/ol/ol/proj/proj4.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/proj/proj4.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/proj/proj4.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/proj/proj4.js diff --git a/client/javascript/externs/openLayers/ol/ol/proj/projection.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/proj/projection.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/proj/projection.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/proj/projection.js diff --git a/client/javascript/externs/openLayers/ol/ol/proj/projections.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/proj/projections.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/proj/projections.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/proj/projections.js diff --git a/client/javascript/externs/openLayers/ol/ol/proj/transforms.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/proj/transforms.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/proj/transforms.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/proj/transforms.js diff --git a/client/javascript/externs/openLayers/ol/ol/proj/units.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/proj/units.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/proj/units.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/proj/units.js diff --git a/client/javascript/externs/openLayers/ol/ol/render.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/render.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render.js diff --git a/client/javascript/externs/openLayers/ol/ol/render.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/render.jsdoc similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/render.jsdoc rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render.jsdoc diff --git a/client/javascript/externs/openLayers/ol/ol/render/box.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/box.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/render/box.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/box.js diff --git a/client/javascript/externs/openLayers/ol/ol/render/canvas.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/render/canvas.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas.js diff --git a/client/javascript/externs/openLayers/ol/ol/render/canvas/imagereplay.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/imagereplay.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/render/canvas/imagereplay.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/imagereplay.js diff --git a/client/javascript/externs/openLayers/ol/ol/render/canvas/immediate.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/immediate.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/render/canvas/immediate.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/immediate.js diff --git a/client/javascript/externs/openLayers/ol/ol/render/canvas/index.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/index.jsdoc similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/render/canvas/index.jsdoc rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/index.jsdoc diff --git a/client/javascript/externs/openLayers/ol/ol/render/canvas/instruction.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/instruction.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/render/canvas/instruction.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/instruction.js diff --git a/client/javascript/externs/openLayers/ol/ol/render/canvas/linestringreplay.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/linestringreplay.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/render/canvas/linestringreplay.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/linestringreplay.js diff --git a/client/javascript/externs/openLayers/ol/ol/render/canvas/polygonreplay.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/polygonreplay.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/render/canvas/polygonreplay.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/polygonreplay.js diff --git a/client/javascript/externs/openLayers/ol/ol/render/canvas/replay.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/replay.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/render/canvas/replay.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/replay.js diff --git a/client/javascript/externs/openLayers/ol/ol/render/canvas/replaygroup.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/replaygroup.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/render/canvas/replaygroup.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/replaygroup.js diff --git a/client/javascript/externs/openLayers/ol/ol/render/canvas/textreplay.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/textreplay.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/render/canvas/textreplay.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/textreplay.js diff --git a/client/javascript/externs/openLayers/ol/ol/render/event.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/event.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/render/event.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/event.js diff --git a/client/javascript/externs/openLayers/ol/ol/render/eventtype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/eventtype.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/render/eventtype.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/eventtype.js diff --git a/client/javascript/externs/openLayers/ol/ol/render/feature.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/feature.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/render/feature.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/feature.js diff --git a/client/javascript/externs/openLayers/ol/ol/render/replay.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/replay.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/render/replay.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/replay.js diff --git a/client/javascript/externs/openLayers/ol/ol/render/replaygroup.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/replaygroup.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/render/replaygroup.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/replaygroup.js diff --git a/client/javascript/externs/openLayers/ol/ol/render/replaytype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/replaytype.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/render/replaytype.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/replaytype.js diff --git a/client/javascript/externs/openLayers/ol/ol/render/vectorcontext.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/vectorcontext.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/render/vectorcontext.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/vectorcontext.js diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/render/webgl.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl.js diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay.js diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay/defaultshader.glsl b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay/defaultshader.glsl similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay/defaultshader.glsl rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay/defaultshader.glsl diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay/defaultshader.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay/defaultshader.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay/defaultshader.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay/defaultshader.js diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay/defaultshader/locations.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay/defaultshader/locations.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay/defaultshader/locations.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay/defaultshader/locations.js diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/imagereplay.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/imagereplay.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/render/webgl/imagereplay.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/imagereplay.js diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/immediate.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/immediate.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/render/webgl/immediate.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/immediate.js diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/index.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/index.jsdoc similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/render/webgl/index.jsdoc rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/index.jsdoc diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay.js diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay/defaultshader.glsl b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay/defaultshader.glsl similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay/defaultshader.glsl rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay/defaultshader.glsl diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay/defaultshader.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay/defaultshader.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay/defaultshader.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay/defaultshader.js diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay/defaultshader/locations.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay/defaultshader/locations.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay/defaultshader/locations.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay/defaultshader/locations.js diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay.js diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay/defaultshader.glsl b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay/defaultshader.glsl similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay/defaultshader.glsl rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay/defaultshader.glsl diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay/defaultshader.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay/defaultshader.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay/defaultshader.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay/defaultshader.js diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay/defaultshader/locations.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay/defaultshader/locations.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay/defaultshader/locations.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay/defaultshader/locations.js diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/replay.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/replay.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/render/webgl/replay.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/replay.js diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/replaygroup.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/replaygroup.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/render/webgl/replaygroup.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/replaygroup.js diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/textreplay.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/textreplay.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/render/webgl/textreplay.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/textreplay.js diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay.js diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay/defaultshader.glsl b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay/defaultshader.glsl similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay/defaultshader.glsl rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay/defaultshader.glsl diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay/defaultshader.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay/defaultshader.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay/defaultshader.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay/defaultshader.js diff --git a/client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay/defaultshader/locations.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay/defaultshader/locations.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay/defaultshader/locations.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay/defaultshader/locations.js diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/canvas/imagelayer.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/imagelayer.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/renderer/canvas/imagelayer.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/imagelayer.js diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/canvas/intermediatecanvas.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/intermediatecanvas.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/renderer/canvas/intermediatecanvas.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/intermediatecanvas.js diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/canvas/layer.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/layer.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/renderer/canvas/layer.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/layer.js diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/canvas/map.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/map.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/renderer/canvas/map.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/map.js diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/canvas/tilelayer.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/tilelayer.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/renderer/canvas/tilelayer.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/tilelayer.js diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/canvas/vectorlayer.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/vectorlayer.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/renderer/canvas/vectorlayer.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/vectorlayer.js diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/canvas/vectortilelayer.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/vectortilelayer.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/renderer/canvas/vectortilelayer.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/vectortilelayer.js diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/index.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/index.jsdoc similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/renderer/index.jsdoc rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/index.jsdoc diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/layer.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/layer.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/renderer/layer.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/layer.js diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/map.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/map.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/renderer/map.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/map.js diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/type.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/type.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/renderer/type.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/type.js diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/vector.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/vector.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/renderer/vector.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/vector.js diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/webgl/defaultmapshader.glsl b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/defaultmapshader.glsl similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/renderer/webgl/defaultmapshader.glsl rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/defaultmapshader.glsl diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/webgl/defaultmapshader.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/defaultmapshader.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/renderer/webgl/defaultmapshader.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/defaultmapshader.js diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/webgl/defaultmapshader/locations.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/defaultmapshader/locations.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/renderer/webgl/defaultmapshader/locations.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/defaultmapshader/locations.js diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/webgl/imagelayer.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/imagelayer.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/renderer/webgl/imagelayer.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/imagelayer.js diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/webgl/layer.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/layer.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/renderer/webgl/layer.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/layer.js diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/webgl/map.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/map.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/renderer/webgl/map.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/map.js diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayer.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayer.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayer.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayer.js diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayershader.glsl b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayershader.glsl similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayershader.glsl rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayershader.glsl diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayershader.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayershader.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayershader.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayershader.js diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayershader/locations.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayershader/locations.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayershader/locations.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayershader/locations.js diff --git a/client/javascript/externs/openLayers/ol/ol/renderer/webgl/vectorlayer.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/vectorlayer.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/renderer/webgl/vectorlayer.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/vectorlayer.js diff --git a/client/javascript/externs/openLayers/ol/ol/reproj.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/reproj.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/reproj.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/reproj.js diff --git a/client/javascript/externs/openLayers/ol/ol/reproj/image.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/reproj/image.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/reproj/image.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/reproj/image.js diff --git a/client/javascript/externs/openLayers/ol/ol/reproj/tile.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/reproj/tile.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/reproj/tile.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/reproj/tile.js diff --git a/client/javascript/externs/openLayers/ol/ol/reproj/triangulation.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/reproj/triangulation.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/reproj/triangulation.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/reproj/triangulation.js diff --git a/client/javascript/externs/openLayers/ol/ol/resolutionconstraint.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/resolutionconstraint.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/resolutionconstraint.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/resolutionconstraint.js diff --git a/client/javascript/externs/openLayers/ol/ol/rotationconstraint.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/rotationconstraint.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/rotationconstraint.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/rotationconstraint.js diff --git a/client/javascript/externs/openLayers/ol/ol/size.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/size.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/size.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/size.js diff --git a/client/javascript/externs/openLayers/ol/ol/source.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/source.jsdoc similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/source.jsdoc rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source.jsdoc diff --git a/client/javascript/externs/openLayers/ol/ol/source/bingmaps.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/bingmaps.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/source/bingmaps.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/bingmaps.js diff --git a/client/javascript/externs/openLayers/ol/ol/source/cartodb.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/cartodb.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/source/cartodb.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/cartodb.js diff --git a/client/javascript/externs/openLayers/ol/ol/source/cluster.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/cluster.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/source/cluster.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/cluster.js diff --git a/client/javascript/externs/openLayers/ol/ol/source/image.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/image.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/source/image.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/image.js diff --git a/client/javascript/externs/openLayers/ol/ol/source/imagearcgisrest.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/imagearcgisrest.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/source/imagearcgisrest.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/imagearcgisrest.js diff --git a/client/javascript/externs/openLayers/ol/ol/source/imagecanvas.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/imagecanvas.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/source/imagecanvas.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/imagecanvas.js diff --git a/client/javascript/externs/openLayers/ol/ol/source/imagemapguide.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/imagemapguide.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/source/imagemapguide.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/imagemapguide.js diff --git a/client/javascript/externs/openLayers/ol/ol/source/imagestatic.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/imagestatic.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/source/imagestatic.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/imagestatic.js diff --git a/client/javascript/externs/openLayers/ol/ol/source/imagevector.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/imagevector.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/source/imagevector.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/imagevector.js diff --git a/client/javascript/externs/openLayers/ol/ol/source/imagewms.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/imagewms.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/source/imagewms.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/imagewms.js diff --git a/client/javascript/externs/openLayers/ol/ol/source/osm.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/osm.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/source/osm.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/osm.js diff --git a/client/javascript/externs/openLayers/ol/ol/source/raster.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/raster.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/source/raster.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/raster.js diff --git a/client/javascript/externs/openLayers/ol/ol/source/rasteroperationtype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/rasteroperationtype.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/source/rasteroperationtype.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/rasteroperationtype.js diff --git a/client/javascript/externs/openLayers/ol/ol/source/source.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/source.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/source/source.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/source.js diff --git a/client/javascript/externs/openLayers/ol/ol/source/stamen.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/stamen.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/source/stamen.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/stamen.js diff --git a/client/javascript/externs/openLayers/ol/ol/source/state.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/state.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/source/state.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/state.js diff --git a/client/javascript/externs/openLayers/ol/ol/source/tile.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/tile.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/source/tile.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/tile.js diff --git a/client/javascript/externs/openLayers/ol/ol/source/tilearcgisrest.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/tilearcgisrest.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/source/tilearcgisrest.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/tilearcgisrest.js diff --git a/client/javascript/externs/openLayers/ol/ol/source/tiledebug.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/tiledebug.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/source/tiledebug.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/tiledebug.js diff --git a/client/javascript/externs/openLayers/ol/ol/source/tileeventtype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/tileeventtype.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/source/tileeventtype.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/tileeventtype.js diff --git a/client/javascript/externs/openLayers/ol/ol/source/tileimage.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/tileimage.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/source/tileimage.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/tileimage.js diff --git a/client/javascript/externs/openLayers/ol/ol/source/tilejson.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/tilejson.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/source/tilejson.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/tilejson.js diff --git a/client/javascript/externs/openLayers/ol/ol/source/tileutfgrid.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/tileutfgrid.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/source/tileutfgrid.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/tileutfgrid.js diff --git a/client/javascript/externs/openLayers/ol/ol/source/tilewms.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/tilewms.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/source/tilewms.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/tilewms.js diff --git a/client/javascript/externs/openLayers/ol/ol/source/urltile.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/urltile.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/source/urltile.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/urltile.js diff --git a/client/javascript/externs/openLayers/ol/ol/source/vector.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/vector.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/source/vector.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/vector.js diff --git a/client/javascript/externs/openLayers/ol/ol/source/vectoreventtype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/vectoreventtype.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/source/vectoreventtype.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/vectoreventtype.js diff --git a/client/javascript/externs/openLayers/ol/ol/source/vectortile.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/vectortile.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/source/vectortile.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/vectortile.js diff --git a/client/javascript/externs/openLayers/ol/ol/source/wmsservertype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/wmsservertype.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/source/wmsservertype.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/wmsservertype.js diff --git a/client/javascript/externs/openLayers/ol/ol/source/wmts.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/wmts.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/source/wmts.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/wmts.js diff --git a/client/javascript/externs/openLayers/ol/ol/source/wmtsrequestencoding.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/wmtsrequestencoding.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/source/wmtsrequestencoding.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/wmtsrequestencoding.js diff --git a/client/javascript/externs/openLayers/ol/ol/source/xyz.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/xyz.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/source/xyz.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/xyz.js diff --git a/client/javascript/externs/openLayers/ol/ol/source/zoomify.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/source/zoomify.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/source/zoomify.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/source/zoomify.js diff --git a/client/javascript/externs/openLayers/ol/ol/sphere.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/sphere.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/sphere.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/sphere.js diff --git a/client/javascript/externs/openLayers/ol/ol/string.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/string.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/string.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/string.js diff --git a/client/javascript/externs/openLayers/ol/ol/structs/linkedlist.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/structs/linkedlist.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/structs/linkedlist.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/structs/linkedlist.js diff --git a/client/javascript/externs/openLayers/ol/ol/structs/lrucache.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/structs/lrucache.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/structs/lrucache.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/structs/lrucache.js diff --git a/client/javascript/externs/openLayers/ol/ol/structs/priorityqueue.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/structs/priorityqueue.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/structs/priorityqueue.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/structs/priorityqueue.js diff --git a/client/javascript/externs/openLayers/ol/ol/structs/rbush.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/structs/rbush.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/structs/rbush.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/structs/rbush.js diff --git a/client/javascript/externs/openLayers/ol/ol/style.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/style.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/style.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/style.js diff --git a/client/javascript/externs/openLayers/ol/ol/style/atlas.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/style/atlas.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/style/atlas.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/style/atlas.js diff --git a/client/javascript/externs/openLayers/ol/ol/style/atlasmanager.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/style/atlasmanager.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/style/atlasmanager.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/style/atlasmanager.js diff --git a/client/javascript/externs/openLayers/ol/ol/style/circle.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/style/circle.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/style/circle.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/style/circle.js diff --git a/client/javascript/externs/openLayers/ol/ol/style/fill.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/style/fill.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/style/fill.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/style/fill.js diff --git a/client/javascript/externs/openLayers/ol/ol/style/icon.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/style/icon.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/style/icon.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/style/icon.js diff --git a/client/javascript/externs/openLayers/ol/ol/style/iconanchorunits.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/style/iconanchorunits.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/style/iconanchorunits.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/style/iconanchorunits.js diff --git a/client/javascript/externs/openLayers/ol/ol/style/iconimage.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/style/iconimage.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/style/iconimage.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/style/iconimage.js diff --git a/client/javascript/externs/openLayers/ol/ol/style/iconimagecache.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/style/iconimagecache.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/style/iconimagecache.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/style/iconimagecache.js diff --git a/client/javascript/externs/openLayers/ol/ol/style/iconorigin.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/style/iconorigin.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/style/iconorigin.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/style/iconorigin.js diff --git a/client/javascript/externs/openLayers/ol/ol/style/image.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/style/image.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/style/image.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/style/image.js diff --git a/client/javascript/externs/openLayers/ol/ol/style/index.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/style/index.jsdoc similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/style/index.jsdoc rename to src/vitis/client/javascript/externs/openLayers/ol/ol/style/index.jsdoc diff --git a/client/javascript/externs/openLayers/ol/ol/style/regularshape.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/style/regularshape.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/style/regularshape.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/style/regularshape.js diff --git a/client/javascript/externs/openLayers/ol/ol/style/stroke.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/style/stroke.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/style/stroke.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/style/stroke.js diff --git a/client/javascript/externs/openLayers/ol/ol/style/style.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/style/style.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/style/style.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/style/style.js diff --git a/client/javascript/externs/openLayers/ol/ol/style/text.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/style/text.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/style/text.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/style/text.js diff --git a/client/javascript/externs/openLayers/ol/ol/style/textplacement.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/style/textplacement.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/style/textplacement.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/style/textplacement.js diff --git a/client/javascript/externs/openLayers/ol/ol/tile.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/tile.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/tile.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/tile.js diff --git a/client/javascript/externs/openLayers/ol/ol/tilecache.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/tilecache.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/tilecache.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/tilecache.js diff --git a/client/javascript/externs/openLayers/ol/ol/tilecoord.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/tilecoord.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/tilecoord.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/tilecoord.js diff --git a/client/javascript/externs/openLayers/ol/ol/tilegrid.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/tilegrid.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/tilegrid.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/tilegrid.js diff --git a/client/javascript/externs/openLayers/ol/ol/tilegrid/index.jsdoc b/src/vitis/client/javascript/externs/openLayers/ol/ol/tilegrid/index.jsdoc similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/tilegrid/index.jsdoc rename to src/vitis/client/javascript/externs/openLayers/ol/ol/tilegrid/index.jsdoc diff --git a/client/javascript/externs/openLayers/ol/ol/tilegrid/tilegrid.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/tilegrid/tilegrid.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/tilegrid/tilegrid.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/tilegrid/tilegrid.js diff --git a/client/javascript/externs/openLayers/ol/ol/tilegrid/wmts.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/tilegrid/wmts.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/tilegrid/wmts.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/tilegrid/wmts.js diff --git a/client/javascript/externs/openLayers/ol/ol/tilequeue.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/tilequeue.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/tilequeue.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/tilequeue.js diff --git a/client/javascript/externs/openLayers/ol/ol/tilerange.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/tilerange.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/tilerange.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/tilerange.js diff --git a/client/javascript/externs/openLayers/ol/ol/tilestate.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/tilestate.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/tilestate.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/tilestate.js diff --git a/client/javascript/externs/openLayers/ol/ol/tileurlfunction.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/tileurlfunction.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/tileurlfunction.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/tileurlfunction.js diff --git a/client/javascript/externs/openLayers/ol/ol/transform.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/transform.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/transform.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/transform.js diff --git a/client/javascript/externs/openLayers/ol/ol/typedefs.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/typedefs.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/typedefs.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/typedefs.js diff --git a/client/javascript/externs/openLayers/ol/ol/uri.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/uri.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/uri.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/uri.js diff --git a/client/javascript/externs/openLayers/ol/ol/vec/mat4.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/vec/mat4.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/vec/mat4.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/vec/mat4.js diff --git a/client/javascript/externs/openLayers/ol/ol/vectorimagetile.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/vectorimagetile.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/vectorimagetile.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/vectorimagetile.js diff --git a/client/javascript/externs/openLayers/ol/ol/vectortile.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/vectortile.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/vectortile.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/vectortile.js diff --git a/client/javascript/externs/openLayers/ol/ol/view.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/view.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/view.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/view.js diff --git a/client/javascript/externs/openLayers/ol/ol/viewhint.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/viewhint.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/viewhint.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/viewhint.js diff --git a/client/javascript/externs/openLayers/ol/ol/viewproperty.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/viewproperty.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/viewproperty.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/viewproperty.js diff --git a/client/javascript/externs/openLayers/ol/ol/webgl.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/webgl.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/webgl.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/webgl.js diff --git a/client/javascript/externs/openLayers/ol/ol/webgl/buffer.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/buffer.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/webgl/buffer.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/buffer.js diff --git a/client/javascript/externs/openLayers/ol/ol/webgl/context.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/context.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/webgl/context.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/context.js diff --git a/client/javascript/externs/openLayers/ol/ol/webgl/contexteventtype.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/contexteventtype.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/webgl/contexteventtype.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/contexteventtype.js diff --git a/client/javascript/externs/openLayers/ol/ol/webgl/fragment.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/fragment.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/webgl/fragment.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/fragment.js diff --git a/client/javascript/externs/openLayers/ol/ol/webgl/shader.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/shader.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/webgl/shader.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/shader.js diff --git a/client/javascript/externs/openLayers/ol/ol/webgl/shader.mustache b/src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/shader.mustache similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/webgl/shader.mustache rename to src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/shader.mustache diff --git a/client/javascript/externs/openLayers/ol/ol/webgl/shaderlocations.mustache b/src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/shaderlocations.mustache similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/webgl/shaderlocations.mustache rename to src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/shaderlocations.mustache diff --git a/client/javascript/externs/openLayers/ol/ol/webgl/vertex.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/vertex.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/webgl/vertex.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/vertex.js diff --git a/client/javascript/externs/openLayers/ol/ol/xml.js b/src/vitis/client/javascript/externs/openLayers/ol/ol/xml.js similarity index 100% rename from client/javascript/externs/openLayers/ol/ol/xml.js rename to src/vitis/client/javascript/externs/openLayers/ol/ol/xml.js diff --git a/client/javascript/externs/openLayers/ol3-ext/licence.txt b/src/vitis/client/javascript/externs/openLayers/ol3-ext/licence.txt similarity index 100% rename from client/javascript/externs/openLayers/ol3-ext/licence.txt rename to src/vitis/client/javascript/externs/openLayers/ol3-ext/licence.txt diff --git a/client/javascript/externs/openLayers/ol3-ext/readme.txt b/src/vitis/client/javascript/externs/openLayers/ol3-ext/readme.txt similarity index 100% rename from client/javascript/externs/openLayers/ol3-ext/readme.txt rename to src/vitis/client/javascript/externs/openLayers/ol3-ext/readme.txt diff --git a/client/javascript/externs/openLayers/ol3-ext/style/fonts/fontanc.def.js b/src/vitis/client/javascript/externs/openLayers/ol3-ext/style/fonts/fontanc.def.js similarity index 100% rename from client/javascript/externs/openLayers/ol3-ext/style/fonts/fontanc.def.js rename to src/vitis/client/javascript/externs/openLayers/ol3-ext/style/fonts/fontanc.def.js diff --git a/client/javascript/externs/openLayers/ol3-ext/style/fonts/fontawesome.def.js b/src/vitis/client/javascript/externs/openLayers/ol3-ext/style/fonts/fontawesome.def.js similarity index 100% rename from client/javascript/externs/openLayers/ol3-ext/style/fonts/fontawesome.def.js rename to src/vitis/client/javascript/externs/openLayers/ol3-ext/style/fonts/fontawesome.def.js diff --git a/client/javascript/externs/openLayers/ol3-ext/style/fonts/fontveremes.def.js b/src/vitis/client/javascript/externs/openLayers/ol3-ext/style/fonts/fontveremes.def.js similarity index 100% rename from client/javascript/externs/openLayers/ol3-ext/style/fonts/fontveremes.def.js rename to src/vitis/client/javascript/externs/openLayers/ol3-ext/style/fonts/fontveremes.def.js diff --git a/client/javascript/externs/openLayers/ol3-ext/style/fontsymbol.js b/src/vitis/client/javascript/externs/openLayers/ol3-ext/style/fontsymbol.js similarity index 100% rename from client/javascript/externs/openLayers/ol3-ext/style/fontsymbol.js rename to src/vitis/client/javascript/externs/openLayers/ol3-ext/style/fontsymbol.js diff --git a/client/javascript/externs/openLayers/ol3-ext/style/shadowstyle.js b/src/vitis/client/javascript/externs/openLayers/ol3-ext/style/shadowstyle.js similarity index 100% rename from client/javascript/externs/openLayers/ol3-ext/style/shadowstyle.js rename to src/vitis/client/javascript/externs/openLayers/ol3-ext/style/shadowstyle.js diff --git a/client/javascript/externs/openLayers/ol3-ext/utils/ol.ordering.js b/src/vitis/client/javascript/externs/openLayers/ol3-ext/utils/ol.ordering.js similarity index 100% rename from client/javascript/externs/openLayers/ol3-ext/utils/ol.ordering.js rename to src/vitis/client/javascript/externs/openLayers/ol3-ext/utils/ol.ordering.js diff --git a/client/javascript/externs/openLayers/ol3-veremes/mobilemodify.js b/src/vitis/client/javascript/externs/openLayers/ol3-veremes/mobilemodify.js similarity index 100% rename from client/javascript/externs/openLayers/ol3-veremes/mobilemodify.js rename to src/vitis/client/javascript/externs/openLayers/ol3-veremes/mobilemodify.js diff --git a/client/javascript/externs/openLayers/ol3-veremes/ol.veremes.js b/src/vitis/client/javascript/externs/openLayers/ol3-veremes/ol.veremes.js similarity index 100% rename from client/javascript/externs/openLayers/ol3-veremes/ol.veremes.js rename to src/vitis/client/javascript/externs/openLayers/ol3-veremes/ol.veremes.js diff --git a/client/javascript/externs/rgraph/RGraph.bar_min.js b/src/vitis/client/javascript/externs/rgraph/RGraph.bar_min.js similarity index 100% rename from client/javascript/externs/rgraph/RGraph.bar_min.js rename to src/vitis/client/javascript/externs/rgraph/RGraph.bar_min.js diff --git a/client/javascript/externs/rgraph/RGraph.common.context_min.js b/src/vitis/client/javascript/externs/rgraph/RGraph.common.context_min.js similarity index 100% rename from client/javascript/externs/rgraph/RGraph.common.context_min.js rename to src/vitis/client/javascript/externs/rgraph/RGraph.common.context_min.js diff --git a/client/javascript/externs/rgraph/RGraph.common.core_min.js b/src/vitis/client/javascript/externs/rgraph/RGraph.common.core_min.js similarity index 100% rename from client/javascript/externs/rgraph/RGraph.common.core_min.js rename to src/vitis/client/javascript/externs/rgraph/RGraph.common.core_min.js diff --git a/client/javascript/externs/rgraph/RGraph.common.dynamic_min.js b/src/vitis/client/javascript/externs/rgraph/RGraph.common.dynamic_min.js similarity index 100% rename from client/javascript/externs/rgraph/RGraph.common.dynamic_min.js rename to src/vitis/client/javascript/externs/rgraph/RGraph.common.dynamic_min.js diff --git a/client/javascript/externs/rgraph/RGraph.common.effects_min.js b/src/vitis/client/javascript/externs/rgraph/RGraph.common.effects_min.js similarity index 100% rename from client/javascript/externs/rgraph/RGraph.common.effects_min.js rename to src/vitis/client/javascript/externs/rgraph/RGraph.common.effects_min.js diff --git a/client/javascript/externs/rgraph/RGraph.common.key_min.js b/src/vitis/client/javascript/externs/rgraph/RGraph.common.key_min.js similarity index 100% rename from client/javascript/externs/rgraph/RGraph.common.key_min.js rename to src/vitis/client/javascript/externs/rgraph/RGraph.common.key_min.js diff --git a/client/javascript/externs/rgraph/RGraph.common.tooltips_min.js b/src/vitis/client/javascript/externs/rgraph/RGraph.common.tooltips_min.js similarity index 100% rename from client/javascript/externs/rgraph/RGraph.common.tooltips_min.js rename to src/vitis/client/javascript/externs/rgraph/RGraph.common.tooltips_min.js diff --git a/client/javascript/externs/rgraph/RGraph.drawing.rect_min.js b/src/vitis/client/javascript/externs/rgraph/RGraph.drawing.rect_min.js similarity index 100% rename from client/javascript/externs/rgraph/RGraph.drawing.rect_min.js rename to src/vitis/client/javascript/externs/rgraph/RGraph.drawing.rect_min.js diff --git a/client/javascript/externs/rgraph/RGraph.drawing.text_min.js b/src/vitis/client/javascript/externs/rgraph/RGraph.drawing.text_min.js similarity index 100% rename from client/javascript/externs/rgraph/RGraph.drawing.text_min.js rename to src/vitis/client/javascript/externs/rgraph/RGraph.drawing.text_min.js diff --git a/client/javascript/externs/rgraph/RGraph.pie_min.js b/src/vitis/client/javascript/externs/rgraph/RGraph.pie_min.js similarity index 100% rename from client/javascript/externs/rgraph/RGraph.pie_min.js rename to src/vitis/client/javascript/externs/rgraph/RGraph.pie_min.js diff --git a/client/javascript/externs/rgraph/RGraph.scatter_min.js b/src/vitis/client/javascript/externs/rgraph/RGraph.scatter_min.js similarity index 100% rename from client/javascript/externs/rgraph/RGraph.scatter_min.js rename to src/vitis/client/javascript/externs/rgraph/RGraph.scatter_min.js diff --git a/client/javascript/externs/scripts_cryptage.js b/src/vitis/client/javascript/externs/scripts_cryptage.js similarity index 100% rename from client/javascript/externs/scripts_cryptage.js rename to src/vitis/client/javascript/externs/scripts_cryptage.js diff --git a/client/javascript/externs/showdown/showdown.js b/src/vitis/client/javascript/externs/showdown/showdown.js similarity index 100% rename from client/javascript/externs/showdown/showdown.js rename to src/vitis/client/javascript/externs/showdown/showdown.js diff --git a/client/javascript/externs/showdown/showdown.js.map b/src/vitis/client/javascript/externs/showdown/showdown.js.map similarity index 100% rename from client/javascript/externs/showdown/showdown.js.map rename to src/vitis/client/javascript/externs/showdown/showdown.js.map diff --git a/client/javascript/externs/showdown/showdown.min.js b/src/vitis/client/javascript/externs/showdown/showdown.min.js similarity index 100% rename from client/javascript/externs/showdown/showdown.min.js rename to src/vitis/client/javascript/externs/showdown/showdown.min.js diff --git a/client/javascript/externs/showdown/showdown.min.js.map b/src/vitis/client/javascript/externs/showdown/showdown.min.js.map similarity index 100% rename from client/javascript/externs/showdown/showdown.min.js.map rename to src/vitis/client/javascript/externs/showdown/showdown.min.js.map diff --git a/client/javascript/externs/studio/javascript/app/ElementForm.js b/src/vitis/client/javascript/externs/studio/javascript/app/ElementForm.js similarity index 100% rename from client/javascript/externs/studio/javascript/app/ElementForm.js rename to src/vitis/client/javascript/externs/studio/javascript/app/ElementForm.js diff --git a/client/javascript/externs/studio/javascript/app/FormBuilder.js b/src/vitis/client/javascript/externs/studio/javascript/app/FormBuilder.js similarity index 100% rename from client/javascript/externs/studio/javascript/app/FormBuilder.js rename to src/vitis/client/javascript/externs/studio/javascript/app/FormBuilder.js diff --git a/client/javascript/externs/studio/javascript/app/FormTools.js b/src/vitis/client/javascript/externs/studio/javascript/app/FormTools.js similarity index 100% rename from client/javascript/externs/studio/javascript/app/FormTools.js rename to src/vitis/client/javascript/externs/studio/javascript/app/FormTools.js diff --git a/client/javascript/externs/studio/javascript/app/JsonLoader.js b/src/vitis/client/javascript/externs/studio/javascript/app/JsonLoader.js similarity index 100% rename from client/javascript/externs/studio/javascript/app/JsonLoader.js rename to src/vitis/client/javascript/externs/studio/javascript/app/JsonLoader.js diff --git a/client/javascript/externs/studio/javascript/app/Utils.js b/src/vitis/client/javascript/externs/studio/javascript/app/Utils.js similarity index 100% rename from client/javascript/externs/studio/javascript/app/Utils.js rename to src/vitis/client/javascript/externs/studio/javascript/app/Utils.js diff --git a/client/javascript/externs/studio/javascript/app/Visualizer.js b/src/vitis/client/javascript/externs/studio/javascript/app/Visualizer.js similarity index 100% rename from client/javascript/externs/studio/javascript/app/Visualizer.js rename to src/vitis/client/javascript/externs/studio/javascript/app/Visualizer.js diff --git a/client/javascript/externs/studio/javascript/app/VisualizerMode/CssMode.js b/src/vitis/client/javascript/externs/studio/javascript/app/VisualizerMode/CssMode.js similarity index 100% rename from client/javascript/externs/studio/javascript/app/VisualizerMode/CssMode.js rename to src/vitis/client/javascript/externs/studio/javascript/app/VisualizerMode/CssMode.js diff --git a/client/javascript/externs/studio/javascript/app/VisualizerMode/FormMode.js b/src/vitis/client/javascript/externs/studio/javascript/app/VisualizerMode/FormMode.js similarity index 100% rename from client/javascript/externs/studio/javascript/app/VisualizerMode/FormMode.js rename to src/vitis/client/javascript/externs/studio/javascript/app/VisualizerMode/FormMode.js diff --git a/client/javascript/externs/studio/javascript/app/VisualizerMode/JsMode.js b/src/vitis/client/javascript/externs/studio/javascript/app/VisualizerMode/JsMode.js similarity index 100% rename from client/javascript/externs/studio/javascript/app/VisualizerMode/JsMode.js rename to src/vitis/client/javascript/externs/studio/javascript/app/VisualizerMode/JsMode.js diff --git a/client/javascript/externs/studio/javascript/app/VisualizerMode/JsonMode.js b/src/vitis/client/javascript/externs/studio/javascript/app/VisualizerMode/JsonMode.js similarity index 100% rename from client/javascript/externs/studio/javascript/app/VisualizerMode/JsonMode.js rename to src/vitis/client/javascript/externs/studio/javascript/app/VisualizerMode/JsonMode.js diff --git a/client/javascript/externs/studio/lang/lang-en.json b/src/vitis/client/javascript/externs/studio/lang/lang-en.json similarity index 100% rename from client/javascript/externs/studio/lang/lang-en.json rename to src/vitis/client/javascript/externs/studio/lang/lang-en.json diff --git a/client/javascript/externs/studio/lang/lang-fr.json b/src/vitis/client/javascript/externs/studio/lang/lang-fr.json similarity index 100% rename from client/javascript/externs/studio/lang/lang-fr.json rename to src/vitis/client/javascript/externs/studio/lang/lang-fr.json diff --git a/client/javascript/externs/studio/less/CodeMirror.less b/src/vitis/client/javascript/externs/studio/less/CodeMirror.less similarity index 100% rename from client/javascript/externs/studio/less/CodeMirror.less rename to src/vitis/client/javascript/externs/studio/less/CodeMirror.less diff --git a/client/javascript/externs/studio/less/studio.less b/src/vitis/client/javascript/externs/studio/less/studio.less similarity index 100% rename from client/javascript/externs/studio/less/studio.less rename to src/vitis/client/javascript/externs/studio/less/studio.less diff --git a/client/javascript/externs/studio/properties/properties.js b/src/vitis/client/javascript/externs/studio/properties/properties.js similarity index 100% rename from client/javascript/externs/studio/properties/properties.js rename to src/vitis/client/javascript/externs/studio/properties/properties.js diff --git a/client/javascript/externs/studio/templates/Componant/Map.html b/src/vitis/client/javascript/externs/studio/templates/Componant/Map.html similarity index 100% rename from client/javascript/externs/studio/templates/Componant/Map.html rename to src/vitis/client/javascript/externs/studio/templates/Componant/Map.html diff --git a/client/javascript/externs/studio/templates/ElementForm.html b/src/vitis/client/javascript/externs/studio/templates/ElementForm.html similarity index 100% rename from client/javascript/externs/studio/templates/ElementForm.html rename to src/vitis/client/javascript/externs/studio/templates/ElementForm.html diff --git a/client/javascript/externs/studio/templates/FormTools.html b/src/vitis/client/javascript/externs/studio/templates/FormTools.html similarity index 100% rename from client/javascript/externs/studio/templates/FormTools.html rename to src/vitis/client/javascript/externs/studio/templates/FormTools.html diff --git a/client/javascript/externs/studio/templates/JsonLoader.html b/src/vitis/client/javascript/externs/studio/templates/JsonLoader.html similarity index 100% rename from client/javascript/externs/studio/templates/JsonLoader.html rename to src/vitis/client/javascript/externs/studio/templates/JsonLoader.html diff --git a/client/javascript/externs/studio/templates/MainTemplate.html b/src/vitis/client/javascript/externs/studio/templates/MainTemplate.html similarity index 100% rename from client/javascript/externs/studio/templates/MainTemplate.html rename to src/vitis/client/javascript/externs/studio/templates/MainTemplate.html diff --git a/client/javascript/externs/studio/templates/Visualizer.html b/src/vitis/client/javascript/externs/studio/templates/Visualizer.html similarity index 100% rename from client/javascript/externs/studio/templates/Visualizer.html rename to src/vitis/client/javascript/externs/studio/templates/Visualizer.html diff --git a/client/javascript/externs/studio/templates/VisualizerMode/CssMode.html b/src/vitis/client/javascript/externs/studio/templates/VisualizerMode/CssMode.html similarity index 100% rename from client/javascript/externs/studio/templates/VisualizerMode/CssMode.html rename to src/vitis/client/javascript/externs/studio/templates/VisualizerMode/CssMode.html diff --git a/client/javascript/externs/studio/templates/VisualizerMode/FormMode.html b/src/vitis/client/javascript/externs/studio/templates/VisualizerMode/FormMode.html similarity index 100% rename from client/javascript/externs/studio/templates/VisualizerMode/FormMode.html rename to src/vitis/client/javascript/externs/studio/templates/VisualizerMode/FormMode.html diff --git a/client/javascript/externs/studio/templates/VisualizerMode/JsMode.html b/src/vitis/client/javascript/externs/studio/templates/VisualizerMode/JsMode.html similarity index 100% rename from client/javascript/externs/studio/templates/VisualizerMode/JsMode.html rename to src/vitis/client/javascript/externs/studio/templates/VisualizerMode/JsMode.html diff --git a/client/javascript/externs/studio/templates/VisualizerMode/JsonMode.html b/src/vitis/client/javascript/externs/studio/templates/VisualizerMode/JsonMode.html similarity index 100% rename from client/javascript/externs/studio/templates/VisualizerMode/JsonMode.html rename to src/vitis/client/javascript/externs/studio/templates/VisualizerMode/JsonMode.html diff --git a/client/javascript/externs/tinymce/LICENSE.TXT b/src/vitis/client/javascript/externs/tinymce/LICENSE.TXT similarity index 100% rename from client/javascript/externs/tinymce/LICENSE.TXT rename to src/vitis/client/javascript/externs/tinymce/LICENSE.TXT diff --git a/client/javascript/externs/tinymce/langs/fr_FR.js b/src/vitis/client/javascript/externs/tinymce/langs/fr_FR.js similarity index 100% rename from client/javascript/externs/tinymce/langs/fr_FR.js rename to src/vitis/client/javascript/externs/tinymce/langs/fr_FR.js diff --git a/client/javascript/externs/tinymce/plugins/image/plugin.min.js b/src/vitis/client/javascript/externs/tinymce/plugins/image/plugin.min.js similarity index 100% rename from client/javascript/externs/tinymce/plugins/image/plugin.min.js rename to src/vitis/client/javascript/externs/tinymce/plugins/image/plugin.min.js diff --git a/client/javascript/externs/tinymce/skins/lightgray/content.inline.min.css b/src/vitis/client/javascript/externs/tinymce/skins/lightgray/content.inline.min.css similarity index 100% rename from client/javascript/externs/tinymce/skins/lightgray/content.inline.min.css rename to src/vitis/client/javascript/externs/tinymce/skins/lightgray/content.inline.min.css diff --git a/client/javascript/externs/tinymce/skins/lightgray/content.min.css b/src/vitis/client/javascript/externs/tinymce/skins/lightgray/content.min.css similarity index 100% rename from client/javascript/externs/tinymce/skins/lightgray/content.min.css rename to src/vitis/client/javascript/externs/tinymce/skins/lightgray/content.min.css diff --git a/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.eot b/src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.eot similarity index 100% rename from client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.eot rename to src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.eot diff --git a/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.svg b/src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.svg similarity index 100% rename from client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.svg rename to src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.svg diff --git a/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.ttf b/src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.ttf similarity index 100% rename from client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.ttf rename to src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.ttf diff --git a/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.woff b/src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.woff similarity index 100% rename from client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.woff rename to src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.woff diff --git a/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.eot b/src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.eot similarity index 100% rename from client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.eot rename to src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.eot diff --git a/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.svg b/src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.svg similarity index 100% rename from client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.svg rename to src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.svg diff --git a/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.ttf b/src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.ttf similarity index 100% rename from client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.ttf rename to src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.ttf diff --git a/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.woff b/src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.woff similarity index 100% rename from client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.woff rename to src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.woff diff --git a/client/javascript/externs/tinymce/skins/lightgray/img/anchor.gif b/src/vitis/client/javascript/externs/tinymce/skins/lightgray/img/anchor.gif similarity index 100% rename from client/javascript/externs/tinymce/skins/lightgray/img/anchor.gif rename to src/vitis/client/javascript/externs/tinymce/skins/lightgray/img/anchor.gif diff --git a/client/javascript/externs/tinymce/skins/lightgray/img/loader.gif b/src/vitis/client/javascript/externs/tinymce/skins/lightgray/img/loader.gif similarity index 100% rename from client/javascript/externs/tinymce/skins/lightgray/img/loader.gif rename to src/vitis/client/javascript/externs/tinymce/skins/lightgray/img/loader.gif diff --git a/client/javascript/externs/tinymce/skins/lightgray/img/object.gif b/src/vitis/client/javascript/externs/tinymce/skins/lightgray/img/object.gif similarity index 100% rename from client/javascript/externs/tinymce/skins/lightgray/img/object.gif rename to src/vitis/client/javascript/externs/tinymce/skins/lightgray/img/object.gif diff --git a/client/javascript/externs/tinymce/skins/lightgray/img/trans.gif b/src/vitis/client/javascript/externs/tinymce/skins/lightgray/img/trans.gif similarity index 100% rename from client/javascript/externs/tinymce/skins/lightgray/img/trans.gif rename to src/vitis/client/javascript/externs/tinymce/skins/lightgray/img/trans.gif diff --git a/client/javascript/externs/tinymce/skins/lightgray/skin.ie7.min.css b/src/vitis/client/javascript/externs/tinymce/skins/lightgray/skin.ie7.min.css similarity index 100% rename from client/javascript/externs/tinymce/skins/lightgray/skin.ie7.min.css rename to src/vitis/client/javascript/externs/tinymce/skins/lightgray/skin.ie7.min.css diff --git a/client/javascript/externs/tinymce/skins/lightgray/skin.min.css b/src/vitis/client/javascript/externs/tinymce/skins/lightgray/skin.min.css similarity index 100% rename from client/javascript/externs/tinymce/skins/lightgray/skin.min.css rename to src/vitis/client/javascript/externs/tinymce/skins/lightgray/skin.min.css diff --git a/client/javascript/externs/tinymce/themes/modern/theme.min.js b/src/vitis/client/javascript/externs/tinymce/themes/modern/theme.min.js similarity index 100% rename from client/javascript/externs/tinymce/themes/modern/theme.min.js rename to src/vitis/client/javascript/externs/tinymce/themes/modern/theme.min.js diff --git a/client/javascript/externs/tinymce/tinymce.min.js b/src/vitis/client/javascript/externs/tinymce/tinymce.min.js similarity index 100% rename from client/javascript/externs/tinymce/tinymce.min.js rename to src/vitis/client/javascript/externs/tinymce/tinymce.min.js diff --git a/client/javascript/externs/underscore-min.js b/src/vitis/client/javascript/externs/underscore-min.js similarity index 100% rename from client/javascript/externs/underscore-min.js rename to src/vitis/client/javascript/externs/underscore-min.js diff --git a/client/javascript/externs/underscore.js b/src/vitis/client/javascript/externs/underscore.js similarity index 100% rename from client/javascript/externs/underscore.js rename to src/vitis/client/javascript/externs/underscore.js diff --git a/client/javascript/externs/viewer/Apache-License-2.0.txt b/src/vitis/client/javascript/externs/viewer/Apache-License-2.0.txt similarity index 100% rename from client/javascript/externs/viewer/Apache-License-2.0.txt rename to src/vitis/client/javascript/externs/viewer/Apache-License-2.0.txt diff --git a/client/javascript/externs/viewer/viewer.min.js b/src/vitis/client/javascript/externs/viewer/viewer.min.js similarity index 100% rename from client/javascript/externs/viewer/viewer.min.js rename to src/vitis/client/javascript/externs/viewer/viewer.min.js diff --git a/client/javascript/require/requireVitis.js b/src/vitis/client/javascript/require/requireVitis.js similarity index 100% rename from client/javascript/require/requireVitis.js rename to src/vitis/client/javascript/require/requireVitis.js diff --git a/client/javascript/test/e2e/Output/order/htmlReport.html b/src/vitis/client/javascript/test/e2e/Output/order/htmlReport.html similarity index 100% rename from client/javascript/test/e2e/Output/order/htmlReport.html rename to src/vitis/client/javascript/test/e2e/Output/order/htmlReport.html diff --git a/client/javascript/test/e2e/Output/order/images/1fe7143891469e980d1fcca05a66b3a2.png b/src/vitis/client/javascript/test/e2e/Output/order/images/1fe7143891469e980d1fcca05a66b3a2.png similarity index 100% rename from client/javascript/test/e2e/Output/order/images/1fe7143891469e980d1fcca05a66b3a2.png rename to src/vitis/client/javascript/test/e2e/Output/order/images/1fe7143891469e980d1fcca05a66b3a2.png diff --git a/client/javascript/test/e2e/Output/order/images/22a14751fa17bd62335ee88ba6c6f9e6.png b/src/vitis/client/javascript/test/e2e/Output/order/images/22a14751fa17bd62335ee88ba6c6f9e6.png similarity index 100% rename from client/javascript/test/e2e/Output/order/images/22a14751fa17bd62335ee88ba6c6f9e6.png rename to src/vitis/client/javascript/test/e2e/Output/order/images/22a14751fa17bd62335ee88ba6c6f9e6.png diff --git a/client/javascript/test/e2e/Output/order/images/286dc054fdb1ed4e3c1a14730da91fe3.png b/src/vitis/client/javascript/test/e2e/Output/order/images/286dc054fdb1ed4e3c1a14730da91fe3.png similarity index 100% rename from client/javascript/test/e2e/Output/order/images/286dc054fdb1ed4e3c1a14730da91fe3.png rename to src/vitis/client/javascript/test/e2e/Output/order/images/286dc054fdb1ed4e3c1a14730da91fe3.png diff --git a/client/javascript/test/e2e/Output/order/images/446e6e12b1a4a349745acaa42b1fd65d.png b/src/vitis/client/javascript/test/e2e/Output/order/images/446e6e12b1a4a349745acaa42b1fd65d.png similarity index 100% rename from client/javascript/test/e2e/Output/order/images/446e6e12b1a4a349745acaa42b1fd65d.png rename to src/vitis/client/javascript/test/e2e/Output/order/images/446e6e12b1a4a349745acaa42b1fd65d.png diff --git a/client/javascript/test/e2e/Output/order/images/4e6851a1377af65074210820d5903ea4.png b/src/vitis/client/javascript/test/e2e/Output/order/images/4e6851a1377af65074210820d5903ea4.png similarity index 100% rename from client/javascript/test/e2e/Output/order/images/4e6851a1377af65074210820d5903ea4.png rename to src/vitis/client/javascript/test/e2e/Output/order/images/4e6851a1377af65074210820d5903ea4.png diff --git a/client/javascript/test/e2e/Output/order/images/52280521fa920cd916802fa7bf0752c1.png b/src/vitis/client/javascript/test/e2e/Output/order/images/52280521fa920cd916802fa7bf0752c1.png similarity index 100% rename from client/javascript/test/e2e/Output/order/images/52280521fa920cd916802fa7bf0752c1.png rename to src/vitis/client/javascript/test/e2e/Output/order/images/52280521fa920cd916802fa7bf0752c1.png diff --git a/client/javascript/test/e2e/Output/order/images/565819f55fb9493820b1f462eb1469af.png b/src/vitis/client/javascript/test/e2e/Output/order/images/565819f55fb9493820b1f462eb1469af.png similarity index 100% rename from client/javascript/test/e2e/Output/order/images/565819f55fb9493820b1f462eb1469af.png rename to src/vitis/client/javascript/test/e2e/Output/order/images/565819f55fb9493820b1f462eb1469af.png diff --git a/client/javascript/test/e2e/Output/order/images/5ef9ed38ebad6379a04897ec6f383aeb.png b/src/vitis/client/javascript/test/e2e/Output/order/images/5ef9ed38ebad6379a04897ec6f383aeb.png similarity index 100% rename from client/javascript/test/e2e/Output/order/images/5ef9ed38ebad6379a04897ec6f383aeb.png rename to src/vitis/client/javascript/test/e2e/Output/order/images/5ef9ed38ebad6379a04897ec6f383aeb.png diff --git a/client/javascript/test/e2e/Output/order/images/6c0be7e24610a0144c94df2e1c691718.png b/src/vitis/client/javascript/test/e2e/Output/order/images/6c0be7e24610a0144c94df2e1c691718.png similarity index 100% rename from client/javascript/test/e2e/Output/order/images/6c0be7e24610a0144c94df2e1c691718.png rename to src/vitis/client/javascript/test/e2e/Output/order/images/6c0be7e24610a0144c94df2e1c691718.png diff --git a/client/javascript/test/e2e/Output/order/images/85bd21280813079f2797df7a66b953ec.png b/src/vitis/client/javascript/test/e2e/Output/order/images/85bd21280813079f2797df7a66b953ec.png similarity index 100% rename from client/javascript/test/e2e/Output/order/images/85bd21280813079f2797df7a66b953ec.png rename to src/vitis/client/javascript/test/e2e/Output/order/images/85bd21280813079f2797df7a66b953ec.png diff --git a/client/javascript/test/e2e/Output/order/images/9d224f9d204337458fa46ab0f4b4a3f9.png b/src/vitis/client/javascript/test/e2e/Output/order/images/9d224f9d204337458fa46ab0f4b4a3f9.png similarity index 100% rename from client/javascript/test/e2e/Output/order/images/9d224f9d204337458fa46ab0f4b4a3f9.png rename to src/vitis/client/javascript/test/e2e/Output/order/images/9d224f9d204337458fa46ab0f4b4a3f9.png diff --git a/client/javascript/test/e2e/Output/order/images/a971981cadcc1dafd26000f39ea8a68a.png b/src/vitis/client/javascript/test/e2e/Output/order/images/a971981cadcc1dafd26000f39ea8a68a.png similarity index 100% rename from client/javascript/test/e2e/Output/order/images/a971981cadcc1dafd26000f39ea8a68a.png rename to src/vitis/client/javascript/test/e2e/Output/order/images/a971981cadcc1dafd26000f39ea8a68a.png diff --git a/client/javascript/test/e2e/Output/order/images/aa05ad4c25af482047fb6ea3951a4ed9.png b/src/vitis/client/javascript/test/e2e/Output/order/images/aa05ad4c25af482047fb6ea3951a4ed9.png similarity index 100% rename from client/javascript/test/e2e/Output/order/images/aa05ad4c25af482047fb6ea3951a4ed9.png rename to src/vitis/client/javascript/test/e2e/Output/order/images/aa05ad4c25af482047fb6ea3951a4ed9.png diff --git a/client/javascript/test/e2e/Output/order/images/cb30486ebf3bd7f9aaa687cc51e07134.png b/src/vitis/client/javascript/test/e2e/Output/order/images/cb30486ebf3bd7f9aaa687cc51e07134.png similarity index 100% rename from client/javascript/test/e2e/Output/order/images/cb30486ebf3bd7f9aaa687cc51e07134.png rename to src/vitis/client/javascript/test/e2e/Output/order/images/cb30486ebf3bd7f9aaa687cc51e07134.png diff --git a/client/javascript/test/e2e/Output/order/images/d236806b20deffd8ce0f6393acda549e.png b/src/vitis/client/javascript/test/e2e/Output/order/images/d236806b20deffd8ce0f6393acda549e.png similarity index 100% rename from client/javascript/test/e2e/Output/order/images/d236806b20deffd8ce0f6393acda549e.png rename to src/vitis/client/javascript/test/e2e/Output/order/images/d236806b20deffd8ce0f6393acda549e.png diff --git a/client/javascript/test/e2e/Output/order/images/e11cf5a8b029208fb74fb66c82acc314.png b/src/vitis/client/javascript/test/e2e/Output/order/images/e11cf5a8b029208fb74fb66c82acc314.png similarity index 100% rename from client/javascript/test/e2e/Output/order/images/e11cf5a8b029208fb74fb66c82acc314.png rename to src/vitis/client/javascript/test/e2e/Output/order/images/e11cf5a8b029208fb74fb66c82acc314.png diff --git a/client/javascript/test/e2e/Output/order/images/fd3ebf7f15da963e0243b0763ccf4888.png b/src/vitis/client/javascript/test/e2e/Output/order/images/fd3ebf7f15da963e0243b0763ccf4888.png similarity index 100% rename from client/javascript/test/e2e/Output/order/images/fd3ebf7f15da963e0243b0763ccf4888.png rename to src/vitis/client/javascript/test/e2e/Output/order/images/fd3ebf7f15da963e0243b0763ccf4888.png diff --git a/client/javascript/test/e2e/Output/publication/htmlReport.html b/src/vitis/client/javascript/test/e2e/Output/publication/htmlReport.html similarity index 100% rename from client/javascript/test/e2e/Output/publication/htmlReport.html rename to src/vitis/client/javascript/test/e2e/Output/publication/htmlReport.html diff --git a/client/javascript/test/e2e/Output/publication/images/1a593987e7ca4240d8dfa7d6611b79e7.png b/src/vitis/client/javascript/test/e2e/Output/publication/images/1a593987e7ca4240d8dfa7d6611b79e7.png similarity index 100% rename from client/javascript/test/e2e/Output/publication/images/1a593987e7ca4240d8dfa7d6611b79e7.png rename to src/vitis/client/javascript/test/e2e/Output/publication/images/1a593987e7ca4240d8dfa7d6611b79e7.png diff --git a/client/javascript/test/e2e/Output/publication/images/29ff6bceadd409d2da0d4e1ffe3146ec.png b/src/vitis/client/javascript/test/e2e/Output/publication/images/29ff6bceadd409d2da0d4e1ffe3146ec.png similarity index 100% rename from client/javascript/test/e2e/Output/publication/images/29ff6bceadd409d2da0d4e1ffe3146ec.png rename to src/vitis/client/javascript/test/e2e/Output/publication/images/29ff6bceadd409d2da0d4e1ffe3146ec.png diff --git a/client/javascript/test/e2e/Output/publication/images/31d7ecf9dd49ad85104ef4b491582c27.png b/src/vitis/client/javascript/test/e2e/Output/publication/images/31d7ecf9dd49ad85104ef4b491582c27.png similarity index 100% rename from client/javascript/test/e2e/Output/publication/images/31d7ecf9dd49ad85104ef4b491582c27.png rename to src/vitis/client/javascript/test/e2e/Output/publication/images/31d7ecf9dd49ad85104ef4b491582c27.png diff --git a/client/javascript/test/e2e/Output/publication/images/3d588c2cc178ebbc6085fdbac873049b.png b/src/vitis/client/javascript/test/e2e/Output/publication/images/3d588c2cc178ebbc6085fdbac873049b.png similarity index 100% rename from client/javascript/test/e2e/Output/publication/images/3d588c2cc178ebbc6085fdbac873049b.png rename to src/vitis/client/javascript/test/e2e/Output/publication/images/3d588c2cc178ebbc6085fdbac873049b.png diff --git a/client/javascript/test/e2e/Output/publication/images/66864911363c5dfa802360f4cd169d15.png b/src/vitis/client/javascript/test/e2e/Output/publication/images/66864911363c5dfa802360f4cd169d15.png similarity index 100% rename from client/javascript/test/e2e/Output/publication/images/66864911363c5dfa802360f4cd169d15.png rename to src/vitis/client/javascript/test/e2e/Output/publication/images/66864911363c5dfa802360f4cd169d15.png diff --git a/client/javascript/test/e2e/Output/publication/images/71acb5849026bc31c2e1a3efaf750c8c.png b/src/vitis/client/javascript/test/e2e/Output/publication/images/71acb5849026bc31c2e1a3efaf750c8c.png similarity index 100% rename from client/javascript/test/e2e/Output/publication/images/71acb5849026bc31c2e1a3efaf750c8c.png rename to src/vitis/client/javascript/test/e2e/Output/publication/images/71acb5849026bc31c2e1a3efaf750c8c.png diff --git a/client/javascript/test/e2e/Output/publication/images/859d507231ab559be0caa350c33361b0.png b/src/vitis/client/javascript/test/e2e/Output/publication/images/859d507231ab559be0caa350c33361b0.png similarity index 100% rename from client/javascript/test/e2e/Output/publication/images/859d507231ab559be0caa350c33361b0.png rename to src/vitis/client/javascript/test/e2e/Output/publication/images/859d507231ab559be0caa350c33361b0.png diff --git a/client/javascript/test/e2e/Output/publication/images/9bbbcfee24b1eeadfe4cbebce3d68f37.png b/src/vitis/client/javascript/test/e2e/Output/publication/images/9bbbcfee24b1eeadfe4cbebce3d68f37.png similarity index 100% rename from client/javascript/test/e2e/Output/publication/images/9bbbcfee24b1eeadfe4cbebce3d68f37.png rename to src/vitis/client/javascript/test/e2e/Output/publication/images/9bbbcfee24b1eeadfe4cbebce3d68f37.png diff --git a/client/javascript/test/e2e/Output/publication/images/ac9d916cef66cf3b0c6dc04361fc8c7a.png b/src/vitis/client/javascript/test/e2e/Output/publication/images/ac9d916cef66cf3b0c6dc04361fc8c7a.png similarity index 100% rename from client/javascript/test/e2e/Output/publication/images/ac9d916cef66cf3b0c6dc04361fc8c7a.png rename to src/vitis/client/javascript/test/e2e/Output/publication/images/ac9d916cef66cf3b0c6dc04361fc8c7a.png diff --git a/client/javascript/test/e2e/Output/publication/images/b9c0bafaae0a695509eb679f32d7bbc4.png b/src/vitis/client/javascript/test/e2e/Output/publication/images/b9c0bafaae0a695509eb679f32d7bbc4.png similarity index 100% rename from client/javascript/test/e2e/Output/publication/images/b9c0bafaae0a695509eb679f32d7bbc4.png rename to src/vitis/client/javascript/test/e2e/Output/publication/images/b9c0bafaae0a695509eb679f32d7bbc4.png diff --git a/client/javascript/test/e2e/Output/publication/images/b9ddfa35957bf67b37ae22b31d8d2467.png b/src/vitis/client/javascript/test/e2e/Output/publication/images/b9ddfa35957bf67b37ae22b31d8d2467.png similarity index 100% rename from client/javascript/test/e2e/Output/publication/images/b9ddfa35957bf67b37ae22b31d8d2467.png rename to src/vitis/client/javascript/test/e2e/Output/publication/images/b9ddfa35957bf67b37ae22b31d8d2467.png diff --git a/client/javascript/test/e2e/Output/publication/images/c4beb465fd449624d359f3471d6ee4c1.png b/src/vitis/client/javascript/test/e2e/Output/publication/images/c4beb465fd449624d359f3471d6ee4c1.png similarity index 100% rename from client/javascript/test/e2e/Output/publication/images/c4beb465fd449624d359f3471d6ee4c1.png rename to src/vitis/client/javascript/test/e2e/Output/publication/images/c4beb465fd449624d359f3471d6ee4c1.png diff --git a/client/javascript/test/e2e/Output/publication/images/d044896b4c0e135963e4cc03d2381d56.png b/src/vitis/client/javascript/test/e2e/Output/publication/images/d044896b4c0e135963e4cc03d2381d56.png similarity index 100% rename from client/javascript/test/e2e/Output/publication/images/d044896b4c0e135963e4cc03d2381d56.png rename to src/vitis/client/javascript/test/e2e/Output/publication/images/d044896b4c0e135963e4cc03d2381d56.png diff --git a/client/javascript/test/e2e/Output/publication/images/e0eec7bfffe9f6b747cb85db357889a0.png b/src/vitis/client/javascript/test/e2e/Output/publication/images/e0eec7bfffe9f6b747cb85db357889a0.png similarity index 100% rename from client/javascript/test/e2e/Output/publication/images/e0eec7bfffe9f6b747cb85db357889a0.png rename to src/vitis/client/javascript/test/e2e/Output/publication/images/e0eec7bfffe9f6b747cb85db357889a0.png diff --git a/client/javascript/test/e2e/Output/publication/images/e589e1728c06bfa8de1a8a9ce5a24b4d.png b/src/vitis/client/javascript/test/e2e/Output/publication/images/e589e1728c06bfa8de1a8a9ce5a24b4d.png similarity index 100% rename from client/javascript/test/e2e/Output/publication/images/e589e1728c06bfa8de1a8a9ce5a24b4d.png rename to src/vitis/client/javascript/test/e2e/Output/publication/images/e589e1728c06bfa8de1a8a9ce5a24b4d.png diff --git a/client/javascript/test/e2e/Output/publication/images/e630b1b432c5ec391a0625040a7b7ba8.png b/src/vitis/client/javascript/test/e2e/Output/publication/images/e630b1b432c5ec391a0625040a7b7ba8.png similarity index 100% rename from client/javascript/test/e2e/Output/publication/images/e630b1b432c5ec391a0625040a7b7ba8.png rename to src/vitis/client/javascript/test/e2e/Output/publication/images/e630b1b432c5ec391a0625040a7b7ba8.png diff --git a/client/javascript/test/e2e/Output/publication/images/ff2cdf03ef3a270449425608d47b23a0.png b/src/vitis/client/javascript/test/e2e/Output/publication/images/ff2cdf03ef3a270449425608d47b23a0.png similarity index 100% rename from client/javascript/test/e2e/Output/publication/images/ff2cdf03ef3a270449425608d47b23a0.png rename to src/vitis/client/javascript/test/e2e/Output/publication/images/ff2cdf03ef3a270449425608d47b23a0.png diff --git a/client/javascript/test/e2e/VeremesTest.js b/src/vitis/client/javascript/test/e2e/VeremesTest.js similarity index 100% rename from client/javascript/test/e2e/VeremesTest.js rename to src/vitis/client/javascript/test/e2e/VeremesTest.js diff --git a/client/javascript/test/e2e/cu_vitis_abonnement.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_abonnement.bat similarity index 100% rename from client/javascript/test/e2e/cu_vitis_abonnement.bat rename to src/vitis/client/javascript/test/e2e/cu_vitis_abonnement.bat diff --git a/client/javascript/test/e2e/cu_vitis_ad.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_ad.bat similarity index 100% rename from client/javascript/test/e2e/cu_vitis_ad.bat rename to src/vitis/client/javascript/test/e2e/cu_vitis_ad.bat diff --git a/client/javascript/test/e2e/cu_vitis_categorie.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_categorie.bat similarity index 100% rename from client/javascript/test/e2e/cu_vitis_categorie.bat rename to src/vitis/client/javascript/test/e2e/cu_vitis_categorie.bat diff --git a/client/javascript/test/e2e/cu_vitis_depot.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_depot.bat similarity index 100% rename from client/javascript/test/e2e/cu_vitis_depot.bat rename to src/vitis/client/javascript/test/e2e/cu_vitis_depot.bat diff --git a/client/javascript/test/e2e/cu_vitis_fichiers_interdits.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_fichiers_interdits.bat similarity index 100% rename from client/javascript/test/e2e/cu_vitis_fichiers_interdits.bat rename to src/vitis/client/javascript/test/e2e/cu_vitis_fichiers_interdits.bat diff --git a/client/javascript/test/e2e/cu_vitis_filter.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_filter.bat similarity index 100% rename from client/javascript/test/e2e/cu_vitis_filter.bat rename to src/vitis/client/javascript/test/e2e/cu_vitis_filter.bat diff --git a/client/javascript/test/e2e/cu_vitis_formulaire.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_formulaire.bat similarity index 100% rename from client/javascript/test/e2e/cu_vitis_formulaire.bat rename to src/vitis/client/javascript/test/e2e/cu_vitis_formulaire.bat diff --git a/client/javascript/test/e2e/cu_vitis_import_export.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_import_export.bat similarity index 100% rename from client/javascript/test/e2e/cu_vitis_import_export.bat rename to src/vitis/client/javascript/test/e2e/cu_vitis_import_export.bat diff --git a/client/javascript/test/e2e/cu_vitis_ip.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_ip.bat similarity index 100% rename from client/javascript/test/e2e/cu_vitis_ip.bat rename to src/vitis/client/javascript/test/e2e/cu_vitis_ip.bat diff --git a/client/javascript/test/e2e/cu_vitis_lot.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_lot.bat similarity index 100% rename from client/javascript/test/e2e/cu_vitis_lot.bat rename to src/vitis/client/javascript/test/e2e/cu_vitis_lot.bat diff --git a/client/javascript/test/e2e/cu_vitis_metadata.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_metadata.bat similarity index 100% rename from client/javascript/test/e2e/cu_vitis_metadata.bat rename to src/vitis/client/javascript/test/e2e/cu_vitis_metadata.bat diff --git a/client/javascript/test/e2e/cu_vitis_moteurs.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_moteurs.bat similarity index 100% rename from client/javascript/test/e2e/cu_vitis_moteurs.bat rename to src/vitis/client/javascript/test/e2e/cu_vitis_moteurs.bat diff --git a/client/javascript/test/e2e/cu_vitis_order.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_order.bat similarity index 100% rename from client/javascript/test/e2e/cu_vitis_order.bat rename to src/vitis/client/javascript/test/e2e/cu_vitis_order.bat diff --git a/client/javascript/test/e2e/cu_vitis_publication.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_publication.bat similarity index 100% rename from client/javascript/test/e2e/cu_vitis_publication.bat rename to src/vitis/client/javascript/test/e2e/cu_vitis_publication.bat diff --git a/client/javascript/test/e2e/cu_vitis_unicite.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_unicite.bat similarity index 100% rename from client/javascript/test/e2e/cu_vitis_unicite.bat rename to src/vitis/client/javascript/test/e2e/cu_vitis_unicite.bat diff --git a/client/javascript/test/e2e/cu_vitis_upload.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_upload.bat similarity index 100% rename from client/javascript/test/e2e/cu_vitis_upload.bat rename to src/vitis/client/javascript/test/e2e/cu_vitis_upload.bat diff --git a/client/javascript/test/e2e/cu_vitis_upload_fmw.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_upload_fmw.bat similarity index 100% rename from client/javascript/test/e2e/cu_vitis_upload_fmw.bat rename to src/vitis/client/javascript/test/e2e/cu_vitis_upload_fmw.bat diff --git a/client/javascript/test/e2e/cu_vitis_upload_zip.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_upload_zip.bat similarity index 100% rename from client/javascript/test/e2e/cu_vitis_upload_zip.bat rename to src/vitis/client/javascript/test/e2e/cu_vitis_upload_zip.bat diff --git a/client/javascript/test/e2e/cu_vitis_user_existant.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_user_existant.bat similarity index 100% rename from client/javascript/test/e2e/cu_vitis_user_existant.bat rename to src/vitis/client/javascript/test/e2e/cu_vitis_user_existant.bat diff --git a/client/javascript/test/e2e/cu_vitis_users.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_users.bat similarity index 100% rename from client/javascript/test/e2e/cu_vitis_users.bat rename to src/vitis/client/javascript/test/e2e/cu_vitis_users.bat diff --git a/client/javascript/test/e2e/cu_vitis_users_linux.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_users_linux.bat similarity index 100% rename from client/javascript/test/e2e/cu_vitis_users_linux.bat rename to src/vitis/client/javascript/test/e2e/cu_vitis_users_linux.bat diff --git a/client/javascript/test/e2e/cu_vitis_users_speciaux.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_users_speciaux.bat similarity index 100% rename from client/javascript/test/e2e/cu_vitis_users_speciaux.bat rename to src/vitis/client/javascript/test/e2e/cu_vitis_users_speciaux.bat diff --git a/client/javascript/test/e2e/cu_vitis_verrouillage_projet.bat b/src/vitis/client/javascript/test/e2e/cu_vitis_verrouillage_projet.bat similarity index 100% rename from client/javascript/test/e2e/cu_vitis_verrouillage_projet.bat rename to src/vitis/client/javascript/test/e2e/cu_vitis_verrouillage_projet.bat diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/.npmignore b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/.npmignore similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/.npmignore rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/.npmignore diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/README.md b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/README.md similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/README.md rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/README.md diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/index.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/index.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/index.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/index.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/.bin/mkdirp b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/.bin/mkdirp similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/.bin/mkdirp rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/.bin/mkdirp diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/.bin/mkdirp.cmd b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/.bin/mkdirp.cmd similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/.bin/mkdirp.cmd rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/.bin/mkdirp.cmd diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/README.markdown b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/README.markdown similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/README.markdown rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/README.markdown diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/example/hat.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/example/hat.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/example/hat.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/example/hat.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/example/rack.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/example/rack.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/example/rack.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/example/rack.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/index.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/index.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/index.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/index.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/package.json b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/package.json similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/package.json rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/package.json diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/test/id.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/test/id.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/test/id.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/test/id.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/test/rack.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/test/rack.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/test/rack.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/test/rack.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/LICENSE b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/LICENSE similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/LICENSE rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/LICENSE diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/README.md b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/README.md similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/README.md rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/README.md diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/chunk.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/chunk.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/chunk.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/chunk.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/compact.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/compact.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/compact.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/compact.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/difference.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/difference.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/difference.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/difference.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/drop.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/drop.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/drop.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/drop.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/dropRight.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/dropRight.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/dropRight.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/dropRight.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/dropRightWhile.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/dropRightWhile.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/dropRightWhile.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/dropRightWhile.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/dropWhile.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/dropWhile.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/dropWhile.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/dropWhile.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/fill.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/fill.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/fill.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/fill.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/findIndex.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/findIndex.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/findIndex.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/findIndex.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/findLastIndex.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/findLastIndex.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/findLastIndex.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/findLastIndex.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/first.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/first.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/first.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/first.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/flatten.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/flatten.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/flatten.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/flatten.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/flattenDeep.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/flattenDeep.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/flattenDeep.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/flattenDeep.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/head.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/head.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/head.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/head.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/indexOf.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/indexOf.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/indexOf.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/indexOf.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/initial.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/initial.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/initial.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/initial.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/intersection.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/intersection.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/intersection.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/intersection.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/last.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/last.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/last.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/last.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/lastIndexOf.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/lastIndexOf.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/lastIndexOf.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/lastIndexOf.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/object.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/object.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/object.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/object.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/pull.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/pull.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/pull.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/pull.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/pullAt.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/pullAt.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/pullAt.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/pullAt.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/remove.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/remove.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/remove.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/remove.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/rest.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/rest.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/rest.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/rest.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/slice.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/slice.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/slice.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/slice.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/sortedIndex.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/sortedIndex.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/sortedIndex.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/sortedIndex.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/sortedLastIndex.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/sortedLastIndex.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/sortedLastIndex.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/sortedLastIndex.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/tail.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/tail.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/tail.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/tail.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/take.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/take.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/take.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/take.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/takeRight.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/takeRight.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/takeRight.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/takeRight.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/takeRightWhile.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/takeRightWhile.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/takeRightWhile.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/takeRightWhile.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/takeWhile.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/takeWhile.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/takeWhile.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/takeWhile.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/union.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/union.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/union.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/union.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/uniq.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/uniq.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/uniq.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/uniq.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/unique.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/unique.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/unique.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/unique.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/unzip.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/unzip.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/unzip.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/unzip.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/unzipWith.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/unzipWith.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/unzipWith.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/unzipWith.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/without.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/without.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/without.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/without.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/xor.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/xor.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/xor.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/xor.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/zip.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/zip.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/zip.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/zip.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/zipObject.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/zipObject.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/zipObject.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/zipObject.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/zipWith.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/zipWith.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/zipWith.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/zipWith.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/chain.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/chain.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/chain.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/chain.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/commit.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/commit.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/commit.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/commit.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/concat.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/concat.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/concat.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/concat.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/lodash.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/lodash.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/lodash.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/lodash.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/plant.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/plant.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/plant.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/plant.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/reverse.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/reverse.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/reverse.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/reverse.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/run.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/run.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/run.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/run.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/tap.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/tap.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/tap.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/tap.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/thru.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/thru.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/thru.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/thru.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/toJSON.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/toJSON.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/toJSON.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/toJSON.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/toString.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/toString.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/toString.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/toString.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/value.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/value.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/value.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/value.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/valueOf.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/valueOf.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/valueOf.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/valueOf.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperChain.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperChain.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperChain.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperChain.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperCommit.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperCommit.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperCommit.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperCommit.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperConcat.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperConcat.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperConcat.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperConcat.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperPlant.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperPlant.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperPlant.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperPlant.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperReverse.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperReverse.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperReverse.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperReverse.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperToString.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperToString.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperToString.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperToString.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperValue.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperValue.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperValue.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperValue.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/all.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/all.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/all.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/all.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/any.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/any.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/any.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/any.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/at.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/at.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/at.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/at.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/collect.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/collect.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/collect.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/collect.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/contains.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/contains.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/contains.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/contains.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/countBy.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/countBy.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/countBy.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/countBy.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/detect.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/detect.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/detect.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/detect.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/each.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/each.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/each.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/each.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/eachRight.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/eachRight.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/eachRight.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/eachRight.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/every.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/every.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/every.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/every.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/filter.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/filter.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/filter.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/filter.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/find.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/find.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/find.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/find.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/findLast.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/findLast.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/findLast.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/findLast.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/findWhere.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/findWhere.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/findWhere.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/findWhere.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/foldl.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/foldl.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/foldl.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/foldl.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/foldr.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/foldr.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/foldr.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/foldr.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/forEach.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/forEach.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/forEach.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/forEach.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/forEachRight.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/forEachRight.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/forEachRight.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/forEachRight.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/groupBy.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/groupBy.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/groupBy.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/groupBy.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/include.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/include.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/include.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/include.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/includes.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/includes.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/includes.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/includes.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/indexBy.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/indexBy.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/indexBy.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/indexBy.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/inject.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/inject.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/inject.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/inject.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/invoke.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/invoke.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/invoke.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/invoke.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/map.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/map.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/map.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/map.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/max.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/max.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/max.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/max.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/min.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/min.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/min.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/min.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/partition.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/partition.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/partition.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/partition.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/pluck.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/pluck.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/pluck.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/pluck.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/reduce.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/reduce.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/reduce.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/reduce.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/reduceRight.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/reduceRight.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/reduceRight.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/reduceRight.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/reject.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/reject.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/reject.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/reject.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sample.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sample.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sample.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sample.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/select.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/select.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/select.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/select.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/shuffle.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/shuffle.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/shuffle.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/shuffle.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/size.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/size.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/size.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/size.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/some.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/some.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/some.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/some.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sortBy.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sortBy.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sortBy.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sortBy.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sortByAll.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sortByAll.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sortByAll.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sortByAll.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sortByOrder.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sortByOrder.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sortByOrder.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sortByOrder.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sum.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sum.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sum.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sum.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/where.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/where.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/where.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/where.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/date.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/date.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/date.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/date.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/date/now.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/date/now.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/date/now.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/date/now.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/after.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/after.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/after.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/after.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/ary.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/ary.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/ary.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/ary.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/backflow.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/backflow.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/backflow.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/backflow.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/before.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/before.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/before.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/before.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/bind.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/bind.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/bind.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/bind.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/bindAll.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/bindAll.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/bindAll.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/bindAll.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/bindKey.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/bindKey.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/bindKey.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/bindKey.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/compose.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/compose.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/compose.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/compose.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/curry.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/curry.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/curry.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/curry.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/curryRight.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/curryRight.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/curryRight.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/curryRight.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/debounce.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/debounce.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/debounce.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/debounce.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/defer.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/defer.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/defer.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/defer.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/delay.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/delay.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/delay.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/delay.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/flow.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/flow.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/flow.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/flow.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/flowRight.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/flowRight.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/flowRight.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/flowRight.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/memoize.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/memoize.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/memoize.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/memoize.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/modArgs.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/modArgs.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/modArgs.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/modArgs.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/negate.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/negate.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/negate.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/negate.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/once.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/once.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/once.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/once.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/partial.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/partial.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/partial.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/partial.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/partialRight.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/partialRight.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/partialRight.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/partialRight.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/rearg.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/rearg.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/rearg.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/rearg.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/restParam.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/restParam.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/restParam.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/restParam.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/spread.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/spread.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/spread.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/spread.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/throttle.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/throttle.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/throttle.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/throttle.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/wrap.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/wrap.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/wrap.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/wrap.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/index.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/index.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/index.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/index.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/LazyWrapper.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/LazyWrapper.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/LazyWrapper.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/LazyWrapper.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/LodashWrapper.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/LodashWrapper.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/LodashWrapper.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/LodashWrapper.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/MapCache.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/MapCache.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/MapCache.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/MapCache.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/SetCache.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/SetCache.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/SetCache.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/SetCache.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayConcat.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayConcat.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayConcat.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayConcat.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayCopy.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayCopy.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayCopy.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayCopy.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayEach.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayEach.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayEach.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayEach.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayEachRight.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayEachRight.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayEachRight.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayEachRight.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayEvery.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayEvery.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayEvery.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayEvery.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayExtremum.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayExtremum.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayExtremum.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayExtremum.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayFilter.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayFilter.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayFilter.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayFilter.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayMap.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayMap.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayMap.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayMap.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayPush.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayPush.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayPush.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayPush.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayReduce.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayReduce.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayReduce.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayReduce.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayReduceRight.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayReduceRight.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayReduceRight.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayReduceRight.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arraySome.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arraySome.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arraySome.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arraySome.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arraySum.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arraySum.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arraySum.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arraySum.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/assignDefaults.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/assignDefaults.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/assignDefaults.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/assignDefaults.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/assignOwnDefaults.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/assignOwnDefaults.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/assignOwnDefaults.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/assignOwnDefaults.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/assignWith.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/assignWith.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/assignWith.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/assignWith.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseAssign.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseAssign.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseAssign.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseAssign.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseAt.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseAt.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseAt.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseAt.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCallback.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCallback.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCallback.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCallback.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseClone.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseClone.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseClone.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseClone.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCompareAscending.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCompareAscending.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCompareAscending.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCompareAscending.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCopy.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCopy.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCopy.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCopy.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCreate.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCreate.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCreate.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCreate.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseDelay.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseDelay.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseDelay.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseDelay.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseDifference.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseDifference.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseDifference.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseDifference.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseEach.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseEach.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseEach.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseEach.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseEachRight.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseEachRight.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseEachRight.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseEachRight.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseEvery.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseEvery.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseEvery.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseEvery.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseExtremum.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseExtremum.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseExtremum.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseExtremum.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFill.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFill.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFill.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFill.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFilter.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFilter.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFilter.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFilter.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFind.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFind.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFind.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFind.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFindIndex.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFindIndex.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFindIndex.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFindIndex.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFlatten.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFlatten.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFlatten.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFlatten.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFor.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFor.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFor.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFor.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForIn.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForIn.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForIn.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForIn.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForOwn.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForOwn.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForOwn.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForOwn.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForOwnRight.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForOwnRight.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForOwnRight.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForOwnRight.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForRight.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForRight.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForRight.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForRight.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFunctions.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFunctions.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFunctions.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFunctions.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseGet.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseGet.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseGet.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseGet.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIndexOf.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIndexOf.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIndexOf.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIndexOf.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsEqual.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsEqual.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsEqual.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsEqual.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsEqualDeep.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsEqualDeep.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsEqualDeep.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsEqualDeep.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsFunction.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsFunction.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsFunction.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsFunction.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsMatch.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsMatch.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsMatch.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsMatch.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseLodash.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseLodash.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseLodash.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseLodash.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMap.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMap.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMap.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMap.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMatches.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMatches.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMatches.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMatches.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMatchesProperty.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMatchesProperty.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMatchesProperty.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMatchesProperty.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMerge.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMerge.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMerge.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMerge.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMergeDeep.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMergeDeep.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMergeDeep.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMergeDeep.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseProperty.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseProperty.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseProperty.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseProperty.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/basePropertyDeep.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/basePropertyDeep.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/basePropertyDeep.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/basePropertyDeep.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/basePullAt.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/basePullAt.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/basePullAt.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/basePullAt.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseRandom.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseRandom.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseRandom.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseRandom.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseReduce.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseReduce.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseReduce.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseReduce.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSetData.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSetData.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSetData.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSetData.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSlice.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSlice.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSlice.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSlice.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSome.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSome.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSome.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSome.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSortBy.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSortBy.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSortBy.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSortBy.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSortByOrder.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSortByOrder.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSortByOrder.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSortByOrder.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSum.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSum.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSum.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSum.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseToString.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseToString.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseToString.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseToString.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseUniq.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseUniq.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseUniq.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseUniq.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseValues.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseValues.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseValues.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseValues.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseWhile.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseWhile.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseWhile.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseWhile.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseWrapperValue.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseWrapperValue.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseWrapperValue.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseWrapperValue.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/binaryIndex.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/binaryIndex.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/binaryIndex.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/binaryIndex.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/binaryIndexBy.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/binaryIndexBy.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/binaryIndexBy.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/binaryIndexBy.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/bindCallback.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/bindCallback.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/bindCallback.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/bindCallback.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/bufferClone.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/bufferClone.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/bufferClone.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/bufferClone.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/cacheIndexOf.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/cacheIndexOf.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/cacheIndexOf.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/cacheIndexOf.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/cachePush.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/cachePush.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/cachePush.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/cachePush.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/charsLeftIndex.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/charsLeftIndex.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/charsLeftIndex.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/charsLeftIndex.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/charsRightIndex.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/charsRightIndex.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/charsRightIndex.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/charsRightIndex.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/compareAscending.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/compareAscending.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/compareAscending.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/compareAscending.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/compareMultiple.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/compareMultiple.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/compareMultiple.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/compareMultiple.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/composeArgs.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/composeArgs.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/composeArgs.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/composeArgs.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/composeArgsRight.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/composeArgsRight.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/composeArgsRight.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/composeArgsRight.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createAggregator.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createAggregator.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createAggregator.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createAggregator.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createAssigner.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createAssigner.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createAssigner.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createAssigner.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createBaseEach.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createBaseEach.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createBaseEach.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createBaseEach.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createBaseFor.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createBaseFor.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createBaseFor.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createBaseFor.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createBindWrapper.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createBindWrapper.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createBindWrapper.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createBindWrapper.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCache.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCache.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCache.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCache.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCompounder.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCompounder.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCompounder.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCompounder.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCtorWrapper.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCtorWrapper.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCtorWrapper.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCtorWrapper.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCurry.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCurry.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCurry.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCurry.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createDefaults.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createDefaults.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createDefaults.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createDefaults.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createExtremum.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createExtremum.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createExtremum.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createExtremum.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFind.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFind.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFind.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFind.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFindIndex.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFindIndex.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFindIndex.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFindIndex.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFindKey.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFindKey.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFindKey.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFindKey.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFlow.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFlow.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFlow.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFlow.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createForEach.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createForEach.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createForEach.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createForEach.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createForIn.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createForIn.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createForIn.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createForIn.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createForOwn.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createForOwn.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createForOwn.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createForOwn.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createHybridWrapper.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createHybridWrapper.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createHybridWrapper.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createHybridWrapper.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createObjectMapper.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createObjectMapper.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createObjectMapper.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createObjectMapper.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPadDir.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPadDir.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPadDir.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPadDir.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPadding.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPadding.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPadding.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPadding.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPartial.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPartial.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPartial.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPartial.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPartialWrapper.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPartialWrapper.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPartialWrapper.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPartialWrapper.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createReduce.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createReduce.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createReduce.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createReduce.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createRound.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createRound.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createRound.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createRound.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createSortedIndex.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createSortedIndex.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createSortedIndex.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createSortedIndex.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createWrapper.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createWrapper.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createWrapper.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createWrapper.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/deburrLetter.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/deburrLetter.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/deburrLetter.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/deburrLetter.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/equalArrays.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/equalArrays.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/equalArrays.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/equalArrays.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/equalByTag.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/equalByTag.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/equalByTag.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/equalByTag.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/equalObjects.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/equalObjects.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/equalObjects.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/equalObjects.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/escapeHtmlChar.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/escapeHtmlChar.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/escapeHtmlChar.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/escapeHtmlChar.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/escapeRegExpChar.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/escapeRegExpChar.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/escapeRegExpChar.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/escapeRegExpChar.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/escapeStringChar.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/escapeStringChar.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/escapeStringChar.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/escapeStringChar.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getData.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getData.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getData.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getData.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getFuncName.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getFuncName.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getFuncName.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getFuncName.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getLength.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getLength.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getLength.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getLength.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getMatchData.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getMatchData.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getMatchData.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getMatchData.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getNative.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getNative.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getNative.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getNative.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getView.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getView.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getView.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getView.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/indexOfNaN.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/indexOfNaN.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/indexOfNaN.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/indexOfNaN.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/initCloneArray.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/initCloneArray.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/initCloneArray.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/initCloneArray.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/initCloneByTag.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/initCloneByTag.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/initCloneByTag.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/initCloneByTag.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/initCloneObject.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/initCloneObject.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/initCloneObject.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/initCloneObject.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/invokePath.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/invokePath.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/invokePath.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/invokePath.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isArrayLike.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isArrayLike.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isArrayLike.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isArrayLike.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isIndex.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isIndex.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isIndex.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isIndex.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isIterateeCall.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isIterateeCall.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isIterateeCall.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isIterateeCall.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isKey.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isKey.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isKey.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isKey.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isLaziable.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isLaziable.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isLaziable.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isLaziable.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isLength.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isLength.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isLength.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isLength.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isObjectLike.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isObjectLike.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isObjectLike.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isObjectLike.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isSpace.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isSpace.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isSpace.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isSpace.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isStrictComparable.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isStrictComparable.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isStrictComparable.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isStrictComparable.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/lazyClone.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/lazyClone.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/lazyClone.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/lazyClone.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/lazyReverse.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/lazyReverse.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/lazyReverse.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/lazyReverse.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/lazyValue.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/lazyValue.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/lazyValue.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/lazyValue.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapDelete.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapDelete.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapDelete.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapDelete.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapGet.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapGet.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapGet.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapGet.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapHas.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapHas.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapHas.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapHas.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapSet.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapSet.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapSet.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapSet.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mergeData.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mergeData.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mergeData.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mergeData.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mergeDefaults.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mergeDefaults.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mergeDefaults.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mergeDefaults.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/metaMap.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/metaMap.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/metaMap.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/metaMap.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/pickByArray.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/pickByArray.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/pickByArray.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/pickByArray.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/pickByCallback.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/pickByCallback.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/pickByCallback.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/pickByCallback.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reEscape.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reEscape.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reEscape.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reEscape.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reEvaluate.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reEvaluate.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reEvaluate.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reEvaluate.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reInterpolate.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reInterpolate.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reInterpolate.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reInterpolate.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/realNames.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/realNames.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/realNames.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/realNames.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reorder.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reorder.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reorder.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reorder.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/replaceHolders.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/replaceHolders.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/replaceHolders.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/replaceHolders.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/setData.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/setData.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/setData.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/setData.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/shimKeys.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/shimKeys.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/shimKeys.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/shimKeys.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/sortedUniq.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/sortedUniq.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/sortedUniq.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/sortedUniq.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/toIterable.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/toIterable.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/toIterable.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/toIterable.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/toObject.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/toObject.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/toObject.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/toObject.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/toPath.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/toPath.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/toPath.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/toPath.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/trimmedLeftIndex.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/trimmedLeftIndex.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/trimmedLeftIndex.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/trimmedLeftIndex.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/trimmedRightIndex.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/trimmedRightIndex.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/trimmedRightIndex.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/trimmedRightIndex.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/unescapeHtmlChar.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/unescapeHtmlChar.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/unescapeHtmlChar.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/unescapeHtmlChar.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/wrapperClone.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/wrapperClone.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/wrapperClone.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/wrapperClone.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/clone.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/clone.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/clone.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/clone.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/cloneDeep.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/cloneDeep.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/cloneDeep.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/cloneDeep.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/eq.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/eq.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/eq.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/eq.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/gt.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/gt.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/gt.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/gt.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/gte.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/gte.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/gte.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/gte.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isArguments.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isArguments.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isArguments.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isArguments.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isArray.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isArray.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isArray.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isArray.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isBoolean.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isBoolean.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isBoolean.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isBoolean.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isDate.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isDate.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isDate.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isDate.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isElement.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isElement.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isElement.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isElement.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isEmpty.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isEmpty.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isEmpty.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isEmpty.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isEqual.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isEqual.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isEqual.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isEqual.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isError.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isError.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isError.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isError.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isFinite.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isFinite.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isFinite.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isFinite.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isFunction.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isFunction.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isFunction.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isFunction.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isMatch.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isMatch.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isMatch.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isMatch.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNaN.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNaN.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNaN.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNaN.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNative.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNative.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNative.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNative.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNull.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNull.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNull.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNull.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNumber.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNumber.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNumber.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNumber.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isObject.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isObject.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isObject.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isObject.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isPlainObject.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isPlainObject.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isPlainObject.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isPlainObject.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isRegExp.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isRegExp.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isRegExp.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isRegExp.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isString.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isString.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isString.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isString.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isTypedArray.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isTypedArray.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isTypedArray.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isTypedArray.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isUndefined.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isUndefined.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isUndefined.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isUndefined.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/lt.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/lt.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/lt.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/lt.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/lte.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/lte.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/lte.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/lte.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/toArray.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/toArray.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/toArray.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/toArray.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/toPlainObject.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/toPlainObject.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/toPlainObject.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/toPlainObject.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/add.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/add.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/add.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/add.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/ceil.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/ceil.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/ceil.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/ceil.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/floor.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/floor.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/floor.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/floor.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/max.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/max.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/max.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/max.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/min.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/min.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/min.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/min.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/round.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/round.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/round.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/round.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/sum.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/sum.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/sum.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/sum.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/number.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/number.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/number.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/number.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/number/inRange.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/number/inRange.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/number/inRange.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/number/inRange.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/number/random.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/number/random.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/number/random.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/number/random.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/assign.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/assign.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/assign.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/assign.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/create.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/create.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/create.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/create.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/defaults.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/defaults.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/defaults.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/defaults.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/defaultsDeep.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/defaultsDeep.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/defaultsDeep.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/defaultsDeep.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/extend.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/extend.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/extend.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/extend.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/findKey.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/findKey.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/findKey.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/findKey.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/findLastKey.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/findLastKey.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/findLastKey.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/findLastKey.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forIn.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forIn.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forIn.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forIn.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forInRight.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forInRight.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forInRight.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forInRight.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forOwn.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forOwn.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forOwn.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forOwn.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forOwnRight.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forOwnRight.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forOwnRight.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forOwnRight.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/functions.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/functions.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/functions.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/functions.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/get.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/get.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/get.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/get.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/has.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/has.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/has.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/has.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/invert.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/invert.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/invert.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/invert.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/keys.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/keys.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/keys.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/keys.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/keysIn.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/keysIn.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/keysIn.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/keysIn.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/mapKeys.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/mapKeys.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/mapKeys.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/mapKeys.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/mapValues.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/mapValues.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/mapValues.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/mapValues.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/merge.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/merge.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/merge.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/merge.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/methods.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/methods.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/methods.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/methods.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/omit.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/omit.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/omit.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/omit.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/pairs.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/pairs.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/pairs.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/pairs.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/pick.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/pick.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/pick.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/pick.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/result.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/result.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/result.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/result.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/set.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/set.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/set.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/set.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/transform.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/transform.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/transform.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/transform.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/values.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/values.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/values.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/values.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/valuesIn.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/valuesIn.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/valuesIn.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/valuesIn.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/package.json b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/package.json similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/package.json rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/package.json diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/camelCase.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/camelCase.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/camelCase.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/camelCase.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/capitalize.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/capitalize.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/capitalize.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/capitalize.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/deburr.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/deburr.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/deburr.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/deburr.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/endsWith.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/endsWith.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/endsWith.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/endsWith.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/escape.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/escape.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/escape.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/escape.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/escapeRegExp.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/escapeRegExp.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/escapeRegExp.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/escapeRegExp.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/kebabCase.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/kebabCase.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/kebabCase.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/kebabCase.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/pad.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/pad.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/pad.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/pad.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/padLeft.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/padLeft.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/padLeft.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/padLeft.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/padRight.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/padRight.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/padRight.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/padRight.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/parseInt.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/parseInt.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/parseInt.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/parseInt.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/repeat.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/repeat.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/repeat.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/repeat.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/snakeCase.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/snakeCase.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/snakeCase.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/snakeCase.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/startCase.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/startCase.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/startCase.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/startCase.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/startsWith.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/startsWith.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/startsWith.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/startsWith.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/template.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/template.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/template.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/template.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/templateSettings.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/templateSettings.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/templateSettings.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/templateSettings.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trim.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trim.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trim.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trim.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trimLeft.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trimLeft.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trimLeft.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trimLeft.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trimRight.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trimRight.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trimRight.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trimRight.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trunc.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trunc.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trunc.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trunc.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/unescape.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/unescape.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/unescape.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/unescape.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/words.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/words.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/words.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/words.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/support.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/support.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/support.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/support.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/attempt.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/attempt.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/attempt.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/attempt.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/callback.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/callback.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/callback.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/callback.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/constant.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/constant.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/constant.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/constant.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/identity.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/identity.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/identity.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/identity.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/iteratee.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/iteratee.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/iteratee.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/iteratee.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/matches.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/matches.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/matches.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/matches.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/matchesProperty.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/matchesProperty.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/matchesProperty.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/matchesProperty.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/method.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/method.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/method.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/method.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/methodOf.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/methodOf.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/methodOf.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/methodOf.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/mixin.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/mixin.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/mixin.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/mixin.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/noop.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/noop.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/noop.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/noop.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/property.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/property.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/property.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/property.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/propertyOf.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/propertyOf.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/propertyOf.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/propertyOf.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/range.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/range.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/range.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/range.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/times.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/times.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/times.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/times.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/uniqueId.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/uniqueId.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/uniqueId.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/uniqueId.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/.travis.yml b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/.travis.yml similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/.travis.yml rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/.travis.yml diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/LICENSE b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/LICENSE similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/LICENSE rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/LICENSE diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/bin/cmd.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/bin/cmd.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/bin/cmd.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/bin/cmd.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/bin/usage.txt b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/bin/usage.txt similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/bin/usage.txt rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/bin/usage.txt diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/examples/pow.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/examples/pow.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/examples/pow.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/examples/pow.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/index.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/index.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/index.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/index.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/.travis.yml b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/.travis.yml similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/.travis.yml rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/.travis.yml diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/LICENSE b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/LICENSE similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/LICENSE rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/LICENSE diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/example/parse.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/example/parse.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/example/parse.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/example/parse.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/index.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/index.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/index.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/index.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/package.json b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/package.json similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/package.json rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/package.json diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/readme.markdown b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/readme.markdown similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/readme.markdown rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/readme.markdown diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/dash.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/dash.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/dash.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/dash.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/default_bool.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/default_bool.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/default_bool.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/default_bool.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/dotted.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/dotted.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/dotted.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/dotted.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/long.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/long.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/long.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/long.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/parse.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/parse.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/parse.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/parse.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/parse_modified.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/parse_modified.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/parse_modified.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/parse_modified.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/short.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/short.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/short.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/short.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/whitespace.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/whitespace.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/whitespace.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/whitespace.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/package.json b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/package.json similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/package.json rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/package.json diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/readme.markdown b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/readme.markdown similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/readme.markdown rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/readme.markdown diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/chmod.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/chmod.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/chmod.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/chmod.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/clobber.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/clobber.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/clobber.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/clobber.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/mkdirp.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/mkdirp.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/mkdirp.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/mkdirp.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/opts_fs.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/opts_fs.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/opts_fs.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/opts_fs.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/opts_fs_sync.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/opts_fs_sync.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/opts_fs_sync.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/opts_fs_sync.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/perm.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/perm.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/perm.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/perm.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/perm_sync.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/perm_sync.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/perm_sync.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/perm_sync.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/race.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/race.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/race.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/race.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/rel.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/rel.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/rel.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/rel.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/return.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/return.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/return.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/return.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/return_sync.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/return_sync.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/return_sync.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/return_sync.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/root.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/root.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/root.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/root.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/sync.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/sync.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/sync.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/sync.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/umask.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/umask.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/umask.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/umask.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/umask_sync.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/umask_sync.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/umask_sync.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/umask_sync.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/LICENSE-MIT.txt b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/LICENSE-MIT.txt similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/LICENSE-MIT.txt rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/LICENSE-MIT.txt diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/README.md b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/README.md similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/README.md rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/README.md diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/package.json b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/package.json similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/package.json rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/package.json diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/startswith.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/startswith.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/startswith.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/startswith.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/package.json b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/package.json similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/package.json rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/package.json diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/protractor.config.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/protractor.config.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/protractor.config.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/protractor.config.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/template.html b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/template.html similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/template.html rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/template.html diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/test/test2Spec.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/test/test2Spec.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/test/test2Spec.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/test/test2Spec.js diff --git a/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/test/testSpec.js b/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/test/testSpec.js similarity index 100% rename from client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/test/testSpec.js rename to src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/test/testSpec.js diff --git a/client/javascript/test/e2e/protractor.conf.abonnement.js b/src/vitis/client/javascript/test/e2e/protractor.conf.abonnement.js similarity index 100% rename from client/javascript/test/e2e/protractor.conf.abonnement.js rename to src/vitis/client/javascript/test/e2e/protractor.conf.abonnement.js diff --git a/client/javascript/test/e2e/protractor.conf.ad.js b/src/vitis/client/javascript/test/e2e/protractor.conf.ad.js similarity index 100% rename from client/javascript/test/e2e/protractor.conf.ad.js rename to src/vitis/client/javascript/test/e2e/protractor.conf.ad.js diff --git a/client/javascript/test/e2e/protractor.conf.categorie.js b/src/vitis/client/javascript/test/e2e/protractor.conf.categorie.js similarity index 100% rename from client/javascript/test/e2e/protractor.conf.categorie.js rename to src/vitis/client/javascript/test/e2e/protractor.conf.categorie.js diff --git a/client/javascript/test/e2e/protractor.conf.depot.js b/src/vitis/client/javascript/test/e2e/protractor.conf.depot.js similarity index 100% rename from client/javascript/test/e2e/protractor.conf.depot.js rename to src/vitis/client/javascript/test/e2e/protractor.conf.depot.js diff --git a/client/javascript/test/e2e/protractor.conf.fichiers_interdits.js b/src/vitis/client/javascript/test/e2e/protractor.conf.fichiers_interdits.js similarity index 100% rename from client/javascript/test/e2e/protractor.conf.fichiers_interdits.js rename to src/vitis/client/javascript/test/e2e/protractor.conf.fichiers_interdits.js diff --git a/client/javascript/test/e2e/protractor.conf.filter.js b/src/vitis/client/javascript/test/e2e/protractor.conf.filter.js similarity index 100% rename from client/javascript/test/e2e/protractor.conf.filter.js rename to src/vitis/client/javascript/test/e2e/protractor.conf.filter.js diff --git a/client/javascript/test/e2e/protractor.conf.formulaire.js b/src/vitis/client/javascript/test/e2e/protractor.conf.formulaire.js similarity index 100% rename from client/javascript/test/e2e/protractor.conf.formulaire.js rename to src/vitis/client/javascript/test/e2e/protractor.conf.formulaire.js diff --git a/client/javascript/test/e2e/protractor.conf.import.export.js b/src/vitis/client/javascript/test/e2e/protractor.conf.import.export.js similarity index 100% rename from client/javascript/test/e2e/protractor.conf.import.export.js rename to src/vitis/client/javascript/test/e2e/protractor.conf.import.export.js diff --git a/client/javascript/test/e2e/protractor.conf.ip.js b/src/vitis/client/javascript/test/e2e/protractor.conf.ip.js similarity index 100% rename from client/javascript/test/e2e/protractor.conf.ip.js rename to src/vitis/client/javascript/test/e2e/protractor.conf.ip.js diff --git a/client/javascript/test/e2e/protractor.conf.js b/src/vitis/client/javascript/test/e2e/protractor.conf.js similarity index 100% rename from client/javascript/test/e2e/protractor.conf.js rename to src/vitis/client/javascript/test/e2e/protractor.conf.js diff --git a/client/javascript/test/e2e/protractor.conf.lot.js b/src/vitis/client/javascript/test/e2e/protractor.conf.lot.js similarity index 100% rename from client/javascript/test/e2e/protractor.conf.lot.js rename to src/vitis/client/javascript/test/e2e/protractor.conf.lot.js diff --git a/client/javascript/test/e2e/protractor.conf.metada.js b/src/vitis/client/javascript/test/e2e/protractor.conf.metada.js similarity index 100% rename from client/javascript/test/e2e/protractor.conf.metada.js rename to src/vitis/client/javascript/test/e2e/protractor.conf.metada.js diff --git a/client/javascript/test/e2e/protractor.conf.metadata.js b/src/vitis/client/javascript/test/e2e/protractor.conf.metadata.js similarity index 100% rename from client/javascript/test/e2e/protractor.conf.metadata.js rename to src/vitis/client/javascript/test/e2e/protractor.conf.metadata.js diff --git a/client/javascript/test/e2e/protractor.conf.moteurs.js b/src/vitis/client/javascript/test/e2e/protractor.conf.moteurs.js similarity index 100% rename from client/javascript/test/e2e/protractor.conf.moteurs.js rename to src/vitis/client/javascript/test/e2e/protractor.conf.moteurs.js diff --git a/client/javascript/test/e2e/protractor.conf.order.js b/src/vitis/client/javascript/test/e2e/protractor.conf.order.js similarity index 100% rename from client/javascript/test/e2e/protractor.conf.order.js rename to src/vitis/client/javascript/test/e2e/protractor.conf.order.js diff --git a/client/javascript/test/e2e/protractor.conf.publication.js b/src/vitis/client/javascript/test/e2e/protractor.conf.publication.js similarity index 100% rename from client/javascript/test/e2e/protractor.conf.publication.js rename to src/vitis/client/javascript/test/e2e/protractor.conf.publication.js diff --git a/client/javascript/test/e2e/protractor.conf.unicite.js b/src/vitis/client/javascript/test/e2e/protractor.conf.unicite.js similarity index 100% rename from client/javascript/test/e2e/protractor.conf.unicite.js rename to src/vitis/client/javascript/test/e2e/protractor.conf.unicite.js diff --git a/client/javascript/test/e2e/protractor.conf.upload.js b/src/vitis/client/javascript/test/e2e/protractor.conf.upload.js similarity index 100% rename from client/javascript/test/e2e/protractor.conf.upload.js rename to src/vitis/client/javascript/test/e2e/protractor.conf.upload.js diff --git a/client/javascript/test/e2e/protractor.conf.upload_fmw.js b/src/vitis/client/javascript/test/e2e/protractor.conf.upload_fmw.js similarity index 100% rename from client/javascript/test/e2e/protractor.conf.upload_fmw.js rename to src/vitis/client/javascript/test/e2e/protractor.conf.upload_fmw.js diff --git a/client/javascript/test/e2e/protractor.conf.upload_zip.js b/src/vitis/client/javascript/test/e2e/protractor.conf.upload_zip.js similarity index 100% rename from client/javascript/test/e2e/protractor.conf.upload_zip.js rename to src/vitis/client/javascript/test/e2e/protractor.conf.upload_zip.js diff --git a/client/javascript/test/e2e/protractor.conf.user_existant.js b/src/vitis/client/javascript/test/e2e/protractor.conf.user_existant.js similarity index 100% rename from client/javascript/test/e2e/protractor.conf.user_existant.js rename to src/vitis/client/javascript/test/e2e/protractor.conf.user_existant.js diff --git a/client/javascript/test/e2e/protractor.conf.users.js b/src/vitis/client/javascript/test/e2e/protractor.conf.users.js similarity index 100% rename from client/javascript/test/e2e/protractor.conf.users.js rename to src/vitis/client/javascript/test/e2e/protractor.conf.users.js diff --git a/client/javascript/test/e2e/protractor.conf.users_speciaux.js b/src/vitis/client/javascript/test/e2e/protractor.conf.users_speciaux.js similarity index 100% rename from client/javascript/test/e2e/protractor.conf.users_speciaux.js rename to src/vitis/client/javascript/test/e2e/protractor.conf.users_speciaux.js diff --git a/client/javascript/test/e2e/protractor.conf.users_speciaux.linux.js b/src/vitis/client/javascript/test/e2e/protractor.conf.users_speciaux.linux.js similarity index 100% rename from client/javascript/test/e2e/protractor.conf.users_speciaux.linux.js rename to src/vitis/client/javascript/test/e2e/protractor.conf.users_speciaux.linux.js diff --git a/client/javascript/test/e2e/protractor.conf.verrouillage_projet.js b/src/vitis/client/javascript/test/e2e/protractor.conf.verrouillage_projet.js similarity index 100% rename from client/javascript/test/e2e/protractor.conf.verrouillage_projet.js rename to src/vitis/client/javascript/test/e2e/protractor.conf.verrouillage_projet.js diff --git a/client/javascript/test/e2e/resource/DATE.gex b/src/vitis/client/javascript/test/e2e/resource/DATE.gex similarity index 100% rename from client/javascript/test/e2e/resource/DATE.gex rename to src/vitis/client/javascript/test/e2e/resource/DATE.gex diff --git a/client/javascript/test/e2e/resource/DPT.DBF b/src/vitis/client/javascript/test/e2e/resource/DPT.DBF similarity index 100% rename from client/javascript/test/e2e/resource/DPT.DBF rename to src/vitis/client/javascript/test/e2e/resource/DPT.DBF diff --git a/client/javascript/test/e2e/resource/DPT.SHP b/src/vitis/client/javascript/test/e2e/resource/DPT.SHP similarity index 100% rename from client/javascript/test/e2e/resource/DPT.SHP rename to src/vitis/client/javascript/test/e2e/resource/DPT.SHP diff --git a/client/javascript/test/e2e/resource/DPT.SHX b/src/vitis/client/javascript/test/e2e/resource/DPT.SHX similarity index 100% rename from client/javascript/test/e2e/resource/DPT.SHX rename to src/vitis/client/javascript/test/e2e/resource/DPT.SHX diff --git a/client/javascript/test/e2e/resource/DPT.prj b/src/vitis/client/javascript/test/e2e/resource/DPT.prj similarity index 100% rename from client/javascript/test/e2e/resource/DPT.prj rename to src/vitis/client/javascript/test/e2e/resource/DPT.prj diff --git a/client/javascript/test/e2e/resource/DPT.zip b/src/vitis/client/javascript/test/e2e/resource/DPT.zip similarity index 100% rename from client/javascript/test/e2e/resource/DPT.zip rename to src/vitis/client/javascript/test/e2e/resource/DPT.zip diff --git a/client/javascript/test/e2e/resource/choix_multiple.fmw b/src/vitis/client/javascript/test/e2e/resource/choix_multiple.fmw similarity index 100% rename from client/javascript/test/e2e/resource/choix_multiple.fmw rename to src/vitis/client/javascript/test/e2e/resource/choix_multiple.fmw diff --git a/client/javascript/test/e2e/resource/choix_multiple.log b/src/vitis/client/javascript/test/e2e/resource/choix_multiple.log similarity index 100% rename from client/javascript/test/e2e/resource/choix_multiple.log rename to src/vitis/client/javascript/test/e2e/resource/choix_multiple.log diff --git a/client/javascript/test/e2e/resource/controle_quali.gex b/src/vitis/client/javascript/test/e2e/resource/controle_quali.gex similarity index 100% rename from client/javascript/test/e2e/resource/controle_quali.gex rename to src/vitis/client/javascript/test/e2e/resource/controle_quali.gex diff --git a/client/javascript/test/e2e/resource/dep dep.zip b/src/vitis/client/javascript/test/e2e/resource/dep dep.zip similarity index 100% rename from client/javascript/test/e2e/resource/dep dep.zip rename to src/vitis/client/javascript/test/e2e/resource/dep dep.zip diff --git a/client/javascript/test/e2e/resource/depts.zip b/src/vitis/client/javascript/test/e2e/resource/depts.zip similarity index 100% rename from client/javascript/test/e2e/resource/depts.zip rename to src/vitis/client/javascript/test/e2e/resource/depts.zip diff --git a/client/javascript/test/e2e/resource/dpt2.dbf b/src/vitis/client/javascript/test/e2e/resource/dpt2.dbf similarity index 100% rename from client/javascript/test/e2e/resource/dpt2.dbf rename to src/vitis/client/javascript/test/e2e/resource/dpt2.dbf diff --git a/client/javascript/test/e2e/resource/dpt2.prj b/src/vitis/client/javascript/test/e2e/resource/dpt2.prj similarity index 100% rename from client/javascript/test/e2e/resource/dpt2.prj rename to src/vitis/client/javascript/test/e2e/resource/dpt2.prj diff --git a/client/javascript/test/e2e/resource/dpt2.shp b/src/vitis/client/javascript/test/e2e/resource/dpt2.shp similarity index 100% rename from client/javascript/test/e2e/resource/dpt2.shp rename to src/vitis/client/javascript/test/e2e/resource/dpt2.shp diff --git a/client/javascript/test/e2e/resource/dpt2.shx b/src/vitis/client/javascript/test/e2e/resource/dpt2.shx similarity index 100% rename from client/javascript/test/e2e/resource/dpt2.shx rename to src/vitis/client/javascript/test/e2e/resource/dpt2.shx diff --git a/client/javascript/test/e2e/resource/dpt2.zip b/src/vitis/client/javascript/test/e2e/resource/dpt2.zip similarity index 100% rename from client/javascript/test/e2e/resource/dpt2.zip rename to src/vitis/client/javascript/test/e2e/resource/dpt2.zip diff --git "a/client/javascript/test/e2e/resource/d\303\251p.zip" "b/src/vitis/client/javascript/test/e2e/resource/d\303\251p.zip" similarity index 100% rename from "client/javascript/test/e2e/resource/d\303\251p.zip" rename to "src/vitis/client/javascript/test/e2e/resource/d\303\251p.zip" diff --git a/client/javascript/test/e2e/resource/ee aa.fmw b/src/vitis/client/javascript/test/e2e/resource/ee aa.fmw similarity index 100% rename from client/javascript/test/e2e/resource/ee aa.fmw rename to src/vitis/client/javascript/test/e2e/resource/ee aa.fmw diff --git a/client/javascript/test/e2e/resource/exemples.gex b/src/vitis/client/javascript/test/e2e/resource/exemples.gex similarity index 100% rename from client/javascript/test/e2e/resource/exemples.gex rename to src/vitis/client/javascript/test/e2e/resource/exemples.gex diff --git "a/client/javascript/test/e2e/resource/extraction_geofla_par_d\303\251partement.gex" "b/src/vitis/client/javascript/test/e2e/resource/extraction_geofla_par_d\303\251partement.gex" similarity index 100% rename from "client/javascript/test/e2e/resource/extraction_geofla_par_d\303\251partement.gex" rename to "src/vitis/client/javascript/test/e2e/resource/extraction_geofla_par_d\303\251partement.gex" diff --git a/client/javascript/test/e2e/resource/import_export.gex b/src/vitis/client/javascript/test/e2e/resource/import_export.gex similarity index 100% rename from client/javascript/test/e2e/resource/import_export.gex rename to src/vitis/client/javascript/test/e2e/resource/import_export.gex diff --git a/client/javascript/test/e2e/resource/import_export2.gex b/src/vitis/client/javascript/test/e2e/resource/import_export2.gex similarity index 100% rename from client/javascript/test/e2e/resource/import_export2.gex rename to src/vitis/client/javascript/test/e2e/resource/import_export2.gex diff --git a/client/javascript/test/e2e/resource/it3/ARDECHE.dbf b/src/vitis/client/javascript/test/e2e/resource/it3/ARDECHE.dbf similarity index 100% rename from client/javascript/test/e2e/resource/it3/ARDECHE.dbf rename to src/vitis/client/javascript/test/e2e/resource/it3/ARDECHE.dbf diff --git a/client/javascript/test/e2e/resource/it3/ARDECHE.prj b/src/vitis/client/javascript/test/e2e/resource/it3/ARDECHE.prj similarity index 100% rename from client/javascript/test/e2e/resource/it3/ARDECHE.prj rename to src/vitis/client/javascript/test/e2e/resource/it3/ARDECHE.prj diff --git a/client/javascript/test/e2e/resource/it3/ARDECHE.shp b/src/vitis/client/javascript/test/e2e/resource/it3/ARDECHE.shp similarity index 100% rename from client/javascript/test/e2e/resource/it3/ARDECHE.shp rename to src/vitis/client/javascript/test/e2e/resource/it3/ARDECHE.shp diff --git a/client/javascript/test/e2e/resource/it3/ARDECHE.shx b/src/vitis/client/javascript/test/e2e/resource/it3/ARDECHE.shx similarity index 100% rename from client/javascript/test/e2e/resource/it3/ARDECHE.shx rename to src/vitis/client/javascript/test/e2e/resource/it3/ARDECHE.shx diff --git a/client/javascript/test/e2e/resource/metadata.fmw b/src/vitis/client/javascript/test/e2e/resource/metadata.fmw similarity index 100% rename from client/javascript/test/e2e/resource/metadata.fmw rename to src/vitis/client/javascript/test/e2e/resource/metadata.fmw diff --git a/client/javascript/test/e2e/resource/metadata.log b/src/vitis/client/javascript/test/e2e/resource/metadata.log similarity index 100% rename from client/javascript/test/e2e/resource/metadata.log rename to src/vitis/client/javascript/test/e2e/resource/metadata.log diff --git a/client/javascript/test/e2e/resource/metadata2.fmw b/src/vitis/client/javascript/test/e2e/resource/metadata2.fmw similarity index 100% rename from client/javascript/test/e2e/resource/metadata2.fmw rename to src/vitis/client/javascript/test/e2e/resource/metadata2.fmw diff --git a/client/javascript/test/e2e/resource/selection_villes.gex b/src/vitis/client/javascript/test/e2e/resource/selection_villes.gex similarity index 100% rename from client/javascript/test/e2e/resource/selection_villes.gex rename to src/vitis/client/javascript/test/e2e/resource/selection_villes.gex diff --git a/client/javascript/test/e2e/resource/shp2mif.fmw b/src/vitis/client/javascript/test/e2e/resource/shp2mif.fmw similarity index 100% rename from client/javascript/test/e2e/resource/shp2mif.fmw rename to src/vitis/client/javascript/test/e2e/resource/shp2mif.fmw diff --git a/client/javascript/test/e2e/resource/t_abonnement.fmw b/src/vitis/client/javascript/test/e2e/resource/t_abonnement.fmw similarity index 100% rename from client/javascript/test/e2e/resource/t_abonnement.fmw rename to src/vitis/client/javascript/test/e2e/resource/t_abonnement.fmw diff --git a/client/javascript/test/e2e/resource/t_formulaire.fmw b/src/vitis/client/javascript/test/e2e/resource/t_formulaire.fmw similarity index 100% rename from client/javascript/test/e2e/resource/t_formulaire.fmw rename to src/vitis/client/javascript/test/e2e/resource/t_formulaire.fmw diff --git a/client/javascript/test/e2e/resource/t_importparlot1.fmw b/src/vitis/client/javascript/test/e2e/resource/t_importparlot1.fmw similarity index 100% rename from client/javascript/test/e2e/resource/t_importparlot1.fmw rename to src/vitis/client/javascript/test/e2e/resource/t_importparlot1.fmw diff --git a/client/javascript/test/e2e/resource/t_importparlot2.fmw b/src/vitis/client/javascript/test/e2e/resource/t_importparlot2.fmw similarity index 100% rename from client/javascript/test/e2e/resource/t_importparlot2.fmw rename to src/vitis/client/javascript/test/e2e/resource/t_importparlot2.fmw diff --git a/client/javascript/test/e2e/resource/t_unicite.fmw b/src/vitis/client/javascript/test/e2e/resource/t_unicite.fmw similarity index 100% rename from client/javascript/test/e2e/resource/t_unicite.fmw rename to src/vitis/client/javascript/test/e2e/resource/t_unicite.fmw diff --git a/client/javascript/test/e2e/resource/test_gex.gex b/src/vitis/client/javascript/test/e2e/resource/test_gex.gex similarity index 100% rename from client/javascript/test/e2e/resource/test_gex.gex rename to src/vitis/client/javascript/test/e2e/resource/test_gex.gex diff --git a/client/javascript/test/e2e/resource/test_param_choice_villes.fmw b/src/vitis/client/javascript/test/e2e/resource/test_param_choice_villes.fmw similarity index 100% rename from client/javascript/test/e2e/resource/test_param_choice_villes.fmw rename to src/vitis/client/javascript/test/e2e/resource/test_param_choice_villes.fmw diff --git a/client/javascript/test/e2e/resource/test_param_couleur.fmw b/src/vitis/client/javascript/test/e2e/resource/test_param_couleur.fmw similarity index 100% rename from client/javascript/test/e2e/resource/test_param_couleur.fmw rename to src/vitis/client/javascript/test/e2e/resource/test_param_couleur.fmw diff --git a/client/javascript/test/e2e/resource/test_param_date_time.fmw b/src/vitis/client/javascript/test/e2e/resource/test_param_date_time.fmw similarity index 100% rename from client/javascript/test/e2e/resource/test_param_date_time.fmw rename to src/vitis/client/javascript/test/e2e/resource/test_param_date_time.fmw diff --git a/client/javascript/test/e2e/resource/test_param_date_time.log b/src/vitis/client/javascript/test/e2e/resource/test_param_date_time.log similarity index 100% rename from client/javascript/test/e2e/resource/test_param_date_time.log rename to src/vitis/client/javascript/test/e2e/resource/test_param_date_time.log diff --git a/client/javascript/test/e2e/resource/villes.zip b/src/vitis/client/javascript/test/e2e/resource/villes.zip similarity index 100% rename from client/javascript/test/e2e/resource/villes.zip rename to src/vitis/client/javascript/test/e2e/resource/villes.zip diff --git a/client/javascript/test/e2e/resource/vse.jpg b/src/vitis/client/javascript/test/e2e/resource/vse.jpg similarity index 100% rename from client/javascript/test/e2e/resource/vse.jpg rename to src/vitis/client/javascript/test/e2e/resource/vse.jpg diff --git "a/client/javascript/test/e2e/resource/\303\251\303\240.fmw" "b/src/vitis/client/javascript/test/e2e/resource/\303\251\303\240.fmw" similarity index 100% rename from "client/javascript/test/e2e/resource/\303\251\303\240.fmw" rename to "src/vitis/client/javascript/test/e2e/resource/\303\251\303\240.fmw" diff --git a/client/javascript/test/e2e/scenario/sc_vitis_abonnement.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_abonnement.js similarity index 100% rename from client/javascript/test/e2e/scenario/sc_vitis_abonnement.js rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_abonnement.js diff --git a/client/javascript/test/e2e/scenario/sc_vitis_ad.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_ad.js similarity index 100% rename from client/javascript/test/e2e/scenario/sc_vitis_ad.js rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_ad.js diff --git a/client/javascript/test/e2e/scenario/sc_vitis_categorie.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_categorie.js similarity index 100% rename from client/javascript/test/e2e/scenario/sc_vitis_categorie.js rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_categorie.js diff --git a/client/javascript/test/e2e/scenario/sc_vitis_depot.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_depot.js similarity index 100% rename from client/javascript/test/e2e/scenario/sc_vitis_depot.js rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_depot.js diff --git a/client/javascript/test/e2e/scenario/sc_vitis_fichiers_interdits.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_fichiers_interdits.js similarity index 100% rename from client/javascript/test/e2e/scenario/sc_vitis_fichiers_interdits.js rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_fichiers_interdits.js diff --git a/client/javascript/test/e2e/scenario/sc_vitis_filter.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_filter.js similarity index 100% rename from client/javascript/test/e2e/scenario/sc_vitis_filter.js rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_filter.js diff --git a/client/javascript/test/e2e/scenario/sc_vitis_fme_params.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_fme_params.js similarity index 100% rename from client/javascript/test/e2e/scenario/sc_vitis_fme_params.js rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_fme_params.js diff --git a/client/javascript/test/e2e/scenario/sc_vitis_formulaire.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_formulaire.js similarity index 100% rename from client/javascript/test/e2e/scenario/sc_vitis_formulaire.js rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_formulaire.js diff --git a/client/javascript/test/e2e/scenario/sc_vitis_import_export.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_import_export.js similarity index 100% rename from client/javascript/test/e2e/scenario/sc_vitis_import_export.js rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_import_export.js diff --git a/client/javascript/test/e2e/scenario/sc_vitis_ip.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_ip.js similarity index 100% rename from client/javascript/test/e2e/scenario/sc_vitis_ip.js rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_ip.js diff --git a/client/javascript/test/e2e/scenario/sc_vitis_lot.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_lot.js similarity index 100% rename from client/javascript/test/e2e/scenario/sc_vitis_lot.js rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_lot.js diff --git a/client/javascript/test/e2e/scenario/sc_vitis_metadata.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_metadata.js similarity index 100% rename from client/javascript/test/e2e/scenario/sc_vitis_metadata.js rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_metadata.js diff --git a/client/javascript/test/e2e/scenario/sc_vitis_moteurs.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_moteurs.js similarity index 100% rename from client/javascript/test/e2e/scenario/sc_vitis_moteurs.js rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_moteurs.js diff --git a/client/javascript/test/e2e/scenario/sc_vitis_order.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_order.js similarity index 100% rename from client/javascript/test/e2e/scenario/sc_vitis_order.js rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_order.js diff --git a/client/javascript/test/e2e/scenario/sc_vitis_publication.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_publication.js similarity index 100% rename from client/javascript/test/e2e/scenario/sc_vitis_publication.js rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_publication.js diff --git a/client/javascript/test/e2e/scenario/sc_vitis_unicite.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_unicite.js similarity index 100% rename from client/javascript/test/e2e/scenario/sc_vitis_unicite.js rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_unicite.js diff --git a/client/javascript/test/e2e/scenario/sc_vitis_upload.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_upload.js similarity index 100% rename from client/javascript/test/e2e/scenario/sc_vitis_upload.js rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_upload.js diff --git a/client/javascript/test/e2e/scenario/sc_vitis_upload_fmw.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_upload_fmw.js similarity index 100% rename from client/javascript/test/e2e/scenario/sc_vitis_upload_fmw.js rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_upload_fmw.js diff --git a/client/javascript/test/e2e/scenario/sc_vitis_upload_zip.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_upload_zip.js similarity index 100% rename from client/javascript/test/e2e/scenario/sc_vitis_upload_zip.js rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_upload_zip.js diff --git a/client/javascript/test/e2e/scenario/sc_vitis_user_existant.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_user_existant.js similarity index 100% rename from client/javascript/test/e2e/scenario/sc_vitis_user_existant.js rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_user_existant.js diff --git a/client/javascript/test/e2e/scenario/sc_vitis_users.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_users.js similarity index 100% rename from client/javascript/test/e2e/scenario/sc_vitis_users.js rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_users.js diff --git a/client/javascript/test/e2e/scenario/sc_vitis_users_linux.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_users_linux.js similarity index 100% rename from client/javascript/test/e2e/scenario/sc_vitis_users_linux.js rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_users_linux.js diff --git a/client/javascript/test/e2e/scenario/sc_vitis_users_speciaux.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_users_speciaux.js similarity index 100% rename from client/javascript/test/e2e/scenario/sc_vitis_users_speciaux.js rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_users_speciaux.js diff --git a/client/javascript/test/e2e/scenario/sc_vitis_users_speciaux_linux.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_users_speciaux_linux.js similarity index 100% rename from client/javascript/test/e2e/scenario/sc_vitis_users_speciaux_linux.js rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_users_speciaux_linux.js diff --git a/client/javascript/test/e2e/scenario/sc_vitis_verrouillage_projet.js b/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_verrouillage_projet.js similarity index 100% rename from client/javascript/test/e2e/scenario/sc_vitis_verrouillage_projet.js rename to src/vitis/client/javascript/test/e2e/scenario/sc_vitis_verrouillage_projet.js diff --git a/client/lang/lang-en.json b/src/vitis/client/lang/lang-en.json similarity index 95% rename from client/lang/lang-en.json rename to src/vitis/client/lang/lang-en.json index 349fcf07..0038b811 100644 --- a/client/lang/lang-en.json +++ b/src/vitis/client/lang/lang-en.json @@ -7,6 +7,7 @@ "FORM_LOGIN_CONNECTION_ERROR": "Connection failed. Incorrect user / password / domain or database not available", "FORM_LOGIN_CONNECTION_ERROR_FORBIDDEN_IP": "Connection failed. IP [IPAddress] forbiden", "FORM_LOGIN_CONNECTION_ERROR_MISSING_PRIVILEGES": "Connection failed. The user does not have the required privileges. Please contact your administrator.", + "FORM_LOGIN_CONNECTION_ERROR_UNREACHABLE_DATABASE": "The application is currently unavailable (database unreachable).", "FORM_LOGIN_REMEMBER_ME": "Remember connection?", "FORM_APP_STATUS_ERROR": "Unstable application", "FORM_VAS_STATUS_ERROR": "Unstable VAS", diff --git a/client/lang/lang-fr.json b/src/vitis/client/lang/lang-fr.json similarity index 96% rename from client/lang/lang-fr.json rename to src/vitis/client/lang/lang-fr.json index 5c5eb178..7dfe445b 100644 --- a/client/lang/lang-fr.json +++ b/src/vitis/client/lang/lang-fr.json @@ -7,6 +7,7 @@ "FORM_LOGIN_CONNECTION_ERROR": "Connexion refusée. Utilisateur / Mot de passe / domaine incorrect ou base de données non disponible.", "FORM_LOGIN_CONNECTION_ERROR_FORBIDDEN_IP": "Connexion refusée. Adresse IP [IPAddress] non autorisée", "FORM_LOGIN_CONNECTION_ERROR_MISSING_PRIVILEGES": "Connexion refusée. L'utilisateur ne dispose pas des privilèges requis. Merci de contacter votre administrateur.", + "FORM_LOGIN_CONNECTION_ERROR_UNREACHABLE_DATABASE": "L'application est actuellement indisponible (base de données injoignable).", "FORM_LOGIN_REMEMBER_ME": "Se souvenir de moi ?", "FORM_APP_STATUS_ERROR": "Application instable", "FORM_VAS_STATUS_ERROR": "VAS instable", diff --git a/client/less/doubleForm.less b/src/vitis/client/less/doubleForm.less similarity index 100% rename from client/less/doubleForm.less rename to src/vitis/client/less/doubleForm.less diff --git a/client/less/htmlForm.less b/src/vitis/client/less/htmlForm.less similarity index 97% rename from client/less/htmlForm.less rename to src/vitis/client/less/htmlForm.less index 10480f56..99e18c28 100755 --- a/client/less/htmlForm.less +++ b/src/vitis/client/less/htmlForm.less @@ -595,3 +595,16 @@ form .checkbox { .timepicker-picker > table, .bootstrap-datetimepicker-widget .picker-switch .table-condensed { margin: auto } + +// Loader ajax pour un element de formulaire. +.form-glyphicon-refresh-animate { + display: inline-block; + top: 3px !important; + left: 3px; + font-size: large; + font-weight: 800; + color: black; + -webkit-animation:spin 1.5s linear infinite; + -moz-animation:spin 1.5s linear infinite; + animation:spin 1.5s linear infinite; +} diff --git a/client/less/login.less b/src/vitis/client/less/login.less similarity index 100% rename from client/less/login.less rename to src/vitis/client/less/login.less diff --git a/client/less/main.less b/src/vitis/client/less/main.less old mode 100755 new mode 100644 similarity index 100% rename from client/less/main.less rename to src/vitis/client/less/main.less diff --git a/client/less/mobile.less b/src/vitis/client/less/mobile.less similarity index 100% rename from client/less/mobile.less rename to src/vitis/client/less/mobile.less diff --git a/client/less/sectionForm.less b/src/vitis/client/less/sectionForm.less similarity index 100% rename from client/less/sectionForm.less rename to src/vitis/client/less/sectionForm.less diff --git a/client/less/simpleForm.less b/src/vitis/client/less/simpleForm.less similarity index 100% rename from client/less/simpleForm.less rename to src/vitis/client/less/simpleForm.less diff --git a/client/less/workspaceList.less b/src/vitis/client/less/workspaceList.less similarity index 100% rename from client/less/workspaceList.less rename to src/vitis/client/less/workspaceList.less diff --git a/client/modules/vitis/data/proj.json b/src/vitis/client/modules/vitis/data/proj.json similarity index 100% rename from client/modules/vitis/data/proj.json rename to src/vitis/client/modules/vitis/data/proj.json diff --git a/client/modules/vitis/forms/configuration/configuration_vitis_configuration.json b/src/vitis/client/modules/vitis/forms/configuration/configuration_vitis_configuration.json old mode 100755 new mode 100644 similarity index 100% rename from client/modules/vitis/forms/configuration/configuration_vitis_configuration.json rename to src/vitis/client/modules/vitis/forms/configuration/configuration_vitis_configuration.json diff --git a/src/vitis/client/modules/vitis/forms/exploitation/exploitation_exploitation.json b/src/vitis/client/modules/vitis/forms/exploitation/exploitation_exploitation.json new file mode 100755 index 00000000..a7b4cde9 --- /dev/null +++ b/src/vitis/client/modules/vitis/forms/exploitation/exploitation_exploitation.json @@ -0,0 +1,160 @@ +{ + "search":{ + + }, + "update":{ + "name":"gtf_exploitation_shared_directory_update_form", + "title":"FORM_TITLE_EXPLOITATION_EXPLOITATION", + "initEvent":"initExploitationSharedDirectoryForm()", + "event":"", + "input_size":"xs", + "nb_cols":12, + "class":"project-directory-upload-form", + "rows":[ + { + "class":"shared-directory-treeview", + "fields":[ + { + "type":"treeview", + "name":"shared_directory", + "label":"", + "required":false, + "pattern":"", + "nb_cols":12, + "id":"shared_directory", + "options":{ + "showBorder":false, + "levels":0, + "showCheckbox":true, + "expandIcon":"glyphicon glyphicon-folder-close", + "collapseIcon":"glyphicon glyphicon-folder-open", + "highlightSelected":true, + "multiSelect":false, + "dataLoadingEvent": "sharedDirectoryTreeviewDataLoaded" + } + } + ] + }, + { + "fields":[ + { + "type":"button", + "class":"btn-ungroup btn-group-xs", + "nb_cols":12, + "buttons":[ + { + "type":"button", + "name":"btn_download_file", + "glyphicon":"download", + "class":"btn-primary btn-xs", + "event":"downloadFile()", + "tooltip": { + "title":"FORM_DOWNLOAD_FILE_EXPLOITATION_EXPLOITATION", + "placement": "bottom", + "trigger": "hover", + "container": "body" + }, + "visible":false + }, + { + "type":"button", + "name":"btn_refresh_treeview", + "glyphicon":"refresh", + "class":"btn-primary btn-xs", + "event":"refreshExploitationSharedDirectoryTreeview()", + "tooltip": { + "title":"FORM_RELOAD_DIRECTORY_EXPLOITATION_EXPLOITATION", + "placement": "bottom", + "trigger": "hover", + "container": "body" + } + }, + { + "type":"button", + "name":"btn_delete_file", + "glyphicon":"trash", + "class":"btn-primary btn-xs", + "event":"deleteSharedDirectoryFiles()", + "tooltip": { + "title":"FORM_DELETE_FILES_EXPLOITATION_EXPLOITATION", + "placement": "bottom", + "trigger": "hover" + } + } + ] + } + ] + }, + { + "class":"form-field-inline", + "fields":[ + { + "type":"upload", + "name":"file", + "label":"FORM_FILE_EXPLOITATION_EXPLOITATION", + "nb_cols":4 + }, + { + "type":"text", + "name":"directory_name", + "label":"FORM_DIRECTORY_EXPLOITATION_EXPLOITATION", + "nb_cols":4 + } + ] + }, + { + "class":"form-field-inline", + "fields":[ + { + "type":"button", + "class":"btn-ungroup btn-group-sm", + "nb_cols":4, + "buttons":[ + { + "type":"button", + "name":"btn_upload_file", + "label":"FORM_UPLOAD_FMW_FILE_EXPLOITATION_EXPLOITATION", + "event":"uploadSharedDirectoryFile()", + "class":"btn-primary" + } + ] + }, + { + "type":"button", + "class":"btn-ungroup btn-group-sm", + "nb_cols":4, + "buttons":[ + { + "type":"button", + "name":"btn_create_directory", + "label":"FORM_BTN_CREATE_DIRECTORY_EXPLOITATION_EXPLOITATION", + "event":"createSharedDirectoryFolder()", + "class":"btn-primary" + } + ] + } + ] + } + ] + }, + "insert":{ + + }, + "display":{ + "name":"gtf_exploitation_shared_directory_display_form", + "title":"FORM_TITLE_EXPLOITATION_EXPLOITATION", + "input_size":"xs", + "nb_cols":8, + "rows":[ + { + "fields":[ + { + "type":"hidden", + "name":"fmw_file", + "nb_cols":12 + } + ] + } + ] + } +} \ No newline at end of file diff --git a/client/modules/vitis/forms/logs/logs_vitis_log.json b/src/vitis/client/modules/vitis/forms/logs/logs_vitis_log.json similarity index 100% rename from client/modules/vitis/forms/logs/logs_vitis_log.json rename to src/vitis/client/modules/vitis/forms/logs/logs_vitis_log.json diff --git a/client/modules/vitis/forms/user/user_vitis_user.js b/src/vitis/client/modules/vitis/forms/user/user_vitis_user.js similarity index 100% rename from client/modules/vitis/forms/user/user_vitis_user.js rename to src/vitis/client/modules/vitis/forms/user/user_vitis_user.js diff --git a/client/modules/vitis/forms/user/user_vitis_user.json b/src/vitis/client/modules/vitis/forms/user/user_vitis_user.json old mode 100755 new mode 100644 similarity index 100% rename from client/modules/vitis/forms/user/user_vitis_user.json rename to src/vitis/client/modules/vitis/forms/user/user_vitis_user.json diff --git a/client/modules/vitis/forms/users/active_directory_connection.json b/src/vitis/client/modules/vitis/forms/users/active_directory_connection.json similarity index 100% rename from client/modules/vitis/forms/users/active_directory_connection.json rename to src/vitis/client/modules/vitis/forms/users/active_directory_connection.json diff --git a/client/modules/vitis/forms/users/search_active_directory_group.json b/src/vitis/client/modules/vitis/forms/users/search_active_directory_group.json similarity index 100% rename from client/modules/vitis/forms/users/search_active_directory_group.json rename to src/vitis/client/modules/vitis/forms/users/search_active_directory_group.json diff --git a/client/modules/vitis/forms/users/search_active_directory_person.json b/src/vitis/client/modules/vitis/forms/users/search_active_directory_person.json similarity index 100% rename from client/modules/vitis/forms/users/search_active_directory_person.json rename to src/vitis/client/modules/vitis/forms/users/search_active_directory_person.json diff --git a/client/modules/vitis/forms/users/users_vitis_billinggroup.json b/src/vitis/client/modules/vitis/forms/users/users_vitis_billinggroup.json similarity index 100% rename from client/modules/vitis/forms/users/users_vitis_billinggroup.json rename to src/vitis/client/modules/vitis/forms/users/users_vitis_billinggroup.json diff --git a/client/modules/vitis/forms/users/users_vitis_domain.json b/src/vitis/client/modules/vitis/forms/users/users_vitis_domain.json similarity index 100% rename from client/modules/vitis/forms/users/users_vitis_domain.json rename to src/vitis/client/modules/vitis/forms/users/users_vitis_domain.json diff --git a/client/modules/vitis/forms/users/users_vitis_group.json b/src/vitis/client/modules/vitis/forms/users/users_vitis_group.json similarity index 100% rename from client/modules/vitis/forms/users/users_vitis_group.json rename to src/vitis/client/modules/vitis/forms/users/users_vitis_group.json diff --git a/client/modules/vitis/forms/users/users_vitis_privilege.json b/src/vitis/client/modules/vitis/forms/users/users_vitis_privilege.json similarity index 100% rename from client/modules/vitis/forms/users/users_vitis_privilege.json rename to src/vitis/client/modules/vitis/forms/users/users_vitis_privilege.json diff --git a/client/modules/vitis/forms/users/users_vitis_users.json b/src/vitis/client/modules/vitis/forms/users/users_vitis_users.json old mode 100755 new mode 100644 similarity index 100% rename from client/modules/vitis/forms/users/users_vitis_users.json rename to src/vitis/client/modules/vitis/forms/users/users_vitis_users.json diff --git a/client/modules/vitis/images/administrator.png b/src/vitis/client/modules/vitis/images/administrator.png similarity index 100% rename from client/modules/vitis/images/administrator.png rename to src/vitis/client/modules/vitis/images/administrator.png diff --git a/client/modules/vitis/images/button_green.gif b/src/vitis/client/modules/vitis/images/button_green.gif similarity index 100% rename from client/modules/vitis/images/button_green.gif rename to src/vitis/client/modules/vitis/images/button_green.gif diff --git a/client/modules/vitis/images/button_red.gif b/src/vitis/client/modules/vitis/images/button_red.gif similarity index 100% rename from client/modules/vitis/images/button_red.gif rename to src/vitis/client/modules/vitis/images/button_red.gif diff --git a/client/modules/vitis/images/user.png b/src/vitis/client/modules/vitis/images/user.png similarity index 100% rename from client/modules/vitis/images/user.png rename to src/vitis/client/modules/vitis/images/user.png diff --git a/client/modules/vitis/javascript/controllers/activeDirectoryTreeCtrl.js b/src/vitis/client/modules/vitis/javascript/controllers/activeDirectoryTreeCtrl.js similarity index 100% rename from client/modules/vitis/javascript/controllers/activeDirectoryTreeCtrl.js rename to src/vitis/client/modules/vitis/javascript/controllers/activeDirectoryTreeCtrl.js diff --git a/client/modules/vitis/javascript/controllers/logsCtrl.js b/src/vitis/client/modules/vitis/javascript/controllers/logsCtrl.js similarity index 100% rename from client/modules/vitis/javascript/controllers/logsCtrl.js rename to src/vitis/client/modules/vitis/javascript/controllers/logsCtrl.js diff --git a/client/modules/vitis/javascript/controllers/versionConfigurationCtrl.js b/src/vitis/client/modules/vitis/javascript/controllers/versionConfigurationCtrl.js similarity index 100% rename from client/modules/vitis/javascript/controllers/versionConfigurationCtrl.js rename to src/vitis/client/modules/vitis/javascript/controllers/versionConfigurationCtrl.js diff --git a/client/modules/vitis/javascript/controllers/webServiceHelpCtrl.js b/src/vitis/client/modules/vitis/javascript/controllers/webServiceHelpCtrl.js similarity index 100% rename from client/modules/vitis/javascript/controllers/webServiceHelpCtrl.js rename to src/vitis/client/modules/vitis/javascript/controllers/webServiceHelpCtrl.js diff --git a/client/modules/vitis/javascript/controllers/websocketConfigurationCtrl.js b/src/vitis/client/modules/vitis/javascript/controllers/websocketConfigurationCtrl.js similarity index 100% rename from client/modules/vitis/javascript/controllers/websocketConfigurationCtrl.js rename to src/vitis/client/modules/vitis/javascript/controllers/websocketConfigurationCtrl.js diff --git a/client/modules/vitis/javascript/deps.js b/src/vitis/client/modules/vitis/javascript/deps.js similarity index 100% rename from client/modules/vitis/javascript/deps.js rename to src/vitis/client/modules/vitis/javascript/deps.js diff --git a/client/modules/vitis/javascript/directives/activeDirectoryTreeDrtv.js b/src/vitis/client/modules/vitis/javascript/directives/activeDirectoryTreeDrtv.js similarity index 100% rename from client/modules/vitis/javascript/directives/activeDirectoryTreeDrtv.js rename to src/vitis/client/modules/vitis/javascript/directives/activeDirectoryTreeDrtv.js diff --git a/client/modules/vitis/javascript/directives/logsDrtv.js b/src/vitis/client/modules/vitis/javascript/directives/logsDrtv.js similarity index 100% rename from client/modules/vitis/javascript/directives/logsDrtv.js rename to src/vitis/client/modules/vitis/javascript/directives/logsDrtv.js diff --git a/client/modules/vitis/javascript/directives/phpInfoConfigurationDrtv.js b/src/vitis/client/modules/vitis/javascript/directives/phpInfoConfigurationDrtv.js similarity index 100% rename from client/modules/vitis/javascript/directives/phpInfoConfigurationDrtv.js rename to src/vitis/client/modules/vitis/javascript/directives/phpInfoConfigurationDrtv.js diff --git a/client/modules/vitis/javascript/directives/versionConfigurationDrtv.js b/src/vitis/client/modules/vitis/javascript/directives/versionConfigurationDrtv.js similarity index 100% rename from client/modules/vitis/javascript/directives/versionConfigurationDrtv.js rename to src/vitis/client/modules/vitis/javascript/directives/versionConfigurationDrtv.js diff --git a/client/modules/vitis/javascript/directives/webServiceHelpDrtv.js b/src/vitis/client/modules/vitis/javascript/directives/webServiceHelpDrtv.js similarity index 100% rename from client/modules/vitis/javascript/directives/webServiceHelpDrtv.js rename to src/vitis/client/modules/vitis/javascript/directives/webServiceHelpDrtv.js diff --git a/client/modules/vitis/javascript/directives/websocketConfigurationDrtv.js b/src/vitis/client/modules/vitis/javascript/directives/websocketConfigurationDrtv.js similarity index 100% rename from client/modules/vitis/javascript/directives/websocketConfigurationDrtv.js rename to src/vitis/client/modules/vitis/javascript/directives/websocketConfigurationDrtv.js diff --git a/client/modules/vitis/javascript/script_module.js b/src/vitis/client/modules/vitis/javascript/script_module.js old mode 100755 new mode 100644 similarity index 85% rename from client/modules/vitis/javascript/script_module.js rename to src/vitis/client/modules/vitis/javascript/script_module.js index 1f0e99b4..716b8de9 --- a/client/modules/vitis/javascript/script_module.js +++ b/src/vitis/client/modules/vitis/javascript/script_module.js @@ -1211,7 +1211,9 @@ vitisApp.on('appMainDrtvLoaded', function () { '</div>', link: function (scope, element, attrs) { - scope.textValue = (goog.isDefAndNotNull(attrs["hidevalue"])) ? "" : scope["row"]["entity"][scope["col"]["field"]] + "%"; + scope.$watch("row.entity." + scope["col"]["field"], function(val){ + scope.textValue = (goog.isDefAndNotNull(attrs["hidevalue"])) ? "" : val + "%"; + }); if (goog.isDefAndNotNull(attrs["mode"])) element[0].firstChild.className = element[0].firstChild.className + " progress-bar-" + attrs["mode"]; @@ -1693,4 +1695,261 @@ vitisApp.on('appMainDrtvLoaded', function () { envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["tr_status_method"] = sMethod; // l'event submit du formulaire sera appelé après cette fonction }; + + /** + * loadVitisExploitation function. + * Chargement des sections du mode "exploitation". + **/ + angular.element(vitisApp.appMainDrtv).scope()["loadVitisExploitation"] = function () { + // Injection des services. + var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]); + var envSrvc = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(["envSrvc"]); + // + $log.info("loadVitisExploitation"); + // Passage en mode "Update" (pour afficher les sections). + envSrvc["sMode"] = "update"; + }; + + /** + * initExploitationSharedDirectoryForm function. + * Chargement de l'arborescence du répertoire partagé. + **/ + angular.element(vitisApp.appMainDrtv).scope()["initExploitationSharedDirectoryForm"] = function () { + // Injection des services. + var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]); + var $rootScope = angular.element(vitisApp.appMainDrtv).injector().get(["$rootScope"]); + var $timeout = angular.element(vitisApp.appMainDrtv).injector().get(["$timeout"]); + var formSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["formSrvc"]); + var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]); + // + $log.info("initExploitationSharedDirectoryForm"); + // Attends la fin de l'affichage du 1er formulaire. + var clearListener = $rootScope.$on('formExtracted', function (event) { + // Supprime le "listener". + clearListener(); + // + $timeout(function () { + $rootScope["loadExploitationSharedDirectoryTreeviewData"]().then(function(aNodes){ + $rootScope.$emit("sharedDirectoryTreeviewDataLoaded", aNodes); + }); + }); + // Huteur du treeview. + var oFormElementDefinition = formSrvc["getFormElementDefinition"]("shared_directory", envSrvc["sFormDefinitionName"]); + document.getElementById(oFormElementDefinition["id"] + "_treeview").style.height = document.getElementById("container_mode_exploitation").clientHeight - 221 + "px"; + }); + }; + + /** + * refreshExploitationSharedDirectoryTreeview function. + * Recharge les données du treeview du répertoire partagé. + **/ + angular.element(vitisApp.appMainDrtv).scope()["refreshExploitationSharedDirectoryTreeview"] = function () { + // Injection des services. + var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]); + var $rootScope = angular.element(vitisApp.appMainDrtv).injector().get(["$rootScope"]); + var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]); + var formSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["formSrvc"]); + // + $log.info("refreshExploitationSharedDirectoryTreeview"); + $rootScope["loadExploitationSharedDirectoryTreeviewData"]().then(function(aNodes){ + var oFormElementDefinition = formSrvc["getFormElementDefinition"]("shared_directory", envSrvc["sFormDefinitionName"]); + var oTreeviewOptions = $("#" + oFormElementDefinition["id"] + "_treeview")["treeview"](true)["options"]; + $("#" + oFormElementDefinition["id"] + "_treeview")["treeview"](true)["remove"](); + oTreeviewOptions["data"] = aNodes; + $("#" + oFormElementDefinition["id"] + "_treeview")["treeview"](oTreeviewOptions); + // Huteur du treeview. + document.getElementById(oFormElementDefinition["id"] + "_treeview").style.height = document.getElementById("container_mode_exploitation").parentElement.clientHeight - 221 + "px"; + }); + }; + + /** + * loadExploitationSharedDirectoryTreeviewData function. + * Charge les données du treeview du répertoire partagé. + **/ + angular.element(vitisApp.appMainDrtv).scope()["loadExploitationSharedDirectoryTreeviewData"] = function () { + // Injection des services. + var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]); + var $q = angular.element(vitisApp.appStatisticsFormDrtv).injector().get(["$q"]); + var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]); + // + $log.info("loadExploitationSharedDirectoryTreeviewData"); + var deferred = $q.defer(); + var promise = deferred.promise; + // Charge l'arborescence du répertoire partagé. + ajaxRequest({ + "method": "GET", + "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/vitis/exploitations/SharedDirectory", + "success": function(response) { + if (response["data"]["status"] === 1) { + if (typeof (response["data"]) !== "undefined") + deferred.resolve(response["data"]["tree"]["data"]); + } + } + }); + return promise; + }; + + /** + * deleteSharedDirectoryFiles function. + * Charge les données du treeview du répertoire partagé. + **/ + angular.element(vitisApp.appMainDrtv).scope()["deleteSharedDirectoryFiles"] = function () { + // Injection des services. + var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]); + var $rootScope = angular.element(vitisApp.appMainDrtv).injector().get(["$rootScope"]); + var $translate = angular.element(vitisApp.appMainDrtv).injector().get(["$translate"]); + var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]); + var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]); + var formSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["formSrvc"]); + // + $log.info("deleteSharedDirectoryFiles"); + var oFormElementDefinition = formSrvc["getFormElementDefinition"]("shared_directory", envSrvc["sFormDefinitionName"]); + var aFileList = $("#" + oFormElementDefinition["id"] + "_treeview")["treeview"](true)["getChecked"](); + if (aFileList.length > 0) { + var oOptions = { + "className": "modal-warning", + "message": "CONFIRM_DELETE_FILES_EXPLOITATION_EXPLOITATION", + "callback": function(bResponse) { + if (bResponse) { + // Liste des fichiers et répertoires à supprimer. + var aFilePathList = []; + for (var i = 0; i < aFileList.length; i++) { + if (typeof(aFileList[i]["path"]["nodes"] != "undefined")) + aFilePathList.push(aFileList[i]["path"]); + else + aFilePathList.push(aFileList[i]["path"] + "/" + aFileList[i]["name"]); + } + // Suppression des fichiers et répertoires. + ajaxRequest({ + "method": "DELETE", + "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/vitis/exploitations/SharedDirectory", + "params": { + "idList": aFilePathList.join("|") + }, + "success": function(response) { + if (response["data"]["status"] == 1) { + // Message et rechargement du treeview. + $translate("SUCCESSFUL_OPERATION").then(function (sTranslation) { + $.notify(sTranslation, "success"); + $rootScope["refreshExploitationSharedDirectoryTreeview"](); + }); + } + else { + // Affichage de la fenêtre modale d'erreur. + $rootScope["modalWindow"]("dialog", response["data"]["errorMessage"], {"className": "modal-danger"}); + } + } + }); + } + } + } + $rootScope["modalWindow"]("confirm", "", oOptions); + } + }; + + /** + * createSharedDirectoryFolder function. + * Création d'un répertoire dans le répertoire partagé. + **/ + angular.element(vitisApp.appMainDrtv).scope()["createSharedDirectoryFolder"] = function () { + // Injection des services. + var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]); + var $translate = angular.element(vitisApp.appMainDrtv).injector().get(["$translate"]); + var $rootScope = angular.element(vitisApp.appMainDrtv).injector().get(["$rootScope"]); + var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]); + var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]); + var formSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["formSrvc"]); + // + $log.info("createSharedDirectoryFolder"); + // Si un répertoire est sélectionné -> création à l'intérieur. + var sDirectoryPath = envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["directory_name"]; + if (typeof(sDirectoryPath) == "string" && sDirectoryPath != "") { + var oFormElementDefinition = formSrvc["getFormElementDefinition"]("shared_directory", envSrvc["sFormDefinitionName"]); + var aFileList = $("#" + oFormElementDefinition["id"] + "_treeview")["treeview"](true)["getSelected"](); + if (aFileList.length > 0) + sDirectoryPath = aFileList[0]["path"] + "/" + sDirectoryPath; + // + var formData = new FormData(); + formData.append("directory_path", sDirectoryPath); + ajaxRequest({ + "method": "POST", + "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/vitis/exploitations/SharedDirectory/Directory", + "data": formData, + "success": function(response) { + if (response["data"]["status"] == 1) { + // Message et rechargement du treeview. + $translate("SUCCESSFUL_OPERATION").then(function (sTranslation) { + $.notify(sTranslation, "success"); + $rootScope["refreshExploitationSharedDirectoryTreeview"](); + var sFormElementName = envSrvc['oFormDefinition'][envSrvc['sFormDefinitionName']]['name']; + document.querySelector("form[name='" + sFormElementName + "']").reset(); + }); + } + else { + // Affichage de la fenêtre modale d'erreur. + $rootScope["modalWindow"]("dialog", response["data"]["errorMessage"], {"className": "modal-danger"}); + } + } + }); + } + else { + // Affichage de la fenêtre modale d'erreur. + $rootScope["modalWindow"]("dialog", "FORM_NO_DIRECTORY_EXPLOITATION_EXPLOITATION", {"className": "modal-danger"}); + } + }; + + /** + * uploadSharedDirectoryFile function. + * Upload d'un fichier dans le répertoire partagé. + **/ + angular.element(vitisApp.appMainDrtv).scope()["uploadSharedDirectoryFile"] = function () { + // Injection des services. + var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]); + var $translate = angular.element(vitisApp.appMainDrtv).injector().get(["$translate"]); + var $rootScope = angular.element(vitisApp.appMainDrtv).injector().get(["$rootScope"]); + var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]); + var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]); + var formSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["formSrvc"]); + // + $log.info("uploadSharedDirectoryFile"); + // Si un fichier est sélectionné -> upload. + var oFile = envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["file"]; + if (typeof(oFile) != "undefined" && oFile["aFiles"].length > 0) { + // Upload dans un répertoire. + var sDirectoryPath = ""; + var oFormElementDefinition = formSrvc["getFormElementDefinition"]("shared_directory", envSrvc["sFormDefinitionName"]); + var aFileList = $("#" + oFormElementDefinition["id"] + "_treeview")["treeview"](true)["getSelected"](); + if (aFileList.length > 0) + sDirectoryPath = aFileList[0]["path"]; + // Création du formdata. + var formData = new FormData(); + formData.append("file", oFile["aFiles"][0]); + formData.append("directory_path", sDirectoryPath); + // + ajaxRequest({ + "method": "POST", + "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/vitis/exploitations/SharedDirectory/File", + "data": formData, + "success": function(response) { + if (response["data"]["status"] == 1) { + // Message, rechargement du treeview, vidage du formulaire. + $translate("SUCCESSFUL_OPERATION").then(function (sTranslation) { + $.notify(sTranslation, "success"); + $rootScope["refreshExploitationSharedDirectoryTreeview"](); + var sFormElementName = envSrvc['oFormDefinition'][envSrvc['sFormDefinitionName']]['name']; + document.querySelector("form[name='" + sFormElementName + "']").reset(); + }); + } + else { + // Affichage de la fenêtre modale d'erreur. + $rootScope["modalWindow"]("dialog", response["data"]["errorMessage"], {"className": "modal-danger"}); + } + } + }); + } + else { + // Affichage de la fenêtre modale d'erreur. + $rootScope["modalWindow"]("dialog", "FORM_NO_FILE_EXPLOITATION_EXPLOITATION", {"className": "modal-danger"}); + } + }; }); \ No newline at end of file diff --git a/client/modules/vitis/lang/lang-en.json b/src/vitis/client/modules/vitis/lang/lang-en.json old mode 100755 new mode 100644 similarity index 93% rename from client/modules/vitis/lang/lang-en.json rename to src/vitis/client/modules/vitis/lang/lang-en.json index c8132242..dc98a487 --- a/client/modules/vitis/lang/lang-en.json +++ b/src/vitis/client/modules/vitis/lang/lang-en.json @@ -326,5 +326,21 @@ "FORM_BILLINGGROUP_USERS_BILLINGGROUP": "Name", "FORM_DESCRIPTION_USERS_BILLINGGROUP": "Description", "FORM_AVAILABLE_USER_USERS_BILLINGGROUP": "Available users", - "FORM_LINKED_USER_USERS_BILLINGGROUP": "Users linked to group" + "FORM_LINKED_USER_USERS_BILLINGGROUP": "Users linked to group", + "" : "", + "FORM_TITLE_EXPLOITATION_EXPLOITATION" : "Shared directory", + "FORM_DOWNLOAD_FILE_EXPLOITATION_EXPLOITATION" : "Download file", + "FORM_RELOAD_DIRECTORY_EXPLOITATION_EXPLOITATION" : "Reload directory", + "FORM_DELETE_FILES_EXPLOITATION_EXPLOITATION" : "Delete files", + "FORM_UPLOAD_FMW_FILE_EXPLOITATION_EXPLOITATION" : "Upload", + "FORM_FILE_EXPLOITATION_EXPLOITATION" : "File to upload", + "CONFIRM_DELETE_FILES_EXPLOITATION_EXPLOITATION" : "Delete selected files and directories ?", + "FORM_CREATE_DIRECTORY_EXPLOITATION_EXPLOITATION" : "Create a directory", + "FORM_DIRECTORY_EXPLOITATION_EXPLOITATION" : "Name of the directory to create", + "FORM_BTN_UPLOAD_FILE_EXPLOITATION_EXPLOITATION" : "Upload", + "FORM_BTN_CREATE_DIRECTORY_EXPLOITATION_EXPLOITATION" : "Create", + "FORM_NO_DIRECTORY_EXPLOITATION_EXPLOITATION" : "Please specify a name for the directory to create", + "FORM_NO_FILE_EXPLOITATION_EXPLOITATION" : "Please select a file to upload", + "DIRECTORY_CREATION_ERROR_EXPLOITATION_EXPLOITATION" : "Directory creation error", + "FILE_UPLOAD_ERROR_EXPLOITATION_EXPLOITATION" : "File creation error" } diff --git a/client/modules/vitis/lang/lang-fr.json b/src/vitis/client/modules/vitis/lang/lang-fr.json old mode 100755 new mode 100644 similarity index 93% rename from client/modules/vitis/lang/lang-fr.json rename to src/vitis/client/modules/vitis/lang/lang-fr.json index a25cbd86..c752c00a --- a/client/modules/vitis/lang/lang-fr.json +++ b/src/vitis/client/modules/vitis/lang/lang-fr.json @@ -328,5 +328,21 @@ "FORM_BILLINGGROUP_USERS_BILLINGGROUP": "Nom", "FORM_DESCRIPTION_USERS_BILLINGGROUP": "Description", "FORM_AVAILABLE_USER_USERS_BILLINGGROUP": "Utilisateurs disponibles", - "FORM_LINKED_USER_USERS_BILLINGGROUP": "Utilisateurs liés au groupe" + "FORM_LINKED_USER_USERS_BILLINGGROUP": "Utilisateurs liés au groupe", + "" : "", + "FORM_TITLE_EXPLOITATION_EXPLOITATION" : "Répertoire partagé", + "FORM_DOWNLOAD_FILE_EXPLOITATION_EXPLOITATION" : "Télécharger le fichier", + "FORM_RELOAD_DIRECTORY_EXPLOITATION_EXPLOITATION" : "Recharger le répertoire", + "FORM_DELETE_FILES_EXPLOITATION_EXPLOITATION" : "Supprimer les fichiers", + "FORM_UPLOAD_FMW_FILE_EXPLOITATION_EXPLOITATION" : "Uploader", + "FORM_FILE_EXPLOITATION_EXPLOITATION" : "Fichier à uploader", + "CONFIRM_DELETE_FILES_EXPLOITATION_EXPLOITATION" : "Supprimer les fichiers et répertoires sélectionnés ?", + "FORM_CREATE_DIRECTORY_EXPLOITATION_EXPLOITATION" : "Créer un dossier", + "FORM_DIRECTORY_EXPLOITATION_EXPLOITATION" : "Nom du dossier à créer", + "FORM_BTN_UPLOAD_FILE_EXPLOITATION_EXPLOITATION" : "Uploader", + "FORM_BTN_CREATE_DIRECTORY_EXPLOITATION_EXPLOITATION" : "Créer", + "FORM_NO_DIRECTORY_EXPLOITATION_EXPLOITATION" : "Veuiller spécifier un nom pour le dossier à créer", + "FORM_NO_FILE_EXPLOITATION_EXPLOITATION" : "Veuiller sélectionner un fichier à uploader", + "DIRECTORY_CREATION_ERROR_EXPLOITATION_EXPLOITATION" : "Erreur de création du dossier", + "FILE_UPLOAD_ERROR_EXPLOITATION_EXPLOITATION" : "Erreur pendant l'upload du fichier" } diff --git a/client/modules/vitis/less/activeDirectoryTree.less b/src/vitis/client/modules/vitis/less/activeDirectoryTree.less similarity index 100% rename from client/modules/vitis/less/activeDirectoryTree.less rename to src/vitis/client/modules/vitis/less/activeDirectoryTree.less diff --git a/client/modules/vitis/less/logs.less b/src/vitis/client/modules/vitis/less/logs.less similarity index 100% rename from client/modules/vitis/less/logs.less rename to src/vitis/client/modules/vitis/less/logs.less diff --git a/client/modules/vitis/less/main.less b/src/vitis/client/modules/vitis/less/main.less similarity index 81% rename from client/modules/vitis/less/main.less rename to src/vitis/client/modules/vitis/less/main.less index 66adeeb6..bbfd6cb8 100755 --- a/client/modules/vitis/less/main.less +++ b/src/vitis/client/modules/vitis/less/main.less @@ -7,4 +7,5 @@ @import 'updateConfiguration.less'; @import 'users.less'; @import 'activeDirectoryTree.less'; -@import 'webServiceHelp.less'; \ No newline at end of file +@import 'webServiceHelp.less'; +@import 'sharedDirectory.less'; \ No newline at end of file diff --git a/client/modules/vitis/less/phpInfoConfiguration.less b/src/vitis/client/modules/vitis/less/phpInfoConfiguration.less similarity index 100% rename from client/modules/vitis/less/phpInfoConfiguration.less rename to src/vitis/client/modules/vitis/less/phpInfoConfiguration.less diff --git a/src/vitis/client/modules/vitis/less/sharedDirectory.less b/src/vitis/client/modules/vitis/less/sharedDirectory.less new file mode 100755 index 00000000..76726595 --- /dev/null +++ b/src/vitis/client/modules/vitis/less/sharedDirectory.less @@ -0,0 +1,3 @@ +.shared-directory-treeview .treeview { + overflow-y: auto; +} \ No newline at end of file diff --git a/client/modules/vitis/less/updateConfiguration.less b/src/vitis/client/modules/vitis/less/updateConfiguration.less similarity index 100% rename from client/modules/vitis/less/updateConfiguration.less rename to src/vitis/client/modules/vitis/less/updateConfiguration.less diff --git a/client/modules/vitis/less/users.less b/src/vitis/client/modules/vitis/less/users.less similarity index 100% rename from client/modules/vitis/less/users.less rename to src/vitis/client/modules/vitis/less/users.less diff --git a/client/modules/vitis/less/versionConfiguration.less b/src/vitis/client/modules/vitis/less/versionConfiguration.less similarity index 100% rename from client/modules/vitis/less/versionConfiguration.less rename to src/vitis/client/modules/vitis/less/versionConfiguration.less diff --git a/client/modules/vitis/less/webServiceHelp.less b/src/vitis/client/modules/vitis/less/webServiceHelp.less similarity index 100% rename from client/modules/vitis/less/webServiceHelp.less rename to src/vitis/client/modules/vitis/less/webServiceHelp.less diff --git a/client/modules/vitis/templates/activeDirectoryTreeLeftTpl.html b/src/vitis/client/modules/vitis/templates/activeDirectoryTreeLeftTpl.html similarity index 100% rename from client/modules/vitis/templates/activeDirectoryTreeLeftTpl.html rename to src/vitis/client/modules/vitis/templates/activeDirectoryTreeLeftTpl.html diff --git a/client/modules/vitis/templates/activeDirectoryTreeRightTpl.html b/src/vitis/client/modules/vitis/templates/activeDirectoryTreeRightTpl.html similarity index 100% rename from client/modules/vitis/templates/activeDirectoryTreeRightTpl.html rename to src/vitis/client/modules/vitis/templates/activeDirectoryTreeRightTpl.html diff --git a/client/modules/vitis/templates/logsLeftTpl.html b/src/vitis/client/modules/vitis/templates/logsLeftTpl.html similarity index 100% rename from client/modules/vitis/templates/logsLeftTpl.html rename to src/vitis/client/modules/vitis/templates/logsLeftTpl.html diff --git a/client/modules/vitis/templates/logsRightTpl.html b/src/vitis/client/modules/vitis/templates/logsRightTpl.html similarity index 100% rename from client/modules/vitis/templates/logsRightTpl.html rename to src/vitis/client/modules/vitis/templates/logsRightTpl.html diff --git a/client/modules/vitis/templates/phpInfoConfigurationTpl.html b/src/vitis/client/modules/vitis/templates/phpInfoConfigurationTpl.html similarity index 100% rename from client/modules/vitis/templates/phpInfoConfigurationTpl.html rename to src/vitis/client/modules/vitis/templates/phpInfoConfigurationTpl.html diff --git a/client/modules/vitis/templates/updateConfigurationTpl.html b/src/vitis/client/modules/vitis/templates/updateConfigurationTpl.html similarity index 100% rename from client/modules/vitis/templates/updateConfigurationTpl.html rename to src/vitis/client/modules/vitis/templates/updateConfigurationTpl.html diff --git a/client/modules/vitis/templates/versionConfigurationTpl.html b/src/vitis/client/modules/vitis/templates/versionConfigurationTpl.html similarity index 100% rename from client/modules/vitis/templates/versionConfigurationTpl.html rename to src/vitis/client/modules/vitis/templates/versionConfigurationTpl.html diff --git a/client/modules/vitis/templates/webServiceHelpTpl.html b/src/vitis/client/modules/vitis/templates/webServiceHelpTpl.html similarity index 100% rename from client/modules/vitis/templates/webServiceHelpTpl.html rename to src/vitis/client/modules/vitis/templates/webServiceHelpTpl.html diff --git a/client/modules/vitis/templates/websocketConfigurationTpl.html b/src/vitis/client/modules/vitis/templates/websocketConfigurationTpl.html similarity index 100% rename from client/modules/vitis/templates/websocketConfigurationTpl.html rename to src/vitis/client/modules/vitis/templates/websocketConfigurationTpl.html diff --git a/client/templates/clientDocumentationTpl.html b/src/vitis/client/templates/clientDocumentationTpl.html similarity index 100% rename from client/templates/clientDocumentationTpl.html rename to src/vitis/client/templates/clientDocumentationTpl.html diff --git a/client/templates/creditsTpl.html b/src/vitis/client/templates/creditsTpl.html similarity index 100% rename from client/templates/creditsTpl.html rename to src/vitis/client/templates/creditsTpl.html diff --git a/client/templates/doubleFormTpl.html b/src/vitis/client/templates/doubleFormTpl.html similarity index 100% rename from client/templates/doubleFormTpl.html rename to src/vitis/client/templates/doubleFormTpl.html diff --git a/client/templates/formTpl.html b/src/vitis/client/templates/formTpl.html similarity index 100% rename from client/templates/formTpl.html rename to src/vitis/client/templates/formTpl.html diff --git a/client/templates/loginTpl.html b/src/vitis/client/templates/loginTpl.html similarity index 100% rename from client/templates/loginTpl.html rename to src/vitis/client/templates/loginTpl.html diff --git a/client/templates/mainTpl.html b/src/vitis/client/templates/mainTpl.html similarity index 100% rename from client/templates/mainTpl.html rename to src/vitis/client/templates/mainTpl.html diff --git a/client/templates/sectionFormTpl.html b/src/vitis/client/templates/sectionFormTpl.html similarity index 100% rename from client/templates/sectionFormTpl.html rename to src/vitis/client/templates/sectionFormTpl.html diff --git a/client/templates/simpleFormTpl.html b/src/vitis/client/templates/simpleFormTpl.html similarity index 100% rename from client/templates/simpleFormTpl.html rename to src/vitis/client/templates/simpleFormTpl.html diff --git a/client/templates/uiGridActionTpl.html b/src/vitis/client/templates/uiGridActionTpl.html similarity index 100% rename from client/templates/uiGridActionTpl.html rename to src/vitis/client/templates/uiGridActionTpl.html diff --git a/client/templates/uiGridPaginationTpl.html b/src/vitis/client/templates/uiGridPaginationTpl.html similarity index 100% rename from client/templates/uiGridPaginationTpl.html rename to src/vitis/client/templates/uiGridPaginationTpl.html diff --git a/client/templates/workspaceListTpl.html b/src/vitis/client/templates/workspaceListTpl.html similarity index 100% rename from client/templates/workspaceListTpl.html rename to src/vitis/client/templates/workspaceListTpl.html diff --git a/vas/doc/composer.json b/src/vitis/vas/doc/composer.json similarity index 100% rename from vas/doc/composer.json rename to src/vitis/vas/doc/composer.json diff --git a/vas/doc/composer.lock b/src/vitis/vas/doc/composer.lock similarity index 100% rename from vas/doc/composer.lock rename to src/vitis/vas/doc/composer.lock diff --git a/vas/doc/css/reset.css b/src/vitis/vas/doc/css/reset.css similarity index 100% rename from vas/doc/css/reset.css rename to src/vitis/vas/doc/css/reset.css diff --git a/vas/doc/css/screen.css b/src/vitis/vas/doc/css/screen.css similarity index 100% rename from vas/doc/css/screen.css rename to src/vitis/vas/doc/css/screen.css diff --git a/vas/doc/css/style.css b/src/vitis/vas/doc/css/style.css similarity index 100% rename from vas/doc/css/style.css rename to src/vitis/vas/doc/css/style.css diff --git a/vas/doc/images/gtf_ws.png b/src/vitis/vas/doc/images/gtf_ws.png similarity index 100% rename from vas/doc/images/gtf_ws.png rename to src/vitis/vas/doc/images/gtf_ws.png diff --git a/vas/doc/images/order.png b/src/vitis/vas/doc/images/order.png similarity index 100% rename from vas/doc/images/order.png rename to src/vitis/vas/doc/images/order.png diff --git a/vas/doc/images/overview.png b/src/vitis/vas/doc/images/overview.png similarity index 100% rename from vas/doc/images/overview.png rename to src/vitis/vas/doc/images/overview.png diff --git a/vas/doc/images/rest.png b/src/vitis/vas/doc/images/rest.png similarity index 100% rename from vas/doc/images/rest.png rename to src/vitis/vas/doc/images/rest.png diff --git a/vas/doc/images/throbber.gif b/src/vitis/vas/doc/images/throbber.gif similarity index 100% rename from vas/doc/images/throbber.gif rename to src/vitis/vas/doc/images/throbber.gif diff --git a/vas/doc/images/token.png b/src/vitis/vas/doc/images/token.png similarity index 100% rename from vas/doc/images/token.png rename to src/vitis/vas/doc/images/token.png diff --git a/vas/doc/images/workspace.png b/src/vitis/vas/doc/images/workspace.png similarity index 100% rename from vas/doc/images/workspace.png rename to src/vitis/vas/doc/images/workspace.png diff --git a/vas/doc/index.phtml b/src/vitis/vas/doc/index.phtml similarity index 100% rename from vas/doc/index.phtml rename to src/vitis/vas/doc/index.phtml diff --git a/vas/doc/javascript/backbone-min.js b/src/vitis/vas/doc/javascript/backbone-min.js similarity index 100% rename from vas/doc/javascript/backbone-min.js rename to src/vitis/vas/doc/javascript/backbone-min.js diff --git a/vas/doc/javascript/handlebars-1.0.0.js b/src/vitis/vas/doc/javascript/handlebars-1.0.0.js similarity index 100% rename from vas/doc/javascript/handlebars-1.0.0.js rename to src/vitis/vas/doc/javascript/handlebars-1.0.0.js diff --git a/vas/doc/javascript/handlebars-2.0.0.js b/src/vitis/vas/doc/javascript/handlebars-2.0.0.js similarity index 100% rename from vas/doc/javascript/handlebars-2.0.0.js rename to src/vitis/vas/doc/javascript/handlebars-2.0.0.js diff --git a/vas/doc/javascript/highlight.7.3.pack.js b/src/vitis/vas/doc/javascript/highlight.7.3.pack.js similarity index 100% rename from vas/doc/javascript/highlight.7.3.pack.js rename to src/vitis/vas/doc/javascript/highlight.7.3.pack.js diff --git a/vas/doc/javascript/jquery-1.8.0.min.js b/src/vitis/vas/doc/javascript/jquery-1.8.0.min.js similarity index 100% rename from vas/doc/javascript/jquery-1.8.0.min.js rename to src/vitis/vas/doc/javascript/jquery-1.8.0.min.js diff --git a/vas/doc/javascript/jquery.ba-bbq.min.js b/src/vitis/vas/doc/javascript/jquery.ba-bbq.min.js similarity index 100% rename from vas/doc/javascript/jquery.ba-bbq.min.js rename to src/vitis/vas/doc/javascript/jquery.ba-bbq.min.js diff --git a/vas/doc/javascript/jquery.slideto.min.js b/src/vitis/vas/doc/javascript/jquery.slideto.min.js similarity index 100% rename from vas/doc/javascript/jquery.slideto.min.js rename to src/vitis/vas/doc/javascript/jquery.slideto.min.js diff --git a/vas/doc/javascript/jquery.wiggle.min.js b/src/vitis/vas/doc/javascript/jquery.wiggle.min.js similarity index 100% rename from vas/doc/javascript/jquery.wiggle.min.js rename to src/vitis/vas/doc/javascript/jquery.wiggle.min.js diff --git a/vas/doc/javascript/marked.js b/src/vitis/vas/doc/javascript/marked.js similarity index 100% rename from vas/doc/javascript/marked.js rename to src/vitis/vas/doc/javascript/marked.js diff --git a/vas/doc/javascript/shred.bundle.js b/src/vitis/vas/doc/javascript/shred.bundle.js similarity index 100% rename from vas/doc/javascript/shred.bundle.js rename to src/vitis/vas/doc/javascript/shred.bundle.js diff --git a/vas/doc/javascript/shred/content.js b/src/vitis/vas/doc/javascript/shred/content.js similarity index 100% rename from vas/doc/javascript/shred/content.js rename to src/vitis/vas/doc/javascript/shred/content.js diff --git a/vas/doc/javascript/swagger-oauth.js b/src/vitis/vas/doc/javascript/swagger-oauth.js similarity index 100% rename from vas/doc/javascript/swagger-oauth.js rename to src/vitis/vas/doc/javascript/swagger-oauth.js diff --git a/vas/doc/javascript/swagger-ui.js b/src/vitis/vas/doc/javascript/swagger-ui.js similarity index 100% rename from vas/doc/javascript/swagger-ui.js rename to src/vitis/vas/doc/javascript/swagger-ui.js diff --git a/vas/doc/javascript/swagger-ui.min.js b/src/vitis/vas/doc/javascript/swagger-ui.min.js similarity index 100% rename from vas/doc/javascript/swagger-ui.min.js rename to src/vitis/vas/doc/javascript/swagger-ui.min.js diff --git a/vas/doc/javascript/underscore-min.js b/src/vitis/vas/doc/javascript/underscore-min.js similarity index 100% rename from vas/doc/javascript/underscore-min.js rename to src/vitis/vas/doc/javascript/underscore-min.js diff --git a/vas/doc/javascript/underscore-min.map b/src/vitis/vas/doc/javascript/underscore-min.map similarity index 100% rename from vas/doc/javascript/underscore-min.map rename to src/vitis/vas/doc/javascript/underscore-min.map diff --git a/vas/doc/swagger.php b/src/vitis/vas/doc/swagger.php similarity index 100% rename from vas/doc/swagger.php rename to src/vitis/vas/doc/swagger.php diff --git a/vas/doc/vendor/autoload.php b/src/vitis/vas/doc/vendor/autoload.php similarity index 100% rename from vas/doc/vendor/autoload.php rename to src/vitis/vas/doc/vendor/autoload.php diff --git a/vas/doc/vendor/bin/swagger b/src/vitis/vas/doc/vendor/bin/swagger similarity index 100% rename from vas/doc/vendor/bin/swagger rename to src/vitis/vas/doc/vendor/bin/swagger diff --git a/vas/doc/vendor/composer/ClassLoader.php b/src/vitis/vas/doc/vendor/composer/ClassLoader.php similarity index 100% rename from vas/doc/vendor/composer/ClassLoader.php rename to src/vitis/vas/doc/vendor/composer/ClassLoader.php diff --git a/vas/doc/vendor/composer/LICENSE b/src/vitis/vas/doc/vendor/composer/LICENSE similarity index 100% rename from vas/doc/vendor/composer/LICENSE rename to src/vitis/vas/doc/vendor/composer/LICENSE diff --git a/vas/doc/vendor/composer/autoload_classmap.php b/src/vitis/vas/doc/vendor/composer/autoload_classmap.php similarity index 100% rename from vas/doc/vendor/composer/autoload_classmap.php rename to src/vitis/vas/doc/vendor/composer/autoload_classmap.php diff --git a/vas/doc/vendor/composer/autoload_files.php b/src/vitis/vas/doc/vendor/composer/autoload_files.php similarity index 100% rename from vas/doc/vendor/composer/autoload_files.php rename to src/vitis/vas/doc/vendor/composer/autoload_files.php diff --git a/vas/doc/vendor/composer/autoload_namespaces.php b/src/vitis/vas/doc/vendor/composer/autoload_namespaces.php similarity index 100% rename from vas/doc/vendor/composer/autoload_namespaces.php rename to src/vitis/vas/doc/vendor/composer/autoload_namespaces.php diff --git a/vas/doc/vendor/composer/autoload_psr4.php b/src/vitis/vas/doc/vendor/composer/autoload_psr4.php similarity index 100% rename from vas/doc/vendor/composer/autoload_psr4.php rename to src/vitis/vas/doc/vendor/composer/autoload_psr4.php diff --git a/vas/doc/vendor/composer/autoload_real.php b/src/vitis/vas/doc/vendor/composer/autoload_real.php similarity index 100% rename from vas/doc/vendor/composer/autoload_real.php rename to src/vitis/vas/doc/vendor/composer/autoload_real.php diff --git a/vas/doc/vendor/composer/autoload_static.php b/src/vitis/vas/doc/vendor/composer/autoload_static.php similarity index 100% rename from vas/doc/vendor/composer/autoload_static.php rename to src/vitis/vas/doc/vendor/composer/autoload_static.php diff --git a/vas/doc/vendor/composer/installed.json b/src/vitis/vas/doc/vendor/composer/installed.json similarity index 100% rename from vas/doc/vendor/composer/installed.json rename to src/vitis/vas/doc/vendor/composer/installed.json diff --git a/vas/doc/vendor/doctrine/annotations/LICENSE b/src/vitis/vas/doc/vendor/doctrine/annotations/LICENSE similarity index 100% rename from vas/doc/vendor/doctrine/annotations/LICENSE rename to src/vitis/vas/doc/vendor/doctrine/annotations/LICENSE diff --git a/vas/doc/vendor/doctrine/annotations/README.md b/src/vitis/vas/doc/vendor/doctrine/annotations/README.md similarity index 100% rename from vas/doc/vendor/doctrine/annotations/README.md rename to src/vitis/vas/doc/vendor/doctrine/annotations/README.md diff --git a/vas/doc/vendor/doctrine/annotations/composer.json b/src/vitis/vas/doc/vendor/doctrine/annotations/composer.json similarity index 100% rename from vas/doc/vendor/doctrine/annotations/composer.json rename to src/vitis/vas/doc/vendor/doctrine/annotations/composer.json diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation.php similarity index 100% rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation.php rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation.php diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attribute.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attribute.php similarity index 100% rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attribute.php rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attribute.php diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attributes.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attributes.php similarity index 100% rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attributes.php rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attributes.php diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Enum.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Enum.php similarity index 100% rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Enum.php rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Enum.php diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/IgnoreAnnotation.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/IgnoreAnnotation.php similarity index 100% rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/IgnoreAnnotation.php rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/IgnoreAnnotation.php diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Required.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Required.php similarity index 100% rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Required.php rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Required.php diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Target.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Target.php similarity index 100% rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Target.php rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Target.php diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationException.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationException.php similarity index 100% rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationException.php rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationException.php diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationReader.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationReader.php similarity index 100% rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationReader.php rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationReader.php diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationRegistry.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationRegistry.php similarity index 100% rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationRegistry.php rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationRegistry.php diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/CachedReader.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/CachedReader.php similarity index 100% rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/CachedReader.php rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/CachedReader.php diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocLexer.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocLexer.php similarity index 100% rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocLexer.php rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocLexer.php diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocParser.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocParser.php similarity index 100% rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocParser.php rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocParser.php diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/FileCacheReader.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/FileCacheReader.php similarity index 100% rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/FileCacheReader.php rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/FileCacheReader.php diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/IndexedReader.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/IndexedReader.php similarity index 100% rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/IndexedReader.php rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/IndexedReader.php diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/PhpParser.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/PhpParser.php similarity index 100% rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/PhpParser.php rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/PhpParser.php diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Reader.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Reader.php similarity index 100% rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Reader.php rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Reader.php diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/SimpleAnnotationReader.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/SimpleAnnotationReader.php similarity index 100% rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/SimpleAnnotationReader.php rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/SimpleAnnotationReader.php diff --git a/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/TokenParser.php b/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/TokenParser.php similarity index 100% rename from vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/TokenParser.php rename to src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/TokenParser.php diff --git a/vas/doc/vendor/doctrine/lexer/LICENSE b/src/vitis/vas/doc/vendor/doctrine/lexer/LICENSE similarity index 100% rename from vas/doc/vendor/doctrine/lexer/LICENSE rename to src/vitis/vas/doc/vendor/doctrine/lexer/LICENSE diff --git a/vas/doc/vendor/doctrine/lexer/README.md b/src/vitis/vas/doc/vendor/doctrine/lexer/README.md similarity index 100% rename from vas/doc/vendor/doctrine/lexer/README.md rename to src/vitis/vas/doc/vendor/doctrine/lexer/README.md diff --git a/vas/doc/vendor/doctrine/lexer/composer.json b/src/vitis/vas/doc/vendor/doctrine/lexer/composer.json similarity index 100% rename from vas/doc/vendor/doctrine/lexer/composer.json rename to src/vitis/vas/doc/vendor/doctrine/lexer/composer.json diff --git a/vas/doc/vendor/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php b/src/vitis/vas/doc/vendor/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php similarity index 100% rename from vas/doc/vendor/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php rename to src/vitis/vas/doc/vendor/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php diff --git a/vas/doc/vendor/symfony/finder/.gitignore b/src/vitis/vas/doc/vendor/symfony/finder/.gitignore similarity index 100% rename from vas/doc/vendor/symfony/finder/.gitignore rename to src/vitis/vas/doc/vendor/symfony/finder/.gitignore diff --git a/vas/doc/vendor/symfony/finder/Adapter/AbstractAdapter.php b/src/vitis/vas/doc/vendor/symfony/finder/Adapter/AbstractAdapter.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Adapter/AbstractAdapter.php rename to src/vitis/vas/doc/vendor/symfony/finder/Adapter/AbstractAdapter.php diff --git a/vas/doc/vendor/symfony/finder/Adapter/AbstractFindAdapter.php b/src/vitis/vas/doc/vendor/symfony/finder/Adapter/AbstractFindAdapter.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Adapter/AbstractFindAdapter.php rename to src/vitis/vas/doc/vendor/symfony/finder/Adapter/AbstractFindAdapter.php diff --git a/vas/doc/vendor/symfony/finder/Adapter/AdapterInterface.php b/src/vitis/vas/doc/vendor/symfony/finder/Adapter/AdapterInterface.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Adapter/AdapterInterface.php rename to src/vitis/vas/doc/vendor/symfony/finder/Adapter/AdapterInterface.php diff --git a/vas/doc/vendor/symfony/finder/Adapter/BsdFindAdapter.php b/src/vitis/vas/doc/vendor/symfony/finder/Adapter/BsdFindAdapter.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Adapter/BsdFindAdapter.php rename to src/vitis/vas/doc/vendor/symfony/finder/Adapter/BsdFindAdapter.php diff --git a/vas/doc/vendor/symfony/finder/Adapter/GnuFindAdapter.php b/src/vitis/vas/doc/vendor/symfony/finder/Adapter/GnuFindAdapter.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Adapter/GnuFindAdapter.php rename to src/vitis/vas/doc/vendor/symfony/finder/Adapter/GnuFindAdapter.php diff --git a/vas/doc/vendor/symfony/finder/Adapter/PhpAdapter.php b/src/vitis/vas/doc/vendor/symfony/finder/Adapter/PhpAdapter.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Adapter/PhpAdapter.php rename to src/vitis/vas/doc/vendor/symfony/finder/Adapter/PhpAdapter.php diff --git a/vas/doc/vendor/symfony/finder/CHANGELOG.md b/src/vitis/vas/doc/vendor/symfony/finder/CHANGELOG.md similarity index 100% rename from vas/doc/vendor/symfony/finder/CHANGELOG.md rename to src/vitis/vas/doc/vendor/symfony/finder/CHANGELOG.md diff --git a/vas/doc/vendor/symfony/finder/Comparator/Comparator.php b/src/vitis/vas/doc/vendor/symfony/finder/Comparator/Comparator.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Comparator/Comparator.php rename to src/vitis/vas/doc/vendor/symfony/finder/Comparator/Comparator.php diff --git a/vas/doc/vendor/symfony/finder/Comparator/DateComparator.php b/src/vitis/vas/doc/vendor/symfony/finder/Comparator/DateComparator.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Comparator/DateComparator.php rename to src/vitis/vas/doc/vendor/symfony/finder/Comparator/DateComparator.php diff --git a/vas/doc/vendor/symfony/finder/Comparator/NumberComparator.php b/src/vitis/vas/doc/vendor/symfony/finder/Comparator/NumberComparator.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Comparator/NumberComparator.php rename to src/vitis/vas/doc/vendor/symfony/finder/Comparator/NumberComparator.php diff --git a/vas/doc/vendor/symfony/finder/Exception/AccessDeniedException.php b/src/vitis/vas/doc/vendor/symfony/finder/Exception/AccessDeniedException.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Exception/AccessDeniedException.php rename to src/vitis/vas/doc/vendor/symfony/finder/Exception/AccessDeniedException.php diff --git a/vas/doc/vendor/symfony/finder/Exception/AdapterFailureException.php b/src/vitis/vas/doc/vendor/symfony/finder/Exception/AdapterFailureException.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Exception/AdapterFailureException.php rename to src/vitis/vas/doc/vendor/symfony/finder/Exception/AdapterFailureException.php diff --git a/vas/doc/vendor/symfony/finder/Exception/ExceptionInterface.php b/src/vitis/vas/doc/vendor/symfony/finder/Exception/ExceptionInterface.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Exception/ExceptionInterface.php rename to src/vitis/vas/doc/vendor/symfony/finder/Exception/ExceptionInterface.php diff --git a/vas/doc/vendor/symfony/finder/Exception/OperationNotPermitedException.php b/src/vitis/vas/doc/vendor/symfony/finder/Exception/OperationNotPermitedException.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Exception/OperationNotPermitedException.php rename to src/vitis/vas/doc/vendor/symfony/finder/Exception/OperationNotPermitedException.php diff --git a/vas/doc/vendor/symfony/finder/Exception/ShellCommandFailureException.php b/src/vitis/vas/doc/vendor/symfony/finder/Exception/ShellCommandFailureException.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Exception/ShellCommandFailureException.php rename to src/vitis/vas/doc/vendor/symfony/finder/Exception/ShellCommandFailureException.php diff --git a/vas/doc/vendor/symfony/finder/Expression/Expression.php b/src/vitis/vas/doc/vendor/symfony/finder/Expression/Expression.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Expression/Expression.php rename to src/vitis/vas/doc/vendor/symfony/finder/Expression/Expression.php diff --git a/vas/doc/vendor/symfony/finder/Expression/Glob.php b/src/vitis/vas/doc/vendor/symfony/finder/Expression/Glob.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Expression/Glob.php rename to src/vitis/vas/doc/vendor/symfony/finder/Expression/Glob.php diff --git a/vas/doc/vendor/symfony/finder/Expression/Regex.php b/src/vitis/vas/doc/vendor/symfony/finder/Expression/Regex.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Expression/Regex.php rename to src/vitis/vas/doc/vendor/symfony/finder/Expression/Regex.php diff --git a/vas/doc/vendor/symfony/finder/Expression/ValueInterface.php b/src/vitis/vas/doc/vendor/symfony/finder/Expression/ValueInterface.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Expression/ValueInterface.php rename to src/vitis/vas/doc/vendor/symfony/finder/Expression/ValueInterface.php diff --git a/vas/doc/vendor/symfony/finder/Finder.php b/src/vitis/vas/doc/vendor/symfony/finder/Finder.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Finder.php rename to src/vitis/vas/doc/vendor/symfony/finder/Finder.php diff --git a/vas/doc/vendor/symfony/finder/Glob.php b/src/vitis/vas/doc/vendor/symfony/finder/Glob.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Glob.php rename to src/vitis/vas/doc/vendor/symfony/finder/Glob.php diff --git a/vas/doc/vendor/symfony/finder/Iterator/CustomFilterIterator.php b/src/vitis/vas/doc/vendor/symfony/finder/Iterator/CustomFilterIterator.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Iterator/CustomFilterIterator.php rename to src/vitis/vas/doc/vendor/symfony/finder/Iterator/CustomFilterIterator.php diff --git a/vas/doc/vendor/symfony/finder/Iterator/DateRangeFilterIterator.php b/src/vitis/vas/doc/vendor/symfony/finder/Iterator/DateRangeFilterIterator.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Iterator/DateRangeFilterIterator.php rename to src/vitis/vas/doc/vendor/symfony/finder/Iterator/DateRangeFilterIterator.php diff --git a/vas/doc/vendor/symfony/finder/Iterator/DepthRangeFilterIterator.php b/src/vitis/vas/doc/vendor/symfony/finder/Iterator/DepthRangeFilterIterator.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Iterator/DepthRangeFilterIterator.php rename to src/vitis/vas/doc/vendor/symfony/finder/Iterator/DepthRangeFilterIterator.php diff --git a/vas/doc/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php b/src/vitis/vas/doc/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php rename to src/vitis/vas/doc/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php diff --git a/vas/doc/vendor/symfony/finder/Iterator/FilePathsIterator.php b/src/vitis/vas/doc/vendor/symfony/finder/Iterator/FilePathsIterator.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Iterator/FilePathsIterator.php rename to src/vitis/vas/doc/vendor/symfony/finder/Iterator/FilePathsIterator.php diff --git a/vas/doc/vendor/symfony/finder/Iterator/FileTypeFilterIterator.php b/src/vitis/vas/doc/vendor/symfony/finder/Iterator/FileTypeFilterIterator.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Iterator/FileTypeFilterIterator.php rename to src/vitis/vas/doc/vendor/symfony/finder/Iterator/FileTypeFilterIterator.php diff --git a/vas/doc/vendor/symfony/finder/Iterator/FilecontentFilterIterator.php b/src/vitis/vas/doc/vendor/symfony/finder/Iterator/FilecontentFilterIterator.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Iterator/FilecontentFilterIterator.php rename to src/vitis/vas/doc/vendor/symfony/finder/Iterator/FilecontentFilterIterator.php diff --git a/vas/doc/vendor/symfony/finder/Iterator/FilenameFilterIterator.php b/src/vitis/vas/doc/vendor/symfony/finder/Iterator/FilenameFilterIterator.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Iterator/FilenameFilterIterator.php rename to src/vitis/vas/doc/vendor/symfony/finder/Iterator/FilenameFilterIterator.php diff --git a/vas/doc/vendor/symfony/finder/Iterator/FilterIterator.php b/src/vitis/vas/doc/vendor/symfony/finder/Iterator/FilterIterator.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Iterator/FilterIterator.php rename to src/vitis/vas/doc/vendor/symfony/finder/Iterator/FilterIterator.php diff --git a/vas/doc/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php b/src/vitis/vas/doc/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php rename to src/vitis/vas/doc/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php diff --git a/vas/doc/vendor/symfony/finder/Iterator/PathFilterIterator.php b/src/vitis/vas/doc/vendor/symfony/finder/Iterator/PathFilterIterator.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Iterator/PathFilterIterator.php rename to src/vitis/vas/doc/vendor/symfony/finder/Iterator/PathFilterIterator.php diff --git a/vas/doc/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php b/src/vitis/vas/doc/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php rename to src/vitis/vas/doc/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php diff --git a/vas/doc/vendor/symfony/finder/Iterator/SizeRangeFilterIterator.php b/src/vitis/vas/doc/vendor/symfony/finder/Iterator/SizeRangeFilterIterator.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Iterator/SizeRangeFilterIterator.php rename to src/vitis/vas/doc/vendor/symfony/finder/Iterator/SizeRangeFilterIterator.php diff --git a/vas/doc/vendor/symfony/finder/Iterator/SortableIterator.php b/src/vitis/vas/doc/vendor/symfony/finder/Iterator/SortableIterator.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Iterator/SortableIterator.php rename to src/vitis/vas/doc/vendor/symfony/finder/Iterator/SortableIterator.php diff --git a/vas/doc/vendor/symfony/finder/LICENSE b/src/vitis/vas/doc/vendor/symfony/finder/LICENSE similarity index 100% rename from vas/doc/vendor/symfony/finder/LICENSE rename to src/vitis/vas/doc/vendor/symfony/finder/LICENSE diff --git a/vas/doc/vendor/symfony/finder/README.md b/src/vitis/vas/doc/vendor/symfony/finder/README.md similarity index 100% rename from vas/doc/vendor/symfony/finder/README.md rename to src/vitis/vas/doc/vendor/symfony/finder/README.md diff --git a/vas/doc/vendor/symfony/finder/Shell/Command.php b/src/vitis/vas/doc/vendor/symfony/finder/Shell/Command.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Shell/Command.php rename to src/vitis/vas/doc/vendor/symfony/finder/Shell/Command.php diff --git a/vas/doc/vendor/symfony/finder/Shell/Shell.php b/src/vitis/vas/doc/vendor/symfony/finder/Shell/Shell.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Shell/Shell.php rename to src/vitis/vas/doc/vendor/symfony/finder/Shell/Shell.php diff --git a/vas/doc/vendor/symfony/finder/SplFileInfo.php b/src/vitis/vas/doc/vendor/symfony/finder/SplFileInfo.php similarity index 100% rename from vas/doc/vendor/symfony/finder/SplFileInfo.php rename to src/vitis/vas/doc/vendor/symfony/finder/SplFileInfo.php diff --git a/vas/doc/vendor/symfony/finder/Tests/BsdFinderTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/BsdFinderTest.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Tests/BsdFinderTest.php rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/BsdFinderTest.php diff --git a/vas/doc/vendor/symfony/finder/Tests/Comparator/ComparatorTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Comparator/ComparatorTest.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Tests/Comparator/ComparatorTest.php rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Comparator/ComparatorTest.php diff --git a/vas/doc/vendor/symfony/finder/Tests/Comparator/DateComparatorTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Comparator/DateComparatorTest.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Tests/Comparator/DateComparatorTest.php rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Comparator/DateComparatorTest.php diff --git a/vas/doc/vendor/symfony/finder/Tests/Comparator/NumberComparatorTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Comparator/NumberComparatorTest.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Tests/Comparator/NumberComparatorTest.php rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Comparator/NumberComparatorTest.php diff --git a/vas/doc/vendor/symfony/finder/Tests/Expression/ExpressionTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Expression/ExpressionTest.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Tests/Expression/ExpressionTest.php rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Expression/ExpressionTest.php diff --git a/vas/doc/vendor/symfony/finder/Tests/Expression/GlobTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Expression/GlobTest.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Tests/Expression/GlobTest.php rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Expression/GlobTest.php diff --git a/vas/doc/vendor/symfony/finder/Tests/Expression/RegexTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Expression/RegexTest.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Tests/Expression/RegexTest.php rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Expression/RegexTest.php diff --git a/vas/doc/vendor/symfony/finder/Tests/FakeAdapter/DummyAdapter.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/FakeAdapter/DummyAdapter.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Tests/FakeAdapter/DummyAdapter.php rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/FakeAdapter/DummyAdapter.php diff --git a/vas/doc/vendor/symfony/finder/Tests/FakeAdapter/FailingAdapter.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/FakeAdapter/FailingAdapter.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Tests/FakeAdapter/FailingAdapter.php rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/FakeAdapter/FailingAdapter.php diff --git a/vas/doc/vendor/symfony/finder/Tests/FakeAdapter/NamedAdapter.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/FakeAdapter/NamedAdapter.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Tests/FakeAdapter/NamedAdapter.php rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/FakeAdapter/NamedAdapter.php diff --git a/vas/doc/vendor/symfony/finder/Tests/FakeAdapter/UnsupportedAdapter.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/FakeAdapter/UnsupportedAdapter.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Tests/FakeAdapter/UnsupportedAdapter.php rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/FakeAdapter/UnsupportedAdapter.php diff --git a/vas/doc/vendor/symfony/finder/Tests/FinderTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/FinderTest.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Tests/FinderTest.php rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/FinderTest.php diff --git a/vas/doc/vendor/symfony/finder/Tests/Fixtures/A/B/ab.dat b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/A/B/C/abc.dat similarity index 100% rename from vas/doc/vendor/symfony/finder/Tests/Fixtures/A/B/ab.dat rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/A/B/C/abc.dat diff --git a/vas/doc/vendor/symfony/finder/Tests/Fixtures/A/a.dat b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/A/B/ab.dat similarity index 100% rename from vas/doc/vendor/symfony/finder/Tests/Fixtures/A/a.dat rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/A/B/ab.dat diff --git a/vas/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/B/C/abc.dat.copy b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/A/a.dat similarity index 100% rename from vas/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/B/C/abc.dat.copy rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/A/a.dat diff --git a/vas/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/B/ab.dat.copy b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/B/C/abc.dat.copy similarity index 100% rename from vas/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/B/ab.dat.copy rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/B/C/abc.dat.copy diff --git a/vas/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/a.dat.copy b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/B/ab.dat.copy similarity index 100% rename from vas/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/a.dat.copy rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/B/ab.dat.copy diff --git a/vas/doc/vendor/symfony/finder/Tests/Fixtures/one/a b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/a.dat.copy similarity index 100% rename from vas/doc/vendor/symfony/finder/Tests/Fixtures/one/a rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/a.dat.copy diff --git a/vas/doc/vendor/symfony/finder/Tests/Fixtures/dolor.txt b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/dolor.txt similarity index 100% rename from vas/doc/vendor/symfony/finder/Tests/Fixtures/dolor.txt rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/dolor.txt diff --git a/vas/doc/vendor/symfony/finder/Tests/Fixtures/ipsum.txt b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/ipsum.txt similarity index 100% rename from vas/doc/vendor/symfony/finder/Tests/Fixtures/ipsum.txt rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/ipsum.txt diff --git a/vas/doc/vendor/symfony/finder/Tests/Fixtures/lorem.txt b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/lorem.txt similarity index 100% rename from vas/doc/vendor/symfony/finder/Tests/Fixtures/lorem.txt rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/lorem.txt diff --git a/vas/doc/vendor/symfony/finder/Tests/Fixtures/one/b/c.neon b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/one/a similarity index 100% rename from vas/doc/vendor/symfony/finder/Tests/Fixtures/one/b/c.neon rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/one/a diff --git a/vas/doc/vendor/symfony/finder/Tests/Fixtures/one/b/d.neon b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/one/b/c.neon similarity index 100% rename from vas/doc/vendor/symfony/finder/Tests/Fixtures/one/b/d.neon rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/one/b/c.neon diff --git a/vas/doc/vendor/symfony/finder/Tests/Fixtures/r+e.gex[c]a(r)s/dir/bar.dat b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/one/b/d.neon similarity index 100% rename from vas/doc/vendor/symfony/finder/Tests/Fixtures/r+e.gex[c]a(r)s/dir/bar.dat rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/one/b/d.neon diff --git a/vas/doc/vendor/symfony/finder/Tests/Fixtures/with space/foo.txt b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/r+e.gex[c]a(r)s/dir/bar.dat similarity index 100% rename from vas/doc/vendor/symfony/finder/Tests/Fixtures/with space/foo.txt rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/r+e.gex[c]a(r)s/dir/bar.dat diff --git a/vas/tmp/file_to_delete.txt b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/with space/foo.txt similarity index 100% rename from vas/tmp/file_to_delete.txt rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/with space/foo.txt diff --git a/vas/doc/vendor/symfony/finder/Tests/GlobTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/GlobTest.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Tests/GlobTest.php rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/GlobTest.php diff --git a/vas/doc/vendor/symfony/finder/Tests/GnuFinderTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/GnuFinderTest.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Tests/GnuFinderTest.php rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/GnuFinderTest.php diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/CustomFilterIteratorTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/CustomFilterIteratorTest.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Tests/Iterator/CustomFilterIteratorTest.php rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/CustomFilterIteratorTest.php diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/DateRangeFilterIteratorTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/DateRangeFilterIteratorTest.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Tests/Iterator/DateRangeFilterIteratorTest.php rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/DateRangeFilterIteratorTest.php diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/DepthRangeFilterIteratorTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/DepthRangeFilterIteratorTest.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Tests/Iterator/DepthRangeFilterIteratorTest.php rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/DepthRangeFilterIteratorTest.php diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/ExcludeDirectoryFilterIteratorTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/ExcludeDirectoryFilterIteratorTest.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Tests/Iterator/ExcludeDirectoryFilterIteratorTest.php rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/ExcludeDirectoryFilterIteratorTest.php diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/FilePathsIteratorTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/FilePathsIteratorTest.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Tests/Iterator/FilePathsIteratorTest.php rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/FilePathsIteratorTest.php diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/FileTypeFilterIteratorTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/FileTypeFilterIteratorTest.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Tests/Iterator/FileTypeFilterIteratorTest.php rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/FileTypeFilterIteratorTest.php diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/FilecontentFilterIteratorTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/FilecontentFilterIteratorTest.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Tests/Iterator/FilecontentFilterIteratorTest.php rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/FilecontentFilterIteratorTest.php diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/FilenameFilterIteratorTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/FilenameFilterIteratorTest.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Tests/Iterator/FilenameFilterIteratorTest.php rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/FilenameFilterIteratorTest.php diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/FilterIteratorTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/FilterIteratorTest.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Tests/Iterator/FilterIteratorTest.php rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/FilterIteratorTest.php diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/Iterator.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/Iterator.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Tests/Iterator/Iterator.php rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/Iterator.php diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/IteratorTestCase.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/IteratorTestCase.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Tests/Iterator/IteratorTestCase.php rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/IteratorTestCase.php diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/MockFileListIterator.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/MockFileListIterator.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Tests/Iterator/MockFileListIterator.php rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/MockFileListIterator.php diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/MockSplFileInfo.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/MockSplFileInfo.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Tests/Iterator/MockSplFileInfo.php rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/MockSplFileInfo.php diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/MultiplePcreFilterIteratorTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/MultiplePcreFilterIteratorTest.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Tests/Iterator/MultiplePcreFilterIteratorTest.php rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/MultiplePcreFilterIteratorTest.php diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/PathFilterIteratorTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/PathFilterIteratorTest.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Tests/Iterator/PathFilterIteratorTest.php rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/PathFilterIteratorTest.php diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/RealIteratorTestCase.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/RealIteratorTestCase.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Tests/Iterator/RealIteratorTestCase.php rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/RealIteratorTestCase.php diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/RecursiveDirectoryIteratorTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/RecursiveDirectoryIteratorTest.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Tests/Iterator/RecursiveDirectoryIteratorTest.php rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/RecursiveDirectoryIteratorTest.php diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/SizeRangeFilterIteratorTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/SizeRangeFilterIteratorTest.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Tests/Iterator/SizeRangeFilterIteratorTest.php rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/SizeRangeFilterIteratorTest.php diff --git a/vas/doc/vendor/symfony/finder/Tests/Iterator/SortableIteratorTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/SortableIteratorTest.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Tests/Iterator/SortableIteratorTest.php rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/SortableIteratorTest.php diff --git a/vas/doc/vendor/symfony/finder/Tests/Shell/CommandTest.php b/src/vitis/vas/doc/vendor/symfony/finder/Tests/Shell/CommandTest.php similarity index 100% rename from vas/doc/vendor/symfony/finder/Tests/Shell/CommandTest.php rename to src/vitis/vas/doc/vendor/symfony/finder/Tests/Shell/CommandTest.php diff --git a/vas/doc/vendor/symfony/finder/composer.json b/src/vitis/vas/doc/vendor/symfony/finder/composer.json similarity index 100% rename from vas/doc/vendor/symfony/finder/composer.json rename to src/vitis/vas/doc/vendor/symfony/finder/composer.json diff --git a/vas/doc/vendor/symfony/finder/phpunit.xml.dist b/src/vitis/vas/doc/vendor/symfony/finder/phpunit.xml.dist similarity index 100% rename from vas/doc/vendor/symfony/finder/phpunit.xml.dist rename to src/vitis/vas/doc/vendor/symfony/finder/phpunit.xml.dist diff --git a/vas/doc/vendor/zircote/swagger-php/.gitignore b/src/vitis/vas/doc/vendor/zircote/swagger-php/.gitignore similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/.gitignore rename to src/vitis/vas/doc/vendor/zircote/swagger-php/.gitignore diff --git a/vas/doc/vendor/zircote/swagger-php/.travis.yml b/src/vitis/vas/doc/vendor/zircote/swagger-php/.travis.yml similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/.travis.yml rename to src/vitis/vas/doc/vendor/zircote/swagger-php/.travis.yml diff --git a/vas/doc/vendor/zircote/swagger-php/Changelog.md b/src/vitis/vas/doc/vendor/zircote/swagger-php/Changelog.md similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/Changelog.md rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Changelog.md diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/Examples.md b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/Examples.md similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/Examples/Examples.md rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/Examples.md diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/ApiResponse.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/ApiResponse.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/ApiResponse.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/ApiResponse.php diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/controllers/PetController.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/controllers/PetController.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/controllers/PetController.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/controllers/PetController.php diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/controllers/StoreController.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/controllers/StoreController.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/controllers/StoreController.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/controllers/StoreController.php diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/controllers/UserController.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/controllers/UserController.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/controllers/UserController.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/controllers/UserController.php diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Category.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Category.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Category.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Category.php diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Order.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Order.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Order.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Order.php diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Pet.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Pet.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Pet.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Pet.php diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Tag.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Tag.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Tag.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Tag.php diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/User.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/User.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/User.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/User.php diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/security.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/security.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/security.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/security.php diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/swagger-v2.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/swagger-v2.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/swagger-v2.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/swagger-v2.php diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/tags.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/tags.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/tags.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/tags.php diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-simple/SimplePet.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-simple/SimplePet.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-simple/SimplePet.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-simple/SimplePet.php diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-simple/SimplePetsController.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-simple/SimplePetsController.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-simple/SimplePetsController.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-simple/SimplePetsController.php diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-simple/api.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-simple/api.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-simple/api.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-simple/api.php diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/controllers/PetWithDocsController.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/controllers/PetWithDocsController.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/controllers/PetWithDocsController.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/controllers/PetWithDocsController.php diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/docs.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/docs.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/docs.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/docs.php diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/models/ErrorModel.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/models/ErrorModel.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/models/ErrorModel.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/models/ErrorModel.php diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/models/Pet.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/models/Pet.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/models/Pet.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/models/Pet.php diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore/Pet.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore/Pet.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore/Pet.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore/Pet.php diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore/PetsController.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore/PetsController.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore/PetsController.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore/PetsController.php diff --git a/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore/api.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore/api.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore/api.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore/api.php diff --git a/vas/doc/vendor/zircote/swagger-php/LICENSE-2.0.txt b/src/vitis/vas/doc/vendor/zircote/swagger-php/LICENSE-2.0.txt similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/LICENSE-2.0.txt rename to src/vitis/vas/doc/vendor/zircote/swagger-php/LICENSE-2.0.txt diff --git a/vas/doc/vendor/zircote/swagger-php/README.md b/src/vitis/vas/doc/vendor/zircote/swagger-php/README.md similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/README.md rename to src/vitis/vas/doc/vendor/zircote/swagger-php/README.md diff --git a/vas/doc/vendor/zircote/swagger-php/VERSION b/src/vitis/vas/doc/vendor/zircote/swagger-php/VERSION similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/VERSION rename to src/vitis/vas/doc/vendor/zircote/swagger-php/VERSION diff --git a/vas/doc/vendor/zircote/swagger-php/bin/swagger b/src/vitis/vas/doc/vendor/zircote/swagger-php/bin/swagger similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/bin/swagger rename to src/vitis/vas/doc/vendor/zircote/swagger-php/bin/swagger diff --git a/vas/doc/vendor/zircote/swagger-php/composer.json b/src/vitis/vas/doc/vendor/zircote/swagger-php/composer.json similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/composer.json rename to src/vitis/vas/doc/vendor/zircote/swagger-php/composer.json diff --git a/vas/doc/vendor/zircote/swagger-php/docs/Advanced.md b/src/vitis/vas/doc/vendor/zircote/swagger-php/docs/Advanced.md similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/docs/Advanced.md rename to src/vitis/vas/doc/vendor/zircote/swagger-php/docs/Advanced.md diff --git a/vas/doc/vendor/zircote/swagger-php/docs/Getting-started.md b/src/vitis/vas/doc/vendor/zircote/swagger-php/docs/Getting-started.md similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/docs/Getting-started.md rename to src/vitis/vas/doc/vendor/zircote/swagger-php/docs/Getting-started.md diff --git a/vas/doc/vendor/zircote/swagger-php/docs/Migrating-to-v2.md b/src/vitis/vas/doc/vendor/zircote/swagger-php/docs/Migrating-to-v2.md similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/docs/Migrating-to-v2.md rename to src/vitis/vas/doc/vendor/zircote/swagger-php/docs/Migrating-to-v2.md diff --git a/vas/doc/vendor/zircote/swagger-php/docs/Related-projects.md b/src/vitis/vas/doc/vendor/zircote/swagger-php/docs/Related-projects.md similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/docs/Related-projects.md rename to src/vitis/vas/doc/vendor/zircote/swagger-php/docs/Related-projects.md diff --git a/vas/doc/vendor/zircote/swagger-php/phpunit.xml.dist b/src/vitis/vas/doc/vendor/zircote/swagger-php/phpunit.xml.dist similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/phpunit.xml.dist rename to src/vitis/vas/doc/vendor/zircote/swagger-php/phpunit.xml.dist diff --git a/vas/doc/vendor/zircote/swagger-php/src/Analyser.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Analyser.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/src/Analyser.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Analyser.php diff --git a/vas/doc/vendor/zircote/swagger-php/src/Analysis.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Analysis.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/src/Analysis.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Analysis.php diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/AbstractAnnotation.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/AbstractAnnotation.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/AbstractAnnotation.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/AbstractAnnotation.php diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Contact.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Contact.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Contact.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Contact.php diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Definition.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Definition.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Definition.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Definition.php diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Delete.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Delete.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Delete.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Delete.php diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/ExternalDocumentation.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/ExternalDocumentation.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/ExternalDocumentation.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/ExternalDocumentation.php diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Get.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Get.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Get.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Get.php diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Head.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Head.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Head.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Head.php diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Header.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Header.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Header.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Header.php diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Info.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Info.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Info.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Info.php diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Items.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Items.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Items.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Items.php diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/License.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/License.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/License.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/License.php diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Operation.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Operation.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Operation.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Operation.php diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Options.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Options.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Options.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Options.php diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Parameter.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Parameter.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Parameter.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Parameter.php diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Patch.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Patch.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Patch.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Patch.php diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Path.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Path.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Path.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Path.php diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Post.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Post.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Post.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Post.php diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Property.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Property.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Property.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Property.php diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Put.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Put.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Put.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Put.php diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Response.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Response.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Response.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Response.php diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Schema.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Schema.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Schema.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Schema.php diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/SecurityScheme.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/SecurityScheme.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/SecurityScheme.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/SecurityScheme.php diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Swagger.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Swagger.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Swagger.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Swagger.php diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Tag.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Tag.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Tag.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Tag.php diff --git a/vas/doc/vendor/zircote/swagger-php/src/Annotations/Xml.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Xml.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/src/Annotations/Xml.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Xml.php diff --git a/vas/doc/vendor/zircote/swagger-php/src/Context.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Context.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/src/Context.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Context.php diff --git a/vas/doc/vendor/zircote/swagger-php/src/Logger.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Logger.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/src/Logger.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Logger.php diff --git a/vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentDefinitions.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentDefinitions.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentDefinitions.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentDefinitions.php diff --git a/vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentOperations.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentOperations.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentOperations.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentOperations.php diff --git a/vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentParameters.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentParameters.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentParameters.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentParameters.php diff --git a/vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentProperties.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentProperties.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentProperties.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentProperties.php diff --git a/vas/doc/vendor/zircote/swagger-php/src/Processors/BuildPaths.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/BuildPaths.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/src/Processors/BuildPaths.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/BuildPaths.php diff --git a/vas/doc/vendor/zircote/swagger-php/src/Processors/CleanUnmerged.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/CleanUnmerged.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/src/Processors/CleanUnmerged.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/CleanUnmerged.php diff --git a/vas/doc/vendor/zircote/swagger-php/src/Processors/HandleReferences.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/HandleReferences.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/src/Processors/HandleReferences.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/HandleReferences.php diff --git a/vas/doc/vendor/zircote/swagger-php/src/Processors/InheritProperties.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/InheritProperties.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/src/Processors/InheritProperties.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/InheritProperties.php diff --git a/vas/doc/vendor/zircote/swagger-php/src/Processors/MergeIntoSwagger.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/MergeIntoSwagger.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/src/Processors/MergeIntoSwagger.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/MergeIntoSwagger.php diff --git a/vas/doc/vendor/zircote/swagger-php/src/Serializer.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Serializer.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/src/Serializer.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Serializer.php diff --git a/vas/doc/vendor/zircote/swagger-php/src/StaticAnalyser.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/StaticAnalyser.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/src/StaticAnalyser.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/StaticAnalyser.php diff --git a/vas/doc/vendor/zircote/swagger-php/src/Util.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Util.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/src/Util.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/Util.php diff --git a/vas/doc/vendor/zircote/swagger-php/src/functions.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/src/functions.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/src/functions.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/src/functions.php diff --git a/vas/doc/vendor/zircote/swagger-php/tests/AbstractAnnotationTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AbstractAnnotationTest.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/tests/AbstractAnnotationTest.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AbstractAnnotationTest.php diff --git a/vas/doc/vendor/zircote/swagger-php/tests/AnalyserTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AnalyserTest.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/tests/AnalyserTest.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AnalyserTest.php diff --git a/vas/doc/vendor/zircote/swagger-php/tests/AnalysisTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AnalysisTest.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/tests/AnalysisTest.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AnalysisTest.php diff --git a/vas/doc/vendor/zircote/swagger-php/tests/AugmentDefinitionsTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AugmentDefinitionsTest.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/tests/AugmentDefinitionsTest.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AugmentDefinitionsTest.php diff --git a/vas/doc/vendor/zircote/swagger-php/tests/AugmentOperationTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AugmentOperationTest.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/tests/AugmentOperationTest.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AugmentOperationTest.php diff --git a/vas/doc/vendor/zircote/swagger-php/tests/AugmentParameterTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AugmentParameterTest.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/tests/AugmentParameterTest.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AugmentParameterTest.php diff --git a/vas/doc/vendor/zircote/swagger-php/tests/AugmentPropertiesTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AugmentPropertiesTest.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/tests/AugmentPropertiesTest.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AugmentPropertiesTest.php diff --git a/vas/doc/vendor/zircote/swagger-php/tests/BuildPathsTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/BuildPathsTest.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/tests/BuildPathsTest.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/BuildPathsTest.php diff --git a/vas/doc/vendor/zircote/swagger-php/tests/CleanUnmergedTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/CleanUnmergedTest.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/tests/CleanUnmergedTest.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/CleanUnmergedTest.php diff --git a/vas/doc/vendor/zircote/swagger-php/tests/CommandlineInterfaceTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/CommandlineInterfaceTest.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/tests/CommandlineInterfaceTest.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/CommandlineInterfaceTest.php diff --git a/vas/doc/vendor/zircote/swagger-php/tests/ConstantsTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ConstantsTest.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/tests/ConstantsTest.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ConstantsTest.php diff --git a/vas/doc/vendor/zircote/swagger-php/tests/ContextTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ContextTest.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/tests/ContextTest.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ContextTest.php diff --git a/vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore-simple.json b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore-simple.json similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore-simple.json rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore-simple.json diff --git a/vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore-with-external-docs.json b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore-with-external-docs.json similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore-with-external-docs.json rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore-with-external-docs.json diff --git a/vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore.json b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore.json similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore.json rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore.json diff --git a/vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore.swagger.io.json b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore.swagger.io.json similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore.swagger.io.json rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore.swagger.io.json diff --git a/vas/doc/vendor/zircote/swagger-php/tests/ExamplesTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ExamplesTest.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/tests/ExamplesTest.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ExamplesTest.php diff --git a/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/Ancestor.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/Ancestor.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/tests/Fixtures/Ancestor.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/Ancestor.php diff --git a/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/AncestorWithoutDocBlocks.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/AncestorWithoutDocBlocks.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/tests/Fixtures/AncestorWithoutDocBlocks.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/AncestorWithoutDocBlocks.php diff --git a/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/Child.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/Child.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/tests/Fixtures/Child.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/Child.php diff --git a/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/ChildWithDocBlocks.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/ChildWithDocBlocks.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/tests/Fixtures/ChildWithDocBlocks.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/ChildWithDocBlocks.php diff --git a/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/Customer.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/Customer.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/tests/Fixtures/Customer.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/Customer.php diff --git a/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/GrandAncestor.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/GrandAncestor.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/tests/Fixtures/GrandAncestor.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/GrandAncestor.php diff --git a/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/HelloTrait.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/HelloTrait.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/tests/Fixtures/HelloTrait.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/HelloTrait.php diff --git a/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/NestedProperty.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/NestedProperty.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/tests/Fixtures/NestedProperty.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/NestedProperty.php diff --git a/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/ThirdPartyAnnotations.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/ThirdPartyAnnotations.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/tests/Fixtures/ThirdPartyAnnotations.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/ThirdPartyAnnotations.php diff --git a/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/UsingPhpDoc.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/UsingPhpDoc.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/tests/Fixtures/UsingPhpDoc.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/UsingPhpDoc.php diff --git a/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/UsingRefs.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/UsingRefs.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/tests/Fixtures/UsingRefs.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/UsingRefs.php diff --git a/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/routes.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/routes.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/tests/Fixtures/routes.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/routes.php diff --git a/vas/doc/vendor/zircote/swagger-php/tests/InheritPropertiesTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/InheritPropertiesTest.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/tests/InheritPropertiesTest.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/InheritPropertiesTest.php diff --git a/vas/doc/vendor/zircote/swagger-php/tests/ItemsTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ItemsTest.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/tests/ItemsTest.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ItemsTest.php diff --git a/vas/doc/vendor/zircote/swagger-php/tests/MergeIntoSwaggerTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/MergeIntoSwaggerTest.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/tests/MergeIntoSwaggerTest.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/MergeIntoSwaggerTest.php diff --git a/vas/doc/vendor/zircote/swagger-php/tests/NestedPropertyTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/NestedPropertyTest.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/tests/NestedPropertyTest.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/NestedPropertyTest.php diff --git a/vas/doc/vendor/zircote/swagger-php/tests/ResponseTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ResponseTest.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/tests/ResponseTest.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ResponseTest.php diff --git a/vas/doc/vendor/zircote/swagger-php/tests/SerializerTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/SerializerTest.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/tests/SerializerTest.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/SerializerTest.php diff --git a/vas/doc/vendor/zircote/swagger-php/tests/StaticAnalyserTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/StaticAnalyserTest.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/tests/StaticAnalyserTest.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/StaticAnalyserTest.php diff --git a/vas/doc/vendor/zircote/swagger-php/tests/SwaggerTestCase.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/SwaggerTestCase.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/tests/SwaggerTestCase.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/SwaggerTestCase.php diff --git a/vas/doc/vendor/zircote/swagger-php/tests/UtilTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/UtilTest.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/tests/UtilTest.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/UtilTest.php diff --git a/vas/doc/vendor/zircote/swagger-php/tests/ValidateRelationsTest.php b/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ValidateRelationsTest.php similarity index 100% rename from vas/doc/vendor/zircote/swagger-php/tests/ValidateRelationsTest.php rename to src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ValidateRelationsTest.php diff --git a/vas/public/studio/default.js b/src/vitis/vas/public/studio/default.js similarity index 100% rename from vas/public/studio/default.js rename to src/vitis/vas/public/studio/default.js diff --git a/vas/rest/.htaccess b/src/vitis/vas/rest/.htaccess similarity index 100% rename from vas/rest/.htaccess rename to src/vitis/vas/rest/.htaccess diff --git a/vas/rest/class/.htaccess b/src/vitis/vas/rest/class/.htaccess similarity index 100% rename from vas/rest/class/.htaccess rename to src/vitis/vas/rest/class/.htaccess diff --git a/vas/rest/class/Ldap.class.inc b/src/vitis/vas/rest/class/Ldap.class.inc similarity index 100% rename from vas/rest/class/Ldap.class.inc rename to src/vitis/vas/rest/class/Ldap.class.inc diff --git a/vas/rest/class/PEAR/Autoloader.php b/src/vitis/vas/rest/class/PEAR/Autoloader.php similarity index 100% rename from vas/rest/class/PEAR/Autoloader.php rename to src/vitis/vas/rest/class/PEAR/Autoloader.php diff --git a/vas/rest/class/PEAR/Builder.php b/src/vitis/vas/rest/class/PEAR/Builder.php similarity index 100% rename from vas/rest/class/PEAR/Builder.php rename to src/vitis/vas/rest/class/PEAR/Builder.php diff --git a/vas/rest/class/PEAR/ChannelFile.php b/src/vitis/vas/rest/class/PEAR/ChannelFile.php similarity index 100% rename from vas/rest/class/PEAR/ChannelFile.php rename to src/vitis/vas/rest/class/PEAR/ChannelFile.php diff --git a/vas/rest/class/PEAR/ChannelFile/Parser.php b/src/vitis/vas/rest/class/PEAR/ChannelFile/Parser.php similarity index 100% rename from vas/rest/class/PEAR/ChannelFile/Parser.php rename to src/vitis/vas/rest/class/PEAR/ChannelFile/Parser.php diff --git a/vas/rest/class/PEAR/Command.php b/src/vitis/vas/rest/class/PEAR/Command.php similarity index 100% rename from vas/rest/class/PEAR/Command.php rename to src/vitis/vas/rest/class/PEAR/Command.php diff --git a/vas/rest/class/PEAR/Command/Auth.php b/src/vitis/vas/rest/class/PEAR/Command/Auth.php similarity index 100% rename from vas/rest/class/PEAR/Command/Auth.php rename to src/vitis/vas/rest/class/PEAR/Command/Auth.php diff --git a/vas/rest/class/PEAR/Command/Auth.xml b/src/vitis/vas/rest/class/PEAR/Command/Auth.xml similarity index 100% rename from vas/rest/class/PEAR/Command/Auth.xml rename to src/vitis/vas/rest/class/PEAR/Command/Auth.xml diff --git a/vas/rest/class/PEAR/Command/Build.php b/src/vitis/vas/rest/class/PEAR/Command/Build.php similarity index 100% rename from vas/rest/class/PEAR/Command/Build.php rename to src/vitis/vas/rest/class/PEAR/Command/Build.php diff --git a/vas/rest/class/PEAR/Command/Build.xml b/src/vitis/vas/rest/class/PEAR/Command/Build.xml similarity index 100% rename from vas/rest/class/PEAR/Command/Build.xml rename to src/vitis/vas/rest/class/PEAR/Command/Build.xml diff --git a/vas/rest/class/PEAR/Command/Channels.php b/src/vitis/vas/rest/class/PEAR/Command/Channels.php similarity index 100% rename from vas/rest/class/PEAR/Command/Channels.php rename to src/vitis/vas/rest/class/PEAR/Command/Channels.php diff --git a/vas/rest/class/PEAR/Command/Channels.xml b/src/vitis/vas/rest/class/PEAR/Command/Channels.xml similarity index 100% rename from vas/rest/class/PEAR/Command/Channels.xml rename to src/vitis/vas/rest/class/PEAR/Command/Channels.xml diff --git a/vas/rest/class/PEAR/Command/Common.php b/src/vitis/vas/rest/class/PEAR/Command/Common.php similarity index 100% rename from vas/rest/class/PEAR/Command/Common.php rename to src/vitis/vas/rest/class/PEAR/Command/Common.php diff --git a/vas/rest/class/PEAR/Command/Config.php b/src/vitis/vas/rest/class/PEAR/Command/Config.php similarity index 100% rename from vas/rest/class/PEAR/Command/Config.php rename to src/vitis/vas/rest/class/PEAR/Command/Config.php diff --git a/vas/rest/class/PEAR/Command/Config.xml b/src/vitis/vas/rest/class/PEAR/Command/Config.xml similarity index 100% rename from vas/rest/class/PEAR/Command/Config.xml rename to src/vitis/vas/rest/class/PEAR/Command/Config.xml diff --git a/vas/rest/class/PEAR/Command/Install.php b/src/vitis/vas/rest/class/PEAR/Command/Install.php similarity index 100% rename from vas/rest/class/PEAR/Command/Install.php rename to src/vitis/vas/rest/class/PEAR/Command/Install.php diff --git a/vas/rest/class/PEAR/Command/Install.xml b/src/vitis/vas/rest/class/PEAR/Command/Install.xml similarity index 100% rename from vas/rest/class/PEAR/Command/Install.xml rename to src/vitis/vas/rest/class/PEAR/Command/Install.xml diff --git a/vas/rest/class/PEAR/Command/Mirror.php b/src/vitis/vas/rest/class/PEAR/Command/Mirror.php similarity index 100% rename from vas/rest/class/PEAR/Command/Mirror.php rename to src/vitis/vas/rest/class/PEAR/Command/Mirror.php diff --git a/vas/rest/class/PEAR/Command/Mirror.xml b/src/vitis/vas/rest/class/PEAR/Command/Mirror.xml similarity index 100% rename from vas/rest/class/PEAR/Command/Mirror.xml rename to src/vitis/vas/rest/class/PEAR/Command/Mirror.xml diff --git a/vas/rest/class/PEAR/Command/Package.php b/src/vitis/vas/rest/class/PEAR/Command/Package.php similarity index 100% rename from vas/rest/class/PEAR/Command/Package.php rename to src/vitis/vas/rest/class/PEAR/Command/Package.php diff --git a/vas/rest/class/PEAR/Command/Package.xml b/src/vitis/vas/rest/class/PEAR/Command/Package.xml similarity index 100% rename from vas/rest/class/PEAR/Command/Package.xml rename to src/vitis/vas/rest/class/PEAR/Command/Package.xml diff --git a/vas/rest/class/PEAR/Command/Pickle.php b/src/vitis/vas/rest/class/PEAR/Command/Pickle.php similarity index 100% rename from vas/rest/class/PEAR/Command/Pickle.php rename to src/vitis/vas/rest/class/PEAR/Command/Pickle.php diff --git a/vas/rest/class/PEAR/Command/Pickle.xml b/src/vitis/vas/rest/class/PEAR/Command/Pickle.xml similarity index 100% rename from vas/rest/class/PEAR/Command/Pickle.xml rename to src/vitis/vas/rest/class/PEAR/Command/Pickle.xml diff --git a/vas/rest/class/PEAR/Command/Registry.php b/src/vitis/vas/rest/class/PEAR/Command/Registry.php similarity index 100% rename from vas/rest/class/PEAR/Command/Registry.php rename to src/vitis/vas/rest/class/PEAR/Command/Registry.php diff --git a/vas/rest/class/PEAR/Command/Registry.xml b/src/vitis/vas/rest/class/PEAR/Command/Registry.xml similarity index 100% rename from vas/rest/class/PEAR/Command/Registry.xml rename to src/vitis/vas/rest/class/PEAR/Command/Registry.xml diff --git a/vas/rest/class/PEAR/Command/Remote.php b/src/vitis/vas/rest/class/PEAR/Command/Remote.php similarity index 100% rename from vas/rest/class/PEAR/Command/Remote.php rename to src/vitis/vas/rest/class/PEAR/Command/Remote.php diff --git a/vas/rest/class/PEAR/Command/Remote.xml b/src/vitis/vas/rest/class/PEAR/Command/Remote.xml similarity index 100% rename from vas/rest/class/PEAR/Command/Remote.xml rename to src/vitis/vas/rest/class/PEAR/Command/Remote.xml diff --git a/vas/rest/class/PEAR/Command/Test.php b/src/vitis/vas/rest/class/PEAR/Command/Test.php similarity index 100% rename from vas/rest/class/PEAR/Command/Test.php rename to src/vitis/vas/rest/class/PEAR/Command/Test.php diff --git a/vas/rest/class/PEAR/Command/Test.xml b/src/vitis/vas/rest/class/PEAR/Command/Test.xml similarity index 100% rename from vas/rest/class/PEAR/Command/Test.xml rename to src/vitis/vas/rest/class/PEAR/Command/Test.xml diff --git a/vas/rest/class/PEAR/Common.php b/src/vitis/vas/rest/class/PEAR/Common.php similarity index 100% rename from vas/rest/class/PEAR/Common.php rename to src/vitis/vas/rest/class/PEAR/Common.php diff --git a/vas/rest/class/PEAR/Config.php b/src/vitis/vas/rest/class/PEAR/Config.php similarity index 100% rename from vas/rest/class/PEAR/Config.php rename to src/vitis/vas/rest/class/PEAR/Config.php diff --git a/vas/rest/class/PEAR/Dependency.php b/src/vitis/vas/rest/class/PEAR/Dependency.php similarity index 100% rename from vas/rest/class/PEAR/Dependency.php rename to src/vitis/vas/rest/class/PEAR/Dependency.php diff --git a/vas/rest/class/PEAR/Dependency2.php b/src/vitis/vas/rest/class/PEAR/Dependency2.php similarity index 100% rename from vas/rest/class/PEAR/Dependency2.php rename to src/vitis/vas/rest/class/PEAR/Dependency2.php diff --git a/vas/rest/class/PEAR/DependencyDB.php b/src/vitis/vas/rest/class/PEAR/DependencyDB.php similarity index 100% rename from vas/rest/class/PEAR/DependencyDB.php rename to src/vitis/vas/rest/class/PEAR/DependencyDB.php diff --git a/vas/rest/class/PEAR/Downloader.php b/src/vitis/vas/rest/class/PEAR/Downloader.php similarity index 100% rename from vas/rest/class/PEAR/Downloader.php rename to src/vitis/vas/rest/class/PEAR/Downloader.php diff --git a/vas/rest/class/PEAR/Downloader/Package.php b/src/vitis/vas/rest/class/PEAR/Downloader/Package.php similarity index 100% rename from vas/rest/class/PEAR/Downloader/Package.php rename to src/vitis/vas/rest/class/PEAR/Downloader/Package.php diff --git a/vas/rest/class/PEAR/ErrorStack.php b/src/vitis/vas/rest/class/PEAR/ErrorStack.php similarity index 100% rename from vas/rest/class/PEAR/ErrorStack.php rename to src/vitis/vas/rest/class/PEAR/ErrorStack.php diff --git a/vas/rest/class/PEAR/Exception.php b/src/vitis/vas/rest/class/PEAR/Exception.php similarity index 100% rename from vas/rest/class/PEAR/Exception.php rename to src/vitis/vas/rest/class/PEAR/Exception.php diff --git a/vas/rest/class/PEAR/FixPHP5PEARWarnings.php b/src/vitis/vas/rest/class/PEAR/FixPHP5PEARWarnings.php similarity index 100% rename from vas/rest/class/PEAR/FixPHP5PEARWarnings.php rename to src/vitis/vas/rest/class/PEAR/FixPHP5PEARWarnings.php diff --git a/vas/rest/class/PEAR/Frontend.php b/src/vitis/vas/rest/class/PEAR/Frontend.php similarity index 100% rename from vas/rest/class/PEAR/Frontend.php rename to src/vitis/vas/rest/class/PEAR/Frontend.php diff --git a/vas/rest/class/PEAR/Frontend/CLI.php b/src/vitis/vas/rest/class/PEAR/Frontend/CLI.php similarity index 100% rename from vas/rest/class/PEAR/Frontend/CLI.php rename to src/vitis/vas/rest/class/PEAR/Frontend/CLI.php diff --git a/vas/rest/class/PEAR/Installer.php b/src/vitis/vas/rest/class/PEAR/Installer.php similarity index 100% rename from vas/rest/class/PEAR/Installer.php rename to src/vitis/vas/rest/class/PEAR/Installer.php diff --git a/vas/rest/class/PEAR/Installer/Role.php b/src/vitis/vas/rest/class/PEAR/Installer/Role.php similarity index 100% rename from vas/rest/class/PEAR/Installer/Role.php rename to src/vitis/vas/rest/class/PEAR/Installer/Role.php diff --git a/vas/rest/class/PEAR/Installer/Role/Cfg.php b/src/vitis/vas/rest/class/PEAR/Installer/Role/Cfg.php similarity index 100% rename from vas/rest/class/PEAR/Installer/Role/Cfg.php rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Cfg.php diff --git a/vas/rest/class/PEAR/Installer/Role/Cfg.xml b/src/vitis/vas/rest/class/PEAR/Installer/Role/Cfg.xml similarity index 100% rename from vas/rest/class/PEAR/Installer/Role/Cfg.xml rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Cfg.xml diff --git a/vas/rest/class/PEAR/Installer/Role/Common.php b/src/vitis/vas/rest/class/PEAR/Installer/Role/Common.php similarity index 100% rename from vas/rest/class/PEAR/Installer/Role/Common.php rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Common.php diff --git a/vas/rest/class/PEAR/Installer/Role/Data.php b/src/vitis/vas/rest/class/PEAR/Installer/Role/Data.php similarity index 100% rename from vas/rest/class/PEAR/Installer/Role/Data.php rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Data.php diff --git a/vas/rest/class/PEAR/Installer/Role/Data.xml b/src/vitis/vas/rest/class/PEAR/Installer/Role/Data.xml similarity index 100% rename from vas/rest/class/PEAR/Installer/Role/Data.xml rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Data.xml diff --git a/vas/rest/class/PEAR/Installer/Role/Doc.php b/src/vitis/vas/rest/class/PEAR/Installer/Role/Doc.php similarity index 100% rename from vas/rest/class/PEAR/Installer/Role/Doc.php rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Doc.php diff --git a/vas/rest/class/PEAR/Installer/Role/Doc.xml b/src/vitis/vas/rest/class/PEAR/Installer/Role/Doc.xml similarity index 100% rename from vas/rest/class/PEAR/Installer/Role/Doc.xml rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Doc.xml diff --git a/vas/rest/class/PEAR/Installer/Role/Ext.php b/src/vitis/vas/rest/class/PEAR/Installer/Role/Ext.php similarity index 100% rename from vas/rest/class/PEAR/Installer/Role/Ext.php rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Ext.php diff --git a/vas/rest/class/PEAR/Installer/Role/Ext.xml b/src/vitis/vas/rest/class/PEAR/Installer/Role/Ext.xml similarity index 100% rename from vas/rest/class/PEAR/Installer/Role/Ext.xml rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Ext.xml diff --git a/vas/rest/class/PEAR/Installer/Role/Php.php b/src/vitis/vas/rest/class/PEAR/Installer/Role/Php.php similarity index 100% rename from vas/rest/class/PEAR/Installer/Role/Php.php rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Php.php diff --git a/vas/rest/class/PEAR/Installer/Role/Php.xml b/src/vitis/vas/rest/class/PEAR/Installer/Role/Php.xml similarity index 100% rename from vas/rest/class/PEAR/Installer/Role/Php.xml rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Php.xml diff --git a/vas/rest/class/PEAR/Installer/Role/Script.php b/src/vitis/vas/rest/class/PEAR/Installer/Role/Script.php similarity index 100% rename from vas/rest/class/PEAR/Installer/Role/Script.php rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Script.php diff --git a/vas/rest/class/PEAR/Installer/Role/Script.xml b/src/vitis/vas/rest/class/PEAR/Installer/Role/Script.xml similarity index 100% rename from vas/rest/class/PEAR/Installer/Role/Script.xml rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Script.xml diff --git a/vas/rest/class/PEAR/Installer/Role/Src.php b/src/vitis/vas/rest/class/PEAR/Installer/Role/Src.php similarity index 100% rename from vas/rest/class/PEAR/Installer/Role/Src.php rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Src.php diff --git a/vas/rest/class/PEAR/Installer/Role/Src.xml b/src/vitis/vas/rest/class/PEAR/Installer/Role/Src.xml similarity index 100% rename from vas/rest/class/PEAR/Installer/Role/Src.xml rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Src.xml diff --git a/vas/rest/class/PEAR/Installer/Role/Test.php b/src/vitis/vas/rest/class/PEAR/Installer/Role/Test.php similarity index 100% rename from vas/rest/class/PEAR/Installer/Role/Test.php rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Test.php diff --git a/vas/rest/class/PEAR/Installer/Role/Test.xml b/src/vitis/vas/rest/class/PEAR/Installer/Role/Test.xml similarity index 100% rename from vas/rest/class/PEAR/Installer/Role/Test.xml rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Test.xml diff --git a/vas/rest/class/PEAR/Installer/Role/Www.php b/src/vitis/vas/rest/class/PEAR/Installer/Role/Www.php similarity index 100% rename from vas/rest/class/PEAR/Installer/Role/Www.php rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Www.php diff --git a/vas/rest/class/PEAR/Installer/Role/Www.xml b/src/vitis/vas/rest/class/PEAR/Installer/Role/Www.xml similarity index 100% rename from vas/rest/class/PEAR/Installer/Role/Www.xml rename to src/vitis/vas/rest/class/PEAR/Installer/Role/Www.xml diff --git a/vas/rest/class/PEAR/Mail.php b/src/vitis/vas/rest/class/PEAR/Mail.php similarity index 100% rename from vas/rest/class/PEAR/Mail.php rename to src/vitis/vas/rest/class/PEAR/Mail.php diff --git a/vas/rest/class/PEAR/Mail/RFC822.php b/src/vitis/vas/rest/class/PEAR/Mail/RFC822.php similarity index 100% rename from vas/rest/class/PEAR/Mail/RFC822.php rename to src/vitis/vas/rest/class/PEAR/Mail/RFC822.php diff --git a/vas/rest/class/PEAR/Mail/mail.php b/src/vitis/vas/rest/class/PEAR/Mail/mail.php similarity index 100% rename from vas/rest/class/PEAR/Mail/mail.php rename to src/vitis/vas/rest/class/PEAR/Mail/mail.php diff --git a/vas/rest/class/PEAR/Mail/mime.php b/src/vitis/vas/rest/class/PEAR/Mail/mime.php similarity index 100% rename from vas/rest/class/PEAR/Mail/mime.php rename to src/vitis/vas/rest/class/PEAR/Mail/mime.php diff --git a/vas/rest/class/PEAR/Mail/mimePart.php b/src/vitis/vas/rest/class/PEAR/Mail/mimePart.php similarity index 100% rename from vas/rest/class/PEAR/Mail/mimePart.php rename to src/vitis/vas/rest/class/PEAR/Mail/mimePart.php diff --git a/vas/rest/class/PEAR/Mail/mock.php b/src/vitis/vas/rest/class/PEAR/Mail/mock.php similarity index 100% rename from vas/rest/class/PEAR/Mail/mock.php rename to src/vitis/vas/rest/class/PEAR/Mail/mock.php diff --git a/vas/rest/class/PEAR/Mail/net/SMTP.php b/src/vitis/vas/rest/class/PEAR/Mail/net/SMTP.php similarity index 100% rename from vas/rest/class/PEAR/Mail/net/SMTP.php rename to src/vitis/vas/rest/class/PEAR/Mail/net/SMTP.php diff --git a/vas/rest/class/PEAR/Mail/net/Socket.php b/src/vitis/vas/rest/class/PEAR/Mail/net/Socket.php similarity index 100% rename from vas/rest/class/PEAR/Mail/net/Socket.php rename to src/vitis/vas/rest/class/PEAR/Mail/net/Socket.php diff --git a/vas/rest/class/PEAR/Mail/net/docs/guide.txt b/src/vitis/vas/rest/class/PEAR/Mail/net/docs/guide.txt similarity index 100% rename from vas/rest/class/PEAR/Mail/net/docs/guide.txt rename to src/vitis/vas/rest/class/PEAR/Mail/net/docs/guide.txt diff --git a/vas/rest/class/PEAR/Mail/net/examples/basic.php b/src/vitis/vas/rest/class/PEAR/Mail/net/examples/basic.php similarity index 100% rename from vas/rest/class/PEAR/Mail/net/examples/basic.php rename to src/vitis/vas/rest/class/PEAR/Mail/net/examples/basic.php diff --git a/vas/rest/class/PEAR/Mail/net/tests/auth.phpt b/src/vitis/vas/rest/class/PEAR/Mail/net/tests/auth.phpt similarity index 100% rename from vas/rest/class/PEAR/Mail/net/tests/auth.phpt rename to src/vitis/vas/rest/class/PEAR/Mail/net/tests/auth.phpt diff --git a/vas/rest/class/PEAR/Mail/net/tests/basic.phpt b/src/vitis/vas/rest/class/PEAR/Mail/net/tests/basic.phpt similarity index 100% rename from vas/rest/class/PEAR/Mail/net/tests/basic.phpt rename to src/vitis/vas/rest/class/PEAR/Mail/net/tests/basic.phpt diff --git a/vas/rest/class/PEAR/Mail/net/tests/config.php.dist b/src/vitis/vas/rest/class/PEAR/Mail/net/tests/config.php.dist similarity index 100% rename from vas/rest/class/PEAR/Mail/net/tests/config.php.dist rename to src/vitis/vas/rest/class/PEAR/Mail/net/tests/config.php.dist diff --git a/vas/rest/class/PEAR/Mail/net/tests/quotedata.phpt b/src/vitis/vas/rest/class/PEAR/Mail/net/tests/quotedata.phpt similarity index 100% rename from vas/rest/class/PEAR/Mail/net/tests/quotedata.phpt rename to src/vitis/vas/rest/class/PEAR/Mail/net/tests/quotedata.phpt diff --git a/vas/rest/class/PEAR/Mail/null.php b/src/vitis/vas/rest/class/PEAR/Mail/null.php similarity index 100% rename from vas/rest/class/PEAR/Mail/null.php rename to src/vitis/vas/rest/class/PEAR/Mail/null.php diff --git a/vas/rest/class/PEAR/Mail/sendmail.php b/src/vitis/vas/rest/class/PEAR/Mail/sendmail.php similarity index 100% rename from vas/rest/class/PEAR/Mail/sendmail.php rename to src/vitis/vas/rest/class/PEAR/Mail/sendmail.php diff --git a/vas/rest/class/PEAR/Mail/smtp.php b/src/vitis/vas/rest/class/PEAR/Mail/smtp.php similarity index 100% rename from vas/rest/class/PEAR/Mail/smtp.php rename to src/vitis/vas/rest/class/PEAR/Mail/smtp.php diff --git a/vas/rest/class/PEAR/Mail/smtpmx.php b/src/vitis/vas/rest/class/PEAR/Mail/smtpmx.php similarity index 100% rename from vas/rest/class/PEAR/Mail/smtpmx.php rename to src/vitis/vas/rest/class/PEAR/Mail/smtpmx.php diff --git a/vas/rest/class/PEAR/PEAR.php b/src/vitis/vas/rest/class/PEAR/PEAR.php similarity index 100% rename from vas/rest/class/PEAR/PEAR.php rename to src/vitis/vas/rest/class/PEAR/PEAR.php diff --git a/vas/rest/class/PEAR/PackageFile.php b/src/vitis/vas/rest/class/PEAR/PackageFile.php similarity index 100% rename from vas/rest/class/PEAR/PackageFile.php rename to src/vitis/vas/rest/class/PEAR/PackageFile.php diff --git a/vas/rest/class/PEAR/PackageFile/Generator/v1.php b/src/vitis/vas/rest/class/PEAR/PackageFile/Generator/v1.php similarity index 100% rename from vas/rest/class/PEAR/PackageFile/Generator/v1.php rename to src/vitis/vas/rest/class/PEAR/PackageFile/Generator/v1.php diff --git a/vas/rest/class/PEAR/PackageFile/Generator/v2.php b/src/vitis/vas/rest/class/PEAR/PackageFile/Generator/v2.php similarity index 100% rename from vas/rest/class/PEAR/PackageFile/Generator/v2.php rename to src/vitis/vas/rest/class/PEAR/PackageFile/Generator/v2.php diff --git a/vas/rest/class/PEAR/PackageFile/Parser/v1.php b/src/vitis/vas/rest/class/PEAR/PackageFile/Parser/v1.php similarity index 100% rename from vas/rest/class/PEAR/PackageFile/Parser/v1.php rename to src/vitis/vas/rest/class/PEAR/PackageFile/Parser/v1.php diff --git a/vas/rest/class/PEAR/PackageFile/Parser/v2.php b/src/vitis/vas/rest/class/PEAR/PackageFile/Parser/v2.php similarity index 100% rename from vas/rest/class/PEAR/PackageFile/Parser/v2.php rename to src/vitis/vas/rest/class/PEAR/PackageFile/Parser/v2.php diff --git a/vas/rest/class/PEAR/PackageFile/v1.php b/src/vitis/vas/rest/class/PEAR/PackageFile/v1.php similarity index 100% rename from vas/rest/class/PEAR/PackageFile/v1.php rename to src/vitis/vas/rest/class/PEAR/PackageFile/v1.php diff --git a/vas/rest/class/PEAR/PackageFile/v2.php b/src/vitis/vas/rest/class/PEAR/PackageFile/v2.php similarity index 100% rename from vas/rest/class/PEAR/PackageFile/v2.php rename to src/vitis/vas/rest/class/PEAR/PackageFile/v2.php diff --git a/vas/rest/class/PEAR/PackageFile/v2/Validator.php b/src/vitis/vas/rest/class/PEAR/PackageFile/v2/Validator.php similarity index 100% rename from vas/rest/class/PEAR/PackageFile/v2/Validator.php rename to src/vitis/vas/rest/class/PEAR/PackageFile/v2/Validator.php diff --git a/vas/rest/class/PEAR/PackageFile/v2/rw.php b/src/vitis/vas/rest/class/PEAR/PackageFile/v2/rw.php similarity index 100% rename from vas/rest/class/PEAR/PackageFile/v2/rw.php rename to src/vitis/vas/rest/class/PEAR/PackageFile/v2/rw.php diff --git a/vas/rest/class/PEAR/Packager.php b/src/vitis/vas/rest/class/PEAR/Packager.php similarity index 100% rename from vas/rest/class/PEAR/Packager.php rename to src/vitis/vas/rest/class/PEAR/Packager.php diff --git a/vas/rest/class/PEAR/REST.php b/src/vitis/vas/rest/class/PEAR/REST.php similarity index 100% rename from vas/rest/class/PEAR/REST.php rename to src/vitis/vas/rest/class/PEAR/REST.php diff --git a/vas/rest/class/PEAR/REST/10.php b/src/vitis/vas/rest/class/PEAR/REST/10.php similarity index 100% rename from vas/rest/class/PEAR/REST/10.php rename to src/vitis/vas/rest/class/PEAR/REST/10.php diff --git a/vas/rest/class/PEAR/REST/11.php b/src/vitis/vas/rest/class/PEAR/REST/11.php similarity index 100% rename from vas/rest/class/PEAR/REST/11.php rename to src/vitis/vas/rest/class/PEAR/REST/11.php diff --git a/vas/rest/class/PEAR/REST/13.php b/src/vitis/vas/rest/class/PEAR/REST/13.php similarity index 100% rename from vas/rest/class/PEAR/REST/13.php rename to src/vitis/vas/rest/class/PEAR/REST/13.php diff --git a/vas/rest/class/PEAR/Registry.php b/src/vitis/vas/rest/class/PEAR/Registry.php similarity index 100% rename from vas/rest/class/PEAR/Registry.php rename to src/vitis/vas/rest/class/PEAR/Registry.php diff --git a/vas/rest/class/PEAR/Remote.php b/src/vitis/vas/rest/class/PEAR/Remote.php similarity index 100% rename from vas/rest/class/PEAR/Remote.php rename to src/vitis/vas/rest/class/PEAR/Remote.php diff --git a/vas/rest/class/PEAR/RunTest.php b/src/vitis/vas/rest/class/PEAR/RunTest.php similarity index 100% rename from vas/rest/class/PEAR/RunTest.php rename to src/vitis/vas/rest/class/PEAR/RunTest.php diff --git a/vas/rest/class/PEAR/Task/Common.php b/src/vitis/vas/rest/class/PEAR/Task/Common.php similarity index 100% rename from vas/rest/class/PEAR/Task/Common.php rename to src/vitis/vas/rest/class/PEAR/Task/Common.php diff --git a/vas/rest/class/PEAR/Task/Postinstallscript.php b/src/vitis/vas/rest/class/PEAR/Task/Postinstallscript.php similarity index 100% rename from vas/rest/class/PEAR/Task/Postinstallscript.php rename to src/vitis/vas/rest/class/PEAR/Task/Postinstallscript.php diff --git a/vas/rest/class/PEAR/Task/Postinstallscript/rw.php b/src/vitis/vas/rest/class/PEAR/Task/Postinstallscript/rw.php similarity index 100% rename from vas/rest/class/PEAR/Task/Postinstallscript/rw.php rename to src/vitis/vas/rest/class/PEAR/Task/Postinstallscript/rw.php diff --git a/vas/rest/class/PEAR/Task/Replace.php b/src/vitis/vas/rest/class/PEAR/Task/Replace.php similarity index 100% rename from vas/rest/class/PEAR/Task/Replace.php rename to src/vitis/vas/rest/class/PEAR/Task/Replace.php diff --git a/vas/rest/class/PEAR/Task/Replace/rw.php b/src/vitis/vas/rest/class/PEAR/Task/Replace/rw.php similarity index 100% rename from vas/rest/class/PEAR/Task/Replace/rw.php rename to src/vitis/vas/rest/class/PEAR/Task/Replace/rw.php diff --git a/vas/rest/class/PEAR/Task/Unixeol.php b/src/vitis/vas/rest/class/PEAR/Task/Unixeol.php similarity index 100% rename from vas/rest/class/PEAR/Task/Unixeol.php rename to src/vitis/vas/rest/class/PEAR/Task/Unixeol.php diff --git a/vas/rest/class/PEAR/Task/Unixeol/rw.php b/src/vitis/vas/rest/class/PEAR/Task/Unixeol/rw.php similarity index 100% rename from vas/rest/class/PEAR/Task/Unixeol/rw.php rename to src/vitis/vas/rest/class/PEAR/Task/Unixeol/rw.php diff --git a/vas/rest/class/PEAR/Task/Windowseol.php b/src/vitis/vas/rest/class/PEAR/Task/Windowseol.php similarity index 100% rename from vas/rest/class/PEAR/Task/Windowseol.php rename to src/vitis/vas/rest/class/PEAR/Task/Windowseol.php diff --git a/vas/rest/class/PEAR/Task/Windowseol/rw.php b/src/vitis/vas/rest/class/PEAR/Task/Windowseol/rw.php similarity index 100% rename from vas/rest/class/PEAR/Task/Windowseol/rw.php rename to src/vitis/vas/rest/class/PEAR/Task/Windowseol/rw.php diff --git a/vas/rest/class/PEAR/Validate.php b/src/vitis/vas/rest/class/PEAR/Validate.php similarity index 100% rename from vas/rest/class/PEAR/Validate.php rename to src/vitis/vas/rest/class/PEAR/Validate.php diff --git a/vas/rest/class/PEAR/Validator/PECL.php b/src/vitis/vas/rest/class/PEAR/Validator/PECL.php similarity index 100% rename from vas/rest/class/PEAR/Validator/PECL.php rename to src/vitis/vas/rest/class/PEAR/Validator/PECL.php diff --git a/vas/rest/class/PEAR/XMLParser.php b/src/vitis/vas/rest/class/PEAR/XMLParser.php similarity index 100% rename from vas/rest/class/PEAR/XMLParser.php rename to src/vitis/vas/rest/class/PEAR/XMLParser.php diff --git a/vas/rest/class/PHPMailer/extras/EasyPeasyICS.php b/src/vitis/vas/rest/class/PHPMailer/extras/EasyPeasyICS.php similarity index 100% rename from vas/rest/class/PHPMailer/extras/EasyPeasyICS.php rename to src/vitis/vas/rest/class/PHPMailer/extras/EasyPeasyICS.php diff --git a/vas/rest/class/PHPMailer/extras/README.md b/src/vitis/vas/rest/class/PHPMailer/extras/README.md similarity index 100% rename from vas/rest/class/PHPMailer/extras/README.md rename to src/vitis/vas/rest/class/PHPMailer/extras/README.md diff --git a/vas/rest/class/PHPMailer/extras/htmlfilter.php b/src/vitis/vas/rest/class/PHPMailer/extras/htmlfilter.php similarity index 100% rename from vas/rest/class/PHPMailer/extras/htmlfilter.php rename to src/vitis/vas/rest/class/PHPMailer/extras/htmlfilter.php diff --git a/vas/rest/class/PHPMailer/extras/ntlm_sasl_client.php b/src/vitis/vas/rest/class/PHPMailer/extras/ntlm_sasl_client.php similarity index 100% rename from vas/rest/class/PHPMailer/extras/ntlm_sasl_client.php rename to src/vitis/vas/rest/class/PHPMailer/extras/ntlm_sasl_client.php diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-am.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-am.php similarity index 100% rename from vas/rest/class/PHPMailer/language/phpmailer.lang-am.php rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-am.php diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-ar.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ar.php similarity index 100% rename from vas/rest/class/PHPMailer/language/phpmailer.lang-ar.php rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ar.php diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-az.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-az.php similarity index 100% rename from vas/rest/class/PHPMailer/language/phpmailer.lang-az.php rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-az.php diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-ba.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ba.php similarity index 100% rename from vas/rest/class/PHPMailer/language/phpmailer.lang-ba.php rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ba.php diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-be.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-be.php similarity index 100% rename from vas/rest/class/PHPMailer/language/phpmailer.lang-be.php rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-be.php diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-bg.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-bg.php similarity index 100% rename from vas/rest/class/PHPMailer/language/phpmailer.lang-bg.php rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-bg.php diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-ca.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ca.php similarity index 100% rename from vas/rest/class/PHPMailer/language/phpmailer.lang-ca.php rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ca.php diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-ch.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ch.php similarity index 100% rename from vas/rest/class/PHPMailer/language/phpmailer.lang-ch.php rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ch.php diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-cs.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-cs.php similarity index 100% rename from vas/rest/class/PHPMailer/language/phpmailer.lang-cs.php rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-cs.php diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-da.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-da.php similarity index 100% rename from vas/rest/class/PHPMailer/language/phpmailer.lang-da.php rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-da.php diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-de.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-de.php similarity index 100% rename from vas/rest/class/PHPMailer/language/phpmailer.lang-de.php rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-de.php diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-el.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-el.php similarity index 100% rename from vas/rest/class/PHPMailer/language/phpmailer.lang-el.php rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-el.php diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-eo.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-eo.php similarity index 100% rename from vas/rest/class/PHPMailer/language/phpmailer.lang-eo.php rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-eo.php diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-es.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-es.php similarity index 100% rename from vas/rest/class/PHPMailer/language/phpmailer.lang-es.php rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-es.php diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-et.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-et.php similarity index 100% rename from vas/rest/class/PHPMailer/language/phpmailer.lang-et.php rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-et.php diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-fa.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-fa.php similarity index 100% rename from vas/rest/class/PHPMailer/language/phpmailer.lang-fa.php rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-fa.php diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-fi.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-fi.php similarity index 100% rename from vas/rest/class/PHPMailer/language/phpmailer.lang-fi.php rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-fi.php diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-fo.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-fo.php similarity index 100% rename from vas/rest/class/PHPMailer/language/phpmailer.lang-fo.php rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-fo.php diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-fr.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-fr.php similarity index 100% rename from vas/rest/class/PHPMailer/language/phpmailer.lang-fr.php rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-fr.php diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-gl.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-gl.php similarity index 100% rename from vas/rest/class/PHPMailer/language/phpmailer.lang-gl.php rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-gl.php diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-he.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-he.php similarity index 100% rename from vas/rest/class/PHPMailer/language/phpmailer.lang-he.php rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-he.php diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-hi.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-hi.php similarity index 100% rename from vas/rest/class/PHPMailer/language/phpmailer.lang-hi.php rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-hi.php diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-hr.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-hr.php similarity index 100% rename from vas/rest/class/PHPMailer/language/phpmailer.lang-hr.php rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-hr.php diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-hu.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-hu.php similarity index 100% rename from vas/rest/class/PHPMailer/language/phpmailer.lang-hu.php rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-hu.php diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-id.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-id.php similarity index 100% rename from vas/rest/class/PHPMailer/language/phpmailer.lang-id.php rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-id.php diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-it.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-it.php similarity index 100% rename from vas/rest/class/PHPMailer/language/phpmailer.lang-it.php rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-it.php diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-ja.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ja.php similarity index 100% rename from vas/rest/class/PHPMailer/language/phpmailer.lang-ja.php rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ja.php diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-ka.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ka.php similarity index 100% rename from vas/rest/class/PHPMailer/language/phpmailer.lang-ka.php rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ka.php diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-ko.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ko.php similarity index 100% rename from vas/rest/class/PHPMailer/language/phpmailer.lang-ko.php rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ko.php diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-lt.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-lt.php similarity index 100% rename from vas/rest/class/PHPMailer/language/phpmailer.lang-lt.php rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-lt.php diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-lv.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-lv.php similarity index 100% rename from vas/rest/class/PHPMailer/language/phpmailer.lang-lv.php rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-lv.php diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-ms.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ms.php similarity index 100% rename from vas/rest/class/PHPMailer/language/phpmailer.lang-ms.php rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ms.php diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-nb.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-nb.php similarity index 100% rename from vas/rest/class/PHPMailer/language/phpmailer.lang-nb.php rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-nb.php diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-nl.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-nl.php similarity index 100% rename from vas/rest/class/PHPMailer/language/phpmailer.lang-nl.php rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-nl.php diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-pl.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-pl.php similarity index 100% rename from vas/rest/class/PHPMailer/language/phpmailer.lang-pl.php rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-pl.php diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-pt.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-pt.php similarity index 100% rename from vas/rest/class/PHPMailer/language/phpmailer.lang-pt.php rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-pt.php diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-pt_br.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-pt_br.php similarity index 100% rename from vas/rest/class/PHPMailer/language/phpmailer.lang-pt_br.php rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-pt_br.php diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-ro.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ro.php similarity index 100% rename from vas/rest/class/PHPMailer/language/phpmailer.lang-ro.php rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ro.php diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-rs.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-rs.php similarity index 100% rename from vas/rest/class/PHPMailer/language/phpmailer.lang-rs.php rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-rs.php diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-ru.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ru.php similarity index 100% rename from vas/rest/class/PHPMailer/language/phpmailer.lang-ru.php rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ru.php diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-sk.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-sk.php similarity index 100% rename from vas/rest/class/PHPMailer/language/phpmailer.lang-sk.php rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-sk.php diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-sl.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-sl.php similarity index 100% rename from vas/rest/class/PHPMailer/language/phpmailer.lang-sl.php rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-sl.php diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-sr.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-sr.php similarity index 100% rename from vas/rest/class/PHPMailer/language/phpmailer.lang-sr.php rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-sr.php diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-sv.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-sv.php similarity index 100% rename from vas/rest/class/PHPMailer/language/phpmailer.lang-sv.php rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-sv.php diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-tr.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-tr.php similarity index 100% rename from vas/rest/class/PHPMailer/language/phpmailer.lang-tr.php rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-tr.php diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-uk.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-uk.php similarity index 100% rename from vas/rest/class/PHPMailer/language/phpmailer.lang-uk.php rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-uk.php diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-vi.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-vi.php similarity index 100% rename from vas/rest/class/PHPMailer/language/phpmailer.lang-vi.php rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-vi.php diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-zh.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-zh.php similarity index 100% rename from vas/rest/class/PHPMailer/language/phpmailer.lang-zh.php rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-zh.php diff --git a/vas/rest/class/PHPMailer/language/phpmailer.lang-zh_cn.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-zh_cn.php similarity index 100% rename from vas/rest/class/PHPMailer/language/phpmailer.lang-zh_cn.php rename to src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-zh_cn.php diff --git a/vas/rest/class/PHPMailer/src/Exception.php b/src/vitis/vas/rest/class/PHPMailer/src/Exception.php similarity index 100% rename from vas/rest/class/PHPMailer/src/Exception.php rename to src/vitis/vas/rest/class/PHPMailer/src/Exception.php diff --git a/vas/rest/class/PHPMailer/src/OAuth.php b/src/vitis/vas/rest/class/PHPMailer/src/OAuth.php similarity index 100% rename from vas/rest/class/PHPMailer/src/OAuth.php rename to src/vitis/vas/rest/class/PHPMailer/src/OAuth.php diff --git a/vas/rest/class/PHPMailer/src/PHPMailer.php b/src/vitis/vas/rest/class/PHPMailer/src/PHPMailer.php similarity index 100% rename from vas/rest/class/PHPMailer/src/PHPMailer.php rename to src/vitis/vas/rest/class/PHPMailer/src/PHPMailer.php diff --git a/vas/rest/class/PHPMailer/src/POP3.php b/src/vitis/vas/rest/class/PHPMailer/src/POP3.php similarity index 100% rename from vas/rest/class/PHPMailer/src/POP3.php rename to src/vitis/vas/rest/class/PHPMailer/src/POP3.php diff --git a/vas/rest/class/PHPMailer/src/SMTP.php b/src/vitis/vas/rest/class/PHPMailer/src/SMTP.php similarity index 100% rename from vas/rest/class/PHPMailer/src/SMTP.php rename to src/vitis/vas/rest/class/PHPMailer/src/SMTP.php diff --git a/vas/rest/class/aws_lib/AWS_Notification/AWS_SMS.class.inc b/src/vitis/vas/rest/class/aws_lib/AWS_Notification/AWS_SMS.class.inc similarity index 100% rename from vas/rest/class/aws_lib/AWS_Notification/AWS_SMS.class.inc rename to src/vitis/vas/rest/class/aws_lib/AWS_Notification/AWS_SMS.class.inc diff --git a/vas/rest/class/aws_lib/AWS_Notification/AWS_notification.class.inc b/src/vitis/vas/rest/class/aws_lib/AWS_Notification/AWS_notification.class.inc similarity index 100% rename from vas/rest/class/aws_lib/AWS_Notification/AWS_notification.class.inc rename to src/vitis/vas/rest/class/aws_lib/AWS_Notification/AWS_notification.class.inc diff --git a/vas/rest/class/aws_lib/AmazonAWS.class.inc b/src/vitis/vas/rest/class/aws_lib/AmazonAWS.class.inc old mode 100755 new mode 100644 similarity index 94% rename from vas/rest/class/aws_lib/AmazonAWS.class.inc rename to src/vitis/vas/rest/class/aws_lib/AmazonAWS.class.inc index 67f30140..223a0534 --- a/vas/rest/class/aws_lib/AmazonAWS.class.inc +++ b/src/vitis/vas/rest/class/aws_lib/AmazonAWS.class.inc @@ -13,6 +13,7 @@ Class AmazonAWS { public $sAwsRegion; public $aLastCurlRequestInfo; public $sHost; + public $sLogFilePath; // Chemin optionnel vers le fichier de log pour Amazon S3. private $sAwsAccessKeyId; private $sAwsSecretAccessKey; private $sHashingAlgorithmString; @@ -467,5 +468,18 @@ Class AmazonAWS { function generateAuthorizationHeader($sAlgorithm, $sCredentialScope, $sSignedHeaders, $sSignature) { return $sAlgorithm . ' Credential=' . $this->sAwsAccessKeyId . '/' . $sCredentialScope . ', SignedHeaders=' . $sSignedHeaders . ', Signature=' . $sSignature; } + + /** + * Write a message to the error log file. + * @param {string} $sMessage Message to write to the log file. + */ + function writeToErrorLog($sMessage) { + $aDebugBacktrace = debug_backtrace(); + $sLogMessage = '|ERROR|' . $aDebugBacktrace[1]['class'] . '::' . $aDebugBacktrace[1]['function'] . '| ' . $sMessage; + if (empty($this->sLogFilePath)) + writeToErrorLog($sLogMessage); + else + writeToLog($sLogMessage, $this->sLogFilePath); + } } ?> \ No newline at end of file diff --git a/vas/rest/class/aws_lib/AmazonApiGateway.class.inc b/src/vitis/vas/rest/class/aws_lib/AmazonApiGateway.class.inc similarity index 100% rename from vas/rest/class/aws_lib/AmazonApiGateway.class.inc rename to src/vitis/vas/rest/class/aws_lib/AmazonApiGateway.class.inc diff --git a/vas/rest/class/aws_lib/AmazonS3.class.inc b/src/vitis/vas/rest/class/aws_lib/AmazonS3.class.inc old mode 100755 new mode 100644 similarity index 85% rename from vas/rest/class/aws_lib/AmazonS3.class.inc rename to src/vitis/vas/rest/class/aws_lib/AmazonS3.class.inc index f9bfdb4d..32c7ed76 --- a/vas/rest/class/aws_lib/AmazonS3.class.inc +++ b/src/vitis/vas/rest/class/aws_lib/AmazonS3.class.inc @@ -102,9 +102,6 @@ Class AmazonS3 extends AmazonAWS { } $sFullUrl = $sMethod . ' ' . $sUrl . ' HTTP/1.1'; - - error_log($sFullUrl); - return $this->generateAwsSignedHeaders($sFullUrl, $sBucketHost, self::API_COMPONENT_SERVICE, $aHeaders, $sRequestPayload, true, 'Now', true); } @@ -171,8 +168,10 @@ Class AmazonS3 extends AmazonAWS { // Transfert cURL. $sRequestResult = $this->curlRequest($sUrl, $sMethod, null, $aHeaders); // - if ($this->aLastCurlRequestInfo['http_code'] != 200) - writeToErrorLog($sRequestResult); + if ($this->aLastCurlRequestInfo['http_code'] != 200) { + $this->writeToErrorLog($this->formatS3ErrorMessage($sRequestResult)); + return false; + } else { if (!empty($sFilePath)) file_put_contents($sFilePath, $sRequestResult); @@ -191,24 +190,23 @@ Class AmazonS3 extends AmazonAWS { function uploadFile($sBucket, $sKey, $sFilePath) { if (file_exists($sFilePath)) { $sFileName = pathinfo($sFilePath, PATHINFO_BASENAME); - // Url vers le fichier. $sUrl = 'https://' . $sBucket . '.' . $this->sHost; - // Génération des entêtes pour la requete. $aPostData = $this->generatePostData($sBucket, $sKey); $aPostData['Content-Type'] = mime_content_type($sFilePath); $aPostData['file'] = new CurlFile(realpath($sFilePath), $aPostData['Content-Type'], $sFileName); - $aHeaders = array( 'Content-Type: multipart/form-data', ); - $sRequestResult = $this->curlRequest($sUrl, 'post', $aPostData, $aHeaders, true); - - if ($this->aLastCurlRequestInfo['http_code'] != 204) - writeToErrorLog($sRequestResult); + if ($this->aLastCurlRequestInfo['http_code'] != 204) { + $this->writeToErrorLog($this->formatS3ErrorMessage($sRequestResult)); + return false; + } } + else + return false; } /** @@ -229,10 +227,12 @@ Class AmazonS3 extends AmazonAWS { $aHeaders = $this->generateS3requestHeaders($sMethod, $sUrl, $sBucket, array('Content-Type: application/x-www-form-urlencoded'), ''); // Transfert cURL. $sRequestResult = $this->curlRequest($sUrl, $sMethod, null, $aHeaders); - //error_log($sRequestResult); - if ($this->aLastCurlRequestInfo['http_code'] != 200){ - writeToErrorLog("ERROR: ScanDir can't scan this prefix or this bucket"); - } else { + if ($this->aLastCurlRequestInfo['http_code'] != 200) { + $this->writeToErrorLog("ERROR: ScanDir can't scan this prefix or this bucket"); + $this->writeToErrorLog($this->formatS3ErrorMessage($sRequestResult)); + return false; + } + else { $oXMLContent= json_decode(json_encode(simplexml_load_string($sRequestResult)), true); $oFiles = $this->awsObjectListXmlToTree($oXMLContent, $bWithFileInfos); } @@ -332,14 +332,44 @@ Class AmazonS3 extends AmazonAWS { // Transfert cURL. $sRequestResult = $this->curlRequest($sUrl, $sMethod, null, $aHeaders); - if ($this->aLastCurlRequestInfo['http_code'] != 200){ - writeToErrorLog("ERROR: it's impossible to delete this key in this bucket"); - } else { + if ($this->aLastCurlRequestInfo['http_code'] != 200) { + $this->writeToErrorLog("ERROR: it's impossible to delete this key in this bucket"); + $this->writeToErrorLog($this->formatS3ErrorMessage($sRequestResult)); + } else $bReturn = true; - error_log($sRequestResult); - } return $bReturn; } + + /** + * Convert an error message returned by s3 (xml to object). + * @param {string} $sXmlErrorMessage Error message returned by s3 (xml format). + * @return object S3 Error + */ + function getS3ErrorObject($sXmlErrorMessage) { + $oSimpleXmlElement = simplexml_load_string($sXmlErrorMessage); + if (is_object($oSimpleXmlElement)) { + $oErrorMessage = new stdClass(); + foreach ($oSimpleXmlElement as $sProperty => $oValue) { + $oErrorMessage->$sProperty = $oValue->__toString(); + } + return $oErrorMessage; + } + else + return false; + } + + /** + * Format an error message returned by s3. + * @param {string} $sXmlErrorMessage Error message returned by s3 (xml format). + * @return string Error message + */ + function formatS3ErrorMessage($sXmlErrorMessage) { + $oErrorMessage = $this->getS3ErrorObject($sXmlErrorMessage); + if ($oErrorMessage !== false) + return ($oErrorMessage->Code . ' : ' . $oErrorMessage->Message); + else + return $sXmlErrorMessage; + } } ?> \ No newline at end of file diff --git a/vas/rest/class/treeview/LdapTree.php b/src/vitis/vas/rest/class/treeview/LdapTree.php similarity index 100% rename from vas/rest/class/treeview/LdapTree.php rename to src/vitis/vas/rest/class/treeview/LdapTree.php diff --git a/vas/rest/class/treeview/Tree.php b/src/vitis/vas/rest/class/treeview/Tree.php similarity index 100% rename from vas/rest/class/treeview/Tree.php rename to src/vitis/vas/rest/class/treeview/Tree.php diff --git a/vas/rest/class/treeview/aciTree.php b/src/vitis/vas/rest/class/treeview/aciTree.php similarity index 100% rename from vas/rest/class/treeview/aciTree.php rename to src/vitis/vas/rest/class/treeview/aciTree.php diff --git a/vas/rest/class/vitis_lib/Connection.class.inc b/src/vitis/vas/rest/class/vitis_lib/Connection.class.inc similarity index 100% rename from vas/rest/class/vitis_lib/Connection.class.inc rename to src/vitis/vas/rest/class/vitis_lib/Connection.class.inc diff --git a/vas/rest/class/vitis_lib/DbClass.class.inc b/src/vitis/vas/rest/class/vitis_lib/DbClass.class.inc similarity index 100% rename from vas/rest/class/vitis_lib/DbClass.class.inc rename to src/vitis/vas/rest/class/vitis_lib/DbClass.class.inc diff --git a/vas/rest/class/vitis_lib/Form.class.inc b/src/vitis/vas/rest/class/vitis_lib/Form.class.inc similarity index 100% rename from vas/rest/class/vitis_lib/Form.class.inc rename to src/vitis/vas/rest/class/vitis_lib/Form.class.inc diff --git a/vas/rest/class/vitis_lib/VitisError.class.inc b/src/vitis/vas/rest/class/vitis_lib/VitisError.class.inc similarity index 75% rename from vas/rest/class/vitis_lib/VitisError.class.inc rename to src/vitis/vas/rest/class/vitis_lib/VitisError.class.inc index 0d61f69f..1c52cfaa 100644 --- a/vas/rest/class/vitis_lib/VitisError.class.inc +++ b/src/vitis/vas/rest/class/vitis_lib/VitisError.class.inc @@ -4,7 +4,7 @@ require_once(__DIR__."/DbClass.class.inc"); class VitisError extends DbClass { - function __construct($iErrorId, $sMessage=""){ + function __construct($iErrorId, $sErrorMessage="", $sMessage = ''){ $this->aFields['errorCode']=$iErrorId; switch ($iErrorId){ case 1 : @@ -57,9 +57,17 @@ class VitisError extends DbClass { break; case 18 : $this->aFields['errorType']="Missing privileges"; + case 17 : + $this->aFields['errorType']="The request returned an error"; + break; + case 19 : + $this->aFields['errorType']="The database is unreachable"; break; } - $this->aFields['errorMessage']=$sMessage; //Message renvoyé par la base de donnée + $this->aFields['errorMessage']=$sErrorMessage; //Message renvoyé par la base de donnée + // Message d'erreur additionnel. + if (!empty($sMessage)) + $this->aFields['message'] = $sMessage; } } ?> \ No newline at end of file diff --git a/vas/rest/class/vitis_lib/XmlAbstract.class.inc b/src/vitis/vas/rest/class/vitis_lib/XmlAbstract.class.inc similarity index 100% rename from vas/rest/class/vitis_lib/XmlAbstract.class.inc rename to src/vitis/vas/rest/class/vitis_lib/XmlAbstract.class.inc diff --git a/vas/rest/class/vmlib/BD.class.inc b/src/vitis/vas/rest/class/vmlib/BD.class.inc old mode 100755 new mode 100644 similarity index 100% rename from vas/rest/class/vmlib/BD.class.inc rename to src/vitis/vas/rest/class/vmlib/BD.class.inc diff --git a/vas/rest/class/vmlib/BdDataAccess.inc b/src/vitis/vas/rest/class/vmlib/BdDataAccess.inc similarity index 100% rename from vas/rest/class/vmlib/BdDataAccess.inc rename to src/vitis/vas/rest/class/vmlib/BdDataAccess.inc diff --git a/vas/rest/class/vmlib/Email.class.inc b/src/vitis/vas/rest/class/vmlib/Email.class.inc similarity index 100% rename from vas/rest/class/vmlib/Email.class.inc rename to src/vitis/vas/rest/class/vmlib/Email.class.inc diff --git a/vas/rest/class/vmlib/EmailTemplate.class.inc b/src/vitis/vas/rest/class/vmlib/EmailTemplate.class.inc similarity index 100% rename from vas/rest/class/vmlib/EmailTemplate.class.inc rename to src/vitis/vas/rest/class/vmlib/EmailTemplate.class.inc diff --git a/vas/rest/class/vmlib/EmailTemplate.class.sql.inc b/src/vitis/vas/rest/class/vmlib/EmailTemplate.class.sql.inc similarity index 100% rename from vas/rest/class/vmlib/EmailTemplate.class.sql.inc rename to src/vitis/vas/rest/class/vmlib/EmailTemplate.class.sql.inc diff --git a/vas/rest/class/vmlib/Ldap.class.inc b/src/vitis/vas/rest/class/vmlib/Ldap.class.inc similarity index 100% rename from vas/rest/class/vmlib/Ldap.class.inc rename to src/vitis/vas/rest/class/vmlib/Ldap.class.inc diff --git a/vas/rest/class/vmlib/PgsqlDataAccess.class.inc b/src/vitis/vas/rest/class/vmlib/PgsqlDataAccess.class.inc similarity index 100% rename from vas/rest/class/vmlib/PgsqlDataAccess.class.inc rename to src/vitis/vas/rest/class/vmlib/PgsqlDataAccess.class.inc diff --git a/vas/rest/class/vmlib/PostgisUtil.class.inc b/src/vitis/vas/rest/class/vmlib/PostgisUtil.class.inc similarity index 100% rename from vas/rest/class/vmlib/PostgisUtil.class.inc rename to src/vitis/vas/rest/class/vmlib/PostgisUtil.class.inc diff --git a/vas/rest/class/vmlib/Vm.class.inc b/src/vitis/vas/rest/class/vmlib/Vm.class.inc similarity index 100% rename from vas/rest/class/vmlib/Vm.class.inc rename to src/vitis/vas/rest/class/vmlib/Vm.class.inc diff --git a/vas/rest/class/vmlib/Vm.class.sql.inc b/src/vitis/vas/rest/class/vmlib/Vm.class.sql.inc similarity index 100% rename from vas/rest/class/vmlib/Vm.class.sql.inc rename to src/vitis/vas/rest/class/vmlib/Vm.class.sql.inc diff --git a/vas/rest/class/vmlib/class.websocket_client.php b/src/vitis/vas/rest/class/vmlib/class.websocket_client.php similarity index 100% rename from vas/rest/class/vmlib/class.websocket_client.php rename to src/vitis/vas/rest/class/vmlib/class.websocket_client.php diff --git a/vas/rest/class/vmlib/coffeescript/class.jstocoffee.php b/src/vitis/vas/rest/class/vmlib/coffeescript/class.jstocoffee.php similarity index 100% rename from vas/rest/class/vmlib/coffeescript/class.jstocoffee.php rename to src/vitis/vas/rest/class/vmlib/coffeescript/class.jstocoffee.php diff --git a/vas/rest/class/vmlib/coffeescript/classes/errors.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/errors.php similarity index 100% rename from vas/rest/class/vmlib/coffeescript/classes/errors.php rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/errors.php diff --git a/vas/rest/class/vmlib/coffeescript/classes/helpers.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/helpers.php similarity index 100% rename from vas/rest/class/vmlib/coffeescript/classes/helpers.php rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/helpers.php diff --git a/vas/rest/class/vmlib/coffeescript/classes/lexer.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/lexer.php similarity index 100% rename from vas/rest/class/vmlib/coffeescript/classes/lexer.php rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/lexer.php diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes.php similarity index 100% rename from vas/rest/class/vmlib/coffeescript/classes/nodes.php rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes.php diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/access.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/access.php similarity index 100% rename from vas/rest/class/vmlib/coffeescript/classes/nodes/access.php rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/access.php diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/arr.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/arr.php similarity index 100% rename from vas/rest/class/vmlib/coffeescript/classes/nodes/arr.php rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/arr.php diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/assign.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/assign.php similarity index 100% rename from vas/rest/class/vmlib/coffeescript/classes/nodes/assign.php rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/assign.php diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/base.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/base.php similarity index 100% rename from vas/rest/class/vmlib/coffeescript/classes/nodes/base.php rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/base.php diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/block.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/block.php similarity index 100% rename from vas/rest/class/vmlib/coffeescript/classes/nodes/block.php rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/block.php diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/call.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/call.php similarity index 100% rename from vas/rest/class/vmlib/coffeescript/classes/nodes/call.php rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/call.php diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/class.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/class.php similarity index 100% rename from vas/rest/class/vmlib/coffeescript/classes/nodes/class.php rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/class.php diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/closure.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/closure.php similarity index 100% rename from vas/rest/class/vmlib/coffeescript/classes/nodes/closure.php rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/closure.php diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/code.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/code.php similarity index 100% rename from vas/rest/class/vmlib/coffeescript/classes/nodes/code.php rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/code.php diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/comment.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/comment.php similarity index 100% rename from vas/rest/class/vmlib/coffeescript/classes/nodes/comment.php rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/comment.php diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/existence.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/existence.php similarity index 100% rename from vas/rest/class/vmlib/coffeescript/classes/nodes/existence.php rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/existence.php diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/extends.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/extends.php similarity index 100% rename from vas/rest/class/vmlib/coffeescript/classes/nodes/extends.php rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/extends.php diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/for.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/for.php similarity index 100% rename from vas/rest/class/vmlib/coffeescript/classes/nodes/for.php rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/for.php diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/if.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/if.php similarity index 100% rename from vas/rest/class/vmlib/coffeescript/classes/nodes/if.php rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/if.php diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/in.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/in.php similarity index 100% rename from vas/rest/class/vmlib/coffeescript/classes/nodes/in.php rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/in.php diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/index.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/index.php similarity index 100% rename from vas/rest/class/vmlib/coffeescript/classes/nodes/index.php rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/index.php diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/literal.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/literal.php similarity index 100% rename from vas/rest/class/vmlib/coffeescript/classes/nodes/literal.php rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/literal.php diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/obj.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/obj.php similarity index 100% rename from vas/rest/class/vmlib/coffeescript/classes/nodes/obj.php rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/obj.php diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/op.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/op.php similarity index 100% rename from vas/rest/class/vmlib/coffeescript/classes/nodes/op.php rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/op.php diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/param.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/param.php similarity index 100% rename from vas/rest/class/vmlib/coffeescript/classes/nodes/param.php rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/param.php diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/parens.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/parens.php similarity index 100% rename from vas/rest/class/vmlib/coffeescript/classes/nodes/parens.php rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/parens.php diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/push.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/push.php similarity index 100% rename from vas/rest/class/vmlib/coffeescript/classes/nodes/push.php rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/push.php diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/range.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/range.php similarity index 100% rename from vas/rest/class/vmlib/coffeescript/classes/nodes/range.php rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/range.php diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/return.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/return.php similarity index 100% rename from vas/rest/class/vmlib/coffeescript/classes/nodes/return.php rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/return.php diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/slice.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/slice.php similarity index 100% rename from vas/rest/class/vmlib/coffeescript/classes/nodes/slice.php rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/slice.php diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/splat.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/splat.php similarity index 100% rename from vas/rest/class/vmlib/coffeescript/classes/nodes/splat.php rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/splat.php diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/switch.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/switch.php similarity index 100% rename from vas/rest/class/vmlib/coffeescript/classes/nodes/switch.php rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/switch.php diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/throw.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/throw.php similarity index 100% rename from vas/rest/class/vmlib/coffeescript/classes/nodes/throw.php rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/throw.php diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/try.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/try.php similarity index 100% rename from vas/rest/class/vmlib/coffeescript/classes/nodes/try.php rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/try.php diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/value.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/value.php similarity index 100% rename from vas/rest/class/vmlib/coffeescript/classes/nodes/value.php rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/value.php diff --git a/vas/rest/class/vmlib/coffeescript/classes/nodes/while.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/while.php similarity index 100% rename from vas/rest/class/vmlib/coffeescript/classes/nodes/while.php rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/while.php diff --git a/vas/rest/class/vmlib/coffeescript/classes/parser.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/parser.php similarity index 100% rename from vas/rest/class/vmlib/coffeescript/classes/parser.php rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/parser.php diff --git a/vas/rest/class/vmlib/coffeescript/classes/rewriter.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/rewriter.php similarity index 100% rename from vas/rest/class/vmlib/coffeescript/classes/rewriter.php rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/rewriter.php diff --git a/vas/rest/class/vmlib/coffeescript/classes/scope.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/scope.php similarity index 100% rename from vas/rest/class/vmlib/coffeescript/classes/scope.php rename to src/vitis/vas/rest/class/vmlib/coffeescript/classes/scope.php diff --git a/vas/rest/class/vmlib/coffeescript/coffeescript.php b/src/vitis/vas/rest/class/vmlib/coffeescript/coffeescript.php similarity index 100% rename from vas/rest/class/vmlib/coffeescript/coffeescript.php rename to src/vitis/vas/rest/class/vmlib/coffeescript/coffeescript.php diff --git a/vas/rest/class/vmlib/coffeescript/jsmaker.php b/src/vitis/vas/rest/class/vmlib/coffeescript/jsmaker.php similarity index 100% rename from vas/rest/class/vmlib/coffeescript/jsmaker.php rename to src/vitis/vas/rest/class/vmlib/coffeescript/jsmaker.php diff --git a/vas/rest/class/vmlib/context/covage.inc b/src/vitis/vas/rest/class/vmlib/context/covage.inc similarity index 100% rename from vas/rest/class/vmlib/context/covage.inc rename to src/vitis/vas/rest/class/vmlib/context/covage.inc diff --git a/vas/rest/class/vmlib/context/gtf.inc b/src/vitis/vas/rest/class/vmlib/context/gtf.inc similarity index 100% rename from vas/rest/class/vmlib/context/gtf.inc rename to src/vitis/vas/rest/class/vmlib/context/gtf.inc diff --git a/vas/rest/class/vmlib/context/message.inc b/src/vitis/vas/rest/class/vmlib/context/message.inc similarity index 100% rename from vas/rest/class/vmlib/context/message.inc rename to src/vitis/vas/rest/class/vmlib/context/message.inc diff --git a/vas/rest/class/vmlib/cryptUtil.inc b/src/vitis/vas/rest/class/vmlib/cryptUtil.inc similarity index 100% rename from vas/rest/class/vmlib/cryptUtil.inc rename to src/vitis/vas/rest/class/vmlib/cryptUtil.inc diff --git a/vas/rest/class/vmlib/dateUtil.class.inc b/src/vitis/vas/rest/class/vmlib/dateUtil.class.inc similarity index 100% rename from vas/rest/class/vmlib/dateUtil.class.inc rename to src/vitis/vas/rest/class/vmlib/dateUtil.class.inc diff --git a/vas/rest/class/vmlib/dbUtil.inc b/src/vitis/vas/rest/class/vmlib/dbUtil.inc similarity index 100% rename from vas/rest/class/vmlib/dbUtil.inc rename to src/vitis/vas/rest/class/vmlib/dbUtil.inc diff --git a/vas/rest/class/vmlib/error.inc b/src/vitis/vas/rest/class/vmlib/error.inc old mode 100755 new mode 100644 similarity index 89% rename from vas/rest/class/vmlib/error.inc rename to src/vitis/vas/rest/class/vmlib/error.inc index b36e043d..13db7b08 --- a/vas/rest/class/vmlib/error.inc +++ b/src/vitis/vas/rest/class/vmlib/error.inc @@ -19,6 +19,10 @@ define('ERROR_0008', "ERROR - Aucune méthode n'a permis d'affecté un moteur au // define('ERROR_0009', "ERROR - L'algorithme ne permet pas de retourner un numéro de moteur exploitable. Le numéro de moteur retourné n'est pas de type entier. Type de la valeur retournée par la méthode : "); // define('ERROR_0010', "ERROR - Le numéro du moteur retourné par l'algorithme n'existe pas dans la liste des moteurs disponible dans GTF."); define('ERROR_0011', "Erreur Le fichier [_FILES[sNomObjet][name]] n'est pas téléchargé sur le serveur"); +define('ERROR_0035', "Erreur de la suppression d'un processus d'une demande stoppée"); +define('ERROR_0036', "Erreur de la commande d'information d'un processus d'une demande stoppée"); +define('ERROR_0037', "Erreur pendant l'arrêt de la demande sur Fme Desktop."); +define('ERROR_0038', "Erreur pendant l'arrêt de la demande sur Fme Server."); // veremap/DownloadMaj.class.inc define('ERROR_0012', "Unable to write file"); diff --git a/vas/rest/class/vmlib/lang_vmlib/en-lang.inc b/src/vitis/vas/rest/class/vmlib/lang_vmlib/en-lang.inc similarity index 100% rename from vas/rest/class/vmlib/lang_vmlib/en-lang.inc rename to src/vitis/vas/rest/class/vmlib/lang_vmlib/en-lang.inc diff --git a/vas/rest/class/vmlib/lang_vmlib/fr-lang.inc b/src/vitis/vas/rest/class/vmlib/lang_vmlib/fr-lang.inc similarity index 100% rename from vas/rest/class/vmlib/lang_vmlib/fr-lang.inc rename to src/vitis/vas/rest/class/vmlib/lang_vmlib/fr-lang.inc diff --git a/vas/rest/class/vmlib/logUtil.inc b/src/vitis/vas/rest/class/vmlib/logUtil.inc old mode 100755 new mode 100644 similarity index 75% rename from vas/rest/class/vmlib/logUtil.inc rename to src/vitis/vas/rest/class/vmlib/logUtil.inc index f1334250..d7474ff3 --- a/vas/rest/class/vmlib/logUtil.inc +++ b/src/vitis/vas/rest/class/vmlib/logUtil.inc @@ -7,7 +7,7 @@ * Fonctions de mise en place de logs * * \author Olivier Gayte <olivier.gayte@veremes.com> - * \author Fr�d�ric Mauro + * \author Frédéric Mauro */ /* * Variable globale stockant une erreur. @@ -20,8 +20,8 @@ $sMessageLogError = ""; $sFolderLib = "vmlib"; /** * Converti une chaine ISO-8859-1 en UTF-8 - * \param $sString Cha�ne de caract�res � convertir. - * \return une chaine encod�e en UTF-8 + * \param $sString Chaîne de caractères à convertir. + * \return une chaine encodée en UTF-8 */ /* function Latin1ToUtf8($sString){ if( mb_detect_encoding($sString,"UTF-8, ISO-8859-1")!="UTF-8" ){ @@ -52,22 +52,45 @@ function writeToLog($sString, $sFileName) { return false; global $properties, $sMessageLogError, $sFolderLib; - // Fred 05/06/2013 : Si le r�pertoire de log n'existe pas : cr�ation + // Si le répertoire de log n'existe pas : création if (!is_dir(dirname($sFileName))) mkdir(dirname($sFileName), 0777, true); if (empty(pathinfo($sFileName, PATHINFO_EXTENSION))) return false; - + + // Add Date and User informations before writing message in log file loadLang($sFolderLib, $properties["language"], $sFolderLib . "/"); $sString = str_replace(chr(13), '[\n]', $sString); $sString = str_replace(chr(10), '[\n]', $sString); - $handle = fopen($sFileName, 'a'); if(isset($_SESSION['ses_Login']) && isset($_SERVER['REMOTE_ADDR']) && isset($_SERVER['REMOTE_PORT'])){ $sPrelog = date("d/n/Y H:i:s").' '.$_SESSION['ses_Login'].' '.$_SERVER['REMOTE_ADDR'] . ':' . $_SERVER['REMOTE_PORT']; } else { $sPrelog = date("d/n/Y H:i:s"); } - if (fwrite($handle, $sPrelog . $properties["log_delim"] . $sString . CR . LF) === false) { + + $sMessageLogtoWrite = $sPrelog . $properties["log_delim"] . $sString . CR . LF; + + // Rename old file if greater than porperties log_size (maximum log size to open it through app in Kb) + // Get size of Log file in bytes + $iLogFileSize = filesize($sFileName); + + if($iLogFileSize !== false){ + // get size of log message + $iMessageLength = strlen($sMessageLogtoWrite); + $iTotalSizeKb = ($iLogFileSize + $iMessageLength) / 1024; + // compare with porperties log_size (maximum log size to open it through app in Kb) + if($iTotalSizeKb >= $properties['log_size'] - 1){ + // Rename of the original file to split log and keep the possibility to read it through application + $sFileSplitName = str_replace(".log", "." . date("Y_m_d_U") . ".log", $sFileName); + if(!rename($sFileName, $sFileSplitName)){ + $sMessageLogError = ERROR_IMPOSSIBLE_WRITE . $sFileName . ERROR_RIGHTS_ON_FILE . " (" . $sString . ")."; + } + } + } + + // create if needed and open log file to write log message inside. + $handle = fopen($sFileName, 'a'); + if (fwrite($handle, $sMessageLogtoWrite) === false) { fclose($handle); if (is_writable($sFileName)) { $sMessageLogError = ERROR_IMPOSSIBLE_WRITE . $sFileName . ERROR_RIGHTS_ON_FILE . " (" . $sString . ")."; diff --git a/vas/rest/class/vmlib/phpUtil.inc b/src/vitis/vas/rest/class/vmlib/phpUtil.inc similarity index 94% rename from vas/rest/class/vmlib/phpUtil.inc rename to src/vitis/vas/rest/class/vmlib/phpUtil.inc index 08c287ba..dee4b832 100755 --- a/vas/rest/class/vmlib/phpUtil.inc +++ b/src/vitis/vas/rest/class/vmlib/phpUtil.inc @@ -203,9 +203,10 @@ function getFileName($sFullFileName) { *@file vmlib/phpUtil.inc *@param string $sFolder *@param string $sDestination + *@param string $sPassword *@return boolean */ -function createZip($sFolder, $sDestination, $sExtensionToExclude = '') { +function createZip($sFolder, $sDestination, $sExtensionToExclude = '', $sPassword = '', $bDeleteFiles = false) { if (!empty($sExtensionToExclude)) { $aExtensionToExclude = explode('|', $sExtensionToExclude); } else { @@ -222,6 +223,7 @@ function createZip($sFolder, $sDestination, $sExtensionToExclude = '') { $files = new RecursiveIteratorIterator( new RecursiveDirectoryIterator($sFolder), RecursiveIteratorIterator::LEAVES_ONLY ); + $aCompressedFiles = array(); foreach ($files as $name => $file) { if (!$file->isDir()) { $filePath = $file->getRealPath(); @@ -234,12 +236,23 @@ function createZip($sFolder, $sDestination, $sExtensionToExclude = '') { if (in_array($sExtension, $aExtensionToExclude)) { continue; } - $zip->addFile($filePath, $relativePath); + if ($zip->addFile($filePath, $relativePath)) + $aCompressedFiles[] = $filePath; + // Mot de passe. + if (!empty($sPassword)) + $zip->setEncryptionName($oFileInfo->getFilename(), ZipArchive::EM_AES_256, $sPassword); } } - $zip->close(); - + if ($zip->close()) { + // Suppression des fichiers compressés. + if ($bDeleteFiles) { + foreach ($aCompressedFiles as $sFilePath) { + if (file_exists($sFilePath)) + unlink($sFilePath); + } + } + } return file_exists($sDestination); } diff --git a/vas/rest/class/vmlib/stringUtil.inc b/src/vitis/vas/rest/class/vmlib/stringUtil.inc similarity index 100% rename from vas/rest/class/vmlib/stringUtil.inc rename to src/vitis/vas/rest/class/vmlib/stringUtil.inc diff --git a/vas/rest/class/wab_lib/BusinessObject.class.inc b/src/vitis/vas/rest/class/wab_lib/BusinessObject.class.inc similarity index 54% rename from vas/rest/class/wab_lib/BusinessObject.class.inc rename to src/vitis/vas/rest/class/wab_lib/BusinessObject.class.inc index 34c24838..36ae854e 100755 --- a/vas/rest/class/wab_lib/BusinessObject.class.inc +++ b/src/vitis/vas/rest/class/wab_lib/BusinessObject.class.inc @@ -21,7 +21,6 @@ class WabBusinessObject { protected $aSql = array(); protected $bNoError = true; protected $sErrorMessage; - protected $aLastCurlRequestInfo = ""; /* * **************************************************** Class constructor @@ -32,7 +31,7 @@ class WabBusinessObject { public function __construct($oBd, $aTableInfo, $aValues, $aProperties, $className, $iId = null) { require 'BusinessObject.class.sql.inc'; - $this->aTableInfo = $aTableInfo; + //$this->aTableInfo = $aTableInfo; $this->oBd = $oBd; $this->aValues = $aValues; $this->aProperties = $aProperties; @@ -41,12 +40,30 @@ class WabBusinessObject { $this->history = ""; } + /* * **************************************************** + Sauve l'action réalisé par l'utilisateur + \sEvent : action réalisé (changement de statut...) + * **************************************************** */ + + private function addHistoryEvent($sEvent) { + $this->history .= date('d/m/Y H:i') . ' | ' . $_SESSION['ses_Login'] . ' | ' . $sEvent . PHP_EOL; + } - /* ***************************************************** + /* * **************************************************** Change le statut \sStatus : statut * **************************************************** */ - +/* + protected function setStatus($sStatus) { + // Mode insertion ? + if (!empty($this->iId)) + $this->bo_id = $this->iId; + // + $this->status = $sStatus; + $this->addHistoryEvent($this->status); + $this->save(); + } +*/ public function wabSetStatus($sSchema, $sTable, $sBoNameField, $mBoIdValue, $sStatusName, $sView = '') { require 'BusinessObject.class.sql.inc'; @@ -62,24 +79,20 @@ class WabBusinessObject { ); $oResultat = $this->oBd->executeWithParams($aSQL["getStatusId"], $aParams); - //$this->status = $this->oBd->objetSuivant($oResultat)->status_id; - $oStatus = $this->oBd->objetSuivant($oResultat); + $this->status = $this->oBd->objetSuivant($oResultat)->status_id; // ajout historique - //$this->addHistoryEvent($this->status); - //$this->addHistoryEvent($oStatus->name); - // UPDATE dans la table avec le boName + $this->addHistoryEvent($this->status); + // UPDATE dans la table avec le boName $sSql = $aSQL["updateStatus"]; $aParams = array( "SCHEMA" => array("value"=> $sSchema, "type"=> 'column_name'), "TABLE" => array("value"=> $sView, "type"=> 'column_name'), - "STATUS_ID" => array("value"=> $oStatus->status_id, "type"=> 'number'), + "STATUS_ID" => array("value"=> $this->status, "type"=> 'number'), "BOIDFIELD" => array("value"=> $sBoNameField, "type"=> 'column_name'), "BOID" => array("value"=> $mBoIdValue, "type"=> 'number') ); $this->oBd->executeWithParams($sSql, $aParams); - - $this->aValues["status_id"] = $oStatus->status_id; } public function wabGetStatus($sSchema, $sTable, $sBoNameField, $mBoIdValue) { @@ -96,28 +109,13 @@ class WabBusinessObject { $oResultat = $this->oBd->executeWithParams($sSql, $aParams); return $this->oBd->objetSuivant($oResultat)->name; } - - public function wabGetObject($sSchema, $sTable, $sBoNameField, $mBoIdValue){ - require 'BusinessObject.class.sql.inc'; - $aParams = array( - "SCHEMA" => array("value"=> $sSchema, "type"=> 'column_name'), - "TABLE" => array("value"=> $sTable, "type"=> 'column_name'), - "BOIDFIELD" => array("value"=> $sBoNameField, "type"=> 'column_name'), - "BOID" => array("value"=> $mBoIdValue, "type"=> 'number') - ); - - $oResultat = $this->oBd->executeWithParams($aSQL["getBoValues"], $aParams); - $oFields = (array) $this->oBd->objetSuivant($oResultat); - - return $oFields; - } /* * ******************************************************************** Ajoute une note \sLineAttribute : Champ de form. contenant la note à ajouter \sNoteAttribute : Champ de form. contenant l'historique des notes * ******************************************************************** */ - public function addNote($sLineAttribute, $sNoteAttribute) { + protected function addNote($sLineAttribute, $sNoteAttribute) { if (!empty($this->aValues[$sLineAttribute])) { // Mode insertion ? if (!empty($this->iId)) @@ -223,10 +221,8 @@ class WabBusinessObject { * ******************************************************************** */ function save() { - //$aValues = $this->getClassParameters(); - //$this->oBd->update($this->aTableInfo['schema_name'], str_replace($this->aTableInfo["module"] . "_", "", $this->aTableInfo['name']), $aValues, $this->aTableInfo['id_field'], $this->bo_id, $this->aTableInfo['id_field_type']); - $aValues = $this->getClassParameters(); - $this->oBd->update($this->aTableInfo['schema_name'], $this->aTableInfo['name'], $aValues, $this->aTableInfo['id_field'], $this->bo_id, $this->aTableInfo['id_field_type']); + $aValues = $this->getClassParameters(); + $this->oBd->update($this->aTableInfo['schema_name'], str_replace($this->aTableInfo["module"] . "_", "", $this->aTableInfo['name']), $aValues, $this->aTableInfo['id_field'], $this->bo_id, $this->aTableInfo['id_field_type']); } /* * ******************************************************************** @@ -257,38 +253,44 @@ class WabBusinessObject { $bNoError = true; - //get workspace id - $sSQL = "SELECT workspace_id FROM [SCHEMA_GTF].workspace WHERE key = [WK_KEY];"; - $aParams = array( - "SCHEMA_GTF" => array('value'=> $this->aProperties["schema_gtf"], 'type' => 'column_name'), - "WK_KEY" => array('value'=> $sWorkspaceKey, 'type' => 'string'), - ); - $oWK = $this->oBd->executeWithParams($sSQL, $aParams); - // oBd en erreur - $iWKid = $this->oBd->objetSuivant ($oWK)->workspace_id; - // Insertion de la demande - $sUrl = $this->aProperties['web_server_name'] . '/' . $this->aProperties['services_alias'] . '/gtf/userorders'; - $postfields = array( - //'token'=>$sToken, - 'order_date' => date('Y-m-d'), - 'workspace_id'=>$iWKid, - 'priority_id'=>$iPriorityId, - 'email_option_id'=>$iEmailOptionId, - 'wk_params'=>$sWkParams, - 'xslstylesheet'=>$sXslStyleSheet - ); - - if ( $sEmailNotifications != null){ - $postfields['email_notifications'] = $sEmailNotifications; + if($properties['web_server_name'] === "[HTTP_HOST]"){ + $properties['web_server_name'] = "https://localhost"; } - - $oReturn = $this->contactCurrentApi("POST", 'gtf/userorders', $postfields , $sMode="json"); - - error_log(print_r($oReturn, true)); - if($oReturn === false){ + // Get token + $sToken = $this->getToken(); + + if ($sToken !== false) { + + //get workspace id + $sSQL = "SELECT workspace_id FROM [SCHEMA_GTF].workspace WHERE key = [WK_KEY];"; + $aParams = array( + "SCHEMA_GTF" => array('value'=> $this->aProperties["schema_gtf"], 'type' => 'column_name'), + "WK_KEY" => array('value'=> $sWorkspaceKey, 'type' => 'string'), + ); + $oWK = $this->oBd->executeWithParams($sSQL, $aParams); + // oBd en erreur + $iWKid = $this->oBd->objetSuivant ($oWK)->workspace_id; + // Insertion de la demande + $sUrl = $this->aProperties['web_server_name'] . '/' . $this->aProperties['services_alias'] . '/gtf/userorders'; + $postfields = array( + 'token'=>$sToken, + 'order_date' => date('Y-m-d'), + 'workspace_id'=>$iWKid, + 'priority_id'=>$iPriorityId, + 'email_option_id'=>$iEmailOptionId, + 'wk_params'=>$sWkParams, + 'xslstylesheet'=>$sXslStyleSheet + ); + + if ( $sEmailNotifications != null){ + $postfields['email_notifications'] = $sEmailNotifications; + } + + $oReturn = $this->postCurlRequest ($sUrl, $postfields); + + } else $sErrorMsg = 'Error while performing a cURL session (' . __METHOD__ . ' (get token))'; - } if ($sErrorMsg != '') { writeToErrorLog($sErrorMsg); @@ -347,41 +349,32 @@ class WabBusinessObject { /Retour : string token * ******************************************************************** */ - function getToken ($sServerRestUrl = '', $aAuthParams = null) { - - if($this->aProperties['web_server_name'] === "[HTTP_HOST]"){ - $this->aProperties['web_server_name'] = "https://localhost"; - } + function getToken () { - if(empty($sServerRestUrl)){ - $sServerRestUrl = $this->aProperties['web_server_name'] . '/' . $this->aProperties['services_alias']; - } + if($this->aProperties['web_server_name'] === "[HTTP_HOST]"){ + $this->aProperties['web_server_name'] = "https://localhost"; + } + $sUrl = $this->aProperties['web_server_name'] . '/' . $this->aProperties['services_alias'] . '/vitis/privatetoken'; - $sUrl = $sServerRestUrl . '/vitis/privatetoken'; - - if(!empty($aAuthParams)){ - $postfields = $aAuthParams; - } else if(!empty($_SESSION["ses_Login"])){ + if(!empty($_SESSION["ses_Login"])){ $sUserPassword = trim(des(rtrim(utf8_decode($_SESSION['ses_Login'])), hexToString(rtrim($_SESSION['ses_Password'])), 0, 0, null)); $postfields = array('user'=>$_SESSION["ses_Login"], 'password'=>$sUserPassword); } else { $postfields = array('user'=>$this->aProperties["login_bot"], 'password'=>$this->aProperties["pass_bot"]); } - //$oToken = json_decode($this->postCurlRequest ($sUrl, $postfields)); - $oToken = json_decode($this->sendCurlRequest ("POST", $sUrl, json_encode($postfields), array("Accept: applicaton/json", "Content-Type: application/json"))); - + $oToken = json_decode($this->postCurlRequest ($sUrl, $postfields)); return $oToken->token; } /* * ******************************************************************** - envoi une requete curl en POST (DEPRECATED) + envoi une requete curl en POST \$sUrl : Url pour envoyer la requete \$postfields : array contenant les paramètres à envoyer /Retour : string token * ******************************************************************** */ function postCurlRequest ($sUrl, $postfields) { - /*$ch = curl_init($sUrl); + $ch = curl_init($sUrl); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt($ch, CURLOPT_HTTPHEADER, array("Accept: application/json")); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); @@ -389,153 +382,9 @@ class WabBusinessObject { curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); - return curl_exec($ch);*/ - $this->sendCurlRequest("POST", $sUrl, $postfield, array("Accept: application/json")); - } - - function sendCurlRequest($sMethod, $sUrl, $aParams=array(), $aHeaders=array()){ - - $this->aLastCurlRequestInfo = ''; - // - $ch = curl_init(); - $sType = strtoupper($sMethod); - // Force la méthode de requête utilisée (GET, POST...). - curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $sType); - // Url à utiliser. - if (($sType == 'GET' || $sType == 'DELETE') && !empty($aParams)) - $sUrl .= '?' . http_build_query($aParams); - curl_setopt($ch, CURLOPT_URL, $sUrl); - // ajout des en-tête - curl_setopt($ch, CURLOPT_HTTPHEADER, $aHeaders); - // Retour sous forme de texte. - curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); - // Requête POST PUT parameters. - - if ($sType == 'POST' || $sType == 'PUT') { - if($sType == 'POST'){ - curl_setopt($ch, CURLOPT_POST, true); - } - // Chaîne de requête en encodage URL. - //if (is_array($aParamsaParams) && !$bMultipartFormData) - // $aParams = http_build_query($aParams); - // Données de la requête. - curl_setopt($ch, CURLOPT_POSTFIELDS, $aParams); - // - //curl_setopt($ch, CURLOPT_SAFE_UPLOAD, true); - // Entête pour la requête en POST. - //$aHeaders[] = 'Content-Type: application/x-www-form-urlencoded'; - } - - curl_setopt($ch, CURLINFO_HEADER_OUT, true); - curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); - // Curl error: SSL certificate problem: unable to get local issuer certificate - // Curl error n°60 - curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, false); - curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); - // - $output = curl_exec($ch); - // Erreur de la requête CURL. - if(curl_errno($ch)) { - writeToErrorLog('Curl error: ' . curl_error($ch)); - writeToErrorLog('Curl error n°' . curl_errno($ch)); - } - // Informations de la requête. - $aCurlInfo = curl_getinfo($ch); - $this->aLastCurlRequestInfo = $aCurlInfo; - - // Ferme la session CURL. - curl_close($ch); - return $output; - } - - function contactCurrentApi($sMethod, $sUrlPath, $aParams=array(), $sMode="json", $aAuthParams = null){ - - if($this->aProperties['web_server_name'] === "[HTTP_HOST]"){ - $this->aProperties['web_server_name'] = "https://localhost"; - } - - $sRestUrl = $this->aProperties['web_server_name'] . '/' . $this->aProperties['services_alias']; - - $this->contactAnotherApi($sMethod, $sRestUrl, $sUrlPath, $aParams, $sMode, $aAuthParams); + return curl_exec($ch); } - function contactAnotherApi($sMethod, $sRestUrl, $sUrlPath, $aParams=array(), $sMode="json", $aAuthParams = null){ - $mToken = $this->getToken($sRestUrl, $aAuthParams); - - $sUrl = $sRestUrl . "/" . $sUrlPath; - - if($mToken !== false){ - - // modification des paramètres si besoin - $aSendParams = array(); - $aHeaders = array("token: " . $mToken); - - switch ($sMode) { - case 'json': - $aSendParams = json_encode($aParams); - $aHeaders[] = "Content-Type: application/json"; - $aHeaders[] = "Accept: application/json"; - break; - case 'query': - $sUrl .= '?' . http_build_query($aParams); - $aHeaders[] = "Accept: application/x-vm-json"; - break; - case 'urlencode': - $aSendParams = http_build_query($aParams); - $aHeaders[] = "Accept: application/x-www-form-urlencoded"; - break; - case 'formdata' : - $aSendParams = $aParams; - break; - } - - $sOutput = $this->sendCurlRequest($sMethod, $sUrl, $aSendParams, $aHeaders); - error_log(print_r($this->aLastCurlRequestInfo, true)); - return $sOutput; - } else { - writeToErrorLog("This user can't have a token on Calimap at URL : " . $sRestUrl); - return false; - } - } - - /********************************************************************** - Sauve l'historique deprecated - **********************************************************************/ - function saveHistory() { - $aHistoryValues = array('bo_id' => $this->aValues["my_vitis_id"], 'login' => $_SESSION['ses_Login'], 'comment' => $this->status, 'date' => date('Y-m-d H:i:s')); - $this->oBd->insert($this->aTableInfo['schema_name'], 'history', $aHistoryValues, $this->aTableInfo['schema_name'] . '.history_history_id_seq', 'history_id'); - } - /********************************************************************** - Sauve une note ou commentaire (history sert d'historique) - **********************************************************************/ - function addHistoryLine($sComment, $sHistoryTable, $iBoId){ - $sUser = 'u_scheduler'; - if(isset($_SESSION['ses_Login']) && !empty($_SESSION['ses_Login'])){ - $sUser = $_SESSION['ses_Login']; - } - - $aHistoryValues = array('bo_id' => $iBoId, 'login' => $sUser, 'comment' => $sComment, 'date' => date('Y-m-d H:i:s')); - $this->oBd->insert($this->aTableInfo['schema_name'], $sHistoryTable, $aHistoryValues, $this->aTableInfo['schema_name'] . '.seq_' . $sHistoryTable . "_id" , 'history_id'); - } - - function commitNoteLine($sNoteLineField, $sNoteTable, $sBoTable, $sFieldId, $iBoId){ - // get note line - $aFields = $this->wabGetObject($this->aTableInfo['schema_name'], $sBoTable, $sFieldId, $iBoId); - - if(!empty($aFields[$sNoteLineField])){ - $sUser = 'u_scheduler'; - if(isset($_SESSION['ses_Login']) && !empty($_SESSION['ses_Login'])){ - $sUser = $_SESSION['ses_Login']; - } - $aNoteValues = array('bo_id' => $iBoId, 'login' => $sUser, 'comment' => $aFields[$sNoteLineField], 'date' => date('Y-m-d H:i:s')); - $this->oBd->insert($this->aTableInfo['schema_name'], $sNoteTable, $aNoteValues, $this->aTableInfo['schema_name'] . '.seq_' . $sNoteTable . "_id", 'history_id'); - } - - // reset note line - $this->aValues[$sNoteLineField] = ""; - $this->save(); - } - } ?> diff --git a/vas/rest/class/wab_lib/BusinessObject.class.sql.inc b/src/vitis/vas/rest/class/wab_lib/BusinessObject.class.sql.inc similarity index 56% rename from vas/rest/class/wab_lib/BusinessObject.class.sql.inc rename to src/vitis/vas/rest/class/wab_lib/BusinessObject.class.sql.inc index a18ed1f2..bf02e36d 100755 --- a/vas/rest/class/wab_lib/BusinessObject.class.sql.inc +++ b/src/vitis/vas/rest/class/wab_lib/BusinessObject.class.sql.inc @@ -1,6 +1,5 @@ <?php $aSQL["getStatusId"] = 'SELECT * FROM [SCHEMA].rt_[TABLE]_status WHERE name = [STATUS_NAME]'; - $aSQL["getBoValues"] = 'SELECT * FROM [SCHEMA].[TABLE] WHERE [TABLE].[BOIDFIELD]=[BOID]'; - $aSQL["updateStatus"] = 'UPDATE [SCHEMA].[TABLE] SET status_id=[STATUS_ID] WHERE [TABLE].[BOIDFIELD]=[BOID]'; + $aSQL["updateStatus"] = 'UPDATE [SCHEMA].v_[TABLE] SET status_id=[STATUS_ID] WHERE v_[TABLE].[BOIDFIELD]=[BOID]'; $aSQL["getStatusName"] = 'SELECT name FROM [SCHEMA].rt_[TABLE]_status WHERE status_id = (SELECT status_id FROM [SCHEMA].[TABLE] WHERE [TABLE].[BOIDFIELD]=[BOID])'; ?> \ No newline at end of file diff --git a/vas/rest/conf/constants.inc b/src/vitis/vas/rest/conf/constants.inc similarity index 100% rename from vas/rest/conf/constants.inc rename to src/vitis/vas/rest/conf/constants.inc diff --git a/vas/rest/conf/php_conf.inc b/src/vitis/vas/rest/conf/php_conf.inc similarity index 100% rename from vas/rest/conf/php_conf.inc rename to src/vitis/vas/rest/conf/php_conf.inc diff --git a/vas/rest/conf/properties.inc b/src/vitis/vas/rest/conf/properties.inc old mode 100755 new mode 100644 similarity index 100% rename from vas/rest/conf/properties.inc rename to src/vitis/vas/rest/conf/properties.inc diff --git a/vas/rest/conf/properties_domain.inc b/src/vitis/vas/rest/conf/properties_domain.inc similarity index 100% rename from vas/rest/conf/properties_domain.inc rename to src/vitis/vas/rest/conf/properties_domain.inc diff --git a/vas/rest/conf/properties_post.inc b/src/vitis/vas/rest/conf/properties_post.inc similarity index 100% rename from vas/rest/conf/properties_post.inc rename to src/vitis/vas/rest/conf/properties_post.inc diff --git a/vas/rest/conf/properties_server.inc b/src/vitis/vas/rest/conf/properties_server.inc similarity index 100% rename from vas/rest/conf/properties_server.inc rename to src/vitis/vas/rest/conf/properties_server.inc diff --git a/vas/rest/conf/selected_properties.inc b/src/vitis/vas/rest/conf/selected_properties.inc old mode 100755 new mode 100644 similarity index 100% rename from vas/rest/conf/selected_properties.inc rename to src/vitis/vas/rest/conf/selected_properties.inc diff --git a/vas/rest/conf/version.inc b/src/vitis/vas/rest/conf/version.inc similarity index 100% rename from vas/rest/conf/version.inc rename to src/vitis/vas/rest/conf/version.inc diff --git a/vas/rest/inc/MetadataAccess.class.inc b/src/vitis/vas/rest/inc/MetadataAccess.class.inc similarity index 100% rename from vas/rest/inc/MetadataAccess.class.inc rename to src/vitis/vas/rest/inc/MetadataAccess.class.inc diff --git a/vas/rest/inc/MetadataAccess.sql.inc b/src/vitis/vas/rest/inc/MetadataAccess.sql.inc similarity index 100% rename from vas/rest/inc/MetadataAccess.sql.inc rename to src/vitis/vas/rest/inc/MetadataAccess.sql.inc diff --git a/vas/rest/index.phtml b/src/vitis/vas/rest/index.phtml similarity index 100% rename from vas/rest/index.phtml rename to src/vitis/vas/rest/index.phtml diff --git a/vas/rest/index.vhtml b/src/vitis/vas/rest/index.vhtml similarity index 100% rename from vas/rest/index.vhtml rename to src/vitis/vas/rest/index.vhtml diff --git a/vas/rest/ws/vitis/Accounts.class.inc b/src/vitis/vas/rest/ws/vitis/Accounts.class.inc similarity index 100% rename from vas/rest/ws/vitis/Accounts.class.inc rename to src/vitis/vas/rest/ws/vitis/Accounts.class.inc diff --git a/src/vitis/vas/rest/ws/vitis/Accounts.class.mail.inc b/src/vitis/vas/rest/ws/vitis/Accounts.class.mail.inc new file mode 100755 index 00000000..fef01a79 --- /dev/null +++ b/src/vitis/vas/rest/ws/vitis/Accounts.class.mail.inc @@ -0,0 +1,622 @@ +<?php + +$aMail["newUserTitle"] = "Un nouvel utilisateur vient juste de s'inscrire"; +$aMail["newUserTitleAutomated"] = "Vérification de votre adresse mail"; +$aMail["newUserBody"] = '<!-- 1 Column Text + Button : BEGIN --> + <tr> + <td bgcolor="#ffffff" style="padding: 0px; text-align: center;background-color:#8c8c8c; height:50px; margin-bottom:10px;"> + <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #FFFFFF; font-weight: normal;">[TITLE]</h1> + </td> + </tr> + <tr> + <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; font-size: 15px; line-height: 20px; color: #000000; text-align: center;"> + <p style="width:100%; font-weight:bold; text-align: justify; font-size: 20px;">Bonjour [FULLNAME],</p> + <p style="width:100%; text-align: left;font-size: 18px;">Nous vous remercions d\'avoir créé votre compte sur <b>[HOSTNAME]</b>.</p> + <p style="width:100%; text-align: left;font-size: 18px;"><b>Informations sur votre compte :</b></p> + <p style="width:100%; text-align: left;font-size: 18px;">Identifiant : [USERNAME]</p> + <p style="width:100%; text-align: left;font-size: 18px;">Organisme : [COMPANY] </p> + <p style="width:100%; text-align: left;font-size: 18px;">Mail : [MAIL]</p> + <p style="width:100%; text-align: left;font-size: 18px;">Téléphone : [PHONE] </p> + <p style="width:100%; text-align: left;font-size: 18px;">Ip publique fixe : [PUBLIC_IP] </p> + <p style="width:100%; text-align: left;font-size: 18px;">Nom du demandeur : [DEMANDEUR] </p> + <p style="width:100%; text-align: left;font-size: 18px;">Adresse mail du demandeur : [MAIL_DEMANDEUR] </p> + <p style="width:100%; text-align: left;font-size: 18px;">Objet de l\'étude : [STUDY_OBJECT] </p> + <p style="width:100%; text-align: left;font-size: 18px;margin-top: 20px;">Cliquez sur le bouton ci-dessous pour finaliser votre inscription :</p> + </td> + </tr> + <tr> + <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; font-size: 20px; line-height: 20px; color: #555555;"> + <table role="presentation" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" style="margin: auto"> + <tr> + <td style="border-radius: 3px; background: #5cb85c; text-align: center;" class="button-td"> + <a href="[URL]" style="background: #5cb85c; border: 15px solid #5cb85c; font-family: sans-serif; font-size: 18px; line-height: 1.1; text-align: center; text-decoration: none; display: block; border-radius: 0px; font-weight: bold;" class="button-a"> + <span style="color:#ffffff;">Je confirme mon adresse mail</span> + </a> + </td> + </tr> + </table> + <!-- Button : END --> + </td> + </tr> + <tr> + <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; line-height: 20px; color: #000000; text-align: center;"> + <p style="width:100%; text-align: justify;font-size: 18px;">Si vous ne vous êtes pas inscrit(e) sur notre application <b>[HOSTNAME]</b>, ignorez simplement ce message.</p> + </td> + </tr> + <!-- 1 Column Text + Button : END -->'; + +$aMail["confirmationSignUpTitle"] = "Confirmation d'inscription"; +$aMail["genericBody"] = ' + <tr> + <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;"> + <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">[MESSAGE]</h1> + </td> + </tr>'; + +$aMail["SignUpOk"] = '<tr> + <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;"> + <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">L\'utilisateur a été ajouté, connectez vous sur la base de données pour lui donner des droits (Defaut: [ROLES])</h1> + </td> + </tr>'; +$aMail["SignUpError"] = '<tr> + <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;"> + <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">L\'utilisateur n\'a pas pu être ajouté consultez les fichiers de log pour plus d\'informations</h1> + </td> + </tr>'; + +$aMail["signUpConfirmation"] = '<tr> + <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;"> + <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal; margin-bottom: 15px;">Votre compte est maintenant activé, vous pouvez vous connecter. Pour avoir accès à plus de fonctionnalités contactez l\'administrateur</h1> + <a style="margin: 0; font-family: sans-serif; font-size: 22px; font-weight: normal;" href="[REDIRECTION]"> Retourner vers l\'application </a> + </td> + </tr>'; +$aMail["fpwdTitle"] = "Changez votre mot de passe"; +$aMail["fpwdUpdateOk"] = '<tr> + <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;"> + <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">Le mot de passe a été mis à jour</h1> + </td> + </tr>'; +$aMail["fpwdUpdateError"] = '<tr> + <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;"> + <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">Le mot de passe n\'a pas pu être mis à jour</h1> + </td> + </tr>'; +$aMail["alreadyUpdate"] = '<tr> + <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;"> + <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">Le mot de passe à déjà été changé</h1> + </td> + </tr>'; + +$aMail["fpwdBody"] = '<!-- 1 Column Text + Button : BEGIN --> + <tr> + <td bgcolor="#ffffff" style="padding: 0px; text-align: center;background-color:#8c8c8c; height:50px; margin-bottom:10px;"> + <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #FFFFFF; font-weight: normal;">Changez votre mot de passe</h1> + </td> + </tr> + <tr> + <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; font-size: 15px; line-height: 20px; color: #000000; text-align: center;"> + <p style="width:100%; font-weight:bold; text-align: left; font-size: 20px;">Bonjour [LOGIN],</p> + <p style="width:100%; text-align: left;font-size: 18px;">Une tentative de récupération de votre compte à été effectué sur le site <b>[HOSTNAME]</b>.</p> + <p style="width:100%; text-align: left;font-size: 18px;margin-top: 10px;">Cliquez sur le bouton ci-dessous pour changer votre mot de passe :</p> + </td> + </tr> + <tr> + <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; font-size: 15px; line-height: 20px; color: #555555;"> + <table role="presentation" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" style="margin: auto"> + <tr> + <td style="border-radius: 3px; background: #5cb85c; text-align: center;" class="button-td"> + <a href="[URL]" style="background: #5cb85c; border: 15px solid #5cb85c; font-family: sans-serif; font-size: 18px; line-height: 1.1; text-align: center; text-decoration: none; display: block; border-radius: 0px; font-weight: bold;" class="button-a"> + <span style="color:#ffffff;">Changer mon mot de passe</span> + </a> + </td> + </tr> + </table> + <!-- Button : END --> + </td> + </tr> + <tr> + <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; line-height: 20px; color: #000000; text-align: center;"> + <p style="width:100%; text-align: justify;font-size: 18px;">Si vous n\'avez pas perdu votre mot de passe pour vous connecter à notre application <b>[HOSTNAME]</b>, ignorez simplement ce message.</p> + </td> + </tr> + <!-- 1 Column Text + Button : END -->'; + +$aMail["fpwdForm"] = '<!-- 1 Column Text + Button : BEGIN --> + <tr> + <td bgcolor="#ffffff" style="padding: 0px; text-align: center;background-color:#8c8c8c; height:50px; margin-bottom:10px;"> + <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #FFFFFF; font-weight: normal;">Saisissez votre nouveau mot de passe</h1> + </td> + </tr> + <tr> + <td bgcolor="#ffffff" style="padding: 20px 40px 40px; font-family: sans-serif; font-size: 15px; line-height: 20px; color: #555555; text-align: center;"> + <form style="text-align:-webkit-right;"> + <div style="text-align:left;"> + <label for="password" style="font-weight: bold;">Nouveau mot de passe</label> + <input type="password" id="password" name="password" class="input-text-control" required/> + </div> + <div style="text-align:left;margin-top:10px;"> + <label for="password_confirm" style="font-weight: bold;">Confirmer votre nouveau mot de passe</label> + <input type="password" id="password_confirm" name="password_confirm" class="input-text-control" required/> + </div> + <div style="margin-top:20px;"> + <input type="hidden" name="token" value="[TOKEN]"/> + <input type="hidden" name="output" value="text/html"/> + <button style="background: #5cb85c; border: 15px solid #5cb85c; font-family: sans-serif; font-size: 15px; line-height: 1.1; text-align: center; text-decoration: none; display: block; border-radius: 0px; font-weight: bold;" class="button-a" type="button" onclick="sendRequest(\'[URL]\')"><span style="color:#ffffff;">Envoi</span></button> + </div> + </form> + </td> + </tr>'; + +$aMail["passwordScript"] = '<script> + var password = document.getElementById("password"), confirm_password = document.getElementById("password_confirm"); + + function validatePassword(){ + if(password.value != confirm_password.value) { + confirm_password.setCustomValidity("Les deux mots de passe doivent être identique"); + } else { + confirm_password.setCustomValidity(\'\'); + } + } + + password.onchange = validatePassword; + confirm_password.onkeyup = validatePassword; + + function sendRequest (sUrl){ + if(typeof(password.value)!== "undefined"){ + if(password.value != ""){ + var xhr = new XMLHttpRequest(); + xhr.open("PUT", sUrl); + sParams = JSON.stringify({"password": password.value}); + xhr.onreadystatechange = function (aEvt) { + if (xhr.readyState == 4) { + if (xhr.status == 200) { + var oJson = JSON.parse(xhr.responseText); + window.location.replace(oJson.sUrl); + } else { + //xhr.responseText; + } + } + } + xhr.send(sParams); + }else{console.log("saisissez un mot de passe2")} + }else{console.log("saisissez un mot de passe")} + } + </script>'; + +$aMail["mainBody"] = '<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="utf-8"> <!-- utf-8 works for most cases --> + <meta name="viewport" content="width=device-width"> <!-- Forcing initial-scale shouldn\'t be necessary --> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> <!-- Use the latest (edge) version of IE rendering engine --> + <meta name="x-apple-disable-message-reformatting"> <!-- Disable auto-scale in iOS 10 Mail entirely --> + <title>VAM</title> <!-- The title tag shows in email notifications, like Android 4.4. --> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"> + <!-- Web Font / @font-face : BEGIN --> + <!-- NOTE: If web fonts are not required, lines 10 - 27 can be safely removed. --> + + <!-- Desktop Outlook chokes on web font references and defaults to Times New Roman, so we force a safe fallback font. --> + <!--[if mso]> + <style> + * { + font-family: sans-serif !important; + } + </style> + <![endif]--> + + <!-- All other clients get the webfont reference; some will render the font and others will silently fail to the fallbacks. More on that here: http://stylecampaign.com/blog/2015/02/webfont-support-in-email/ --> + <!--[if !mso]><!--> + <!-- insert web font reference, eg: <link href="https://fonts.googleapis.com/css?family=Roboto:400,700" rel="stylesheet" type="text/css"> --> + <!--<![endif]--> + + <!-- Web Font / @font-face : END --> + + <!-- CSS Reset --> + <style> + + /* What it does: Remove spaces around the email design added by some email clients. */ + /* Beware: It can remove the padding / margin and add a background color to the compose a reply window. */ + html, + body { + margin: 0 auto !important; + padding: 0 !important; + height: 100% !important; + width: 100% !important; + /*min-width: 600px;*/ + } + + /* What it does: Stops email clients resizing small text. */ + * { + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; +} + +/* What it does: Centers email on Android 4.4 */ +div[style*="margin: 16px 0"] { + margin:0 !important; +} + +/* What it does: Stops Outlook from adding extra spacing to tables. */ +table, +td { + mso-table-lspace: 0pt !important; + mso-table-rspace: 0pt !important; +} + +/* What it does: Fixes webkit padding issue. Fix for Yahoo mail table alignment bug. Applies table-layout to the first 2 tables then removes for anything nested deeper. */ +table { + border-spacing: 0 !important; + border-collapse: collapse !important; + table-layout: fixed !important; + margin: 0 auto !important; +} +table table table { + table-layout: auto; +} + +/* What it does: Uses a better rendering method when resizing images in IE. */ +img { + -ms-interpolation-mode:bicubic; +} + +/* What it does: A work-around for iOS meddling in triggered links. */ +*[x-apple-data-detectors] { + color: inherit !important; + text-decoration: none !important; +} + +/* What it does: A work-around for Gmail meddling in triggered links. */ +.x-gmail-data-detectors, +.x-gmail-data-detectors *, +.aBn { + border-bottom: 0 !important; + //cursor: default !important; +} + +/* What it does: Prevents Gmail from displaying an download button on large, non-linked images. */ +.a6S { + display: none !important; + opacity: 0.01 !important; +} +/* If the above doesn\'t work, add a .g-img class to any image in question. */ +img.g-img + div { + display:none !important; +} + +/* What it does: Prevents underlining the button text in Windows 10 */ +.button-link { + text-decoration: none !important; +} + +blockquote { + font-style:normal; + text-align:left; + //margin-left: 32px!important; + margin: 5px 5px 0px 32px!important; + //padding-top:10px; + //font-family:"Segoe Print","Times New Roman", Verdana; + padding-left: 7px; + min-height: 30px; + //background-color: #EFEFEF; + border-left: 2px solid #8c8c8c; +} + +blockquote > p { + margin:4.5px; +} + +.input-text-control{ + display: block; + width: 100%; + height: 14px; + padding: 4px 5px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; + color: #555; + background-color: #fff; + background-image: none; + border: 1px solid #ccc; + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + -webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s; + -o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; +} + +/* What it does: Removes right gutter in Gmail iOS app: https://github.com/TedGoas/Cerberus/issues/89 */ +/* Create one of these media queries for each additional viewport size you\'d like to fix */ +/* Thanks to Eric Lepetit (@ericlepetitsf) for help troubleshooting */ +@media only screen and (min-device-width: 375px) and (max-device-width: 413px) { /* iPhone 6 and 6+ */ + .email-container { + min-width: 375px !important; + } +} + +</style> + +<!-- What it does: Makes background images in 72ppi Outlook render at correct size. --> + <!--[if gte mso 9]> + <xml> + <o:OfficeDocumentSettings> + <o:AllowPNG/> + <o:PixelsPerInch>96</o:PixelsPerInch> + </o:OfficeDocumentSettings> + </xml> +<![endif]--> + +<!-- Progressive Enhancements --> +<style> + +/* What it does: Hover styles for buttons */ +.button-td, +.button-a { + transition: all 100ms ease-in; +} +.button-td:hover, +.button-a:hover { + background: #449D44 !important; + border-color: #449D44 !important; +} + +.bottom-strip{ + width: 120px !important; + height: 10px !important; + float: left !important; +} + +.square-logo-layout{ + width: 40px; + float: left !important; + background-color: #FFF;//#24292E; + border-radius: 50%; + font-size: 30px; + padding: 7.5px; + margin-right: 0px; + //color: #FFF; + cursor:pointer !important; +} + +.square-logo-layout > svg{ + cursor:pointer!important; +} + + +/* Media Queries */ +@media screen and (max-width: 600px) { + + .email-container { + width: 100% !important; + margin: auto !important; + } + + /* What it does: Forces elements to resize to the full width of their container. Useful for resizing images beyond their max-width. */ + .fluid { + max-width: 100% !important; + height: auto !important; + margin-left: auto !important; + margin-right: auto !important; + } + + /* What it does: Forces table cells into full-width rows. */ + .stack-column, + .stack-column-center { + display: block !important; + width: 100% !important; + max-width: 100% !important; + direction: ltr !important; + } + /* And center justify these ones. */ + .stack-column-center { + text-align: center !important; + } + + /* What it does: Generic utility class for centering. Useful for images, buttons, and nested tables. */ + .center-on-narrow { + text-align: center !important; + display: block !important; + margin-left: auto !important; + margin-right: auto !important; + float: none !important; + } + table.center-on-narrow { + display: inline-block !important; + } + + .input-text-control{ + display: block; + width: 100%; + height: 14px; + padding: 4px 5px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; + color: #555; + background-color: #fff; + background-image: none; + border: 1px solid #ccc; + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + -webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s; + -o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; + } + + /* What it does: Adjust typography on small screens to improve readability */ + .email-container p { + font-size: 17px !important; + line-height: 22px !important; + } + +} + +</style> + +</head> +<body width="100%" bgcolor="#E5E5E5" style="margin: 0px; mso-line-height-rule: exactly;"> + <center style="width: 600px; margin: auto; background: #FFFFFF; text-align: left;"> + <!-- Email Header : BEGIN --> + <table role="presentation" aria-hidden="true" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" width="600" style="margin: auto;" class="email-container"> + <tr> + <td style="padding: 20px 0px; text-align: center"> + <a href="http://www.veremes.com/" target="_blank"> + <svg version="1.1" id="Calque_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="335px" height="100px" viewBox="0 0 335 100" enable-background="new 0 0 335 100" xml:space="preserve"> + <g> + <rect fill="#FFFFFF" width="335" height="100"/> + <g> + <path fill="#1A171B" d="M308.774,60.788c-0.99-1.493-2.537-2.688-4.64-3.589c-0.533-0.224-1.577-0.57-3.142-1.042 + c-1.563-0.47-2.75-0.959-3.567-1.472c-0.893-0.547-1.532-1.161-1.916-1.841c-0.386-0.682-0.577-1.517-0.577-2.511 + c0-1.4,0.466-2.572,1.398-3.516c0.933-0.944,2.098-1.417,3.498-1.417c1.561,0,2.793,0.437,3.695,1.308 + c0.901,0.873,1.402,2.1,1.505,3.681h4.622c-0.12-2.909-1.026-5.178-2.72-6.806c-1.69-1.626-3.972-2.439-6.845-2.439 + c-2.71,0-5.016,0.916-6.921,2.744c-1.904,1.831-2.856,4.057-2.856,6.678c0,2.319,0.569,4.168,1.714,5.551 + c1.143,1.383,3.582,2.734,7.318,4.056c2.334,0.858,3.947,1.775,4.838,2.754c0.891,0.98,1.336,2.274,1.336,3.884 + c0,1.612-0.561,2.947-1.682,4.007c-1.121,1.063-2.526,1.592-4.219,1.592c-1.772,0-3.262-0.69-4.463-2.071 + c-1.202-1.379-1.802-3.12-1.802-5.228v-0.122h-4.502c0.103,3.535,1.114,6.344,3.039,8.431c1.922,2.085,4.466,3.127,7.637,3.127 + c3.108,0,5.674-0.952,7.698-2.853c2.025-1.899,3.038-4.301,3.038-7.205C310.261,64.182,309.764,62.279,308.774,60.788z + M118.462,41.021c-5.17,0-9.417,1.679-12.739,5.035c-3.32,3.357-4.979,7.607-4.979,12.742c0,4.912,1.693,9.118,5.084,12.617 + c3.389,3.502,7.535,5.252,12.438,5.252c3.694,0,6.947-0.998,9.756-2.988c2.808-1.994,4.988-4.849,6.542-8.569h-4.866 + c-1.103,2.332-2.666,4.151-4.688,5.459c-2.023,1.308-4.302,1.962-6.834,1.962c-3.575,0-6.558-1.131-8.947-3.394 + c-2.391-2.263-3.718-5.226-3.983-8.894h30.413v-0.318c0-5.604-1.601-10.154-4.797-13.655 + C127.662,42.771,123.529,41.021,118.462,41.021z M105.366,56.472c0.509-3.468,1.901-6.219,4.17-8.258 + c2.27-2.037,5.04-3.056,8.313-3.056c3.517,0,6.368,0.948,8.556,2.844c2.188,1.897,3.692,4.719,4.509,8.47H105.366z M99.054,31.046 + L84.898,69.101L72.402,35.38l0.007-0.047l-0.079-0.217c-0.401-1.095-0.841-2.3-1.34-3.546l-0.194-0.523h-0.021 + c-2.108-5.143-5.249-10.879-10.817-12.957c-5.541-2.069-12.762-0.675-17.169,3.314c-3.422,3.096-5.471,7.843-6.089,14.111 + c0-0.002-0.117,1.154-0.117,1.154c-0.239,2.31-0.481,4.665-0.354,7.034l0.047,0.874l0.875-0.048l2.31-0.124l0.876-0.046 + l-0.049-0.876c-0.113-2.069,0.115-4.268,0.335-6.396c0-0.001,0.12-1.172,0.12-1.172c0.517-5.235,2.121-9.103,4.771-11.499 + c3.349-3.03,8.825-4.09,13.024-2.522c4.294,1.604,6.994,6.964,8.88,11.717l1.387,3.688l0.208,0.57l0.005-0.004L83.24,75.692h3.407 + l16.788-44.646H99.054z M268.755,41.021c-5.171,0-9.418,1.679-12.738,5.035c-3.32,3.357-4.979,7.607-4.979,12.742 + c0,4.912,1.692,9.118,5.084,12.617c3.389,3.502,7.535,5.252,12.438,5.252c3.695,0,6.947-0.998,9.758-2.988 + c2.807-1.994,4.986-4.849,6.54-8.569h-4.866c-1.102,2.332-2.666,4.151-4.688,5.459c-2.022,1.308-4.302,1.962-6.835,1.962 + c-3.574,0-6.557-1.131-8.945-3.394c-2.392-2.263-3.72-5.226-3.984-8.894h30.415v-0.318c0-5.604-1.603-10.154-4.8-13.655 + C277.955,42.771,273.821,41.021,268.755,41.021z M255.658,56.472c0.51-3.468,1.901-6.219,4.171-8.258 + c2.27-2.037,5.039-3.056,8.314-3.056c3.516,0,6.367,0.948,8.555,2.844c2.187,1.897,3.692,4.719,4.509,8.47H255.658z + M148.164,42.625c-1.253,0.705-2.409,1.808-3.465,3.315v-3.946h-4.074v33.698h4.379V55.395c0-3.099,0.583-5.334,1.754-6.711 + c1.17-1.376,3.11-2.187,5.821-2.431l-0.032-4.744C150.878,41.549,149.417,41.922,148.164,42.625z M172.22,41.021 + c-5.171,0-9.418,1.679-12.738,5.035c-3.321,3.357-4.981,7.607-4.981,12.742c0,4.912,1.694,9.118,5.085,12.617 + c3.389,3.502,7.535,5.252,12.438,5.252c3.695,0,6.947-0.998,9.757-2.988c2.808-1.994,4.988-4.849,6.541-8.569h-4.866 + c-1.102,2.332-2.665,4.151-4.688,5.459c-2.023,1.308-4.303,1.962-6.834,1.962c-3.574,0-6.557-1.131-8.947-3.394 + c-2.391-2.263-3.718-5.226-3.984-8.894h30.414v-0.318c0-5.604-1.6-10.154-4.799-13.655 + C181.419,42.771,177.286,41.021,172.22,41.021z M159.124,56.472c0.51-3.468,1.901-6.219,4.17-8.258 + c2.271-2.037,5.04-3.056,8.313-3.056c3.517,0,6.369,0.948,8.556,2.844c2.188,1.897,3.692,4.719,4.51,8.47H159.124z + M232.864,41.264c-2.51,0-4.779,0.509-6.809,1.518c-2.03,1.012-3.73,2.49-5.097,4.43c-1.106-1.818-2.712-3.264-4.82-4.338 + c-2.108-1.072-4.441-1.61-7-1.61c-2.212,0-4.191,0.379-5.941,1.134c-1.748,0.756-3.27,1.88-4.558,3.372v-3.776h-4.258v33.698 + h4.258V59.274c0-2.927,0.105-4.978,0.321-6.154c0.215-1.177,0.586-2.227,1.119-3.147c0.856-1.473,2.026-2.604,3.509-3.391 + c1.481-0.787,3.203-1.182,5.165-1.182c3.248,0,5.66,0.926,7.233,2.777c1.573,1.852,2.36,4.722,2.36,8.61v18.905h4.136V59.274 + c0-2.927,0.112-4.978,0.338-6.154c0.223-1.177,0.59-2.227,1.1-3.147c0.854-1.473,2.012-2.604,3.467-3.391 + c1.457-0.787,3.143-1.182,5.06-1.182c3.318,0,5.711,0.947,7.178,2.84c1.469,1.894,2.202,5.07,2.202,9.529v17.923h4.137V58.658 + c0-6.093-1.043-10.516-3.122-13.268C240.76,42.64,237.436,41.264,232.864,41.264z"/> + <g> + <path fill="#1A171B" d="M36.791,43.727c4.5,3.508,3.856-8.518,5.095-10.445c-0.251,0.39,1.045-0.227,1.359-0.68 + c0.714-1.033,0.78-1.304,1.783-0.467c0.685,0.57,4.073-2.156,5.011-2.76c-0.206-0.223,0.68,1.338,0.68,0.764 + c0,4.354-0.253,0.671,2.42,1.401c1.206,0.329,2.179-0.847,3.269,0.893c-0.283,0.31-0.566,0.621-0.849,0.933 + c4.111,1.071,3.139,4.072,7.134,6.029c-1.239,0.545-2.304,1.363-2.463,2.803c1.169,0.267,2.366,0.422,3.566,0.424 + c-0.34,0.311-0.679,0.622-1.02,0.934c2.158,0.346,2.307,2.235,4.671,1.699c-0.891,1.669-4.83,4.51-1.274,5.094 + c-0.198,0.085-0.396,0.171-0.594,0.255c0.745,0.477,1.172,1.362,1.868,1.868c-0.946,0.11-1.794,0.679-2.802,0.68 + c0.04,1.611,1.581,1.87,2.717,2.124c-2.577,1.72,0.311,0.894,0.722,2.122c-0.165-0.493,1.154,1.254,0.807,0.977 + c-0.173-0.139-1.318,0.596-0.807,1.062c0.174,0.158,4.875,0.583,1.98,1.482c-1.714,0.534-4.447,0.456-3.679,2.763 + c-1.174-0.126-1.886,0.235-2.845-0.083c0.154,0.687-0.067,0.846,0.213,1.442c-1.335,0.382-2.595-0.269-3.695-1.061 + c-0.042,0.268-0.084,0.537-0.127,0.806c-0.368-0.325-0.736-0.649-1.104-0.976c0.016,0.536-0.255,1.096-0.212,1.656 + c-0.877-0.677-5.258-4.209-2.972-1.189c0.905,1.195,1.842,1.439,2.93,2.463c-1.363,0.366-0.2,5.027,1.91,4.627 + c-1.045,1.709-3.151-0.414-4.289,1.828c1.419,0.304,0.683,0.515,1.826,1.146c-0.596-0.139-1.35,0.109-1.996-0.043 + c0.058,0.606,1.302,2.911,1.104,3.185c-0.761,1.05-2.778-1.146-3.949-1.146c-0.209,0.18-0.252,0.392-0.126,0.636 + c1.264,0.254,0.742,0.52,0.976,1.698c-2.448-0.878-0.467,0.231-0.467,1.104c0,3.686-2.677-0.092-2.548,2.505 + c-0.269-0.014-0.537-0.027-0.806-0.041c0.263,2.893-2.243-0.257-2.845,3.056c0.048,0.018-3.298-0.522-3.333-0.488 + c-1.136,1.135-1.402-0.027-2.174,0.598c-1.87,1.514-1.024-1.807-1.552-1.998c-0.694-0.253-2.246,1.984-2.455,0.573 + c-0.207-1.396-0.55-3.131-1.463-1.656c-0.954-0.37-3.546,0.314-3.842-0.572c-0.223-0.67-2.252-3.619-0.871-4.078 + c-0.407,0.137-1.347,0.543-1.719,0.765c0.857-2.833-1.515-2.188-3.185-1.146c0.104-1.69,0.899-3.521-1.083-3.247 + c0.293-0.662,0.337-1.645,0.828-2.356c-0.382,0.084-0.764,0.17-1.146,0.254c0.059-0.477,4.984-10.382,5.223-10.382 + c-0.199-0.062-0.369-0.169-0.51-0.318c-1.236,3.129-3.048,5.804-5.095,8.534c0.046-0.52-0.061-1.008-0.318-1.464 + c-0.23,0-1.983,2.339-2.548,2.61c0-0.253,0-0.509,0-0.763c-0.231,0.366-1.444,2.675-1.783,2.675c-0.329,0,0.481-1.796-0.51-1.467 + c-0.944,0.315-1.458,0.54-2.292,0.701c0.99-1.181,1.719-2.432-0.446-1.783c0.204-0.955-0.191-1.231-0.191-1.974 + c-0.159,0.41-0.393,0.771-0.7,1.084c-0.23-1.254-0.242-6.138-0.383-6.138c-1.46,0,0.123-2.937,0.341-3.312 + c-0.17-0.142-0.341-0.282-0.51-0.425c0.05,1.16-0.433,1.305-0.764,2.293c-1.08-1.767,1.521-3.314-0.764-3.99 + c0.311-0.256,0.623-0.51,0.934-0.765c-0.199-0.198-0.396-0.396-0.595-0.595c-0.269,0.61-0.729,1.216-1.02,1.783 + c-0.154-0.479,0.034-2.888,0.51-2.888c-0.313-0.017-0.624-0.044-0.935-0.084c0.723-0.973,0.495-1.264,1.444-1.699 + c-0.17-0.51-0.339-1.019-0.509-1.529c0.17,0.058,0.339,0.114,0.509,0.171c0.149,0.083-0.41-0.829-0.68-0.424 + c0.503-0.754,1.123-1.223,1.868-1.614c-0.283-0.17-0.566-0.34-0.849-0.51c0.664-0.432,1.176-1.357,2.038-1.698 + c-0.566-1.104-0.674-1.464-1.868-1.784c-0.033-2.104,1.163-9.234,2.717-8.407c-0.049-0.578-0.062-0.699,0.509-0.765 + c-0.087-1.145-0.637-0.797,0.595-1.104c-0.979-4.102,1.847-2.083,3.651-1.104c0-0.341,0-0.68,0-1.02 + c0.534,0.116,1.853,0.641,2.177,0.085c0.109-0.188-0.92-0.513-1.073-0.594c1.126-0.569,0.975-1.844,0.17-3.143 + c1.503,0.075,3.008,0.738,3.482-0.594c0.613,0.591,1.188,0.584,1.697,1.358c0.284-0.481,0.566-0.963,0.85-1.443 + c0.53,0.646,1.549,2.504,2.59,1.983c0.223-0.111,1.486,0.661,1.486,0.394c0-1.159,0.588-2.121,1.529-2.717 + C35.584,34.716,35.005,38.027,36.791,43.727"/> + </g> + </g> + </g> + </svg> + </a> + </td> + </tr> +</table> +<!-- Email Header : END --> + +<!-- Email Body : BEGIN --> +<table role="presentation" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" width="600" style="margin: auto;" class="email-container"> + + [CONTENT] + +</table> +<!-- Email Body : END --> + +<!-- Email Footer : BEGIN --> +<table role="presentation" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" width="600" style="margin: auto;" class="email-container"> + <tr> + <td style="padding: 0px;width: 100%;" class="x-gmail-data-detectors"> + <div class="bottom-strip" style="background-color: #39468A;"></div> + <div class="bottom-strip" style="background-color: #E74F23;"></div> + <div class="bottom-strip" style="background-color: #923288;"></div> + <div class="bottom-strip" style="background-color: #1C9DB2;"></div> + <div class="bottom-strip" style="background-color: #E10759;"></div> + </td> + </tr> +</table> +<table role="presentation" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" width="600" style="margin: auto;" class="email-container"> + <tr> + <td style="padding: 10px;width: 50%;font-size: 12px; font-family: sans-serif; line-height:18px; text-align: center; color: #888888; cursor:pointer;" class="x-gmail-data-detectors"> + <a class="square-logo-layout" href="https://twitter.com/Veremes_Info" target="_blank" style="color: #24292E; cursor:pointer;"> + <!--<i class="fa fa-twitter" style=""></i>--> + <svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" style="fill: currentColor; cursor:pointer;"> + <title>Twitter</title> + <path d="M50,0a50,50,0,1,0,50,50A50,50,0,0,0,50,0ZM75.28,37c0,.56,0,1.12,0,1.68C75.32,56,62.2,75.83,38.21,75.83h0a37,37,0,0,1-20-5.86,24.62,24.62,0,0,0,3.11.18,26.13,26.13,0,0,0,16.2-5.58,13,13,0,0,1-12.18-9.06,12.34,12.34,0,0,0,2.45.24,13,13,0,0,0,3.44-.46A13,13,0,0,1,20.77,42.5v-.16A13.11,13.11,0,0,0,26.68,44a13.05,13.05,0,0,1-4-17.42A37,37,0,0,0,49.52,40.18a13.19,13.19,0,0,1-.34-3,13.05,13.05,0,0,1,22.57-8.92A26.11,26.11,0,0,0,80,25.12a13.08,13.08,0,0,1-5.73,7.22,26.23,26.23,0,0,0,7.49-2.06A26.49,26.49,0,0,1,75.28,37Z"/> + </svg> + </a> + <a class="square-logo-layout" href="https://www.linkedin.com/company/veremes/" target="_blank" style="color: #24292E; cursor:pointer;"> + <!--<i class="fa fa-linkedin" style=""></i>--> + <svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" style="fill: currentColor; cursor:pointer;"> + <title>LinkedIn</title> + <path d="M50,0a50,50,0,1,0,50,50A50,50,0,0,0,50,0ZM60.71,51a6.48,6.48,0,0,0-6.33,6.32V79.68H41.74V41.74H54.38v5a13.63,13.63,0,0,1,10.54-5.9A15,15,0,0,1,79.68,55.65v24H67V57.33A6.48,6.48,0,0,0,60.71,51ZM27,34.57A7.59,7.59,0,1,1,34.57,27,7.55,7.55,0,0,1,27,34.57Zm6.32,7.17V79.68H20.66V41.74Z"/> + </svg> + </a> + <a class="square-logo-layout" href="http://vm09.veremes.net/" target="_blank" style="color: #24292E; cursor:pointer;"> + <!--<i class="fa fa-github" style=""></i>--> + <svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" style="fill: currentColor; cursor:pointer;"> + <title>GitLab</title> + <path d="M50,0a50,50,0,1,0,50,50A50,50,0,0,0,50,0ZM75.18,15.1a1,1,0,0,1,2,0l9,27.81h-20Zm-52.34,0a1,1,0,0,1,2,0l9,27.81h-20ZM9.85,61A2.63,2.63,0,0,1,8.9,58l4.35-13.4L47.16,88.07Zm4.33-17h20l14.3,44Zm21.19,0H64.63L50,89Zm30.42,0h20L51.49,88ZM90.15,61,52.84,88.07,86.75,44.62,91.1,58A2.63,2.63,0,0,1,90.15,61Z"/> + </svg> + </a> + <a class="square-logo-layout" href="http://www.veremes.com/" target="_blank" style="color: #24292E; cursor:pointer;"> + <!--<i class="fa fa-globe" style=""></i>--> + <svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" style="fill: currentColor; cursor:pointer;"> + <defs> + <style>.cls-1{fill:none;}</style> + </defs> + <title>Veremes</title> + <path class="cls-1" d="M60.17,18.09h0S60.15,18.05,60.17,18.09Z"/> + <path class="cls-1" d="M48.39,26.38c.66-6.65,2.7-11.56,6.06-14.6a11.45,11.45,0,0,1,1.82-1.29A40.5,40.5,0,0,0,50,10l-1,0c-3.18,3.87-5.13,9.17-5.79,15.85l-.15,1.47c-.21,2.06-.42,4.16-.47,6.28-1.35-5.7-.83-9.69-1.1-15.87A4,4,0,0,0,39.6,21.2c0,.34-1.6-.64-1.88-.5-1.33.67-2.62-1.69-3.29-2.51L33.35,20c-.65-1-1.38-1-2.16-1.73-.6,1.69-2.51.85-4.42.76,1,1.65,1.21,3.26-.21,4,.19.1,1.5.51,1.36.75-.41.71-2.09,0-2.77-.11V25c-2.29-1.25-5.88-3.81-4.63,1.4-1.57.39-.87-.05-.76,1.4-.72.09-.71.24-.64,1-2-1.05-3.5,8-3.45,10.68,1.51.4,1.65.86,2.37,2.26-1.1.43-1.75,1.61-2.59,2.16l1.08.64a6,6,0,0,0-2.37,2c.34-.51,1.05.65.86.54l-.65-.22c.22.65.43,1.3.65,2-1.21.55-.92.92-1.83,2.15.39,0,.78.09,1.18.11-.6,0-.84,3.06-.65,3.67.37-.72,1-1.49,1.3-2.27l.75.76-1.18,1c2.9.86-.4,2.82,1,5.06.42-1.25,1-1.43,1-2.91l.65.54c-.28.48-2.29,4.21-.44,4.21.18,0,.2,6.2.49,7.79a4,4,0,0,0,.89-1.38c0,.95.5,1.3.24,2.51,2.75-.82,1.82.76.57,2.26a20.92,20.92,0,0,0,2.91-.89c1.26-.41.23,1.86.64,1.86s2-2.93,2.27-3.39v1c.72-.35,2.94-3.32,3.23-3.32a3.11,3.11,0,0,1,.41,1.86,46.51,46.51,0,0,0,6.47-10.83,1.46,1.46,0,0,0,.65.4c-.31,0-6.56,12.58-6.64,13.18l1.46-.32c-.63.9-.68,2.15-1,3,2.51-.35,1.5,2,1.37,4.13,2.12-1.33,5.14-2.15,4.05,1.45a15.73,15.73,0,0,1,2.18-1c-1.76.58.82,4.33,1.11,5.17.37,1.13,3.66.26,4.87.73,1.16-1.87,1.6.33,1.86,2.11s2.24-1,3.12-.73c.67.24-.4,4.46,2,2.53,1-.79,1.32.68,2.76-.75,0,0,4.29.64,4.23.62.77-4.21,3.94-.21,3.61-3.88l1,0c-.16-3.3,3.24,1.5,3.24-3.18,0-1.11-2.52-2.52.59-1.4-.29-1.5.37-1.84-1.24-2.16a.62.62,0,0,1,.16-.81c1.49,0,4,2.79,5,1.46.25-.35-1.33-3.28-1.4-4,.82.2,1.77-.12,2.53.06-1.45-.8-.52-1.07-2.32-1.46,1.45-2.84,4.12-.15,5.45-2.32C70.78,71.9,69.3,66,71,65.52c-1.38-1.3-2.57-1.61-3.72-3.13-2.9-3.83,2.66.65,3.78,1.51-.06-.71.28-1.42.27-2.1L72.76,63c0-.34.11-.69.16-1,1.4,1,3,1.83,4.69,1.35-.35-.76-.08-1-.27-1.83,1.22.4,2.12-.06,3.61.11-1-2.93,2.5-2.84,4.67-3.51,3.68-1.15-2.29-1.68-2.51-1.88-.65-.6.8-1.53,1-1.35.44.35-1.23-1.87-1-1.24-.52-1.56-4.19-.51-.92-2.7-1.44-.32-3.4-.65-3.45-2.69,1.28,0,2.36-.73,3.56-.87-.89-.64-1.43-1.76-2.37-2.37l.75-.32c-4.51-.74.49-4.35,1.62-6.47-3,.68-3.19-1.72-5.93-2.16l1.29-1.18a20.84,20.84,0,0,1-4.52-.54c.19-1.83,1.55-2.87,3.12-3.56-5.07-2.49-3.84-6.3-9.06-7.66L68.28,22c-1.38-2.21-2.62-.72-4.15-1.13-3.39-.93-3.07,3.75-3.07-1.78,0,.62-.81-.72-.89-1-1.22.8-5.47,4.21-6.34,3.49-1.27-1.06-1.35-.72-2.26.59-.4.58-2,1.36-1.73.87-.9,1.41-1,7.1-2.05,10.79,0-2,.25-4,.45-6Z"/> + <path d="M99.94,47.71l0-.64c0-.61-.08-1.23-.14-1.84,0-.16,0-.31,0-.46-.08-.74-.17-1.47-.28-2.2,0-.19-.06-.38-.1-.57q-.13-.86-.3-1.68l-.12-.64c-.15-.7-.31-1.39-.48-2.08,0-.15-.09-.3-.13-.45-.14-.56-.3-1.11-.46-1.65-.08-.24-.15-.49-.23-.73-.16-.51-.34-1-.52-1.54-.06-.17-.12-.35-.19-.53-.23-.62-.47-1.24-.73-1.85-.11-.27-.22-.53-.34-.8s-.35-.78-.53-1.17l-.38-.81c-.27-.56-.56-1.11-.85-1.66-.16-.3-.33-.59-.49-.88s-.35-.61-.53-.92-.37-.63-.57-.94L92,22.86q-.55-.86-1.14-1.68l-.45-.62c-.25-.35-.51-.69-.77-1-.13-.18-.27-.35-.41-.52q-1.36-1.74-2.9-3.35L86,15.35q-1.66-1.72-3.48-3.29L82.46,12a51.79,51.79,0,0,0-5.4-4h0a49.56,49.56,0,0,0-4.42-2.54h0A49.59,49.59,0,0,0,63.94,2h0c-1.56-.45-3.16-.83-4.78-1.13L58.49.73,57.21.52C56.59.43,56,.35,55.33.29L54.54.21,53,.1l-.73,0C51.51,0,50.76,0,50,0a50,50,0,1,0,50,50C100,49.23,100,48.47,99.94,47.71ZM49.84,23c-.31.49,1.33-.29,1.73-.87.91-1.31,1-1.65,2.26-.59.87.72,5.12-2.69,6.34-3.49,0,0,0-.06,0,0h0c.08.24.89,1.58.89,1,0,5.53-.32.85,3.07,1.78,1.53.41,2.77-1.08,4.15,1.13L67.2,23.14c5.22,1.36,4,5.17,9.06,7.66-1.57.69-2.93,1.73-3.12,3.56a20.84,20.84,0,0,0,4.52.54l-1.29,1.18c2.74.44,2.92,2.84,5.93,2.16-1.13,2.12-6.13,5.73-1.62,6.47l-.75.32c.94.61,1.48,1.73,2.37,2.37-1.2.14-2.28.86-3.56.87.05,2,2,2.37,3.45,2.69-3.27,2.19.4,1.14.92,2.7-.21-.63,1.46,1.59,1,1.24-.22-.18-1.67.75-1,1.35.22.2,6.19.73,2.51,1.88-2.17.67-5.64.58-4.67,3.51-1.49-.17-2.39.29-3.61-.11.19.87-.08,1.07.27,1.83-1.7.48-3.29-.34-4.69-1.35,0,.34-.11.69-.16,1l-1.4-1.24c0,.68-.33,1.39-.27,2.1C70,63,64.41,58.56,67.31,62.39c1.15,1.52,2.34,1.83,3.72,3.13-1.73.46-.25,6.38,2.43,5.87-1.33,2.17-4-.52-5.45,2.32,1.8.39.87.66,2.32,1.46-.76-.18-1.71.14-2.53-.06.07.77,1.65,3.7,1.4,4-1,1.33-3.53-1.46-5-1.46a.62.62,0,0,0-.16.81c1.61.32,1,.66,1.24,2.16-3.11-1.12-.59.29-.59,1.4,0,4.68-3.4-.12-3.24,3.18l-1,0c.33,3.67-2.84-.33-3.61,3.88.06,0-4.19-.67-4.23-.62-1.44,1.43-1.78,0-2.76.75-2.37,1.93-1.3-2.29-2-2.53-.88-.32-2.86,2.52-3.12.73s-.7-4-1.86-2.11c-1.21-.47-4.5.4-4.87-.73-.29-.84-2.87-4.59-1.11-5.17a15.73,15.73,0,0,0-2.18,1c1.09-3.6-1.93-2.78-4.05-1.45.13-2.15,1.14-4.48-1.37-4.13.37-.84.42-2.09,1-3l-1.46.32c.08-.6,6.33-13.18,6.64-13.18a1.46,1.46,0,0,1-.65-.4,46.51,46.51,0,0,1-6.47,10.83A3.11,3.11,0,0,0,28,67.51c-.29,0-2.51,3-3.23,3.32v-1c-.3.46-1.83,3.39-2.27,3.39s.62-2.27-.64-1.86a20.92,20.92,0,0,1-2.91.89c1.25-1.5,2.18-3.08-.57-2.26.26-1.21-.24-1.56-.24-2.51a4,4,0,0,1-.89,1.38c-.29-1.59-.31-7.79-.49-7.79-1.85,0,.16-3.73.44-4.21l-.65-.54c.06,1.48-.55,1.66-1,2.91-1.37-2.24,1.93-4.2-1-5.06l1.18-1L15,52.47c-.34.78-.93,1.55-1.3,2.27-.19-.61,0-3.67.65-3.67-.4,0-.79-.06-1.18-.11.91-1.23.62-1.6,1.83-2.15-.22-.65-.43-1.3-.65-2l.65.22c.19.11-.52-1-.86-.54a6,6,0,0,1,2.37-2l-1.08-.64c.84-.55,1.49-1.73,2.59-2.16-.72-1.4-.86-1.86-2.37-2.26-.05-2.68,1.47-11.73,3.45-10.68-.07-.73-.08-.88.64-1-.11-1.45-.81-1,.76-1.4-1.25-5.21,2.34-2.65,4.63-1.4v-1.3c.68.15,2.36.82,2.77.11.14-.24-1.17-.65-1.36-.75,1.42-.73,1.23-2.34.21-4,1.91.09,3.82.93,4.42-.76C32,19,32.7,19,33.35,20l1.08-1.83c.67.82,2,3.18,3.29,2.51.28-.14,1.88.84,1.88.5a4,4,0,0,1,1.94-3.45c.27,6.18-.25,10.17,1.1,15.87,0-2.12.26-4.22.47-6.28l.15-1.47c.66-6.68,2.61-12,5.79-15.85l1,0a40.5,40.5,0,0,1,6.27.49,11.45,11.45,0,0,0-1.82,1.29c-3.36,3-5.4,8-6.06,14.6l-.15,1.49c-.2,2-.41,4-.45,6C48.82,30.14,48.94,24.45,49.84,23Z"/> + </svg> + </a> + </td> + <td style="padding: 10px;width: 50%;font-size: 20px; font-family: sans-serif; line-height:18px; text-align: center; color: #000000;" class="x-gmail-data-detectors"> + <div style="margin-bottom:10px;">Pour toute question :</div> + <div>support@veremes.com</div> + </td> + </tr> +</table> +<!-- Email Footer : END --> + +</center> +[SCRIPT] +</body> +</html>'; +?> \ No newline at end of file diff --git a/vas/rest/ws/vitis/Accounts.class.sql.inc b/src/vitis/vas/rest/ws/vitis/Accounts.class.sql.inc similarity index 100% rename from vas/rest/ws/vitis/Accounts.class.sql.inc rename to src/vitis/vas/rest/ws/vitis/Accounts.class.sql.inc diff --git a/vas/rest/ws/vitis/Action.class.inc b/src/vitis/vas/rest/ws/vitis/Action.class.inc similarity index 100% rename from vas/rest/ws/vitis/Action.class.inc rename to src/vitis/vas/rest/ws/vitis/Action.class.inc diff --git a/vas/rest/ws/vitis/Actions.class.inc b/src/vitis/vas/rest/ws/vitis/Actions.class.inc similarity index 100% rename from vas/rest/ws/vitis/Actions.class.inc rename to src/vitis/vas/rest/ws/vitis/Actions.class.inc diff --git a/vas/rest/ws/vitis/ActiveDirectory.class.inc b/src/vitis/vas/rest/ws/vitis/ActiveDirectory.class.inc similarity index 100% rename from vas/rest/ws/vitis/ActiveDirectory.class.inc rename to src/vitis/vas/rest/ws/vitis/ActiveDirectory.class.inc diff --git a/vas/rest/ws/vitis/BillingGroup.class.inc b/src/vitis/vas/rest/ws/vitis/BillingGroup.class.inc similarity index 100% rename from vas/rest/ws/vitis/BillingGroup.class.inc rename to src/vitis/vas/rest/ws/vitis/BillingGroup.class.inc diff --git a/vas/rest/ws/vitis/BillingGroups.class.inc b/src/vitis/vas/rest/ws/vitis/BillingGroups.class.inc similarity index 100% rename from vas/rest/ws/vitis/BillingGroups.class.inc rename to src/vitis/vas/rest/ws/vitis/BillingGroups.class.inc diff --git a/vas/rest/ws/vitis/Column.class.inc b/src/vitis/vas/rest/ws/vitis/Column.class.inc similarity index 100% rename from vas/rest/ws/vitis/Column.class.inc rename to src/vitis/vas/rest/ws/vitis/Column.class.inc diff --git a/vas/rest/ws/vitis/Columns.class.inc b/src/vitis/vas/rest/ws/vitis/Columns.class.inc similarity index 100% rename from vas/rest/ws/vitis/Columns.class.inc rename to src/vitis/vas/rest/ws/vitis/Columns.class.inc diff --git a/vas/rest/ws/vitis/Database.class.inc b/src/vitis/vas/rest/ws/vitis/Database.class.inc similarity index 100% rename from vas/rest/ws/vitis/Database.class.inc rename to src/vitis/vas/rest/ws/vitis/Database.class.inc diff --git a/vas/rest/ws/vitis/Domain.class.inc b/src/vitis/vas/rest/ws/vitis/Domain.class.inc similarity index 100% rename from vas/rest/ws/vitis/Domain.class.inc rename to src/vitis/vas/rest/ws/vitis/Domain.class.inc diff --git a/vas/rest/ws/vitis/Domains.class.inc b/src/vitis/vas/rest/ws/vitis/Domains.class.inc similarity index 100% rename from vas/rest/ws/vitis/Domains.class.inc rename to src/vitis/vas/rest/ws/vitis/Domains.class.inc diff --git a/src/vitis/vas/rest/ws/vitis/Exploitations.class.inc b/src/vitis/vas/rest/ws/vitis/Exploitations.class.inc new file mode 100755 index 00000000..1703c2ce --- /dev/null +++ b/src/vitis/vas/rest/ws/vitis/Exploitations.class.inc @@ -0,0 +1,362 @@ +<?php + +/** + * \file Exploitations.class.inc + * \class Exploitations + * + * \author Yoann Perollet <yoann.perollet@veremes.com>. + * + * \brief This file contains the Exploitations php class + * + * This class defines Rest Api to Vitis exploitations + * + */ +require_once 'Vitis.class.inc'; +require_once __DIR__ . '/../../class/vitis_lib/Connection.class.inc'; +require_once(__DIR__ . '/../../class/vmlib/BdDataAccess.inc'); + +class Exploitations extends Vitis { + /** + * @SWG\Definition( + * definition="/exploitations", + * allOf={ + * @SWG\Schema(ref="#/definitions/exploitations") + * } + * ) + * * @SWG\Tag( + * name="Exploitations", + * description="Operations about Exploitations" + * ) + */ + + /** + * construct + * @param type $aPath url of the request + * @param type $aValues parameters of the request + * @param type $properties properties + * @param type $bShortcut false to reinit variables + * @param type $oConnection connection object + */ + function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) { + parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection); + $this->aSelectedFields = Array(); + } + + /** + * @SWG\Get(path="/exploitations/SharedDirectory", + * tags={"Exploitations"}, + * summary="Get shared directory tree", + * description="Request to get the shared directory tree", + * operationId="GET", + * produces={"application/json", "application/x-vm-json"}, + * @SWG\Parameter( + * name="token", + * in="query", + * description="user token", + * required=true, + * type="string" + * ), + * @SWG\Response( + * response=200, + * description="Poprerties Response", + * @SWG\Schema(ref="#/definitions/exploitations") + * ) + * ) + */ + + /** + * get Exploitations + * @return Exploitations + */ + function GET() { + // Arborescence du répertoire partagé. + if (strtolower($this->aPath[2]) == 'shareddirectory') { + $aTreeview = $this->getDirectoryTree($this->aProperties['shared_dir']); + if (!empty($aTreeview["data"][0]["nodes"])) + $this->aFields['tree']['data'] = $aTreeview["data"][0]["nodes"]; + else + $this->aFields['tree']['data'] = []; + } + // + $aXmlRacineAttribute['status'] = 1; + $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); + return $sMessage; + } + + /** + * Get directory tree. + */ + function getDirectoryTree($sDirectoryPath) { + $aReturn = array('status' => 1, 'message' => ''); + // Création de l'arborescence des fichiers du répertoire. + if (!empty($sDirectoryPath)) { + $sDirectoryName = 'Downloads'; + if (is_string($sDirectoryPath)) { + if (is_dir($sDirectoryPath)) { + $aDirStructure = $this->getDirStructure($sDirectoryPath, $sDirectoryName, $sDirectoryName, ""); + $aTreeview["data"][] = $aDirStructure["data"]; + if (!empty($aDirStructure["files"])) { + foreach ($aDirStructure["files"] as $aFiles) { + $aTreeview["files"][] = $aFiles; + } + } + } else + writeToErrorLog('scandir(' . $sDirectoryPath . '): failed to open dir'); + } + } + return $aTreeview; + } + + /* + * Retourne l'arborescence d'un répertoire formaté pour "bootstrap-treeview". + */ + + function getDirStructure($sDirectoryPath, $sSubDirectoryName, $sDirectoryName, $sFolder) { + $aFilteredDir['data'] = array('text' => $sSubDirectoryName, 'selectable' => true, 'path' => $sFolder . '/' . $sSubDirectoryName); + $aDir = scandir($sDirectoryPath); + // Les répertoires sont affichés avant les fichiers (idem windows). + $aSortedDir = array(); + $aSortedFiles = array(); + foreach ($aDir as $sName) { + $sPath = $sDirectoryPath . '/' . $sName; + $sFileType = filetype($sPath); + if ($sFileType == 'dir') + $aSortedDir[] = $sName; + else + $aSortedFiles[] = $sName; + } + sort($aSortedDir, SORT_STRING|SORT_FLAG_CASE); + sort($aSortedFiles, SORT_STRING|SORT_FLAG_CASE); + $aDir = array_merge($aSortedDir, $aSortedFiles); + // + if ($sSubDirectoryName !== $sDirectoryName) + $sFolder .= '/' . $sSubDirectoryName; + + foreach ($aDir as $sName) { + $sPath = $sDirectoryPath . '/' . $sName; + $sFileType = filetype($sPath); + // Répertoire ? + if ($sFileType == 'dir') { + if ($sName != '.' && $sName != '..') { + if (is_dir($sPath)) { + $aDirStructure = $this->getDirStructure($sPath . '/', $sName, $sDirectoryName, $sFolder); + //if (!empty($aDirStructure['data']['nodes'])) { + // Structure du répertoire. + $aFilteredDir['data']['nodes'][] = $aDirStructure['data']; + // Liste des fichiers du répertoire. + if (!empty($aDirStructure["files"])) { + foreach ($aDirStructure["files"] as $aFiles) { + $aFilteredDir["files"][] = $aFiles; + } + } + //} + } else + writeToErrorLog('scandir(' . $sPath . '): failed to open dir'); + } + } + // fichier ? + if ($sFileType == 'file') { + // Taille + unité du fichier. + //$iFileSize = filesize($sPath); + $aFileInfos = stat($sPath); + $iFileSizeLabel = $aFileInfos['size']; + $aFileSizeUnity = array('o', 'Ko', 'Mo', 'Go', 'To'); + $i = 0; + while ($iFileSizeLabel > 1024) { + $iFileSizeLabel /= 1024; + $i++; + } + // Sauve la structure du fichier pour le treeview. + $sFileLabel = $sName . ' (' . round($iFileSizeLabel) . ' ' . $aFileSizeUnity[$i] . ')'; + $aFilteredDir['data']['nodes'][] = array( + 'folder' => $sFolder, + 'directory' => $sDirectoryName, + 'name' => $sName, + 'text' => $sFileLabel, + 'icon' => 'glyphicon glyphicon-file', + 'path' => str_replace('//', '/', $sFolder . '/' . '/' . $sName), + //'tags' => array('<span class="glyphicon glyphicon-trash"></span>'), + 'size' => $aFileInfos['size'], + 'selectable' => false + ); + // Sauve le nom et la date du fichier. + $aFilteredDir['files'][] = array( + 'path' => str_replace('//', '/', $sFolder . '/' . '/' . $sName), + //'last_modif' => floor((time() - $aFileInfos['mtime']) / (24 * 3600)) // dernière modif. (Nb jours). + ); + } + } + return $aFilteredDir; + } + + /** + * @SWG\Post(path="/exploitations/SharedDirectory/Directory", + * tags={"Exploitations"}, + * summary="Create directory", + * description="Request to create a directory", + * operationId="POST", + * produces={"application/xml", "application/json"}, + * @SWG\Parameter( + * name="token", + * in="formData", + * description="user token", + * required=true, + * type="string" + * ), + * @SWG\Parameter( + * name="directory_path", + * in="formData", + * description="path of the directory", + * required=true, + * type="string" + * ), + * @SWG\Response( + * response=200, + * description="Poprerties Response", + * @SWG\Schema(ref="#/definitions/exploitations/SharedDirectory") + * ) + * ) + */ + + /** + * @SWG\Post(path="/exploitations/SharedDirectory/File", + * tags={"Exploitations"}, + * summary="Ulpload file", + * description="Request to upload a file", + * operationId="POST", + * produces={"application/xml", "application/json"}, + * @SWG\Parameter( + * name="token", + * in="formData", + * description="user token", + * required=true, + * type="string" + * ), + * @SWG\Parameter( + * name="directory_path", + * in="formData", + * description="path of the directory", + * required=true, + * type="string" + * ), + * @SWG\Response( + * response=200, + * description="Poprerties Response", + * @SWG\Schema(ref="#/definitions/exploitations/SharedDirectory") + * ) + * ) + */ + + /** + * insert user + * @return id of the user created + */ + function POST() { + // Répertoire partagé. + if (strtolower($this->aPath[2]) == 'shareddirectory') { + // Création d'un répertoire. + if (strtolower($this->aPath[3]) == 'directory') { + if (!empty($this->aValues['directory_path'])) { + if (mkdir($this->aProperties['shared_dir'] . '/' . $this->aValues['directory_path'])) { + $aXmlRacineAttribute['status'] = 1; + $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); + } + else { + $oError = new VitisError(1, 'DIRECTORY_CREATION_ERROR_EXPLOITATION_EXPLOITATION'); + $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); + } + } + } + // Upload d'un fichier. + else if (strtolower($this->aPath[3]) == 'file') { + if (!empty($_FILES["file"])) { + if (!empty($this->aValues['directory_path'])) + $sFilePath = $this->aProperties['shared_dir'] . '/' . $this->aValues['directory_path'] . '/' . $_FILES["file"]["name"]; + else + $sFilePath = $this->aProperties['shared_dir'] . '/' . $_FILES["file"]["name"]; + if (!move_uploaded_file($_FILES['file']['tmp_name'], $sFilePath)) { + $oError = new VitisError(1, 'FILE_CREATION_ERROR_EXPLOITATION_EXPLOITATION'); + $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); + } + else { + $aXmlRacineAttribute['status'] = 1; + $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); + } + } + } + } + return $sMessage; + } + + /** + * @SWG\Delete(path="/exploitations/SharedDirectory", + * tags={"Exploitations"}, + * summary="delete shared directory files", + * description="Request to delete shared directory files", + * operationId="DELETE", + * produces={"application/json", "application/x-vm-json"}, + * @SWG\Parameter( + * name="token", + * in="query", + * description="user token", + * required=true, + * type="string" + * ), + * * @SWG\Parameter( + * name="idList", + * in="query", + * description="path of the files", + * required=true, + * type="string" + * ), + * @SWG\Response( + * response=200, + * description="Poprerties Response", + * @SWG\Schema(ref="#/definitions/exploitations/SharedDirectory") + * ) + * ) + */ + + /** + * delete exploitation files + */ + function DELETE() { + // Verify connection. + if (!empty($this->oConnection->oError)) { + $oError = $this->oConnection->oError; + $aXmlRacineAttribute['status'] = 0; + $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); + return $sMessage; + } + // Privilège "vitis_admin" requis. + if (!in_array('vitis_admin', $this->oConnection->aPrivileges)) { + $oError = new VitisError(1, "Rights problem : you don't have right to delete shared directory files"); + $aXmlRacineAttribute['status'] = 0; + $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); + return $sMessage; + } + // Suppression des fichiers. + $aXmlRacineAttribute['status'] = 1; + $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); + if (!empty($this->aValues['idList'])) { + $aPathsToDelete = explode('|', $this->aValues['idList']); + $aDirToDelete = array(); + foreach ($aPathsToDelete as $sPath) { + $sPath = str_replace('//', '/', $this->aProperties['shared_dir'] . $sPath); + if (file_exists($sPath)) { + if (is_dir($sPath)) + array_unshift($aDirToDelete, $sPath); + else + unlink($sPath); + } + } + } + // Suppression des répertoires. + foreach ($aDirToDelete as $sPath) { + rmdir($sPath); + } + // + return $sMessage; + } +} +?> \ No newline at end of file diff --git a/vas/rest/ws/vitis/FormatDate.class.inc b/src/vitis/vas/rest/ws/vitis/FormatDate.class.inc similarity index 100% rename from vas/rest/ws/vitis/FormatDate.class.inc rename to src/vitis/vas/rest/ws/vitis/FormatDate.class.inc diff --git a/vas/rest/ws/vitis/FormatDates.class.inc b/src/vitis/vas/rest/ws/vitis/FormatDates.class.inc similarity index 100% rename from vas/rest/ws/vitis/FormatDates.class.inc rename to src/vitis/vas/rest/ws/vitis/FormatDates.class.inc diff --git a/vas/rest/ws/vitis/GenericQuery.class.inc b/src/vitis/vas/rest/ws/vitis/GenericQuery.class.inc similarity index 100% rename from vas/rest/ws/vitis/GenericQuery.class.inc rename to src/vitis/vas/rest/ws/vitis/GenericQuery.class.inc diff --git a/vas/rest/ws/vitis/GenericQuerys.class.inc b/src/vitis/vas/rest/ws/vitis/GenericQuerys.class.inc old mode 100755 new mode 100644 similarity index 100% rename from vas/rest/ws/vitis/GenericQuerys.class.inc rename to src/vitis/vas/rest/ws/vitis/GenericQuerys.class.inc diff --git a/vas/rest/ws/vitis/GenericQuerys.class.sql.inc b/src/vitis/vas/rest/ws/vitis/GenericQuerys.class.sql.inc similarity index 100% rename from vas/rest/ws/vitis/GenericQuerys.class.sql.inc rename to src/vitis/vas/rest/ws/vitis/GenericQuerys.class.sql.inc diff --git a/vas/rest/ws/vitis/Group.class.inc b/src/vitis/vas/rest/ws/vitis/Group.class.inc similarity index 100% rename from vas/rest/ws/vitis/Group.class.inc rename to src/vitis/vas/rest/ws/vitis/Group.class.inc diff --git a/vas/rest/ws/vitis/Groups.class.inc b/src/vitis/vas/rest/ws/vitis/Groups.class.inc similarity index 100% rename from vas/rest/ws/vitis/Groups.class.inc rename to src/vitis/vas/rest/ws/vitis/Groups.class.inc diff --git a/vas/rest/ws/vitis/Logs.class.inc b/src/vitis/vas/rest/ws/vitis/Logs.class.inc similarity index 100% rename from vas/rest/ws/vitis/Logs.class.inc rename to src/vitis/vas/rest/ws/vitis/Logs.class.inc diff --git a/vas/rest/ws/vitis/Mode.class.inc b/src/vitis/vas/rest/ws/vitis/Mode.class.inc similarity index 100% rename from vas/rest/ws/vitis/Mode.class.inc rename to src/vitis/vas/rest/ws/vitis/Mode.class.inc diff --git a/vas/rest/ws/vitis/Modes.class.inc b/src/vitis/vas/rest/ws/vitis/Modes.class.inc old mode 100755 new mode 100644 similarity index 93% rename from vas/rest/ws/vitis/Modes.class.inc rename to src/vitis/vas/rest/ws/vitis/Modes.class.inc index f9754ec0..c838ebe1 --- a/vas/rest/ws/vitis/Modes.class.inc +++ b/src/vitis/vas/rest/ws/vitis/Modes.class.inc @@ -34,8 +34,8 @@ class Modes extends Vitis { * construct * @param type $aPath url of the request * @param type $aValues parameters of the request - * @param type $properties properties - * @param type $bShortcut false to reinit variables + * @param type $properties properties + * @param type $bShortcut false to reinit variables * @param type $oConnection connection object */ function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) { @@ -131,6 +131,11 @@ class Modes extends Vitis { */ function GET() { if ($this->oConnection->oError == null) { + if (!empty($this->aProperties["public_token"]) && $this->aProperties["allow_public_connection"] === true){ + if($this->aProperties["public_token"] === $this->aValues['token']){ + $this->aValues["filter"] = '{"relation": "AND","operators":[{"column": "mode_id","compare_operator": "<>","value": "user"}]}'; + } + } if (isset($this->aValues['action']) && !empty($this->aValues['action'])) { if ($this->aValues['action'] == 'getAll') { $aReturn = $this->genericGet($this->aProperties['schema_framework'], "vm_mode_rolname", "mode_id", true); diff --git a/vas/rest/ws/vitis/PhpInfo.class.inc b/src/vitis/vas/rest/ws/vitis/PhpInfo.class.inc similarity index 100% rename from vas/rest/ws/vitis/PhpInfo.class.inc rename to src/vitis/vas/rest/ws/vitis/PhpInfo.class.inc diff --git a/vas/rest/ws/vitis/PrivateToken.class.inc b/src/vitis/vas/rest/ws/vitis/PrivateToken.class.inc similarity index 66% rename from vas/rest/ws/vitis/PrivateToken.class.inc rename to src/vitis/vas/rest/ws/vitis/PrivateToken.class.inc index 649dc10c..8295dcb3 100644 --- a/vas/rest/ws/vitis/PrivateToken.class.inc +++ b/src/vitis/vas/rest/ws/vitis/PrivateToken.class.inc @@ -134,76 +134,85 @@ class PrivateToken extends Vitis { } if (!$bXMLError) { - //connect to database - $oBd = new BD($this->aValues["user"], $this->aValues["password"], $this->aProperties["database"], $this->aProperties["server"], $this->aProperties["port"], $this->aProperties["sgbd"], $this->aProperties["page_encoding"]); - $_SESSION["ses_Login"] = $this->aValues["user"]; - $ciphertext = stringToHex(des($this->aValues["user"], $this->aValues["password"], 1, 0)); - $_SESSION["ses_Password"] = $ciphertext; - $_SESSION["ses_Remember"] = false; - $_SESSION["ses_Date"] = date('Y-m-d H:i:s', time() + ($this->aValues['duration'] * 60)); - if ($oBd->erreurRencontree) { - $oError = new VitisError(1, $oBd->sMessage); + // Teste si la base de données est joignable. + if (fsockopen($this->aProperties["server"], $this->aProperties["port"], $errno, $errstr) === false) { + $oError = new VitisError(19, "The database is unreachable"); $aXmlRacineAttribute['status'] = 0; $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); - $bXMLError = true; - } else { - // Privilège 'vitis_user' obligatoire. - $aParams['sLogin'] = array('value' => $this->aValues["user"], 'type' => 'string'); - $oPDOresult = $oBd->executeWithParams($aSql['getUserConnectionPrivileges'], $aParams); - if ($oBd->nombreLigne($oPDOresult) == 0) { - $oError = new VitisError(18, "No 'vitis_user' privilege."); + writeToErrorLog("ERROR : " . $errstr . ' ' . $this->aValues["user"] . "'."); + } + else { + //connect to database + $oBd = new BD($this->aValues["user"], $this->aValues["password"], $this->aProperties["database"], $this->aProperties["server"], $this->aProperties["port"], $this->aProperties["sgbd"], $this->aProperties["page_encoding"]); + $_SESSION["ses_Login"] = $this->aValues["user"]; + $ciphertext = stringToHex(des($this->aValues["user"], $this->aValues["password"], 1, 0)); + $_SESSION["ses_Password"] = $ciphertext; + $_SESSION["ses_Remember"] = false; + $_SESSION["ses_Date"] = date('Y-m-d H:i:s', time() + ($this->aValues['duration'] * 60)); + if ($oBd->erreurRencontree) { + $oError = new VitisError(1, $oBd->sMessage); $aXmlRacineAttribute['status'] = 0; $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); - writeToErrorLog("ERROR : No 'vitis_user' privilege for user '" . $this->aValues["user"] . "'."); + $bXMLError = true; } else { - // L'utilisateur doit exister dans la table s_vitis.user - $aParams['sSchemaFramework'] = array('value' => $this->aProperties['schema_framework'], 'type' => 'schema_name'); - $aParams['sLogin'] = array('value' => $_SESSION["ses_Login"], 'type' => 'string'); - $oPDOresult = $oBd->executeWithParams($aSql['checkUser'], $aParams); + // Privilège 'vitis_user' obligatoire. + $aParams['sLogin'] = array('value' => $this->aValues["user"], 'type' => 'string'); + $oPDOresult = $oBd->executeWithParams($aSql['getUserConnectionPrivileges'], $aParams); if ($oBd->nombreLigne($oPDOresult) == 0) { - $oError = new VitisError(1, 'The user ' . $_SESSION["ses_Login"] . ' does not exist'); + $oError = new VitisError(18, "No 'vitis_user' privilege."); $aXmlRacineAttribute['status'] = 0; $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); - writeToErrorLog('ERROR : The user ' . $_SESSION["ses_Login"] . ' does not exist.'); + writeToErrorLog("ERROR : No 'vitis_user' privilege for user '" . $this->aValues["user"] . "'."); } else { - //verify the ip from wich the user is connected - $aParams = array(); + // L'utilisateur doit exister dans la table s_vitis.user $aParams['sSchemaFramework'] = array('value' => $this->aProperties['schema_framework'], 'type' => 'schema_name'); $aParams['sLogin'] = array('value' => $_SESSION["ses_Login"], 'type' => 'string'); - $oPDOresult = $oBd->executeWithParams($aSql['checkIP'], $aParams); - $aFields = $oBd->ligneSuivante($oPDOresult); - $oMetadataAccess = new MetadataAccess($oBd, $_SESSION["ses_Login"], $_SESSION["ses_Password"], session_id(), $this->aProperties); - $bAuthorizedIp = $oMetadataAccess->checkUserIp($_SERVER['REMOTE_ADDR']); - if (!$bAuthorizedIp) { - $oError = new VitisError(11, 'Connection to the database forbidden with the ip \'' . $_SERVER['REMOTE_ADDR'] . '\'.'); + $oPDOresult = $oBd->executeWithParams($aSql['checkUser'], $aParams); + if ($oBd->nombreLigne($oPDOresult) == 0) { + $oError = new VitisError(1, 'The user ' . $_SESSION["ses_Login"] . ' does not exist'); $aXmlRacineAttribute['status'] = 0; $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); - $bXMLError = true; - writeToErrorLog('ERROR : Connection to the database forbidden with the ip \'' . $_SERVER['REMOTE_ADDR'] . '\'.'); + writeToErrorLog('ERROR : The user ' . $_SESSION["ses_Login"] . ' does not exist.'); } else { + //verify the ip from wich the user is connected + $aParams = array(); + $aParams['sSchemaFramework'] = array('value' => $this->aProperties['schema_framework'], 'type' => 'schema_name'); + $aParams['sLogin'] = array('value' => $_SESSION["ses_Login"], 'type' => 'string'); + $oPDOresult = $oBd->executeWithParams($aSql['checkIP'], $aParams); + $aFields = $oBd->ligneSuivante($oPDOresult); + $oMetadataAccess = new MetadataAccess($oBd, $_SESSION["ses_Login"], $_SESSION["ses_Password"], session_id(), $this->aProperties); + $bAuthorizedIp = $oMetadataAccess->checkUserIp($_SERVER['REMOTE_ADDR']); + if (!$bAuthorizedIp) { + $oError = new VitisError(11, 'Connection to the database forbidden with the ip \'' . $_SERVER['REMOTE_ADDR'] . '\'.'); + $aXmlRacineAttribute['status'] = 0; + $sMessage = $oError->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); + $bXMLError = true; + writeToErrorLog('ERROR : Connection to the database forbidden with the ip \'' . $_SERVER['REMOTE_ADDR'] . '\'.'); + } else { - error_log('session_id():' . session_id()); + error_log('session_id():' . session_id()); - $oConnection = new Connection(Array('token' => session_id()), $this->aProperties); - $this->aFields['token'] = session_id(); - $this->aFields['user'] = $_SESSION["ses_Login"]; - $this->aFields['validity_date'] = date('Y-m-d H:i:s', time() + ($this->aValues['duration'] * 60)); - $this->aFields['user_id'] = $aFields['user_id']; - $this->aFields['privileges'] = $oConnection->aPrivileges; - if ($this->aValues['output'] === 'application/xml') { - $this->aFields['privileges'] = implode(',', $this->aFields['privileges']); + $oConnection = new Connection(Array('token' => session_id()), $this->aProperties); + $this->aFields['token'] = session_id(); + $this->aFields['user'] = $_SESSION["ses_Login"]; + $this->aFields['validity_date'] = date('Y-m-d H:i:s', time() + ($this->aValues['duration'] * 60)); + $this->aFields['user_id'] = $aFields['user_id']; + $this->aFields['privileges'] = $oConnection->aPrivileges; + if ($this->aValues['output'] === 'application/xml') { + $this->aFields['privileges'] = implode(',', $this->aFields['privileges']); + } + $_SESSION["ses_user_id"] = $aFields['user_id']; + $_SESSION["ses_restriction"] = $aFields['restriction']; + $aXmlRacineAttribute['status'] = 1; + $aParams = array(); + $aParams['sSchemaFramework'] = array('value' => $this->aProperties['schema_framework'], 'type' => 'schema_name'); + $aParams['user_id'] = array('value' => $aFields['user_id'], 'type' => 'number'); + $aParams['date'] = array('value' => gmdate('Y-m-d H:i:s'), 'type' => 'string'); + $oPDOresult = $oBd->executeWithParams($aSql['updateLastConnection'], $aParams); + $sLogString = "connection" . $this->aProperties["log_delim"] . $_SESSION["ses_Login"] . $this->aProperties["log_delim"] . session_id(); + writeToLog($sLogString, $this->aProperties["connexion_log_file"]); + $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); } - $_SESSION["ses_user_id"] = $aFields['user_id']; - $_SESSION["ses_restriction"] = $aFields['restriction']; - $aXmlRacineAttribute['status'] = 1; - $aParams = array(); - $aParams['sSchemaFramework'] = array('value' => $this->aProperties['schema_framework'], 'type' => 'schema_name'); - $aParams['user_id'] = array('value' => $aFields['user_id'], 'type' => 'number'); - $aParams['date'] = array('value' => gmdate('Y-m-d H:i:s'), 'type' => 'string'); - $oPDOresult = $oBd->executeWithParams($aSql['updateLastConnection'], $aParams); - $sLogString = "connection" . $this->aProperties["log_delim"] . $_SESSION["ses_Login"] . $this->aProperties["log_delim"] . session_id(); - writeToLog($sLogString, $this->aProperties["connexion_log_file"]); - $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); } } } diff --git a/vas/rest/ws/vitis/Privilege.class.inc b/src/vitis/vas/rest/ws/vitis/Privilege.class.inc similarity index 100% rename from vas/rest/ws/vitis/Privilege.class.inc rename to src/vitis/vas/rest/ws/vitis/Privilege.class.inc diff --git a/vas/rest/ws/vitis/Privileges.class.inc b/src/vitis/vas/rest/ws/vitis/Privileges.class.inc similarity index 100% rename from vas/rest/ws/vitis/Privileges.class.inc rename to src/vitis/vas/rest/ws/vitis/Privileges.class.inc diff --git a/vas/rest/ws/vitis/Properties.class.inc b/src/vitis/vas/rest/ws/vitis/Properties.class.inc similarity index 100% rename from vas/rest/ws/vitis/Properties.class.inc rename to src/vitis/vas/rest/ws/vitis/Properties.class.inc diff --git a/vas/rest/ws/vitis/PublicToken.class.inc b/src/vitis/vas/rest/ws/vitis/PublicToken.class.inc similarity index 100% rename from vas/rest/ws/vitis/PublicToken.class.inc rename to src/vitis/vas/rest/ws/vitis/PublicToken.class.inc diff --git a/vas/rest/ws/vitis/Ressources.class.inc b/src/vitis/vas/rest/ws/vitis/Ressources.class.inc similarity index 100% rename from vas/rest/ws/vitis/Ressources.class.inc rename to src/vitis/vas/rest/ws/vitis/Ressources.class.inc diff --git a/vas/rest/ws/vitis/Schema.class.inc b/src/vitis/vas/rest/ws/vitis/Schema.class.inc similarity index 100% rename from vas/rest/ws/vitis/Schema.class.inc rename to src/vitis/vas/rest/ws/vitis/Schema.class.inc diff --git a/vas/rest/ws/vitis/SmtpServer.class.inc b/src/vitis/vas/rest/ws/vitis/SmtpServer.class.inc similarity index 100% rename from vas/rest/ws/vitis/SmtpServer.class.inc rename to src/vitis/vas/rest/ws/vitis/SmtpServer.class.inc diff --git a/vas/rest/ws/vitis/Tab.class.inc b/src/vitis/vas/rest/ws/vitis/Tab.class.inc similarity index 100% rename from vas/rest/ws/vitis/Tab.class.inc rename to src/vitis/vas/rest/ws/vitis/Tab.class.inc diff --git a/vas/rest/ws/vitis/Table.class.inc b/src/vitis/vas/rest/ws/vitis/Table.class.inc similarity index 100% rename from vas/rest/ws/vitis/Table.class.inc rename to src/vitis/vas/rest/ws/vitis/Table.class.inc diff --git a/vas/rest/ws/vitis/Tabs.class.inc b/src/vitis/vas/rest/ws/vitis/Tabs.class.inc similarity index 100% rename from vas/rest/ws/vitis/Tabs.class.inc rename to src/vitis/vas/rest/ws/vitis/Tabs.class.inc diff --git a/vas/rest/ws/vitis/TimeZone.class.inc b/src/vitis/vas/rest/ws/vitis/TimeZone.class.inc similarity index 100% rename from vas/rest/ws/vitis/TimeZone.class.inc rename to src/vitis/vas/rest/ws/vitis/TimeZone.class.inc diff --git a/vas/rest/ws/vitis/TimeZones.class.inc b/src/vitis/vas/rest/ws/vitis/TimeZones.class.inc similarity index 100% rename from vas/rest/ws/vitis/TimeZones.class.inc rename to src/vitis/vas/rest/ws/vitis/TimeZones.class.inc diff --git a/vas/rest/ws/vitis/User.class.inc b/src/vitis/vas/rest/ws/vitis/User.class.inc similarity index 100% rename from vas/rest/ws/vitis/User.class.inc rename to src/vitis/vas/rest/ws/vitis/User.class.inc diff --git a/vas/rest/ws/vitis/Users.class.inc b/src/vitis/vas/rest/ws/vitis/Users.class.inc similarity index 100% rename from vas/rest/ws/vitis/Users.class.inc rename to src/vitis/vas/rest/ws/vitis/Users.class.inc diff --git a/vas/rest/ws/vitis/Versions.class.inc b/src/vitis/vas/rest/ws/vitis/Versions.class.inc similarity index 100% rename from vas/rest/ws/vitis/Versions.class.inc rename to src/vitis/vas/rest/ws/vitis/Versions.class.inc diff --git a/vas/rest/ws/vitis/Vitis.class.inc b/src/vitis/vas/rest/ws/vitis/Vitis.class.inc old mode 100755 new mode 100644 similarity index 100% rename from vas/rest/ws/vitis/Vitis.class.inc rename to src/vitis/vas/rest/ws/vitis/Vitis.class.inc diff --git a/vas/rest/ws/vitis/Vitis.class.sql.inc b/src/vitis/vas/rest/ws/vitis/Vitis.class.sql.inc similarity index 100% rename from vas/rest/ws/vitis/Vitis.class.sql.inc rename to src/vitis/vas/rest/ws/vitis/Vitis.class.sql.inc diff --git a/vas/rest/ws/vitis/VitisSection.class.inc b/src/vitis/vas/rest/ws/vitis/VitisSection.class.inc similarity index 96% rename from vas/rest/ws/vitis/VitisSection.class.inc rename to src/vitis/vas/rest/ws/vitis/VitisSection.class.inc index cd1e1840..1328958b 100755 --- a/vas/rest/ws/vitis/VitisSection.class.inc +++ b/src/vitis/vas/rest/ws/vitis/VitisSection.class.inc @@ -30,7 +30,7 @@ class VitisSection extends Vitis { */ function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) { parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection); - $this->aSelectedFields = Array("section_id", "tab_id", "event", "index", "label", "name", "link_table_name", "template", "ressource_id"); + $this->aSelectedFields = Array("section_id", "tab_id", "event", "index", "label", "name", "link_table_name", "template", "ressource_id", "module_name"); } /** diff --git a/vas/rest/ws/vitis/VitisSections.class.inc b/src/vitis/vas/rest/ws/vitis/VitisSections.class.inc similarity index 95% rename from vas/rest/ws/vitis/VitisSections.class.inc rename to src/vitis/vas/rest/ws/vitis/VitisSections.class.inc index fb91cfe1..3e7710ce 100755 --- a/vas/rest/ws/vitis/VitisSections.class.inc +++ b/src/vitis/vas/rest/ws/vitis/VitisSections.class.inc @@ -45,7 +45,7 @@ class VitisSections extends Vitis { */ function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) { parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection); - $this->aSelectedFields = Array("section_id", "tab_id", "event", "index", "label", "name", "link_table_name", "template", "ressource_id", "tab_name", "mode_id"); + $this->aSelectedFields = Array("section_id", "tab_id", "event", "index", "label", "name", "link_table_name", "template", "ressource_id", "tab_name", "mode_id", "module_name"); } /** diff --git a/vas/rest/ws/vitis/WebServices.class.inc b/src/vitis/vas/rest/ws/vitis/WebServices.class.inc similarity index 100% rename from vas/rest/ws/vitis/WebServices.class.inc rename to src/vitis/vas/rest/ws/vitis/WebServices.class.inc diff --git a/vas/rest/ws/vitis/overview.phtml b/src/vitis/vas/rest/ws/vitis/overview.phtml similarity index 100% rename from vas/rest/ws/vitis/overview.phtml rename to src/vitis/vas/rest/ws/vitis/overview.phtml diff --git a/vas/sql/sqlQueries.xml b/src/vitis/vas/sql/sqlQueries.xml old mode 100755 new mode 100644 similarity index 100% rename from vas/sql/sqlQueries.xml rename to src/vitis/vas/sql/sqlQueries.xml diff --git a/src/vitis/vas/tmp/file_to_delete.txt b/src/vitis/vas/tmp/file_to_delete.txt new file mode 100755 index 00000000..e69de29b diff --git a/vas/util/coordsys.txt b/src/vitis/vas/util/coordsys.txt similarity index 100% rename from vas/util/coordsys.txt rename to src/vitis/vas/util/coordsys.txt diff --git a/vas/util/migration/anc/SplitAddress.fmx b/src/vitis/vas/util/migration/anc/SplitAddress.fmx similarity index 100% rename from vas/util/migration/anc/SplitAddress.fmx rename to src/vitis/vas/util/migration/anc/SplitAddress.fmx diff --git a/vas/util/migration/anc/lisez-moi.txt b/src/vitis/vas/util/migration/anc/lisez-moi.txt similarity index 100% rename from vas/util/migration/anc/lisez-moi.txt rename to src/vitis/vas/util/migration/anc/lisez-moi.txt diff --git a/vas/util/migration/anc/migration_anc_veremap__vmap.fmw b/src/vitis/vas/util/migration/anc/migration_anc_veremap__vmap.fmw similarity index 100% rename from vas/util/migration/anc/migration_anc_veremap__vmap.fmw rename to src/vitis/vas/util/migration/anc/migration_anc_veremap__vmap.fmw diff --git a/vas/util/migration/migration_user_and_group.fmw b/src/vitis/vas/util/migration/migration_user_and_group.fmw similarity index 100% rename from vas/util/migration/migration_user_and_group.fmw rename to src/vitis/vas/util/migration/migration_user_and_group.fmw diff --git a/vas/util/migration/migration_veremap_layer.fmw b/src/vitis/vas/util/migration/migration_veremap_layer.fmw similarity index 100% rename from vas/util/migration/migration_veremap_layer.fmw rename to src/vitis/vas/util/migration/migration_veremap_layer.fmw diff --git a/vas/util/printserver/client/lib/angular/LICENSE b/src/vitis/vas/util/printserver/client/lib/angular/LICENSE similarity index 100% rename from vas/util/printserver/client/lib/angular/LICENSE rename to src/vitis/vas/util/printserver/client/lib/angular/LICENSE diff --git a/vas/util/printserver/client/lib/angular/angular.js b/src/vitis/vas/util/printserver/client/lib/angular/angular.js similarity index 100% rename from vas/util/printserver/client/lib/angular/angular.js rename to src/vitis/vas/util/printserver/client/lib/angular/angular.js diff --git a/vas/util/printserver/client/lib/angular/angular.min.js b/src/vitis/vas/util/printserver/client/lib/angular/angular.min.js similarity index 100% rename from vas/util/printserver/client/lib/angular/angular.min.js rename to src/vitis/vas/util/printserver/client/lib/angular/angular.min.js diff --git a/vas/util/printserver/client/lib/angular/angular.min.js.map b/src/vitis/vas/util/printserver/client/lib/angular/angular.min.js.map similarity index 100% rename from vas/util/printserver/client/lib/angular/angular.min.js.map rename to src/vitis/vas/util/printserver/client/lib/angular/angular.min.js.map diff --git a/vas/util/printserver/client/lib/angular/modules/angular-route/angular-route.js b/src/vitis/vas/util/printserver/client/lib/angular/modules/angular-route/angular-route.js similarity index 100% rename from vas/util/printserver/client/lib/angular/modules/angular-route/angular-route.js rename to src/vitis/vas/util/printserver/client/lib/angular/modules/angular-route/angular-route.js diff --git a/vas/util/printserver/client/lib/angular/modules/angular-translate/LICENSE b/src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/LICENSE similarity index 100% rename from vas/util/printserver/client/lib/angular/modules/angular-translate/LICENSE rename to src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/LICENSE diff --git a/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-partial.js b/src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-partial.js similarity index 100% rename from vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-partial.js rename to src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-partial.js diff --git a/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-partial.min.js b/src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-partial.min.js similarity index 100% rename from vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-partial.min.js rename to src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-partial.min.js diff --git a/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-static-files.js b/src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-static-files.js similarity index 100% rename from vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-static-files.js rename to src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-static-files.js diff --git a/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-static-files.min.js b/src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-static-files.min.js similarity index 100% rename from vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-static-files.min.js rename to src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-static-files.min.js diff --git a/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate.js b/src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate.js similarity index 100% rename from vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate.js rename to src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate.js diff --git a/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate.min.js b/src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate.min.js similarity index 100% rename from vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate.min.js rename to src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate.min.js diff --git a/vas/util/printserver/client/lib/angular/modules/sanitize/angular-sanitize.js b/src/vitis/vas/util/printserver/client/lib/angular/modules/sanitize/angular-sanitize.js similarity index 100% rename from vas/util/printserver/client/lib/angular/modules/sanitize/angular-sanitize.js rename to src/vitis/vas/util/printserver/client/lib/angular/modules/sanitize/angular-sanitize.js diff --git a/vas/util/printserver/client/lib/angular/modules/sanitize/angular-sanitize.min.js b/src/vitis/vas/util/printserver/client/lib/angular/modules/sanitize/angular-sanitize.min.js similarity index 100% rename from vas/util/printserver/client/lib/angular/modules/sanitize/angular-sanitize.min.js rename to src/vitis/vas/util/printserver/client/lib/angular/modules/sanitize/angular-sanitize.min.js diff --git a/vas/util/printserver/client/lib/angular/modules/sanitize/angular-sanitize.min.js.map b/src/vitis/vas/util/printserver/client/lib/angular/modules/sanitize/angular-sanitize.min.js.map similarity index 100% rename from vas/util/printserver/client/lib/angular/modules/sanitize/angular-sanitize.min.js.map rename to src/vitis/vas/util/printserver/client/lib/angular/modules/sanitize/angular-sanitize.min.js.map diff --git a/vas/util/printserver/client/lib/angular/modules/ui-codemirror/LICENSE b/src/vitis/vas/util/printserver/client/lib/angular/modules/ui-codemirror/LICENSE similarity index 100% rename from vas/util/printserver/client/lib/angular/modules/ui-codemirror/LICENSE rename to src/vitis/vas/util/printserver/client/lib/angular/modules/ui-codemirror/LICENSE diff --git a/vas/util/printserver/client/lib/angular/modules/ui-codemirror/ui-codemirror.min.js b/src/vitis/vas/util/printserver/client/lib/angular/modules/ui-codemirror/ui-codemirror.min.js similarity index 100% rename from vas/util/printserver/client/lib/angular/modules/ui-codemirror/ui-codemirror.min.js rename to src/vitis/vas/util/printserver/client/lib/angular/modules/ui-codemirror/ui-codemirror.min.js diff --git a/vas/util/printserver/client/lib/angular/modules/ui-grid/LICENSE.md b/src/vitis/vas/util/printserver/client/lib/angular/modules/ui-grid/LICENSE.md similarity index 100% rename from vas/util/printserver/client/lib/angular/modules/ui-grid/LICENSE.md rename to src/vitis/vas/util/printserver/client/lib/angular/modules/ui-grid/LICENSE.md diff --git a/vas/util/printserver/client/lib/angular/modules/ui-grid/plugins/draggable-rows.js b/src/vitis/vas/util/printserver/client/lib/angular/modules/ui-grid/plugins/draggable-rows.js similarity index 100% rename from vas/util/printserver/client/lib/angular/modules/ui-grid/plugins/draggable-rows.js rename to src/vitis/vas/util/printserver/client/lib/angular/modules/ui-grid/plugins/draggable-rows.js diff --git a/vas/util/printserver/client/lib/angular/modules/ui-grid/ui-grid.js b/src/vitis/vas/util/printserver/client/lib/angular/modules/ui-grid/ui-grid.js similarity index 100% rename from vas/util/printserver/client/lib/angular/modules/ui-grid/ui-grid.js rename to src/vitis/vas/util/printserver/client/lib/angular/modules/ui-grid/ui-grid.js diff --git a/vas/util/printserver/client/lib/angular/modules/ui-grid/ui-grid.min.js b/src/vitis/vas/util/printserver/client/lib/angular/modules/ui-grid/ui-grid.min.js similarity index 100% rename from vas/util/printserver/client/lib/angular/modules/ui-grid/ui-grid.min.js rename to src/vitis/vas/util/printserver/client/lib/angular/modules/ui-grid/ui-grid.min.js diff --git a/vas/util/printserver/client/lib/angular/modules/ui-tinymce/LICENSE b/src/vitis/vas/util/printserver/client/lib/angular/modules/ui-tinymce/LICENSE similarity index 100% rename from vas/util/printserver/client/lib/angular/modules/ui-tinymce/LICENSE rename to src/vitis/vas/util/printserver/client/lib/angular/modules/ui-tinymce/LICENSE diff --git a/vas/util/printserver/client/lib/angular/modules/ui-tinymce/tinymce.js b/src/vitis/vas/util/printserver/client/lib/angular/modules/ui-tinymce/tinymce.js similarity index 100% rename from vas/util/printserver/client/lib/angular/modules/ui-tinymce/tinymce.js rename to src/vitis/vas/util/printserver/client/lib/angular/modules/ui-tinymce/tinymce.js diff --git a/vas/util/printserver/client/lib/bootstrap/LICENSE b/src/vitis/vas/util/printserver/client/lib/bootstrap/LICENSE similarity index 100% rename from vas/util/printserver/client/lib/bootstrap/LICENSE rename to src/vitis/vas/util/printserver/client/lib/bootstrap/LICENSE diff --git a/vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.css b/src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.css similarity index 100% rename from vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.css rename to src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.css diff --git a/vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.css.map b/src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.css.map similarity index 100% rename from vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.css.map rename to src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.css.map diff --git a/vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.min.css b/src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.min.css similarity index 100% rename from vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.min.css rename to src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.min.css diff --git a/vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.min.css.map b/src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.min.css.map similarity index 100% rename from vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.min.css.map rename to src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.min.css.map diff --git a/vas/util/printserver/client/lib/bootstrap/css/bootstrap.css b/src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap.css similarity index 100% rename from vas/util/printserver/client/lib/bootstrap/css/bootstrap.css rename to src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap.css diff --git a/vas/util/printserver/client/lib/bootstrap/css/bootstrap.css.map b/src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap.css.map similarity index 100% rename from vas/util/printserver/client/lib/bootstrap/css/bootstrap.css.map rename to src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap.css.map diff --git a/vas/util/printserver/client/lib/bootstrap/css/bootstrap.min.css b/src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap.min.css similarity index 100% rename from vas/util/printserver/client/lib/bootstrap/css/bootstrap.min.css rename to src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap.min.css diff --git a/vas/util/printserver/client/lib/bootstrap/css/bootstrap.min.css.map b/src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap.min.css.map similarity index 100% rename from vas/util/printserver/client/lib/bootstrap/css/bootstrap.min.css.map rename to src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap.min.css.map diff --git a/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.eot b/src/vitis/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.eot similarity index 100% rename from vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.eot rename to src/vitis/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.eot diff --git a/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.svg b/src/vitis/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.svg similarity index 100% rename from vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.svg rename to src/vitis/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.svg diff --git a/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf b/src/vitis/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf similarity index 100% rename from vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf rename to src/vitis/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf diff --git a/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.woff b/src/vitis/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.woff similarity index 100% rename from vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.woff rename to src/vitis/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.woff diff --git a/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2 b/src/vitis/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2 similarity index 100% rename from vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2 rename to src/vitis/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2 diff --git a/vas/util/printserver/client/lib/bootstrap/js/bootstrap.js b/src/vitis/vas/util/printserver/client/lib/bootstrap/js/bootstrap.js similarity index 100% rename from vas/util/printserver/client/lib/bootstrap/js/bootstrap.js rename to src/vitis/vas/util/printserver/client/lib/bootstrap/js/bootstrap.js diff --git a/vas/util/printserver/client/lib/bootstrap/js/bootstrap.min.js b/src/vitis/vas/util/printserver/client/lib/bootstrap/js/bootstrap.min.js similarity index 100% rename from vas/util/printserver/client/lib/bootstrap/js/bootstrap.min.js rename to src/vitis/vas/util/printserver/client/lib/bootstrap/js/bootstrap.min.js diff --git a/vas/util/printserver/client/lib/bootstrap/js/npm.js b/src/vitis/vas/util/printserver/client/lib/bootstrap/js/npm.js similarity index 100% rename from vas/util/printserver/client/lib/bootstrap/js/npm.js rename to src/vitis/vas/util/printserver/client/lib/bootstrap/js/npm.js diff --git a/vas/util/printserver/client/lib/closure/goog/base.js b/src/vitis/vas/util/printserver/client/lib/closure/goog/base.js similarity index 100% rename from vas/util/printserver/client/lib/closure/goog/base.js rename to src/vitis/vas/util/printserver/client/lib/closure/goog/base.js diff --git a/vas/util/printserver/client/lib/jquery/LICENSE.txt b/src/vitis/vas/util/printserver/client/lib/jquery/LICENSE.txt similarity index 100% rename from vas/util/printserver/client/lib/jquery/LICENSE.txt rename to src/vitis/vas/util/printserver/client/lib/jquery/LICENSE.txt diff --git a/vas/util/printserver/client/lib/jquery/jquery-1.11.3.js b/src/vitis/vas/util/printserver/client/lib/jquery/jquery-1.11.3.js similarity index 100% rename from vas/util/printserver/client/lib/jquery/jquery-1.11.3.js rename to src/vitis/vas/util/printserver/client/lib/jquery/jquery-1.11.3.js diff --git a/vas/util/printserver/client/lib/jquery/jquery-1.11.3.min.js b/src/vitis/vas/util/printserver/client/lib/jquery/jquery-1.11.3.min.js similarity index 100% rename from vas/util/printserver/client/lib/jquery/jquery-1.11.3.min.js rename to src/vitis/vas/util/printserver/client/lib/jquery/jquery-1.11.3.min.js diff --git a/vas/util/printserver/client/lib/jquery/jquery-1.11.3.min.map b/src/vitis/vas/util/printserver/client/lib/jquery/jquery-1.11.3.min.map similarity index 100% rename from vas/util/printserver/client/lib/jquery/jquery-1.11.3.min.map rename to src/vitis/vas/util/printserver/client/lib/jquery/jquery-1.11.3.min.map diff --git a/vas/util/printserver/client/lib/mapJSON/MapJSON.js b/src/vitis/vas/util/printserver/client/lib/mapJSON/MapJSON.js similarity index 100% rename from vas/util/printserver/client/lib/mapJSON/MapJSON.js rename to src/vitis/vas/util/printserver/client/lib/mapJSON/MapJSON.js diff --git a/vas/util/printserver/client/lib/ol/ol-debug.js b/src/vitis/vas/util/printserver/client/lib/ol/ol-debug.js similarity index 100% rename from vas/util/printserver/client/lib/ol/ol-debug.js rename to src/vitis/vas/util/printserver/client/lib/ol/ol-debug.js diff --git a/vas/util/printserver/client/lib/ol/ol.css b/src/vitis/vas/util/printserver/client/lib/ol/ol.css similarity index 100% rename from vas/util/printserver/client/lib/ol/ol.css rename to src/vitis/vas/util/printserver/client/lib/ol/ol.css diff --git a/vas/util/printserver/client/lib/ol/ol.js b/src/vitis/vas/util/printserver/client/lib/ol/ol.js similarity index 100% rename from vas/util/printserver/client/lib/ol/ol.js rename to src/vitis/vas/util/printserver/client/lib/ol/ol.js diff --git a/vas/util/printserver/client/lib/ol/ol3-ext/licence.txt b/src/vitis/vas/util/printserver/client/lib/ol/ol3-ext/licence.txt similarity index 100% rename from vas/util/printserver/client/lib/ol/ol3-ext/licence.txt rename to src/vitis/vas/util/printserver/client/lib/ol/ol3-ext/licence.txt diff --git a/vas/util/printserver/client/lib/ol/ol3-ext/readme.txt b/src/vitis/vas/util/printserver/client/lib/ol/ol3-ext/readme.txt similarity index 100% rename from vas/util/printserver/client/lib/ol/ol3-ext/readme.txt rename to src/vitis/vas/util/printserver/client/lib/ol/ol3-ext/readme.txt diff --git a/vas/util/printserver/client/lib/ol/ol3-ext/style/fonts/fontawesome.def.js b/src/vitis/vas/util/printserver/client/lib/ol/ol3-ext/style/fonts/fontawesome.def.js similarity index 100% rename from vas/util/printserver/client/lib/ol/ol3-ext/style/fonts/fontawesome.def.js rename to src/vitis/vas/util/printserver/client/lib/ol/ol3-ext/style/fonts/fontawesome.def.js diff --git a/vas/util/printserver/client/lib/ol/ol3-ext/style/fontsymbol.js b/src/vitis/vas/util/printserver/client/lib/ol/ol3-ext/style/fontsymbol.js similarity index 100% rename from vas/util/printserver/client/lib/ol/ol3-ext/style/fontsymbol.js rename to src/vitis/vas/util/printserver/client/lib/ol/ol3-ext/style/fontsymbol.js diff --git a/vas/util/printserver/client/lib/ol/ol3-ext/style/shadowstyle.js b/src/vitis/vas/util/printserver/client/lib/ol/ol3-ext/style/shadowstyle.js similarity index 100% rename from vas/util/printserver/client/lib/ol/ol3-ext/style/shadowstyle.js rename to src/vitis/vas/util/printserver/client/lib/ol/ol3-ext/style/shadowstyle.js diff --git a/vas/util/printserver/client/lib/ol/ol3-ext/utils/ol.ordering.js b/src/vitis/vas/util/printserver/client/lib/ol/ol3-ext/utils/ol.ordering.js similarity index 100% rename from vas/util/printserver/client/lib/ol/ol3-ext/utils/ol.ordering.js rename to src/vitis/vas/util/printserver/client/lib/ol/ol3-ext/utils/ol.ordering.js diff --git a/vas/util/printserver/client/lib/ol/ol3-veremes/ol.veremes.js b/src/vitis/vas/util/printserver/client/lib/ol/ol3-veremes/ol.veremes.js similarity index 100% rename from vas/util/printserver/client/lib/ol/ol3-veremes/ol.veremes.js rename to src/vitis/vas/util/printserver/client/lib/ol/ol3-veremes/ol.veremes.js diff --git a/vas/util/printserver/client/map/index.html b/src/vitis/vas/util/printserver/client/map/index.html similarity index 100% rename from vas/util/printserver/client/map/index.html rename to src/vitis/vas/util/printserver/client/map/index.html diff --git a/vas/util/printserver/client/map/index.js b/src/vitis/vas/util/printserver/client/map/index.js similarity index 100% rename from vas/util/printserver/client/map/index.js rename to src/vitis/vas/util/printserver/client/map/index.js diff --git a/vas/util/printserver/client/map/map.js b/src/vitis/vas/util/printserver/client/map/map.js similarity index 100% rename from vas/util/printserver/client/map/map.js rename to src/vitis/vas/util/printserver/client/map/map.js diff --git a/vas/util/printserver/client/map/progress.js b/src/vitis/vas/util/printserver/client/map/progress.js similarity index 100% rename from vas/util/printserver/client/map/progress.js rename to src/vitis/vas/util/printserver/client/map/progress.js diff --git a/vas/util/printserver/client/map/projections.js b/src/vitis/vas/util/printserver/client/map/projections.js similarity index 100% rename from vas/util/printserver/client/map/projections.js rename to src/vitis/vas/util/printserver/client/map/projections.js diff --git a/vas/util/printserver/client/map/scale.js b/src/vitis/vas/util/printserver/client/map/scale.js similarity index 100% rename from vas/util/printserver/client/map/scale.js rename to src/vitis/vas/util/printserver/client/map/scale.js diff --git a/vas/util/printserver/client/report/index.html b/src/vitis/vas/util/printserver/client/report/index.html similarity index 100% rename from vas/util/printserver/client/report/index.html rename to src/vitis/vas/util/printserver/client/report/index.html diff --git a/vas/util/printserver/client/report/index.js b/src/vitis/vas/util/printserver/client/report/index.js similarity index 100% rename from vas/util/printserver/client/report/index.js rename to src/vitis/vas/util/printserver/client/report/index.js diff --git a/vas/util/printserver/client/report/report.js b/src/vitis/vas/util/printserver/client/report/report.js similarity index 100% rename from vas/util/printserver/client/report/report.js rename to src/vitis/vas/util/printserver/client/report/report.js diff --git a/vas/util/printserver/client/template/index.html b/src/vitis/vas/util/printserver/client/template/index.html similarity index 100% rename from vas/util/printserver/client/template/index.html rename to src/vitis/vas/util/printserver/client/template/index.html diff --git a/vas/util/printserver/client/template/index.js b/src/vitis/vas/util/printserver/client/template/index.js similarity index 100% rename from vas/util/printserver/client/template/index.js rename to src/vitis/vas/util/printserver/client/template/index.js diff --git a/vas/util/printserver/client/template/template.js b/src/vitis/vas/util/printserver/client/template/template.js similarity index 100% rename from vas/util/printserver/client/template/template.js rename to src/vitis/vas/util/printserver/client/template/template.js diff --git a/vas/util/printserver/client/utils/http.js b/src/vitis/vas/util/printserver/client/utils/http.js similarity index 100% rename from vas/util/printserver/client/utils/http.js rename to src/vitis/vas/util/printserver/client/utils/http.js diff --git a/vas/util/printserver/client/utils/properties.js b/src/vitis/vas/util/printserver/client/utils/properties.js similarity index 100% rename from vas/util/printserver/client/utils/properties.js rename to src/vitis/vas/util/printserver/client/utils/properties.js diff --git a/vas/util/printserver/client/utils/utils.js b/src/vitis/vas/util/printserver/client/utils/utils.js similarity index 100% rename from vas/util/printserver/client/utils/utils.js rename to src/vitis/vas/util/printserver/client/utils/utils.js diff --git a/vas/util/printserver/server/printmap.js b/src/vitis/vas/util/printserver/server/printmap.js similarity index 100% rename from vas/util/printserver/server/printmap.js rename to src/vitis/vas/util/printserver/server/printmap.js diff --git a/vas/util/printserver/server/printreport.js b/src/vitis/vas/util/printserver/server/printreport.js similarity index 100% rename from vas/util/printserver/server/printreport.js rename to src/vitis/vas/util/printserver/server/printreport.js diff --git a/vas/util/printserver/server/printtemplate.js b/src/vitis/vas/util/printserver/server/printtemplate.js similarity index 100% rename from vas/util/printserver/server/printtemplate.js rename to src/vitis/vas/util/printserver/server/printtemplate.js diff --git a/vas/util/printserver/server/saveimage.js b/src/vitis/vas/util/printserver/server/saveimage.js similarity index 100% rename from vas/util/printserver/server/saveimage.js rename to src/vitis/vas/util/printserver/server/saveimage.js diff --git a/vas/util/printserver/server/targetsize.js b/src/vitis/vas/util/printserver/server/targetsize.js similarity index 100% rename from vas/util/printserver/server/targetsize.js rename to src/vitis/vas/util/printserver/server/targetsize.js diff --git a/vas/util/proxy/proxy.php b/src/vitis/vas/util/proxy/proxy.php similarity index 100% rename from vas/util/proxy/proxy.php rename to src/vitis/vas/util/proxy/proxy.php diff --git a/vas/util/webSocket/server/lib/SplClassLoader.php b/src/vitis/vas/util/webSocket/server/lib/SplClassLoader.php similarity index 100% rename from vas/util/webSocket/server/lib/SplClassLoader.php rename to src/vitis/vas/util/webSocket/server/lib/SplClassLoader.php diff --git a/vas/util/webSocket/server/lib/WebSocket/Application/Application.php b/src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/Application.php similarity index 100% rename from vas/util/webSocket/server/lib/WebSocket/Application/Application.php rename to src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/Application.php diff --git a/vas/util/webSocket/server/lib/WebSocket/Application/DemoApplication.php b/src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/DemoApplication.php similarity index 100% rename from vas/util/webSocket/server/lib/WebSocket/Application/DemoApplication.php rename to src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/DemoApplication.php diff --git a/vas/util/webSocket/server/lib/WebSocket/Application/GtfEvents.php b/src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/GtfEvents.php similarity index 100% rename from vas/util/webSocket/server/lib/WebSocket/Application/GtfEvents.php rename to src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/GtfEvents.php diff --git a/vas/util/webSocket/server/lib/WebSocket/Application/Status.php b/src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/Status.php similarity index 100% rename from vas/util/webSocket/server/lib/WebSocket/Application/Status.php rename to src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/Status.php diff --git a/vas/util/webSocket/server/lib/WebSocket/Application/StatusApplication.php b/src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/StatusApplication.php similarity index 100% rename from vas/util/webSocket/server/lib/WebSocket/Application/StatusApplication.php rename to src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/StatusApplication.php diff --git a/vas/util/webSocket/server/lib/WebSocket/Application/VitisApplication.php b/src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/VitisApplication.php similarity index 100% rename from vas/util/webSocket/server/lib/WebSocket/Application/VitisApplication.php rename to src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/VitisApplication.php diff --git a/vas/util/webSocket/server/lib/WebSocket/Application/VmapEvents.php b/src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/VmapEvents.php similarity index 100% rename from vas/util/webSocket/server/lib/WebSocket/Application/VmapEvents.php rename to src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/VmapEvents.php diff --git a/vas/util/webSocket/server/lib/WebSocket/Connection.php b/src/vitis/vas/util/webSocket/server/lib/WebSocket/Connection.php similarity index 100% rename from vas/util/webSocket/server/lib/WebSocket/Connection.php rename to src/vitis/vas/util/webSocket/server/lib/WebSocket/Connection.php diff --git a/vas/util/webSocket/server/lib/WebSocket/Server.php b/src/vitis/vas/util/webSocket/server/lib/WebSocket/Server.php similarity index 100% rename from vas/util/webSocket/server/lib/WebSocket/Server.php rename to src/vitis/vas/util/webSocket/server/lib/WebSocket/Server.php diff --git a/vas/util/webSocket/server/lib/WebSocket/Socket.php b/src/vitis/vas/util/webSocket/server/lib/WebSocket/Socket.php similarity index 100% rename from vas/util/webSocket/server/lib/WebSocket/Socket.php rename to src/vitis/vas/util/webSocket/server/lib/WebSocket/Socket.php diff --git a/vas/util/webSocket/server/server.pem b/src/vitis/vas/util/webSocket/server/server.pem similarity index 100% rename from vas/util/webSocket/server/server.pem rename to src/vitis/vas/util/webSocket/server/server.pem diff --git a/vas/util/webSocket/server/server.php b/src/vitis/vas/util/webSocket/server/server.php similarity index 100% rename from vas/util/webSocket/server/server.php rename to src/vitis/vas/util/webSocket/server/server.php diff --git a/vas/util/writerpick.txt b/src/vitis/vas/util/writerpick.txt similarity index 100% rename from vas/util/writerpick.txt rename to src/vitis/vas/util/writerpick.txt diff --git a/update.bat b/update.bat new file mode 100644 index 00000000..46ef323f --- /dev/null +++ b/update.bat @@ -0,0 +1,10 @@ +@echo off +title Update Vitis App +echo Update Vitis App + +call utils/update_tree.bat + +cd client/conf +call grunt + +pause diff --git a/utils/copy_hooks.sh b/utils/copy_hooks.sh new file mode 100755 index 00000000..f5bed2f2 --- /dev/null +++ b/utils/copy_hooks.sh @@ -0,0 +1,14 @@ +#!/bin/bash +# +# +# Script de mise à jour des hooks client +# +# +# + + +if [ -d "githooks" ]; then + if [ -d "../.git/hooks" ]; then + cp -f githooks/* ../.git/hooks/ + fi +fi diff --git a/utils/get_deps.sh b/utils/get_deps.sh new file mode 100755 index 00000000..92b02739 --- /dev/null +++ b/utils/get_deps.sh @@ -0,0 +1,48 @@ +#!/bin/bash +# +# Récupère l'ensemble des dépendances depuis conf/_install/dependency.xml +# Nécessite xmllint : sudo apt install libxml2-utils +# +# +# +# + + +if [ "../conf/_install/dependency.xml" ]; then + + let depsCount=$(xmllint --xpath 'count(//dependenciesCollection/dependency/name)' ../conf/_install/dependency.xml) + declare -A aDeps + vitisVersion=master + + for (( i=1; i <= $depsCount; i++ )); do + + sName="$(xmllint --xpath 'string(//dependenciesCollection/dependency['$i']/name)' ../conf/_install/dependency.xml)" + sVersion="$(xmllint --xpath 'string(//dependenciesCollection/dependency['$i']/version)' ../conf/_install/dependency.xml)" + sNature="$(xmllint --xpath 'string(//dependenciesCollection/dependency['$i']/nature)' ../conf/_install/dependency.xml)" + + if [ $sName == "vitis" ]; then + vitisVersion=$sVersion + fi + if [ $sNature == "modules" ] || [ $sNature == "web_services" ] || [ $sName == "vitis" ]; then + aDeps[$i, name]=$sName + aDeps[$i, version]=$sVersion + aDeps[$i, nature]=$sNature + fi + + done + + echo "[INFO] dependencies:" + echo "vitis : $vitisVersion" + for (( i=1; i <= $depsCount; i++ )); do + + echo "name: ${aDeps[$i, name]}" + echo "version: ${aDeps[$i, version]}" + + done + + export vitisVersion + export depsCount + export aDeps +else + echo "[ERROR] ../conf/_install/dependency.xml not found" +fi diff --git a/utils/githooks/post-merge b/utils/githooks/post-merge new file mode 100755 index 00000000..548e6ae5 --- /dev/null +++ b/utils/githooks/post-merge @@ -0,0 +1,18 @@ +#!/bin/sh +# +# Hook qui permet de pull toutes les dépendances +# quand on fait un pull sur l'application +# +# +# +# +# + +echo "****** Post-merge Hook ******" +echo "****** Pull subtrees ******" +echo "$(pwd)" + +if [ -d "$(pwd)/utils" ]; then + cd utils + ./pull_subtrees.sh +fi diff --git a/utils/githooks/pre-push b/utils/githooks/pre-push new file mode 100755 index 00000000..50401f9e --- /dev/null +++ b/utils/githooks/pre-push @@ -0,0 +1,21 @@ +#!/bin/sh +# +# Hook qui permet de push toutes les dépendances +# quand on fait un push sur l'application +# +# +# +# +# + +remote="$1" +url="$2" +if [ $remote != $url ]; then + + echo "****** Pre-push Hook ******" + echo "****** Push subtrees ******" + if [ -d "$(pwd)/utils" ]; then + cd utils + ./push_subtrees.sh + fi +fi diff --git a/utils/init_subtrees.sh b/utils/init_subtrees.sh new file mode 100755 index 00000000..7f9c2abf --- /dev/null +++ b/utils/init_subtrees.sh @@ -0,0 +1,48 @@ +#!/bin/bash +# +# +# Script d'initialisation d'un dépot vMap versionné sous git +# Initislise l'ensemble des dépendances sous forme de subtrees +# +# Nécessite xmllint : sudo apt install libxml2-utils +# + + +APP_NAME="vmap" + +# Récupère la liste des dépendances +. ./get_deps.sh + +cd .. +if [ -d "$(pwd)/client" ]; then + rm client +fi +if [ -d "$(pwd)/vas" ]; then + rm vas +fi +if [ -d "$(pwd)/src" ]; then + git rm -r src + git commit -a -m "Reset sources" +fi +mkdir src + +if [[ $depsCount > 0 ]]; then + + # Vitis + echo "---- Init vitis ----" + git subtree add --squash -m "add subtree" --prefix src/vitis "git@gitlab.veremes.net:Development/vitis_apps/sources/vitis.git" $vitisVersion + + echo "---- Init conf ----" + git subtree add --squash -m "add subtree" --prefix src/closure "git@gitlab.veremes.net:Development/vitis_apps/sources/closure.git" master + + # Modules + for (( i=1; i <= $depsCount; i++ )); do + if [ ${aDeps[$i, nature]} == "modules" ]; then + echo "---- Init ${aDeps[$i, name]} : ${aDeps[$i, version]}----" + + # Ajoute le dépôt + git subtree add --squash -m "add subtree" --prefix src/${aDeps[$i, name]} "git@gitlab.veremes.net:Development/vitis_apps/sources/${aDeps[$i, name]}.git" ${aDeps[$i, version]} + fi + done + +fi diff --git a/utils/init_symlinks.sh b/utils/init_symlinks.sh new file mode 100755 index 00000000..c98ed30e --- /dev/null +++ b/utils/init_symlinks.sh @@ -0,0 +1,129 @@ +#!/bin/bash +# +# +# Script d'initialisation d'un dépot vMap versionné sous git +# +# Split repo +# git subtree split -P module/ -b module_split_branch +# +# Add subtree +# git subtree add --prefix vmap "git@gitlab.veremes.net:Development/vitis_apps/sources/Vitis.git" master +# +# + +echo -n "Existing app path (path/empty)? " +read APP_EXISTING_PATH + +# Récupère la liste des dépendances +. ./get_deps.sh + +cd .. + +# Vitis +echo "---- Link vitis ----" +if ! [ -e "$(pwd)/client" ]; then + echo "---- Link vitis 2 ----" + ln -rsf src/vitis/client client +fi +if ! [ -e "$(pwd)/vas" ]; then + ln -rsf src/vitis/vas vas +fi + +# Conf +echo "---- Link conf ----" +if ! [ -e "src/vitis/client/conf" ]; then + ln -rsf conf src/vitis/client/conf +fi +if ! [ -e "conf/closure" ]; then + ln -rsf src/closure/conf conf/closure +fi + +# Modules +if [[ $depsCount > 0 ]]; then + for (( i=1; i <= $depsCount; i++ )); do + if [ ${aDeps[$i, nature]} == "modules" ]; then + if [ ${aDeps[$i, name]:0:7} == "module_" ]; then + module=${aDeps[$i, name]:7} + echo "---- Link module_${module} ----" + if [ -d "$(pwd)/src/module_${module}/module" ]; then + if ! [ -e "src/vitis/client/modules/${module}" ]; then + ln -rsf src/module_${module}/module src/vitis/client/modules/${module} + fi + fi + if [ -d "$(pwd)/src/module_${module}/web_service/ws" ]; then + if ! [ -e "src/vitis/vas/rest/ws/${module}" ]; then + ln -rsf src/module_${module}/web_service/ws src/vitis/vas/rest/ws/${module} + fi + fi + if [ -d "$(pwd)/src/module_${module}/web_service/conf" ]; then + if ! [ -e "src/vitis/vas/rest/conf/${module}" ]; then + ln -rsf src/module_${module}/web_service/conf src/vitis/vas/rest/conf/${module} + fi + fi + if [ -d "$(pwd)/src/module_${module}/web_service/sql" ]; then + if ! [ -e "src/vitis/vas/sql/${module}" ]; then + ln -rsf src/module_${module}/web_service/sql src/vitis/vas/sql/${module} + fi + fi + if [ -d "$(pwd)/src/module_${module}/web_service/class" ]; then + for class_dir in $( ls "$(pwd)/src/module_${module}/web_service/class"); do + if [ -d "$(pwd)/src/module_${module}/web_service/class/${class_dir}" ]; then + echo "---- Link module_${module}/${class_dir} ----" + if ! [ -e "src/vitis/vas/rest/class/${class_dir}" ]; then + ln -rsf src/module_${module}/web_service/class/${class_dir} src/vitis/vas/rest/class/${class_dir} + fi + fi + done + fi + fi + fi + done + + # Utilisation d'une install déjà existante + if [ -d "${APP_EXISTING_PATH}" ]; then + echo "---- Link exixting app ${APP_EXISTING_PATH} ----" + + declare -a existing_folders_path=("vas/server" + "vas/log" + "vas/public" + "vas/shared" + "vas/tmp" + "vas/upload" + "vas/ws_data") + for folder_path in "${existing_folders_path[@]}"; do + if [ -d "${APP_EXISTING_PATH}/$folder_path" ]; then + echo "copy $folder_path" + cp -Rf "${APP_EXISTING_PATH}/$folder_path" "$(pwd)/$folder_path" + chmod 777 -R "$(pwd)/$folder_path" + fi + done + + declare -a existing_files_path=("client/conf/properties.json" + "vas/rest/conf/properties.inc" + "vas/rest/conf/properties_domain.inc" + "vas/rest/conf/properties_post.inc" + "vas/rest/conf/properties_server.inc" + "vas/rest/conf/version.inc" + "vas/rest/.htaccess") + for file_path in "${existing_files_path[@]}"; do + if [ -f "${APP_EXISTING_PATH}/$file_path" ]; then + echo "copy $file_path" + cp -f "${APP_EXISTING_PATH}/$file_path" "$(pwd)/$file_path" + fi + done + + for properties_dir in $( ls "${APP_EXISTING_PATH}/vas/rest/conf"); do + if [ -d "${APP_EXISTING_PATH}/vas/rest/conf/${properties_dir}" ]; then + if [ -d "$(pwd)/vas/rest/conf/${properties_dir}" ]; then + for properties_file in $( ls "${APP_EXISTING_PATH}/vas/rest/conf/${properties_dir}"); do + # if [ ${properties_file:0:10}=="properties" || ${properties_file}=="version.inc" ]; then + if [[ $properties_file == "properties"* ]] || [[ $properties_file == "version.inc" ]]; then + echo "copy vas/rest/conf/${properties_dir}/${properties_file}" + cp -f "${APP_EXISTING_PATH}/vas/rest/conf/${properties_dir}/${properties_file}" "$(pwd)/vas/rest/conf/${properties_dir}/${properties_file}" + fi + done + fi + fi + done + fi +fi diff --git a/utils/pull_subtrees.sh b/utils/pull_subtrees.sh new file mode 100755 index 00000000..c2793f2e --- /dev/null +++ b/utils/pull_subtrees.sh @@ -0,0 +1,46 @@ +#!/bin/bash +# +# +# Script d'initialisation d'un dépot vMap versionné sous git +# Initislise l'ensemble des dépendances sous forme de subtrees +# +# +# + + +APP_NAME="vmap" + +# Récupère la liste des dépendances +. ./get_deps.sh + +cd .. + +# Vitis +echo "---- Pull vitis ----" +git subtree pull --prefix src/vitis --squash -m "pull subtree" "git@gitlab.veremes.net:Development/vitis_apps/sources/vitis.git" master + +# fichiers à ignorer +git update-index --assume-unchanged conf/properties.json +git update-index --assume-unchanged conf/package.json +git update-index --assume-unchanged src/vitis/vas/rest/.htaccess +git update-index --assume-unchanged src/vitis/vas/rest/conf/properties.inc +git update-index --assume-unchanged src/vitis/vas/rest/conf/properties_domain.inc +git update-index --assume-unchanged src/vitis/vas/rest/conf/properties_post.inc +git update-index --assume-unchanged src/vitis/vas/rest/conf/properties_server.inc +git update-index --assume-unchanged src/vitis/vas/rest/conf/version.inc + +# Modules +if [[ $depsCount > 0 ]]; then + for (( i=1; i <= $depsCount; i++ )); do + if [ ${aDeps[$i, nature]} == "modules" ]; then + echo "---- Pull ${aDeps[$i, name]} ----" + + # Ajoute le dépôt + git subtree pull --prefix src/${aDeps[$i, name]} --squash -m "pull subtree" "git@gitlab.veremes.net:Development/vitis_apps/sources/${aDeps[$i, name]}.git" master + # fichiers à ignorer + git update-index --assume-unchanged src/${aDeps[$i, name]}/web_service/conf/properties.inc + git update-index --assume-unchanged src/${aDeps[$i, name]}/web_service/conf/properties_server.inc + git update-index --assume-unchanged src/${aDeps[$i, name]}/web_service/conf/version.inc + fi + done +fi diff --git a/utils/push_subtrees.sh b/utils/push_subtrees.sh new file mode 100755 index 00000000..b4949ea2 --- /dev/null +++ b/utils/push_subtrees.sh @@ -0,0 +1,37 @@ +#!/bin/bash +# +# +# Script d'initialisation d'un dépot vMap versionné sous git +# Initislise l'ensemble des dépendances sous forme de subtrees +# +# +# + + +APP_NAME="vmap" + +# Récupère la liste des dépendances +. ./get_deps.sh + +cd .. + +# Vitis +echo "---- Push vitis ----" +git subtree push --prefix src/vitis "git@gitlab.veremes.net:Development/vitis_apps/sources/vitis.git" master + +# Modules +if [[ $depsCount > 0 ]]; then + for (( i=1; i <= $depsCount; i++ )); do + if [ ${aDeps[$i, nature]} == "modules" ]; then + echo "---- Push ${aDeps[$i, name]} ----" + + # Push le dépôt + + { # 'try' block + git subtree push --prefix src/${aDeps[$i, name]} "git@gitlab.veremes.net:Development/vitis_apps/sources/${aDeps[$i, name]}.git" master + } || { # 'catch' block + echo "could not push ${aDeps[$i, name]}" + } + fi + done +fi diff --git a/utils/utils/copy_hooks.bat b/utils/utils/copy_hooks.bat new file mode 100644 index 00000000..a24ac68b --- /dev/null +++ b/utils/utils/copy_hooks.bat @@ -0,0 +1,3 @@ + + +robocopy "githooks" "../.git/hooks" /E /NFL /NDL /NJH /NJS /nc /ns /np diff --git a/utils/utils/copy_hooks.sh b/utils/utils/copy_hooks.sh new file mode 100755 index 00000000..f5bed2f2 --- /dev/null +++ b/utils/utils/copy_hooks.sh @@ -0,0 +1,14 @@ +#!/bin/bash +# +# +# Script de mise à jour des hooks client +# +# +# + + +if [ -d "githooks" ]; then + if [ -d "../.git/hooks" ]; then + cp -f githooks/* ../.git/hooks/ + fi +fi diff --git a/utils/utils/get_deps.sh b/utils/utils/get_deps.sh new file mode 100755 index 00000000..0a26177f --- /dev/null +++ b/utils/utils/get_deps.sh @@ -0,0 +1,47 @@ +#!/bin/bash +# +# Récupère l'ensemble des dépendances depuis conf/_install/dependency.xml +# +# +# +# + +if [ "../conf/_install/dependency.xml" ]; then + + declare -A aDeps + vitisVersion=master + depsCount=0 + dependencies=($(cat "../conf/_install/dependency.xml" | tr -d '\040\011\012\015' | grep -oP '<dependency>([\s\S]*?)<\/dependency>')) + + for i in ${!dependencies[*]}; do + + sName=$(grep -oP '(?<=name>)[^<]+' <<< ${dependencies[$i]}) + sVersion=$(grep -oP '(?<=version>)[^<]+' <<< ${dependencies[$i]}) + sNature=$(grep -oP '(?<=nature>)[^<]+' <<< ${dependencies[$i]}) + + if [ $sName == "vitis" ]; then + vitisVersion=$sVersion + fi + if [ $sNature == "modules" ] || [ $sNature == "web_services" ] || [ $sName == "vitis" ]; then + aDeps[$i, name]=$sName + aDeps[$i, version]=$sVersion + aDeps[$i, nature]=$sNature + let depsCount++ + fi + + done + + echo "[INFO] dependencies:" + echo "vitis : $vitisVersion" + for i in ${!dependencies[*]}; do + echo "(${aDeps[$i, nature]}) ${aDeps[$i, name]} : ${aDeps[$i, version]}" + done + echo "depsCount : ${depsCount}" + + export vitisVersion + export depsCount + export aDeps + +else + echo "[ERROR] ../conf/_install/dependency.xml not found" +fi diff --git a/utils/utils/githooks/post-merge b/utils/utils/githooks/post-merge new file mode 100755 index 00000000..45b38b21 --- /dev/null +++ b/utils/utils/githooks/post-merge @@ -0,0 +1,19 @@ +#!/bin/sh +# +# Hook qui permet de pull toutes les dépendances +# quand on fait un pull sur l'application +# +# +# +# +# + +echo "****** Post-merge Hook ******" +echo "****** Pull ******" +# echo "****** Pull subtrees ******" +# echo "$(pwd)" +# +# if [ -d "$(pwd)/utils" ]; then +# cd utils +# ./pull_subtrees.sh +# fi diff --git a/utils/utils/githooks/pre-push b/utils/utils/githooks/pre-push new file mode 100755 index 00000000..c5e4e953 --- /dev/null +++ b/utils/utils/githooks/pre-push @@ -0,0 +1,22 @@ +#!/bin/sh +# +# Hook qui permet de push toutes les dépendances +# quand on fait un push sur l'application +# +# +# +# +# + +remote="$1" +url="$2" +if [ $remote != $url ]; then + + echo "****** Pre-push Hook ******" + echo "****** Push ******" + # echo "****** Push subtrees ******" + # if [ -d "$(pwd)/utils" ]; then + # cd utils + # ./push_subtrees.sh + # fi +fi diff --git a/utils/utils/init_subtrees.sh b/utils/utils/init_subtrees.sh new file mode 100755 index 00000000..7f9c2abf --- /dev/null +++ b/utils/utils/init_subtrees.sh @@ -0,0 +1,48 @@ +#!/bin/bash +# +# +# Script d'initialisation d'un dépot vMap versionné sous git +# Initislise l'ensemble des dépendances sous forme de subtrees +# +# Nécessite xmllint : sudo apt install libxml2-utils +# + + +APP_NAME="vmap" + +# Récupère la liste des dépendances +. ./get_deps.sh + +cd .. +if [ -d "$(pwd)/client" ]; then + rm client +fi +if [ -d "$(pwd)/vas" ]; then + rm vas +fi +if [ -d "$(pwd)/src" ]; then + git rm -r src + git commit -a -m "Reset sources" +fi +mkdir src + +if [[ $depsCount > 0 ]]; then + + # Vitis + echo "---- Init vitis ----" + git subtree add --squash -m "add subtree" --prefix src/vitis "git@gitlab.veremes.net:Development/vitis_apps/sources/vitis.git" $vitisVersion + + echo "---- Init conf ----" + git subtree add --squash -m "add subtree" --prefix src/closure "git@gitlab.veremes.net:Development/vitis_apps/sources/closure.git" master + + # Modules + for (( i=1; i <= $depsCount; i++ )); do + if [ ${aDeps[$i, nature]} == "modules" ]; then + echo "---- Init ${aDeps[$i, name]} : ${aDeps[$i, version]}----" + + # Ajoute le dépôt + git subtree add --squash -m "add subtree" --prefix src/${aDeps[$i, name]} "git@gitlab.veremes.net:Development/vitis_apps/sources/${aDeps[$i, name]}.git" ${aDeps[$i, version]} + fi + done + +fi diff --git a/utils/utils/init_symlinks.sh b/utils/utils/init_symlinks.sh new file mode 100755 index 00000000..562c7ddb --- /dev/null +++ b/utils/utils/init_symlinks.sh @@ -0,0 +1,159 @@ +#!/bin/bash +# +# +# Script d'initialisation d'un dépot vMap versionné sous git +# +# Split repo +# git subtree split -P module/ -b module_split_branch +# +# Add subtree +# git subtree add --prefix vmap "git@gitlab.veremes.net:Development/vitis_apps/sources/Vitis.git" master +# +# + +echo -n "Existing app path (path/empty)? " +read APP_EXISTING_PATH + +# Récupère la liste des dépendances +. ./get_deps.sh + +cd .. + +# Supprime les anciens symlinks +if [ -d "client" ]; then + rm -Rf client +fi +if [ -d "vas" ]; then + rm -Rf vas +fi +find src/vitis/client -type l -delete +find src/vitis/vas/sql -type l -delete +find src/vitis/vas/rest -type l -delete + +# Vitis +echo "---- Link vitis ----" +if ! [ -e "$(pwd)/client" ]; then + + mkdir client + mkdir client/javascript + mkdir client/modules + ln -rsf src/vitis/client/css client/css + ln -rsf src/vitis/client/forms client/forms + ln -rsf src/vitis/client/images client/images + ln -rsf src/vitis/client/javascript/app client/javascript/app + ln -rsf src/vitis/client/javascript/externs client/javascript/externs + ln -rsf src/vitis/client/javascript/require client/javascript/require + ln -rsf src/vitis/client/lang client/lang + ln -rsf src/vitis/client/less client/less + ln -rsf src/vitis/client/modules/vitis client/modules/vitis + ln -rsf src/vitis/client/templates client/templates + ln -rsf src/vitis/client/.htaccess client/.htaccess + ln -rsf src/vitis/client/index.html client/index.html +fi +if ! [ -e "$(pwd)/vas" ]; then + + mkdir vas + mkdir vas/rest + mkdir vas/rest/ws + ln -rsf src/vitis/vas/doc vas/doc + ln -rsf src/vitis/vas/rest/class vas/rest/class + ln -rsf src/vitis/vas/rest/inc vas/rest/inc + ln -rsf src/vitis/vas/rest/ws/vitis vas/rest/ws/vitis + ln -rsf src/vitis/vas/rest/index.phtml vas/rest/index.phtml + ln -rsf src/vitis/vas/rest/index.vhtml vas/rest/index.vhtml + ln -rsf src/vitis/vas/sql vas/sql + ln -rsf src/vitis/vas/util vas/util +fi + +# Conf +echo "---- Link conf ----" +if ! [ -e "src/vitis/client/conf" ]; then + # ln -rsf conf client/conf + + mkdir client/conf + for elem in $( ls "conf"); do + if [[ $elem != 'properties.json' ]]; then + if [[ -d "conf/${elem}" || -f "conf/${elem}" ]]; then + echo "---- Link conf/$elem" + ln -rsf conf/$elem client/conf/$elem + fi + fi + done +fi +if ! [ -e "conf/closure" ]; then + ln -rsf src/closure/conf conf/closure +fi + +# Modules +if [[ $depsCount > 0 ]]; then + for (( i=1; i <= $depsCount; i++ )); do + if [ ${aDeps[$i, nature]} == "modules" ]; then + if [ ${aDeps[$i, name]:0:7} == "module_" ]; then + module=${aDeps[$i, name]:7} + echo "---- Link module_${module} ----" + if [ -d "$(pwd)/src/module_${module}/module" ]; then + if ! [ -e "src/vitis/client/modules/${module}" ]; then + ln -rsf src/module_${module}/module client/modules/${module} + fi + fi + if [ -d "$(pwd)/src/module_${module}/web_service/ws" ]; then + if ! [ -e "src/vitis/vas/rest/ws/${module}" ]; then + ln -rsf src/module_${module}/web_service/ws vas/rest/ws/${module} + fi + fi + if [ -d "$(pwd)/src/module_${module}/web_service/sql" ]; then + if ! [ -e "src/vitis/vas/sql/${module}" ]; then + ln -rsf src/module_${module}/web_service/sql vas/sql/${module} + fi + fi + if [ -d "$(pwd)/src/module_${module}/web_service/class" ]; then + for class_dir in $( ls "$(pwd)/src/module_${module}/web_service/class"); do + if [ -d "$(pwd)/src/module_${module}/web_service/class/${class_dir}" ]; then + echo "---- Link module_${module}/${class_dir} ----" + if ! [ -e "src/vitis/vas/rest/class/${class_dir}" ]; then + ln -rsf src/module_${module}/web_service/class/${class_dir} vas/rest/class/${class_dir} + fi + fi + done + fi + fi + fi + done + + # Utilisation d'une install déjà existante + if [ -d "${APP_EXISTING_PATH}" ]; then + echo "---- Link exixting app ${APP_EXISTING_PATH} ----" + + declare -a existing_folders_path=("vas/server" + "vas/rest/conf" + "vas/log" + "vas/public" + "vas/shared" + "vas/tmp" + "vas/upload" + "vas/ws_data") + for folder_path in "${existing_folders_path[@]}"; do + if [ -d "${APP_EXISTING_PATH}/$folder_path" ]; then + echo "copy $folder_path" + cp -Rf "${APP_EXISTING_PATH}/$folder_path" "$(pwd)/$folder_path" + chmod 777 -R "$(pwd)/$folder_path" + fi + done + + declare -a existing_files_path=("client/conf/properties.json" + "vas/rest/.htaccess") + for file_path in "${existing_files_path[@]}"; do + if [ -f "${APP_EXISTING_PATH}/$file_path" ]; then + echo "copy $file_path" + cp -f "${APP_EXISTING_PATH}/$file_path" "$(pwd)/$file_path" + fi + done + + for properties_dir in $( ls "${APP_EXISTING_PATH}/vas/rest/conf"); do + if [ -d "${APP_EXISTING_PATH}/vas/rest/conf/${properties_dir}" ]; then + echo "copy ${APP_EXISTING_PATH}/vas/rest/conf/${properties_dir}/ > $(pwd)/vas/rest/conf/" + cp -Rf "${APP_EXISTING_PATH}/vas/rest/conf/${properties_dir}/" "$(pwd)/vas/rest/conf/" + fi + done + fi +fi diff --git a/utils/utils/init_tree.bat b/utils/utils/init_tree.bat new file mode 100644 index 00000000..d8e6956c --- /dev/null +++ b/utils/utils/init_tree.bat @@ -0,0 +1,99 @@ +@echo off +title Install Vitis App +setlocal EnableDelayedExpansion + +cd .. + +set /p existing_path="Existing app path: " + +REM Client Dir +echo Create client directory +if exist "client" ( + rmdir /S /Q "client" +) +echo copy client +robocopy "src/vitis/client" "client" /E /NFL /NDL /NJH /NJS /nc /ns /np +echo copy client/conf +robocopy "conf" "client/conf" /E /NFL /NDL /NJH /NJS /nc /ns /np +echo copy client/conf/closure +robocopy "src/closure/conf" "client/conf/closure" /E /NFL /NDL /NJH /NJS /nc /ns /np + +echo Copy client modules +for /d %%g in ("src/module_*") do ( + set x=%%g + echo !x:~7! + if exist "src/%%g/module" ( + echo copy client/modules/!x:~7! + robocopy "src/%%g/module" "client/modules/!x:~7!" /E /NFL /NDL /NJH /NJS /nc /ns /np + ) +) + +REM VAS dir +echo Create vas directory +echo Create client directory +if exist "vas" ( + rmdir /S /Q "vas" +) +echo copy vas +robocopy "src/vitis/vas" "vas" /E /NFL /NDL /NJH /NJS /nc /ns /np + +echo Copy vas web_services +for /d %%g in ("src/module_*") do ( + set x=%%g + echo !x:~7! + if exist "src/%%g/web_service/conf" ( + echo copy vas/rest/conf/!x:~7! + robocopy "src/%%g/web_service/conf" "vas/rest/conf/!x:~7!" /E /NFL /NDL /NJH /NJS /nc /ns /np + ) + if exist "src/%%g/web_service/sql" ( + echo copy vas/sql/!x:~7! + robocopy "src/%%g/web_service/sql" "vas/sql/!x:~7!" /E /NFL /NDL /NJH /NJS /nc /ns /np + ) + if exist "src/%%g/web_service/ws" ( + echo copy vas/rest/ws/!x:~7! + robocopy "src/%%g/web_service/ws" "vas/rest/ws/!x:~7!" /E /NFL /NDL /NJH /NJS /nc /ns /np + ) + if exist "src/%%g/web_service/class" ( + echo copy vas/rest/class + robocopy "src/%%g/web_service/class" "vas/rest/class" /E /NFL /NDL /NJH /NJS /nc /ns /np + ) + if exist "src/%%g/web_service/ws_data" ( + echo copy vas/ws_data + robocopy "src/%%g/web_service/ws_data" "vas/ws_data" /E /NFL /NDL /NJH /NJS /nc /ns /np + ) + if exist "src/%%g/web_service/public" ( + echo copy vas/public + robocopy "src/%%g/web_service/public" "vas/public" /E /NFL /NDL /NJH /NJS /nc /ns /np + ) + if exist "src/%%g/web_service/upload" ( + echo copy vas/upload + robocopy "src/%%g/web_service/upload" "vas/upload" /E /NFL /NDL /NJH /NJS /nc /ns /np + ) +) + +REM Copy from existing path +if exist %existing_path% ( + echo copy properties from %existing_path% + + for %%G in (vas\server,vas\rest\conf,vas\log,vas\public,vas\shared,vas\tmp,vas\upload,vas\ws_data) do ( + echo %%G + if exist %existing_path%\%%G ( + echo copy %%G + robocopy "%existing_path%\%%G" "%%G" /E /NFL /NDL /NJH /NJS /nc /ns /np + ) + ) + + if exist %existing_path%\client\conf\properties.json ( + echo copy properties.json + robocopy "%existing_path%\client\conf" "client\conf" "properties.json" /NFL /NDL /NJH /NJS /nc /ns /np + ) + if exist %existing_path%\vas\rest\.htaccess ( + echo copy .htaccess + robocopy "%existing_path%\vas\rest" "vas\rest" ".htaccess" /NFL /NDL /NJH /NJS /nc /ns /np + ) + + if exist "%existing_path%\vas\rest\conf" ( + echo copy vas\rest\conf + robocopy "%existing_path%\vas\rest\conf" "vas\rest\conf" /E /NFL /NDL /NJH /NJS /nc /ns /np + ) +) diff --git a/utils/utils/pull_subtrees.sh b/utils/utils/pull_subtrees.sh new file mode 100755 index 00000000..5cac1ba0 --- /dev/null +++ b/utils/utils/pull_subtrees.sh @@ -0,0 +1,32 @@ +#!/bin/bash +# +# +# Script d'initialisation d'un dépot vMap versionné sous git +# Initislise l'ensemble des dépendances sous forme de subtrees +# +# +# + + +APP_NAME="vmap" + +# Récupère la liste des dépendances +. ./get_deps.sh + +cd .. + +# Vitis +echo "---- Pull vitis ----" +git subtree pull --prefix src/vitis --squash -m "pull subtree" "git@gitlab.veremes.net:Development/vitis_apps/sources/vitis.git" $vitisVersion + +# Modules +if [[ $depsCount > 0 ]]; then + for (( i=1; i <= $depsCount; i++ )); do + if [ ${aDeps[$i, nature]} == "modules" ]; then + echo "---- Pull ${aDeps[$i, name]} ----" + + # Ajoute le dépôt + git subtree pull --prefix src/${aDeps[$i, name]} --squash -m "pull subtree" "git@gitlab.veremes.net:Development/vitis_apps/sources/${aDeps[$i, name]}.git" ${aDeps[$i, version]} + fi + done +fi diff --git a/utils/utils/push_subtrees.sh b/utils/utils/push_subtrees.sh new file mode 100755 index 00000000..18a9d3bd --- /dev/null +++ b/utils/utils/push_subtrees.sh @@ -0,0 +1,41 @@ +#!/bin/bash +# +# +# Script d'initialisation d'un dépot vMap versionné sous git +# Initislise l'ensemble des dépendances sous forme de subtrees +# +# +# + + +APP_NAME="vmap" + +# Récupère la liste des dépendances +. ./get_deps.sh + +cd .. + +# Vitis +echo "---- Push vitis ----" +{ # 'try' block + git subtree push --prefix src/vitis "git@gitlab.veremes.net:Development/vitis_apps/sources/vitis.git" $vitisVersion +} || { # 'catch' block + echo "could not push vitis" +} + +# Modules +if [[ $depsCount > 0 ]]; then + for (( i=1; i <= $depsCount; i++ )); do + if [ ${aDeps[$i, nature]} == "modules" ]; then + echo "---- Push ${aDeps[$i, name]} ----" + + # Push le dépôt + + { # 'try' block + git subtree push --prefix src/${aDeps[$i, name]} "git@gitlab.veremes.net:Development/vitis_apps/sources/${aDeps[$i, name]}.git" ${aDeps[$i, version]} + } || { # 'catch' block + echo "could not push ${aDeps[$i, name]}" + } + fi + done +fi diff --git a/utils/utils/update_tree.bat b/utils/utils/update_tree.bat new file mode 100644 index 00000000..3c3c5dc3 --- /dev/null +++ b/utils/utils/update_tree.bat @@ -0,0 +1,80 @@ +@echo off +title Update Vitis tree +echo Update Vitis tree +setlocal EnableDelayedExpansion + +cd utils + +REM Pull repo +"C:\Program Files\Git\bin\sh.exe" --login -i -c "git pull" + +REM Pull subtrees +"C:\Program Files\Git\bin\sh.exe" --login -i -c "./pull_subtrees.sh" + +REM Save important files +if exist "../vas/rest/sql" ( + robocopy "../vas/rest/sql" "../vas/rest/sql_bak" /E /NFL /NDL /NJH /NJS /nc /ns /np +) +if exist "../vas/rest/conf" ( + robocopy "../vas/rest/conf" "../vas/rest/conf_bak" /E /NFL /NDL /NJH /NJS /nc /ns /np +) + +REM Replace Vitis files +for /d %%g in ("../src/vitis/client/*") do ( + set x=%%g + echo copy client/!x! + rmdir /S /Q "../client/!x!" + robocopy "../src/vitis/client/!x!" "../client/!x!" /E /NFL /NDL /NJH /NJS /nc /ns /np +) +for /d %%g in ("../src/vitis/vas/sql") do ( + echo copy vas/sql + rmdir /S /Q "../vas/sql" + robocopy "../src/vitis/vas/sql" "../vas/sql" /E /NFL /NDL /NJH /NJS /nc /ns /np +) +for /d %%g in ("../src/vitis/vas/rest/class") do ( + echo copy vas/rest/class + rmdir /S /Q "../vas/rest/class" + robocopy "../src/vitis/vas/rest/class" "../vas/rest/class" /E /NFL /NDL /NJH /NJS /nc /ns /np +) +for /d %%g in ("../src/vitis/vas/rest/conf") do ( + echo copy vas/rest/conf + robocopy "../src/vitis/vas/rest/conf" "../vas/rest/conf_veremes" /E /NFL /NDL /NJH /NJS /nc /ns /np +) +for /d %%g in ("../src/vitis/vas/rest/inc") do ( + echo copy vas/rest/inc + rmdir /S /Q "../vas/rest/inc" + robocopy "../src/vitis/vas/rest/inc" "../vas/rest/inc" /E /NFL /NDL /NJH /NJS /nc /ns /np +) +for /d %%g in ("../src/vitis/vas/rest/ws") do ( + echo copy vas/rest/ws + rmdir /S /Q "../vas/rest/ws" + robocopy "../src/vitis/vas/rest/ws" "../vas/rest/ws" /E /NFL /NDL /NJH /NJS /nc /ns /np +) + +REM Replace modules files +for /d %%g in ("../src/module_*") do ( + set x=%%g + if exist "../src/%%g/module" ( + echo copy client/modules/!x:~7! + robocopy "../src/%%g/module" "../client/modules/!x:~7!" /E /NFL /NDL /NJH /NJS /nc /ns /np + ) + if exist "../src/%%g/web_service/conf" ( + echo copy vas/rest/conf_veremes/!x:~7! + robocopy "../src/%%g/web_service/conf" "../vas/rest/conf_veremes/!x:~7!" /E /NFL /NDL /NJH /NJS /nc /ns /np + ) + if exist "../src/%%g/web_service/sql" ( + echo copy vas/sql/!x:~7! + robocopy "../src/%%g/web_service/sql" "../vas/sql/!x:~7!" /E /NFL /NDL /NJH /NJS /nc /ns /np + ) + if exist "../src/%%g/web_service/ws" ( + echo copy vas/rest/ws/!x:~7! + robocopy "../src/%%g/web_service/ws" "../vas/rest/ws/!x:~7!" /E /NFL /NDL /NJH /NJS /nc /ns /np + ) + if exist "../src/%%g/web_service/class" ( + echo copy vas/rest/class + robocopy "../src/%%g/web_service/class" "../vas/rest/class" /E /NFL /NDL /NJH /NJS /nc /ns /np + ) +) + + +cd .. -- GitLab From 78e0e7e552f20093716ce46d16292a2e39fa1cbf Mon Sep 17 00:00:00 2001 From: Armand Bahi <armand.bahi@veremes.com> Date: Thu, 15 Nov 2018 10:46:34 +0100 Subject: [PATCH 2/3] Squashed 'src/module_extraction/' changes from c3060a52..379bc754 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 379bc754 Resolve conflicts eec37365 Pull subtrees 3ae7b969 Squashed 'src/vitis/' changes from 25238a11..40e7d46e ed9c5487 Merge branch 'next_version' 1d4a46b7 Squashed 'src/vitis/' changes from 7a1818a4..25238a11 c3b38dae Squashed 'src/vitis/' changes from 7a1818a4..25238a11 c987d4bf Merge branch 'master' 74d1deff Correction SQL c0aa5ad8 Ajout du sendMail si le contrôle échoue 31c647a1 Déplacement du fichier et récupération du format pour le contrôle ab25bc66 Correction pour l'insert order de qualigéo 4dabc6a9 Modification des paramètres de lancement du contrôle c28fb7ab Changement d'état bloqué si mauvais fichier dépôsé c3301a7a Ajout dossier Storage et du template de mail 6ace8202 Auto stash before merge of "next_version" and "origin/next_version" 0f046d43 Ajout des configurations 637356ba Dépôt interdit si mauvaise extension 6482d93a Correction d'anomalie sur les require_once abc29d47 Mise à jour des require_once f15e264f Squashed 'src/vitis/' content from commit 7a1818a fa99d328 Merge branch 'master' into next_version d00f8cbd Update from SVN git-subtree-dir: src/module_extraction git-subtree-split: 379bc7541bf96da829a6b325a511f61bb75c0374 --- ..._vitis_configuration_extractionConfig.json | 1 + .../extraction_extraction_extraction.js | 68 +- ...ction_depot_extraction_extraction_depot.js | 40 +- module/javascript/script_module.js | 53 +- module/lang/lang-fr.json | 12 +- storage/Accounts.class.mail.inc | 622 ++++++++++++++ web_service/conf/properties.inc | 10 +- web_service/conf/properties_server.inc | 3 + web_service/conf/selected_properties.inc | 18 + web_service/conf/version.inc | 6 +- web_service/sql/sqlQueries.xml | 431 ++++++++-- web_service/ws/Coordsys.class.inc | 4 +- web_service/ws/Coordsyss.class.inc | 8 +- web_service/ws/Extraction.class.inc | 125 +-- web_service/ws/ExtractionExtraction.class.inc | 21 +- .../ws/ExtractionExtraction.class.sql.inc | 4 +- web_service/ws/Extraction_depots.class.inc | 440 ++++++++++ web_service/ws/Extractions.class.inc | 764 +++++++++++------- web_service/ws/Format.class.inc | 4 +- web_service/ws/Formats.class.inc | 10 +- web_service/ws/Layer.class.inc | 4 +- web_service/ws/Layers.class.inc | 10 +- 22 files changed, 2168 insertions(+), 490 deletions(-) create mode 100644 module/forms/configuration/configuration_vitis_configuration_extractionConfig.json create mode 100644 storage/Accounts.class.mail.inc create mode 100644 web_service/conf/properties_server.inc create mode 100644 web_service/conf/selected_properties.inc create mode 100755 web_service/ws/Extraction_depots.class.inc diff --git a/module/forms/configuration/configuration_vitis_configuration_extractionConfig.json b/module/forms/configuration/configuration_vitis_configuration_extractionConfig.json new file mode 100644 index 00000000..f25d20c9 --- /dev/null +++ b/module/forms/configuration/configuration_vitis_configuration_extractionConfig.json @@ -0,0 +1 @@ +{"insert":{"rows":[],"tabs":{"position":"top","list":[{"label":"Tab 0","elements":[]}]}},"search":{"rows":[]},"display":{"rows":[]},"update":{"name":"configuration_extraction_module-form","title":"","input_size":"xxs","nb_cols":7,"javascript":false,"rows":[{"fields":[{"name":"color_mutualized","type":"text","label":"CONFIGURATION_VITIS_CONFIGURATION_EXTRACTIONCONFIG_FORM_COLOR_MUTUALIZED","nb_cols":12,"id":"color_mutualized","default_value":"green"}]},{"fields":[{"name":"color_no_mutualized","type":"text","label":"CONFIGURATION_VITIS_CONFIGURATION_EXTRACTIONCONFIG_FORM_COLOR_NO_MUTUALIZED","nb_cols":12,"id":"color_no_mutualized","default_value":"red"}]},{"fields":[{"name":"sig","type":"text","label":"CONFIGURATION_VITIS_CONFIGURATION_EXTRACTIONCONFIG_FORM_SIG","nb_cols":12,"id":"sig","default_value":"*.shp|*.*"}]},{"fields":[{"name":"dao","type":"text","label":"CONFIGURATION_VITIS_CONFIGURATION_EXTRACTIONCONFIG_FORM_DAO","nb_cols":12,"id":"dao","default_value":"*.dao"}]},{"fields":[{"type":"button","name":"form_submit","class":"btn-ungroup btn-group-sm","nb_cols":12,"buttons":[{"type":"submit","name":"form_submit","label":"FORM_UPDATE","class":"btn-primary"}],"id":"form_submit_6_1"}]}],"event":"updateProperties('extraction')","afterEvent":"editSectionForm()","tabs":{"position":"top","list":[{"label":"Tab 0","elements":["color_mutualized","color_no_mutualized","sig","dao","form_submit"]}]}},"datasources":{}} \ No newline at end of file diff --git a/module/forms/extraction/extraction_extraction_extraction.js b/module/forms/extraction/extraction_extraction_extraction.js index 63009cb4..d83bebed 100755 --- a/module/forms/extraction/extraction_extraction_extraction.js +++ b/module/forms/extraction/extraction_extraction_extraction.js @@ -24,7 +24,7 @@ var constructor_form = function (scope, s_url) { ////////////////////////////////////////////////////////// //Ne pas toucher console.log("Constructor"); - + oFormRequired.sUrl = s_url; oFormRequired.scope_ = scope; //console.log(scope); @@ -36,8 +36,8 @@ var constructor_form = function (scope, s_url) { var oElemDefCt = formSrvc["getFormElementDefinition"]("id_conseil", envSrvc["sFormDefinitionName"], envSrvc["oFormDefinition"]); var oElemDefCom = formSrvc["getFormElementDefinition"]("id_com", envSrvc["sFormDefinitionName"], envSrvc["oFormDefinition"]); var oElemDefExtent = formSrvc["getFormElementDefinition"]("extent", envSrvc["sFormDefinitionName"], envSrvc["oFormDefinition"]); - - + + //Comportements différents selon le mode (insert, update, search, display) (GTF : accés uniquement au mode insert) //if (oFormRequired.scope_.sFormDefinitionName.indexOf("insert") > -1 || (oFormRequired.scope_.sFormDefinitionName.indexOf("update") > -1)) { oFormRequired.toDestructor.push(oFormRequired.scope_.$watch("oFormValues." + oFormRequired.scope_.sFormDefinitionName + ".extent_method.selectedOption", function (value) { @@ -69,7 +69,7 @@ var constructor_form = function (scope, s_url) { oElemDefCt["visible"] = false; oElemDefCom["visible"] = false; } - + } })); //Evènement lorsqu'on choisie un CT @@ -90,9 +90,9 @@ var constructor_form = function (scope, s_url) { "collapseIcon": "glyphicon glyphicon-folder-open", "highlightSelected": false, "multiSelect": true}); - scope.$applyAsync(); + scope.$applyAsync(); }); - + getStatsTree(oFormRequired.scope_.oFormValues[oFormRequired.scope_.sFormDefinitionName]).then( function(aNodes){ var oTreeview = $("#statistique_9_1_treeview")["treeview"](true); $("statistique_9_1_treeview")["treeview"](true); @@ -107,10 +107,10 @@ var constructor_form = function (scope, s_url) { "collapseIcon": "glyphicon glyphicon-folder-open", "highlightSelected": false, "multiSelect": true}); - scope.$applyAsync(); + scope.$applyAsync(); }); } - + })); //Evènement lorsqu'on choisie une commune oFormRequired.toDestructor.push(oFormRequired.scope_.$watch("oFormValues." + oFormRequired.scope_.sFormDefinitionName + ".id_com.selectedOption", function (value) { @@ -131,9 +131,9 @@ var constructor_form = function (scope, s_url) { "highlightSelected": false, "multiSelect": true}); scope.$applyAsync(); - + }); - + getStatsTree(oFormRequired.scope_.oFormValues[oFormRequired.scope_.sFormDefinitionName]).then( function(aNodes){ var oTreeview = $("#statistique_9_1_treeview")["treeview"](true); $("statistique_9_1_treeview")["treeview"](true); @@ -148,7 +148,7 @@ var constructor_form = function (scope, s_url) { "collapseIcon": "glyphicon glyphicon-folder-open", "highlightSelected": false, "multiSelect": true}); - scope.$applyAsync(); + scope.$applyAsync(); }); } })); @@ -174,9 +174,9 @@ var constructor_form = function (scope, s_url) { "highlightSelected": false, "multiSelect": true}); scope.$applyAsync(); - + }); - + getStatsTree(oFormRequired.scope_.oFormValues[oFormRequired.scope_.sFormDefinitionName]).then( function(aNodes){ var oTreeview = $("#statistique_9_1_treeview")["treeview"](true); $("statistique_9_1_treeview")["treeview"](true); @@ -191,10 +191,10 @@ var constructor_form = function (scope, s_url) { "collapseIcon": "glyphicon glyphicon-folder-open", "highlightSelected": false, "multiSelect": true}); - scope.$applyAsync(); + scope.$applyAsync(); }); - - + + } })); }; @@ -210,8 +210,8 @@ function getLayerTree(oFormValues) { var $q = angular.element(vitisApp.appHtmlFormDrtv).injector().get(["$q"]); // $log.info("getLayerTree"); - // Charge la liste des couches. - + // Charge la liste des couches. + var deferred = $q.defer(); var promise = deferred.promise; if (oFormValues.extent_method.selectedOption["value"] != "") { @@ -228,7 +228,7 @@ function getLayerTree(oFormValues) { var aLayers = response["data"]["layers"]; var aNodes = []; var stats = true; - + if (typeof(aLayers) != "undefined") { var aCategories = Object.keys(aLayers); for (var i in aCategories) { @@ -247,7 +247,7 @@ function getLayerTree(oFormValues) { stats = true; } } - + this["setTreeviewNodesState"] = function (aNodes) { for (var i in aNodes) { if (typeof (aNodes[i]["nodes"]) != "undefined") @@ -307,8 +307,8 @@ function getStatsTree(oFormValues) { var $q = angular.element(vitisApp.appHtmlFormDrtv).injector().get(["$q"]); // $log.info("getLayerTree"); - // Charge la liste des couches. - + // Charge la liste des couches. + var deferred = $q.defer(); var promise = deferred.promise; if (oFormValues.extent_method.selectedOption["value"] != "") { @@ -325,7 +325,7 @@ function getStatsTree(oFormValues) { var aLayers = response["data"]["layers"]; var aNodes = []; var stats = false; - + if (typeof(aLayers) != "undefined") { var aCategories = Object.keys(aLayers); for (var i in aCategories) { @@ -344,7 +344,7 @@ function getStatsTree(oFormValues) { stats = false; } } - + this["setTreeviewNodesState"] = function (aNodes) { for (var i in aNodes) { if (typeof (aNodes[i]["nodes"]) != "undefined") @@ -403,7 +403,7 @@ function getUrlParams() { var sColumn = ""; var aValue = []; var aValeur = []; - + if (oFormValues.extent_method.selectedOption["value"] == "id_conseil") { sTable = "ct"; @@ -418,7 +418,7 @@ function getUrlParams() { sCompare_operator = "IN"; aValue = oFormValues.id_com.selectedOption; } - + if (oFormValues.extent_method.selectedOption["value"] == "extent") { sTable = "ct"; @@ -431,8 +431,8 @@ function getUrlParams() { { if(aValue) { - for (var i = 0; i < aValue.length; i++) - { + for (var i = 0; i < aValue.length; i++) + { //Si c'est une sélection vide if(aValue[i]["value"] == "") { @@ -458,7 +458,7 @@ function getUrlParams() { aValeur[0] = "-1"; } } - + var oUrlParams = { "schema": propertiesSrvc["schema_extraction"], "table": sTable, @@ -479,22 +479,22 @@ function getUrlParams() { */ var destructor_form = function () { console.log("Destructor"); - + for (var i = 0; i < oFormRequired.toDestructor.length; i++) { oFormRequired.toDestructor[i] = undefined; delete oFormRequired.toDestructor[i]; } - + //supprimer la balise script du js pour pouvoir le recharger si on reviens sur le formulaire plus tard angular.element('[src="' + oFormRequired.sUrl + '?version=' + oFormRequired.scope_["oProperties"]["build"] + '"]').remove(); - + oFormRequired = undefined; delete oFormRequired; - + constructor_form = undefined; delete constructor_form; destructor_form = undefined; delete destructor_form; }; -/**********************************************************************************/ \ No newline at end of file +/**********************************************************************************/ diff --git a/module/forms/extraction_depot/extraction_depot_extraction_extraction_depot.js b/module/forms/extraction_depot/extraction_depot_extraction_extraction_depot.js index 4c00e00a..4b6c36e3 100755 --- a/module/forms/extraction_depot/extraction_depot_extraction_extraction_depot.js +++ b/module/forms/extraction_depot/extraction_depot_extraction_extraction_depot.js @@ -24,7 +24,7 @@ var constructor_form = function (scope, s_url) { ////////////////////////////////////////////////////////// //Ne pas toucher console.log("Constructor"); - + oFormRequired.sUrl = s_url; oFormRequired.scope_ = scope; //console.log(scope); @@ -33,11 +33,11 @@ var constructor_form = function (scope, s_url) { var envSrvc = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(["envSrvc"]); var formSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["formSrvc"]); var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]); - + /*oFormRequired.toDestructor.push(oFormRequired.scope_.$watch("oFormValues." + oFormRequired.scope_.sFormDefinitionName + ".btn_refresh_treeview", function (value) { console.log("DJFHVHJCHSJCJH"); }*/ - + /** * loadTreeview function. * Crée le treeview des fichiers du projet fme. @@ -46,7 +46,7 @@ var constructor_form = function (scope, s_url) { var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]); // $log.info("loadTreeviewDepot"); - + // Charge l'arborescence des logs. ajaxRequest({ "method": "GET", @@ -59,7 +59,7 @@ var constructor_form = function (scope, s_url) { scope["aSelectedWorkspaceFile"] = []; scope["aTreeviewLogs"] = data; // Crée l'arborescence dans l'élément. - + for (var i in response["data"]["content"]) { var aNode = {"text": response["data"]["content"][i]["filename"].split("/").pop(), "nodes": []} for (var j in response["data"]["content"][i]["content"]) { @@ -67,7 +67,7 @@ var constructor_form = function (scope, s_url) { } aNodes.push(aNode); } - + $("#Element_0_2_1_treeview")["treeview"]({ "showBorder": false, "expandIcon": "glyphicon glyphicon-folder-close", @@ -81,16 +81,16 @@ var constructor_form = function (scope, s_url) { } }); }; - + scope["deleteFileDepot"] = function () { var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]); // $log.info("deleteFileDepot"); - + var aSelectedNode = $("#Element_0_2_1_treeview")["treeview"]('getSelected') - + if (aSelectedNode.length > 0) - { + { var aNodeParent = $("#Element_0_2_1_treeview")["treeview"]('getNode', aSelectedNode[0]["parentId"]); ajaxRequest({ "method": "DELETES", @@ -117,15 +117,15 @@ var constructor_form = function (scope, s_url) { scope.$root["modalWindow"]("dialog", "EXTRACTION_DEPORT_DELETE_NO_SELECTED", oOptions); //$('#myModal').modal('hide'); } - + } scope["loadTreeviewDepot"](); - + scope["downloadFileDepot"] = function () { var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]); // $log.info("downloadFileDepot"); - + var aSelectedNode = $("#Element_0_2_1_treeview")["treeview"]('getSelected'); var sFileName = aSelectedNode[0]["text"]; var aNodeParent = $("#Element_0_2_1_treeview")["treeview"]('getNode', aSelectedNode[0]["parentId"]); @@ -163,7 +163,7 @@ var constructor_form = function (scope, s_url) { } } //var iMaxUploadFileSize = parseInt(propertiesSrvc["max_upload_file_size"]); - + /** * beforeProjectDirectory function. * Traitement avant l'envoi du formulaire de la section "Répertoire Projet" (publication > Projet FME). @@ -206,7 +206,7 @@ var constructor_form = function (scope, s_url) { // return promise; }; - + /** * afterProjectDirectory function. * Actions à effectuer après l'upload d'un fichier dans le répertoire d'un projet fme. @@ -233,22 +233,22 @@ var constructor_form = function (scope, s_url) { */ var destructor_form = function () { console.log("Destructor"); - + for (var i = 0; i < oFormRequired.toDestructor.length; i++) { oFormRequired.toDestructor[i] = undefined; delete oFormRequired.toDestructor[i]; } - + //supprimer la balise script du js pour pouvoir le recharger si on reviens sur le formulaire plus tard angular.element('[src="' + oFormRequired.sUrl + '?version=' + oFormRequired.scope_["oProperties"]["build"] + '"]').remove(); - + oFormRequired = undefined; delete oFormRequired; - + constructor_form = undefined; delete constructor_form; destructor_form = undefined; delete destructor_form; }; -/**********************************************************************************/ \ No newline at end of file +/**********************************************************************************/ diff --git a/module/javascript/script_module.js b/module/javascript/script_module.js index a654272f..512ddc9a 100755 --- a/module/javascript/script_module.js +++ b/module/javascript/script_module.js @@ -24,7 +24,28 @@ vitisApp.on('appMainDrtvLoaded', function () { formScope["sendForm"](); } }; - + + /** + * loadExtractionConfig function. + * Chargement de la section "Configuration EXTRACTION" dans l''''onglet "Configuration". + * @expose + */ + angular.element(vitisApp.appMainDrtv).scope()["loadExtractionConfig"] = function () { + // Injection des services. + var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]); + var envSrvc = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(["envSrvc"]); + // + $log.info("loadExtractionConfig"); + // Paramètres des properties dans les valeurs du formulaire de config de Extraction. + angular.element(vitisApp.appMainDrtv).scope()["setPropertiesFormValues"](); + // Surcharge l''''url du formulaire des properties de Extraction. + var scope = this; + var sTable = envSrvc["oSelectedObject"]["name"]; + scope["oFormRequestParams"] = { + "sUrl": "modules/extraction/forms/" + envSrvc["oSelectedMode"]["mode_id"] + "/" + sTable + "_" + envSrvc["oSectionForm"][sTable]["sections"][envSrvc["oSectionForm"][sTable]["iSelectedSectionIndex"]]["name"] + ".json" + }; + }; + /** * initExtractionExtractionForm function. * Traitements avant l'affichage du formulaire de l'onglet "Extraction". @@ -74,7 +95,7 @@ vitisApp.on('appMainDrtvLoaded', function () { } }); }; - + /** * getExtractionLayersTree function. * Retourne l'arborescence pour le champ treeview "layers". @@ -118,7 +139,7 @@ vitisApp.on('appMainDrtvLoaded', function () { stats = true; } } - + this["setTreeviewNodesState"] = function (aNodes) { for (var i in aNodes) { if (typeof (aNodes[i]["nodes"]) != "undefined") @@ -137,7 +158,7 @@ vitisApp.on('appMainDrtvLoaded', function () { } } this["setTreeviewNodesState"](aNodes); - + deferred.resolve(aNodes); } else { // @@ -153,8 +174,8 @@ vitisApp.on('appMainDrtvLoaded', function () { }); return promise; }; - - + + /** * getExtractionLayersTree function. * Retourne l'arborescence pour le champ treeview "layers". @@ -198,7 +219,7 @@ vitisApp.on('appMainDrtvLoaded', function () { stats = false; } } - + this["setTreeviewNodesState"] = function (aNodes) { for (var i in aNodes) { if (typeof (aNodes[i]["nodes"]) != "undefined") @@ -217,7 +238,7 @@ vitisApp.on('appMainDrtvLoaded', function () { } } this["setTreeviewNodesState"](aNodes); - + deferred.resolve(aNodes); } else { // @@ -233,7 +254,7 @@ vitisApp.on('appMainDrtvLoaded', function () { }); return promise; }; - + /** * appExtractionLayersColumn directive. * Mise en forme de la colonne "layers" dans la liste de l'onglet "Extraction". @@ -284,7 +305,7 @@ vitisApp.on('appMainDrtvLoaded', function () { } }; vitisApp["compileProvider"].directive('appExtractionLayersColumn', vitisApp.appExtractionLayersColumnDrtv); - + /** * appExtractionRefUnusedAttributesColumn directive. * Mise en forme de la colonne "unused_attributes" dans la liste de l'onglet "Extraction". @@ -335,10 +356,10 @@ vitisApp.on('appMainDrtvLoaded', function () { } }; vitisApp["compileProvider"].directive('appExtractionRefUnusedAttributesColumn', vitisApp.appExtractionRefUnusedAttributesColumnDrtv); - + angular.element(vitisApp.appMainDrtv).scope()["showModalSignUp"] = function () { $("#modal_sign_up").modal('open'); - + var oFormValues = {}; oFormValues["search"] = {}; ajaxRequest({ @@ -346,7 +367,7 @@ vitisApp.on('appMainDrtvLoaded', function () { 'url': propertiesSrvc["web_server_name"] + '/' + propertiesSrvc["application"] + "/modules/extraction/forms/sign_up.json", 'success': function (response) { hideAjaxLoader(); - + var oFormReaderScope = angular.element($("#modal_sign_up_form_container").children()).scope(); oFormReaderScope.$evalAsync(function () { oFormReaderScope['ctrl']['setDefinitionName']("search"); @@ -354,11 +375,11 @@ vitisApp.on('appMainDrtvLoaded', function () { oFormReaderScope['ctrl']['setFormDefinition'](response["data"]); oFormReaderScope['ctrl']['loadForm'](); }); - + $this.$timeout_(function () { //Materialize.updateTextFields(); $(".checkbox").removeClass("checkbox checkbox-margin"); - + //$this.cssSelectFormDefinitionListener(oFormReaderScope); }, 100); }, @@ -388,4 +409,4 @@ vitisApp.on('appInitCtrlLoaded', function () { $translatePartialLoader["addPart"]("modules/extraction/lang"); $translate["refresh"](); }); -}); \ No newline at end of file +}); diff --git a/module/lang/lang-fr.json b/module/lang/lang-fr.json index d5a02d2b..792ea68f 100755 --- a/module/lang/lang-fr.json +++ b/module/lang/lang-fr.json @@ -64,8 +64,8 @@ "EXTRACTION_REF_EXTRACTION_LAYER_LAYERS_TOOLTIP_TITLE" : "Couches", "EXTRACTION_REF_EXTRACTION_LAYER_UNUSED_ATTRIBUTES_TOOLTIP_TITLE" : "Attributs inutilisés", "CONFIGURATION_VITIS_CONFIGURATION_EXTRACTIONCONFIG_FORM_SCHEMA_EXTRACTION" : "", - "CONFIGURATION_VITIS_CONFIGURATION_EXTRACTIONCONFIG_FORM_COLOR_MUTUALIZED" : "", - "CONFIGURATION_VITIS_CONFIGURATION_EXTRACTIONCONFIG_FORM_COLOR_NO_MUTUALIZED" : "", + "CONFIGURATION_VITIS_CONFIGURATION_EXTRACTIONCONFIG_FORM_COLOR_MUTUALIZED" : "Couleur des couches mutualisées", + "CONFIGURATION_VITIS_CONFIGURATION_EXTRACTIONCONFIG_FORM_COLOR_NO_MUTUALIZED" : "Couleur des couches non mutualisées", "TEXT_MODE_EXTRACTION_FORM" : "", "TITLE_MODE_EXTRACTION_FORM" : "extraction_form", "SIGN_UP_END_DATE" : "Date de fin de contrat", @@ -115,5 +115,9 @@ "EXTRACTION_DEPOT_FILE_UPDATE": "Mettre à jour", "ERROR_FILE_SIZE_EXTRACTION_LOAD_DEPOSIT_DIRECTORY" : "La taille du fichier est supérieure à la taille maximale autorisée.", "EXTRACTION_EXTRACTION_EXTRACTION_FORM_DEPOSIT" : "Déposer", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_INPUT_DEPOSIT" : "Fichier à déposer" -} \ No newline at end of file + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_INPUT_DEPOSIT" : "Fichier à déposer", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_FORMAT_EXTENSION" : "Format du fichier", + "EXTRACTION_EXTRACTION_EXTRACTION_FORM_SCHEMA_CONSTRAINT" : "Schéma des contraintes", + "CONFIGURATION_VITIS_CONFIGURATION_EXTRACTIONCONFIG_FORM_SIG" : "Extensions SIG (séparées par |)", + "CONFIGURATION_VITIS_CONFIGURATION_EXTRACTIONCONFIG_FORM_DAO" : "Extensions DAO (séparées par |)" +} diff --git a/storage/Accounts.class.mail.inc b/storage/Accounts.class.mail.inc new file mode 100644 index 00000000..bb977fdd --- /dev/null +++ b/storage/Accounts.class.mail.inc @@ -0,0 +1,622 @@ +<?php + +$aMail["newUserTitle"] = "Un nouvel utilisateur vient juste de s'inscrire"; +$aMail["newUserTitleAutomated"] = "Vérification de votre adresse mail"; +$aMail["newUserBody"] = '<!-- 1 Column Text + Button : BEGIN --> + <tr> + <td bgcolor="#ffffff" style="padding: 0px; text-align: center;background-color:#8c8c8c; height:50px; margin-bottom:10px;"> + <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #FFFFFF; font-weight: normal;">[TITLE]</h1> + </td> + </tr> + <tr> + <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; font-size: 15px; line-height: 20px; color: #000000; text-align: center;"> + <p style="width:100%; font-weight:bold; text-align: justify; font-size: 20px;">Bonjour [FULLNAME],</p> + <p style="width:100%; text-align: left;font-size: 18px;">Nous vous remercions d\'avoir créé votre compte sur <b>[HOSTNAME]</b>.</p> + <p style="width:100%; text-align: left;font-size: 18px;"><b>Informations sur votre compte :</b></p> + <p style="width:100%; text-align: left;font-size: 18px;">Identifiant : [USERNAME]</p> + <p style="width:100%; text-align: left;font-size: 18px;">Organisme : [COMPANY] </p> + <p style="width:100%; text-align: left;font-size: 18px;">Mail : [MAIL]</p> + <p style="width:100%; text-align: left;font-size: 18px;">Téléphone : [PHONE] </p> + <p style="width:100%; text-align: left;font-size: 18px;">Ip publique fixe : [PUBLIC_IP] </p> + <p style="width:100%; text-align: left;font-size: 18px;">Nom du demandeur : [DEMANDEUR] </p> + <p style="width:100%; text-align: left;font-size: 18px;">Adresse mail du demandeur : [MAIL_DEMANDEUR] </p> + <p style="width:100%; text-align: left;font-size: 18px;">Objet de l\'étude : [STUDY_OBJECT] </p> + <p style="width:100%; text-align: left;font-size: 18px;margin-top: 20px;">Cliquez sur le bouton ci-dessous pour finaliser votre inscription :</p> + </td> + </tr> + <tr> + <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; font-size: 20px; line-height: 20px; color: #555555;"> + <table role="presentation" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" style="margin: auto"> + <tr> + <td style="border-radius: 3px; background: #5cb85c; text-align: center;" class="button-td"> + <a href="[URL]" style="background: #5cb85c; border: 15px solid #5cb85c; font-family: sans-serif; font-size: 18px; line-height: 1.1; text-align: center; text-decoration: none; display: block; border-radius: 0px; font-weight: bold;" class="button-a"> + <span style="color:#ffffff;">Je confirme mon adresse mail</span> + </a> + </td> + </tr> + </table> + <!-- Button : END --> + </td> + </tr> + <tr> + <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; line-height: 20px; color: #000000; text-align: center;"> + <p style="width:100%; text-align: justify;font-size: 18px;">Si vous ne vous êtes pas inscrit(e) sur notre application <b>[HOSTNAME]</b>, ignorez simplement ce message.</p> + </td> + </tr> + <!-- 1 Column Text + Button : END -->'; + +$aMail["confirmationSignUpTitle"] = "Confirmation d'inscription"; +$aMail["genericBody"] = ' + <tr> + <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;"> + <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">[MESSAGE]</h1> + </td> + </tr>'; + +$aMail["SignUpOk"] = '<tr> + <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;"> + <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">L\'utilisateur a été ajouté, connectez vous sur la base de données pour lui donner des droits (Defaut: [ROLES])</h1> + </td> + </tr>'; +$aMail["SignUpError"] = '<tr> + <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;"> + <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">L\'utilisateur n\'a pas pu être ajouté consultez les fichiers de log pour plus d\'informations</h1> + </td> + </tr>'; + +$aMail["signUpConfirmation"] = '<tr> + <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;"> + <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal; margin-bottom: 15px;">Votre compte est maintenant activé, vous pouvez vous connecter. Pour avoir accès à plus de fonctionnalités contactez l\'administrateur</h1> + <a style="margin: 0; font-family: sans-serif; font-size: 22px; font-weight: normal;" href="[REDIRECTION]"> Retourner vers l\'application </a> + </td> + </tr>'; +$aMail["fpwdTitle"] = "Changez votre mot de passe"; +$aMail["fpwdUpdateOk"] = '<tr> + <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;"> + <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">Le mot de passe a été mis à jour</h1> + </td> + </tr>'; +$aMail["fpwdUpdateError"] = '<tr> + <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;"> + <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">Le mot de passe n\'a pas pu être mis à jour</h1> + </td> + </tr>'; +$aMail["alreadyUpdate"] = '<tr> + <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;"> + <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">Le mot de passe à déjà été changé</h1> + </td> + </tr>'; + +$aMail["fpwdBody"] = '<!-- 1 Column Text + Button : BEGIN --> + <tr> + <td bgcolor="#ffffff" style="padding: 0px; text-align: center;background-color:#8c8c8c; height:50px; margin-bottom:10px;"> + <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #FFFFFF; font-weight: normal;">Changez votre mot de passe</h1> + </td> + </tr> + <tr> + <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; font-size: 15px; line-height: 20px; color: #000000; text-align: center;"> + <p style="width:100%; font-weight:bold; text-align: left; font-size: 20px;">Bonjour [LOGIN],</p> + <p style="width:100%; text-align: left;font-size: 18px;">Une tentative de récupération de votre compte à été effectué sur le site <b>[HOSTNAME]</b>.</p> + <p style="width:100%; text-align: left;font-size: 18px;margin-top: 10px;">Cliquez sur le bouton ci-dessous pour changer votre mot de passe :</p> + </td> + </tr> + <tr> + <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; font-size: 15px; line-height: 20px; color: #555555;"> + <table role="presentation" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" style="margin: auto"> + <tr> + <td style="border-radius: 3px; background: #5cb85c; text-align: center;" class="button-td"> + <a href="[URL]" style="background: #5cb85c; border: 15px solid #5cb85c; font-family: sans-serif; font-size: 18px; line-height: 1.1; text-align: center; text-decoration: none; display: block; border-radius: 0px; font-weight: bold;" class="button-a"> + <span style="color:#ffffff;">Changer mon mot de passe</span> + </a> + </td> + </tr> + </table> + <!-- Button : END --> + </td> + </tr> + <tr> + <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; line-height: 20px; color: #000000; text-align: center;"> + <p style="width:100%; text-align: justify;font-size: 18px;">Si vous n\'avez pas perdu votre mot de passe pour vous connecter à notre application <b>[HOSTNAME]</b>, ignorez simplement ce message.</p> + </td> + </tr> + <!-- 1 Column Text + Button : END -->'; + +$aMail["fpwdForm"] = '<!-- 1 Column Text + Button : BEGIN --> + <tr> + <td bgcolor="#ffffff" style="padding: 0px; text-align: center;background-color:#8c8c8c; height:50px; margin-bottom:10px;"> + <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #FFFFFF; font-weight: normal;">Saisissez votre nouveau mot de passe</h1> + </td> + </tr> + <tr> + <td bgcolor="#ffffff" style="padding: 20px 40px 40px; font-family: sans-serif; font-size: 15px; line-height: 20px; color: #555555; text-align: center;"> + <form style="text-align:-webkit-right;"> + <div style="text-align:left;"> + <label for="password" style="font-weight: bold;">Nouveau mot de passe</label> + <input type="password" id="password" name="password" class="input-text-control" required/> + </div> + <div style="text-align:left;margin-top:10px;"> + <label for="password_confirm" style="font-weight: bold;">Confirmer votre nouveau mot de passe</label> + <input type="password" id="password_confirm" name="password_confirm" class="input-text-control" required/> + </div> + <div style="margin-top:20px;"> + <input type="hidden" name="token" value="[TOKEN]"/> + <input type="hidden" name="output" value="text/html"/> + <button style="background: #5cb85c; border: 15px solid #5cb85c; font-family: sans-serif; font-size: 15px; line-height: 1.1; text-align: center; text-decoration: none; display: block; border-radius: 0px; font-weight: bold;" class="button-a" type="button" onclick="sendRequest(\'[URL]\')"><span style="color:#ffffff;">Envoi</span></button> + </div> + </form> + </td> + </tr>'; + +$aMail["passwordScript"] = '<script> + var password = document.getElementById("password"), confirm_password = document.getElementById("password_confirm"); + + function validatePassword(){ + if(password.value != confirm_password.value) { + confirm_password.setCustomValidity("Les deux mots de passe doivent être identique"); + } else { + confirm_password.setCustomValidity(\'\'); + } + } + + password.onchange = validatePassword; + confirm_password.onkeyup = validatePassword; + + function sendRequest (sUrl){ + if(typeof(password.value)!== "undefined"){ + if(password.value != ""){ + var xhr = new XMLHttpRequest(); + xhr.open("PUT", sUrl); + sParams = JSON.stringify({"password": password.value}); + xhr.onreadystatechange = function (aEvt) { + if (xhr.readyState == 4) { + if (xhr.status == 200) { + var oJson = JSON.parse(xhr.responseText); + window.location.replace(oJson.sUrl); + } else { + //xhr.responseText; + } + } + } + xhr.send(sParams); + }else{console.log("saisissez un mot de passe2")} + }else{console.log("saisissez un mot de passe")} + } + </script>'; + +$aMail["mainBody"] = '<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="utf-8"> <!-- utf-8 works for most cases --> + <meta name="viewport" content="width=device-width"> <!-- Forcing initial-scale shouldn\'t be necessary --> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> <!-- Use the latest (edge) version of IE rendering engine --> + <meta name="x-apple-disable-message-reformatting"> <!-- Disable auto-scale in iOS 10 Mail entirely --> + <title>VAM</title> <!-- The title tag shows in email notifications, like Android 4.4. --> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"> + <!-- Web Font / @font-face : BEGIN --> + <!-- NOTE: If web fonts are not required, lines 10 - 27 can be safely removed. --> + + <!-- Desktop Outlook chokes on web font references and defaults to Times New Roman, so we force a safe fallback font. --> + <!--[if mso]> + <style> + * { + font-family: sans-serif !important; + } + </style> + <![endif]--> + + <!-- All other clients get the webfont reference; some will render the font and others will silently fail to the fallbacks. More on that here: http://stylecampaign.com/blog/2015/02/webfont-support-in-email/ --> + <!--[if !mso]><!--> + <!-- insert web font reference, eg: <link href="https://fonts.googleapis.com/css?family=Roboto:400,700" rel="stylesheet" type="text/css"> --> + <!--<![endif]--> + + <!-- Web Font / @font-face : END --> + + <!-- CSS Reset --> + <style> + + /* What it does: Remove spaces around the email design added by some email clients. */ + /* Beware: It can remove the padding / margin and add a background color to the compose a reply window. */ + html, + body { + margin: 0 auto !important; + padding: 0 !important; + height: 100% !important; + width: 100% !important; + /*min-width: 600px;*/ + } + + /* What it does: Stops email clients resizing small text. */ + * { + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; +} + +/* What it does: Centers email on Android 4.4 */ +div[style*="margin: 16px 0"] { + margin:0 !important; +} + +/* What it does: Stops Outlook from adding extra spacing to tables. */ +table, +td { + mso-table-lspace: 0pt !important; + mso-table-rspace: 0pt !important; +} + +/* What it does: Fixes webkit padding issue. Fix for Yahoo mail table alignment bug. Applies table-layout to the first 2 tables then removes for anything nested deeper. */ +table { + border-spacing: 0 !important; + border-collapse: collapse !important; + table-layout: fixed !important; + margin: 0 auto !important; +} +table table table { + table-layout: auto; +} + +/* What it does: Uses a better rendering method when resizing images in IE. */ +img { + -ms-interpolation-mode:bicubic; +} + +/* What it does: A work-around for iOS meddling in triggered links. */ +*[x-apple-data-detectors] { + color: inherit !important; + text-decoration: none !important; +} + +/* What it does: A work-around for Gmail meddling in triggered links. */ +.x-gmail-data-detectors, +.x-gmail-data-detectors *, +.aBn { + border-bottom: 0 !important; + //cursor: default !important; +} + +/* What it does: Prevents Gmail from displaying an download button on large, non-linked images. */ +.a6S { + display: none !important; + opacity: 0.01 !important; +} +/* If the above doesn\'t work, add a .g-img class to any image in question. */ +img.g-img + div { + display:none !important; +} + +/* What it does: Prevents underlining the button text in Windows 10 */ +.button-link { + text-decoration: none !important; +} + +blockquote { + font-style:normal; + text-align:left; + //margin-left: 32px!important; + margin: 5px 5px 0px 32px!important; + //padding-top:10px; + //font-family:"Segoe Print","Times New Roman", Verdana; + padding-left: 7px; + min-height: 30px; + //background-color: #EFEFEF; + border-left: 2px solid #8c8c8c; +} + +blockquote > p { + margin:4.5px; +} + +.input-text-control{ + display: block; + width: 100%; + height: 14px; + padding: 4px 5px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; + color: #555; + background-color: #fff; + background-image: none; + border: 1px solid #ccc; + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + -webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s; + -o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; +} + +/* What it does: Removes right gutter in Gmail iOS app: https://github.com/TedGoas/Cerberus/issues/89 */ +/* Create one of these media queries for each additional viewport size you\'d like to fix */ +/* Thanks to Eric Lepetit (@ericlepetitsf) for help troubleshooting */ +@media only screen and (min-device-width: 375px) and (max-device-width: 413px) { /* iPhone 6 and 6+ */ + .email-container { + min-width: 375px !important; + } +} + +</style> + +<!-- What it does: Makes background images in 72ppi Outlook render at correct size. --> + <!--[if gte mso 9]> + <xml> + <o:OfficeDocumentSettings> + <o:AllowPNG/> + <o:PixelsPerInch>96</o:PixelsPerInch> + </o:OfficeDocumentSettings> + </xml> +<![endif]--> + +<!-- Progressive Enhancements --> +<style> + +/* What it does: Hover styles for buttons */ +.button-td, +.button-a { + transition: all 100ms ease-in; +} +.button-td:hover, +.button-a:hover { + background: #449D44 !important; + border-color: #449D44 !important; +} + +.bottom-strip{ + width: 120px !important; + height: 10px !important; + float: left !important; +} + +.square-logo-layout{ + width: 40px; + float: left !important; + background-color: #FFF;//#24292E; + border-radius: 50%; + font-size: 30px; + padding: 7.5px; + margin-right: 0px; + //color: #FFF; + cursor:pointer !important; +} + +.square-logo-layout > svg{ + cursor:pointer!important; +} + + +/* Media Queries */ +@media screen and (max-width: 600px) { + + .email-container { + width: 100% !important; + margin: auto !important; + } + + /* What it does: Forces elements to resize to the full width of their container. Useful for resizing images beyond their max-width. */ + .fluid { + max-width: 100% !important; + height: auto !important; + margin-left: auto !important; + margin-right: auto !important; + } + + /* What it does: Forces table cells into full-width rows. */ + .stack-column, + .stack-column-center { + display: block !important; + width: 100% !important; + max-width: 100% !important; + direction: ltr !important; + } + /* And center justify these ones. */ + .stack-column-center { + text-align: center !important; + } + + /* What it does: Generic utility class for centering. Useful for images, buttons, and nested tables. */ + .center-on-narrow { + text-align: center !important; + display: block !important; + margin-left: auto !important; + margin-right: auto !important; + float: none !important; + } + table.center-on-narrow { + display: inline-block !important; + } + + .input-text-control{ + display: block; + width: 100%; + height: 14px; + padding: 4px 5px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; + color: #555; + background-color: #fff; + background-image: none; + border: 1px solid #ccc; + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + -webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s; + -o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; + } + + /* What it does: Adjust typography on small screens to improve readability */ + .email-container p { + font-size: 17px !important; + line-height: 22px !important; + } + +} + +</style> + +</head> +<body width="100%" bgcolor="#E5E5E5" style="margin: 0px; mso-line-height-rule: exactly;"> + <center style="width: 600px; margin: auto; background: #FFFFFF; text-align: left;"> + <!-- Email Header : BEGIN --> + <table role="presentation" aria-hidden="true" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" width="600" style="margin: auto;" class="email-container"> + <tr> + <td style="padding: 20px 0px; text-align: center"> + <a href="http://www.veremes.com/" target="_blank"> + <svg version="1.1" id="Calque_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="335px" height="100px" viewBox="0 0 335 100" enable-background="new 0 0 335 100" xml:space="preserve"> + <g> + <rect fill="#FFFFFF" width="335" height="100"/> + <g> + <path fill="#1A171B" d="M308.774,60.788c-0.99-1.493-2.537-2.688-4.64-3.589c-0.533-0.224-1.577-0.57-3.142-1.042 + c-1.563-0.47-2.75-0.959-3.567-1.472c-0.893-0.547-1.532-1.161-1.916-1.841c-0.386-0.682-0.577-1.517-0.577-2.511 + c0-1.4,0.466-2.572,1.398-3.516c0.933-0.944,2.098-1.417,3.498-1.417c1.561,0,2.793,0.437,3.695,1.308 + c0.901,0.873,1.402,2.1,1.505,3.681h4.622c-0.12-2.909-1.026-5.178-2.72-6.806c-1.69-1.626-3.972-2.439-6.845-2.439 + c-2.71,0-5.016,0.916-6.921,2.744c-1.904,1.831-2.856,4.057-2.856,6.678c0,2.319,0.569,4.168,1.714,5.551 + c1.143,1.383,3.582,2.734,7.318,4.056c2.334,0.858,3.947,1.775,4.838,2.754c0.891,0.98,1.336,2.274,1.336,3.884 + c0,1.612-0.561,2.947-1.682,4.007c-1.121,1.063-2.526,1.592-4.219,1.592c-1.772,0-3.262-0.69-4.463-2.071 + c-1.202-1.379-1.802-3.12-1.802-5.228v-0.122h-4.502c0.103,3.535,1.114,6.344,3.039,8.431c1.922,2.085,4.466,3.127,7.637,3.127 + c3.108,0,5.674-0.952,7.698-2.853c2.025-1.899,3.038-4.301,3.038-7.205C310.261,64.182,309.764,62.279,308.774,60.788z + M118.462,41.021c-5.17,0-9.417,1.679-12.739,5.035c-3.32,3.357-4.979,7.607-4.979,12.742c0,4.912,1.693,9.118,5.084,12.617 + c3.389,3.502,7.535,5.252,12.438,5.252c3.694,0,6.947-0.998,9.756-2.988c2.808-1.994,4.988-4.849,6.542-8.569h-4.866 + c-1.103,2.332-2.666,4.151-4.688,5.459c-2.023,1.308-4.302,1.962-6.834,1.962c-3.575,0-6.558-1.131-8.947-3.394 + c-2.391-2.263-3.718-5.226-3.983-8.894h30.413v-0.318c0-5.604-1.601-10.154-4.797-13.655 + C127.662,42.771,123.529,41.021,118.462,41.021z M105.366,56.472c0.509-3.468,1.901-6.219,4.17-8.258 + c2.27-2.037,5.04-3.056,8.313-3.056c3.517,0,6.368,0.948,8.556,2.844c2.188,1.897,3.692,4.719,4.509,8.47H105.366z M99.054,31.046 + L84.898,69.101L72.402,35.38l0.007-0.047l-0.079-0.217c-0.401-1.095-0.841-2.3-1.34-3.546l-0.194-0.523h-0.021 + c-2.108-5.143-5.249-10.879-10.817-12.957c-5.541-2.069-12.762-0.675-17.169,3.314c-3.422,3.096-5.471,7.843-6.089,14.111 + c0-0.002-0.117,1.154-0.117,1.154c-0.239,2.31-0.481,4.665-0.354,7.034l0.047,0.874l0.875-0.048l2.31-0.124l0.876-0.046 + l-0.049-0.876c-0.113-2.069,0.115-4.268,0.335-6.396c0-0.001,0.12-1.172,0.12-1.172c0.517-5.235,2.121-9.103,4.771-11.499 + c3.349-3.03,8.825-4.09,13.024-2.522c4.294,1.604,6.994,6.964,8.88,11.717l1.387,3.688l0.208,0.57l0.005-0.004L83.24,75.692h3.407 + l16.788-44.646H99.054z M268.755,41.021c-5.171,0-9.418,1.679-12.738,5.035c-3.32,3.357-4.979,7.607-4.979,12.742 + c0,4.912,1.692,9.118,5.084,12.617c3.389,3.502,7.535,5.252,12.438,5.252c3.695,0,6.947-0.998,9.758-2.988 + c2.807-1.994,4.986-4.849,6.54-8.569h-4.866c-1.102,2.332-2.666,4.151-4.688,5.459c-2.022,1.308-4.302,1.962-6.835,1.962 + c-3.574,0-6.557-1.131-8.945-3.394c-2.392-2.263-3.72-5.226-3.984-8.894h30.415v-0.318c0-5.604-1.603-10.154-4.8-13.655 + C277.955,42.771,273.821,41.021,268.755,41.021z M255.658,56.472c0.51-3.468,1.901-6.219,4.171-8.258 + c2.27-2.037,5.039-3.056,8.314-3.056c3.516,0,6.367,0.948,8.555,2.844c2.187,1.897,3.692,4.719,4.509,8.47H255.658z + M148.164,42.625c-1.253,0.705-2.409,1.808-3.465,3.315v-3.946h-4.074v33.698h4.379V55.395c0-3.099,0.583-5.334,1.754-6.711 + c1.17-1.376,3.11-2.187,5.821-2.431l-0.032-4.744C150.878,41.549,149.417,41.922,148.164,42.625z M172.22,41.021 + c-5.171,0-9.418,1.679-12.738,5.035c-3.321,3.357-4.981,7.607-4.981,12.742c0,4.912,1.694,9.118,5.085,12.617 + c3.389,3.502,7.535,5.252,12.438,5.252c3.695,0,6.947-0.998,9.757-2.988c2.808-1.994,4.988-4.849,6.541-8.569h-4.866 + c-1.102,2.332-2.665,4.151-4.688,5.459c-2.023,1.308-4.303,1.962-6.834,1.962c-3.574,0-6.557-1.131-8.947-3.394 + c-2.391-2.263-3.718-5.226-3.984-8.894h30.414v-0.318c0-5.604-1.6-10.154-4.799-13.655 + C181.419,42.771,177.286,41.021,172.22,41.021z M159.124,56.472c0.51-3.468,1.901-6.219,4.17-8.258 + c2.271-2.037,5.04-3.056,8.313-3.056c3.517,0,6.369,0.948,8.556,2.844c2.188,1.897,3.692,4.719,4.51,8.47H159.124z + M232.864,41.264c-2.51,0-4.779,0.509-6.809,1.518c-2.03,1.012-3.73,2.49-5.097,4.43c-1.106-1.818-2.712-3.264-4.82-4.338 + c-2.108-1.072-4.441-1.61-7-1.61c-2.212,0-4.191,0.379-5.941,1.134c-1.748,0.756-3.27,1.88-4.558,3.372v-3.776h-4.258v33.698 + h4.258V59.274c0-2.927,0.105-4.978,0.321-6.154c0.215-1.177,0.586-2.227,1.119-3.147c0.856-1.473,2.026-2.604,3.509-3.391 + c1.481-0.787,3.203-1.182,5.165-1.182c3.248,0,5.66,0.926,7.233,2.777c1.573,1.852,2.36,4.722,2.36,8.61v18.905h4.136V59.274 + c0-2.927,0.112-4.978,0.338-6.154c0.223-1.177,0.59-2.227,1.1-3.147c0.854-1.473,2.012-2.604,3.467-3.391 + c1.457-0.787,3.143-1.182,5.06-1.182c3.318,0,5.711,0.947,7.178,2.84c1.469,1.894,2.202,5.07,2.202,9.529v17.923h4.137V58.658 + c0-6.093-1.043-10.516-3.122-13.268C240.76,42.64,237.436,41.264,232.864,41.264z"/> + <g> + <path fill="#1A171B" d="M36.791,43.727c4.5,3.508,3.856-8.518,5.095-10.445c-0.251,0.39,1.045-0.227,1.359-0.68 + c0.714-1.033,0.78-1.304,1.783-0.467c0.685,0.57,4.073-2.156,5.011-2.76c-0.206-0.223,0.68,1.338,0.68,0.764 + c0,4.354-0.253,0.671,2.42,1.401c1.206,0.329,2.179-0.847,3.269,0.893c-0.283,0.31-0.566,0.621-0.849,0.933 + c4.111,1.071,3.139,4.072,7.134,6.029c-1.239,0.545-2.304,1.363-2.463,2.803c1.169,0.267,2.366,0.422,3.566,0.424 + c-0.34,0.311-0.679,0.622-1.02,0.934c2.158,0.346,2.307,2.235,4.671,1.699c-0.891,1.669-4.83,4.51-1.274,5.094 + c-0.198,0.085-0.396,0.171-0.594,0.255c0.745,0.477,1.172,1.362,1.868,1.868c-0.946,0.11-1.794,0.679-2.802,0.68 + c0.04,1.611,1.581,1.87,2.717,2.124c-2.577,1.72,0.311,0.894,0.722,2.122c-0.165-0.493,1.154,1.254,0.807,0.977 + c-0.173-0.139-1.318,0.596-0.807,1.062c0.174,0.158,4.875,0.583,1.98,1.482c-1.714,0.534-4.447,0.456-3.679,2.763 + c-1.174-0.126-1.886,0.235-2.845-0.083c0.154,0.687-0.067,0.846,0.213,1.442c-1.335,0.382-2.595-0.269-3.695-1.061 + c-0.042,0.268-0.084,0.537-0.127,0.806c-0.368-0.325-0.736-0.649-1.104-0.976c0.016,0.536-0.255,1.096-0.212,1.656 + c-0.877-0.677-5.258-4.209-2.972-1.189c0.905,1.195,1.842,1.439,2.93,2.463c-1.363,0.366-0.2,5.027,1.91,4.627 + c-1.045,1.709-3.151-0.414-4.289,1.828c1.419,0.304,0.683,0.515,1.826,1.146c-0.596-0.139-1.35,0.109-1.996-0.043 + c0.058,0.606,1.302,2.911,1.104,3.185c-0.761,1.05-2.778-1.146-3.949-1.146c-0.209,0.18-0.252,0.392-0.126,0.636 + c1.264,0.254,0.742,0.52,0.976,1.698c-2.448-0.878-0.467,0.231-0.467,1.104c0,3.686-2.677-0.092-2.548,2.505 + c-0.269-0.014-0.537-0.027-0.806-0.041c0.263,2.893-2.243-0.257-2.845,3.056c0.048,0.018-3.298-0.522-3.333-0.488 + c-1.136,1.135-1.402-0.027-2.174,0.598c-1.87,1.514-1.024-1.807-1.552-1.998c-0.694-0.253-2.246,1.984-2.455,0.573 + c-0.207-1.396-0.55-3.131-1.463-1.656c-0.954-0.37-3.546,0.314-3.842-0.572c-0.223-0.67-2.252-3.619-0.871-4.078 + c-0.407,0.137-1.347,0.543-1.719,0.765c0.857-2.833-1.515-2.188-3.185-1.146c0.104-1.69,0.899-3.521-1.083-3.247 + c0.293-0.662,0.337-1.645,0.828-2.356c-0.382,0.084-0.764,0.17-1.146,0.254c0.059-0.477,4.984-10.382,5.223-10.382 + c-0.199-0.062-0.369-0.169-0.51-0.318c-1.236,3.129-3.048,5.804-5.095,8.534c0.046-0.52-0.061-1.008-0.318-1.464 + c-0.23,0-1.983,2.339-2.548,2.61c0-0.253,0-0.509,0-0.763c-0.231,0.366-1.444,2.675-1.783,2.675c-0.329,0,0.481-1.796-0.51-1.467 + c-0.944,0.315-1.458,0.54-2.292,0.701c0.99-1.181,1.719-2.432-0.446-1.783c0.204-0.955-0.191-1.231-0.191-1.974 + c-0.159,0.41-0.393,0.771-0.7,1.084c-0.23-1.254-0.242-6.138-0.383-6.138c-1.46,0,0.123-2.937,0.341-3.312 + c-0.17-0.142-0.341-0.282-0.51-0.425c0.05,1.16-0.433,1.305-0.764,2.293c-1.08-1.767,1.521-3.314-0.764-3.99 + c0.311-0.256,0.623-0.51,0.934-0.765c-0.199-0.198-0.396-0.396-0.595-0.595c-0.269,0.61-0.729,1.216-1.02,1.783 + c-0.154-0.479,0.034-2.888,0.51-2.888c-0.313-0.017-0.624-0.044-0.935-0.084c0.723-0.973,0.495-1.264,1.444-1.699 + c-0.17-0.51-0.339-1.019-0.509-1.529c0.17,0.058,0.339,0.114,0.509,0.171c0.149,0.083-0.41-0.829-0.68-0.424 + c0.503-0.754,1.123-1.223,1.868-1.614c-0.283-0.17-0.566-0.34-0.849-0.51c0.664-0.432,1.176-1.357,2.038-1.698 + c-0.566-1.104-0.674-1.464-1.868-1.784c-0.033-2.104,1.163-9.234,2.717-8.407c-0.049-0.578-0.062-0.699,0.509-0.765 + c-0.087-1.145-0.637-0.797,0.595-1.104c-0.979-4.102,1.847-2.083,3.651-1.104c0-0.341,0-0.68,0-1.02 + c0.534,0.116,1.853,0.641,2.177,0.085c0.109-0.188-0.92-0.513-1.073-0.594c1.126-0.569,0.975-1.844,0.17-3.143 + c1.503,0.075,3.008,0.738,3.482-0.594c0.613,0.591,1.188,0.584,1.697,1.358c0.284-0.481,0.566-0.963,0.85-1.443 + c0.53,0.646,1.549,2.504,2.59,1.983c0.223-0.111,1.486,0.661,1.486,0.394c0-1.159,0.588-2.121,1.529-2.717 + C35.584,34.716,35.005,38.027,36.791,43.727"/> + </g> + </g> + </g> + </svg> + </a> + </td> + </tr> +</table> +<!-- Email Header : END --> + +<!-- Email Body : BEGIN --> +<table role="presentation" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" width="600" style="margin: auto;" class="email-container"> + + [CONTENT] + +</table> +<!-- Email Body : END --> + +<!-- Email Footer : BEGIN --> +<table role="presentation" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" width="600" style="margin: auto;" class="email-container"> + <tr> + <td style="padding: 0px;width: 100%;" class="x-gmail-data-detectors"> + <div class="bottom-strip" style="background-color: #39468A;"></div> + <div class="bottom-strip" style="background-color: #E74F23;"></div> + <div class="bottom-strip" style="background-color: #923288;"></div> + <div class="bottom-strip" style="background-color: #1C9DB2;"></div> + <div class="bottom-strip" style="background-color: #E10759;"></div> + </td> + </tr> +</table> +<table role="presentation" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" width="600" style="margin: auto;" class="email-container"> + <tr> + <td style="padding: 10px;width: 50%;font-size: 12px; font-family: sans-serif; line-height:18px; text-align: center; color: #888888; cursor:pointer;" class="x-gmail-data-detectors"> + <a class="square-logo-layout" href="https://twitter.com/Veremes_Info" target="_blank" style="color: #24292E; cursor:pointer;"> + <!--<i class="fa fa-twitter" style=""></i>--> + <svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" style="fill: currentColor; cursor:pointer;"> + <title>Twitter</title> + <path d="M50,0a50,50,0,1,0,50,50A50,50,0,0,0,50,0ZM75.28,37c0,.56,0,1.12,0,1.68C75.32,56,62.2,75.83,38.21,75.83h0a37,37,0,0,1-20-5.86,24.62,24.62,0,0,0,3.11.18,26.13,26.13,0,0,0,16.2-5.58,13,13,0,0,1-12.18-9.06,12.34,12.34,0,0,0,2.45.24,13,13,0,0,0,3.44-.46A13,13,0,0,1,20.77,42.5v-.16A13.11,13.11,0,0,0,26.68,44a13.05,13.05,0,0,1-4-17.42A37,37,0,0,0,49.52,40.18a13.19,13.19,0,0,1-.34-3,13.05,13.05,0,0,1,22.57-8.92A26.11,26.11,0,0,0,80,25.12a13.08,13.08,0,0,1-5.73,7.22,26.23,26.23,0,0,0,7.49-2.06A26.49,26.49,0,0,1,75.28,37Z"/> + </svg> + </a> + <a class="square-logo-layout" href="https://www.linkedin.com/company/veremes/" target="_blank" style="color: #24292E; cursor:pointer;"> + <!--<i class="fa fa-linkedin" style=""></i>--> + <svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" style="fill: currentColor; cursor:pointer;"> + <title>LinkedIn</title> + <path d="M50,0a50,50,0,1,0,50,50A50,50,0,0,0,50,0ZM60.71,51a6.48,6.48,0,0,0-6.33,6.32V79.68H41.74V41.74H54.38v5a13.63,13.63,0,0,1,10.54-5.9A15,15,0,0,1,79.68,55.65v24H67V57.33A6.48,6.48,0,0,0,60.71,51ZM27,34.57A7.59,7.59,0,1,1,34.57,27,7.55,7.55,0,0,1,27,34.57Zm6.32,7.17V79.68H20.66V41.74Z"/> + </svg> + </a> + <a class="square-logo-layout" href="http://vm09.veremes.net/" target="_blank" style="color: #24292E; cursor:pointer;"> + <!--<i class="fa fa-github" style=""></i>--> + <svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" style="fill: currentColor; cursor:pointer;"> + <title>GitLab</title> + <path d="M50,0a50,50,0,1,0,50,50A50,50,0,0,0,50,0ZM75.18,15.1a1,1,0,0,1,2,0l9,27.81h-20Zm-52.34,0a1,1,0,0,1,2,0l9,27.81h-20ZM9.85,61A2.63,2.63,0,0,1,8.9,58l4.35-13.4L47.16,88.07Zm4.33-17h20l14.3,44Zm21.19,0H64.63L50,89Zm30.42,0h20L51.49,88ZM90.15,61,52.84,88.07,86.75,44.62,91.1,58A2.63,2.63,0,0,1,90.15,61Z"/> + </svg> + </a> + <a class="square-logo-layout" href="http://www.veremes.com/" target="_blank" style="color: #24292E; cursor:pointer;"> + <!--<i class="fa fa-globe" style=""></i>--> + <svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" style="fill: currentColor; cursor:pointer;"> + <defs> + <style>.cls-1{fill:none;}</style> + </defs> + <title>Veremes</title> + <path class="cls-1" d="M60.17,18.09h0S60.15,18.05,60.17,18.09Z"/> + <path class="cls-1" d="M48.39,26.38c.66-6.65,2.7-11.56,6.06-14.6a11.45,11.45,0,0,1,1.82-1.29A40.5,40.5,0,0,0,50,10l-1,0c-3.18,3.87-5.13,9.17-5.79,15.85l-.15,1.47c-.21,2.06-.42,4.16-.47,6.28-1.35-5.7-.83-9.69-1.1-15.87A4,4,0,0,0,39.6,21.2c0,.34-1.6-.64-1.88-.5-1.33.67-2.62-1.69-3.29-2.51L33.35,20c-.65-1-1.38-1-2.16-1.73-.6,1.69-2.51.85-4.42.76,1,1.65,1.21,3.26-.21,4,.19.1,1.5.51,1.36.75-.41.71-2.09,0-2.77-.11V25c-2.29-1.25-5.88-3.81-4.63,1.4-1.57.39-.87-.05-.76,1.4-.72.09-.71.24-.64,1-2-1.05-3.5,8-3.45,10.68,1.51.4,1.65.86,2.37,2.26-1.1.43-1.75,1.61-2.59,2.16l1.08.64a6,6,0,0,0-2.37,2c.34-.51,1.05.65.86.54l-.65-.22c.22.65.43,1.3.65,2-1.21.55-.92.92-1.83,2.15.39,0,.78.09,1.18.11-.6,0-.84,3.06-.65,3.67.37-.72,1-1.49,1.3-2.27l.75.76-1.18,1c2.9.86-.4,2.82,1,5.06.42-1.25,1-1.43,1-2.91l.65.54c-.28.48-2.29,4.21-.44,4.21.18,0,.2,6.2.49,7.79a4,4,0,0,0,.89-1.38c0,.95.5,1.3.24,2.51,2.75-.82,1.82.76.57,2.26a20.92,20.92,0,0,0,2.91-.89c1.26-.41.23,1.86.64,1.86s2-2.93,2.27-3.39v1c.72-.35,2.94-3.32,3.23-3.32a3.11,3.11,0,0,1,.41,1.86,46.51,46.51,0,0,0,6.47-10.83,1.46,1.46,0,0,0,.65.4c-.31,0-6.56,12.58-6.64,13.18l1.46-.32c-.63.9-.68,2.15-1,3,2.51-.35,1.5,2,1.37,4.13,2.12-1.33,5.14-2.15,4.05,1.45a15.73,15.73,0,0,1,2.18-1c-1.76.58.82,4.33,1.11,5.17.37,1.13,3.66.26,4.87.73,1.16-1.87,1.6.33,1.86,2.11s2.24-1,3.12-.73c.67.24-.4,4.46,2,2.53,1-.79,1.32.68,2.76-.75,0,0,4.29.64,4.23.62.77-4.21,3.94-.21,3.61-3.88l1,0c-.16-3.3,3.24,1.5,3.24-3.18,0-1.11-2.52-2.52.59-1.4-.29-1.5.37-1.84-1.24-2.16a.62.62,0,0,1,.16-.81c1.49,0,4,2.79,5,1.46.25-.35-1.33-3.28-1.4-4,.82.2,1.77-.12,2.53.06-1.45-.8-.52-1.07-2.32-1.46,1.45-2.84,4.12-.15,5.45-2.32C70.78,71.9,69.3,66,71,65.52c-1.38-1.3-2.57-1.61-3.72-3.13-2.9-3.83,2.66.65,3.78,1.51-.06-.71.28-1.42.27-2.1L72.76,63c0-.34.11-.69.16-1,1.4,1,3,1.83,4.69,1.35-.35-.76-.08-1-.27-1.83,1.22.4,2.12-.06,3.61.11-1-2.93,2.5-2.84,4.67-3.51,3.68-1.15-2.29-1.68-2.51-1.88-.65-.6.8-1.53,1-1.35.44.35-1.23-1.87-1-1.24-.52-1.56-4.19-.51-.92-2.7-1.44-.32-3.4-.65-3.45-2.69,1.28,0,2.36-.73,3.56-.87-.89-.64-1.43-1.76-2.37-2.37l.75-.32c-4.51-.74.49-4.35,1.62-6.47-3,.68-3.19-1.72-5.93-2.16l1.29-1.18a20.84,20.84,0,0,1-4.52-.54c.19-1.83,1.55-2.87,3.12-3.56-5.07-2.49-3.84-6.3-9.06-7.66L68.28,22c-1.38-2.21-2.62-.72-4.15-1.13-3.39-.93-3.07,3.75-3.07-1.78,0,.62-.81-.72-.89-1-1.22.8-5.47,4.21-6.34,3.49-1.27-1.06-1.35-.72-2.26.59-.4.58-2,1.36-1.73.87-.9,1.41-1,7.1-2.05,10.79,0-2,.25-4,.45-6Z"/> + <path d="M99.94,47.71l0-.64c0-.61-.08-1.23-.14-1.84,0-.16,0-.31,0-.46-.08-.74-.17-1.47-.28-2.2,0-.19-.06-.38-.1-.57q-.13-.86-.3-1.68l-.12-.64c-.15-.7-.31-1.39-.48-2.08,0-.15-.09-.3-.13-.45-.14-.56-.3-1.11-.46-1.65-.08-.24-.15-.49-.23-.73-.16-.51-.34-1-.52-1.54-.06-.17-.12-.35-.19-.53-.23-.62-.47-1.24-.73-1.85-.11-.27-.22-.53-.34-.8s-.35-.78-.53-1.17l-.38-.81c-.27-.56-.56-1.11-.85-1.66-.16-.3-.33-.59-.49-.88s-.35-.61-.53-.92-.37-.63-.57-.94L92,22.86q-.55-.86-1.14-1.68l-.45-.62c-.25-.35-.51-.69-.77-1-.13-.18-.27-.35-.41-.52q-1.36-1.74-2.9-3.35L86,15.35q-1.66-1.72-3.48-3.29L82.46,12a51.79,51.79,0,0,0-5.4-4h0a49.56,49.56,0,0,0-4.42-2.54h0A49.59,49.59,0,0,0,63.94,2h0c-1.56-.45-3.16-.83-4.78-1.13L58.49.73,57.21.52C56.59.43,56,.35,55.33.29L54.54.21,53,.1l-.73,0C51.51,0,50.76,0,50,0a50,50,0,1,0,50,50C100,49.23,100,48.47,99.94,47.71ZM49.84,23c-.31.49,1.33-.29,1.73-.87.91-1.31,1-1.65,2.26-.59.87.72,5.12-2.69,6.34-3.49,0,0,0-.06,0,0h0c.08.24.89,1.58.89,1,0,5.53-.32.85,3.07,1.78,1.53.41,2.77-1.08,4.15,1.13L67.2,23.14c5.22,1.36,4,5.17,9.06,7.66-1.57.69-2.93,1.73-3.12,3.56a20.84,20.84,0,0,0,4.52.54l-1.29,1.18c2.74.44,2.92,2.84,5.93,2.16-1.13,2.12-6.13,5.73-1.62,6.47l-.75.32c.94.61,1.48,1.73,2.37,2.37-1.2.14-2.28.86-3.56.87.05,2,2,2.37,3.45,2.69-3.27,2.19.4,1.14.92,2.7-.21-.63,1.46,1.59,1,1.24-.22-.18-1.67.75-1,1.35.22.2,6.19.73,2.51,1.88-2.17.67-5.64.58-4.67,3.51-1.49-.17-2.39.29-3.61-.11.19.87-.08,1.07.27,1.83-1.7.48-3.29-.34-4.69-1.35,0,.34-.11.69-.16,1l-1.4-1.24c0,.68-.33,1.39-.27,2.1C70,63,64.41,58.56,67.31,62.39c1.15,1.52,2.34,1.83,3.72,3.13-1.73.46-.25,6.38,2.43,5.87-1.33,2.17-4-.52-5.45,2.32,1.8.39.87.66,2.32,1.46-.76-.18-1.71.14-2.53-.06.07.77,1.65,3.7,1.4,4-1,1.33-3.53-1.46-5-1.46a.62.62,0,0,0-.16.81c1.61.32,1,.66,1.24,2.16-3.11-1.12-.59.29-.59,1.4,0,4.68-3.4-.12-3.24,3.18l-1,0c.33,3.67-2.84-.33-3.61,3.88.06,0-4.19-.67-4.23-.62-1.44,1.43-1.78,0-2.76.75-2.37,1.93-1.3-2.29-2-2.53-.88-.32-2.86,2.52-3.12.73s-.7-4-1.86-2.11c-1.21-.47-4.5.4-4.87-.73-.29-.84-2.87-4.59-1.11-5.17a15.73,15.73,0,0,0-2.18,1c1.09-3.6-1.93-2.78-4.05-1.45.13-2.15,1.14-4.48-1.37-4.13.37-.84.42-2.09,1-3l-1.46.32c.08-.6,6.33-13.18,6.64-13.18a1.46,1.46,0,0,1-.65-.4,46.51,46.51,0,0,1-6.47,10.83A3.11,3.11,0,0,0,28,67.51c-.29,0-2.51,3-3.23,3.32v-1c-.3.46-1.83,3.39-2.27,3.39s.62-2.27-.64-1.86a20.92,20.92,0,0,1-2.91.89c1.25-1.5,2.18-3.08-.57-2.26.26-1.21-.24-1.56-.24-2.51a4,4,0,0,1-.89,1.38c-.29-1.59-.31-7.79-.49-7.79-1.85,0,.16-3.73.44-4.21l-.65-.54c.06,1.48-.55,1.66-1,2.91-1.37-2.24,1.93-4.2-1-5.06l1.18-1L15,52.47c-.34.78-.93,1.55-1.3,2.27-.19-.61,0-3.67.65-3.67-.4,0-.79-.06-1.18-.11.91-1.23.62-1.6,1.83-2.15-.22-.65-.43-1.3-.65-2l.65.22c.19.11-.52-1-.86-.54a6,6,0,0,1,2.37-2l-1.08-.64c.84-.55,1.49-1.73,2.59-2.16-.72-1.4-.86-1.86-2.37-2.26-.05-2.68,1.47-11.73,3.45-10.68-.07-.73-.08-.88.64-1-.11-1.45-.81-1,.76-1.4-1.25-5.21,2.34-2.65,4.63-1.4v-1.3c.68.15,2.36.82,2.77.11.14-.24-1.17-.65-1.36-.75,1.42-.73,1.23-2.34.21-4,1.91.09,3.82.93,4.42-.76C32,19,32.7,19,33.35,20l1.08-1.83c.67.82,2,3.18,3.29,2.51.28-.14,1.88.84,1.88.5a4,4,0,0,1,1.94-3.45c.27,6.18-.25,10.17,1.1,15.87,0-2.12.26-4.22.47-6.28l.15-1.47c.66-6.68,2.61-12,5.79-15.85l1,0a40.5,40.5,0,0,1,6.27.49,11.45,11.45,0,0,0-1.82,1.29c-3.36,3-5.4,8-6.06,14.6l-.15,1.49c-.2,2-.41,4-.45,6C48.82,30.14,48.94,24.45,49.84,23Z"/> + </svg> + </a> + </td> + <td style="padding: 10px;width: 50%;font-size: 20px; font-family: sans-serif; line-height:18px; text-align: center; color: #000000;" class="x-gmail-data-detectors"> + <div style="margin-bottom:10px;">Pour toute question :</div> + <div>support@veremes.com</div> + </td> + </tr> +</table> +<!-- Email Footer : END --> + +</center> +[SCRIPT] +</body> +</html>'; +?> \ No newline at end of file diff --git a/web_service/conf/properties.inc b/web_service/conf/properties.inc index ccb5266a..ff2e872e 100755 --- a/web_service/conf/properties.inc +++ b/web_service/conf/properties.inc @@ -1,5 +1,7 @@ <?php - $properties["schema_extraction"] = 's_extraction'; - $properties['color_mutualized'] = 'green'; - $properties['color_no_mutualized'] = 'red'; -?> \ No newline at end of file +$properties['color_mutualized'] = 'green'; +$properties['color_no_mutualized'] = 'red'; +$properties['sig'] = '*.shp'; +$properties['dao'] = '*.dao'; +$properties['shared_dir'] = 'D:/serveur/gtf/vas/shared'; +?> diff --git a/web_service/conf/properties_server.inc b/web_service/conf/properties_server.inc new file mode 100644 index 00000000..1f67047d --- /dev/null +++ b/web_service/conf/properties_server.inc @@ -0,0 +1,3 @@ +<?php + $properties['schema_extraction'] = 's_extraction'; +?> \ No newline at end of file diff --git a/web_service/conf/selected_properties.inc b/web_service/conf/selected_properties.inc new file mode 100644 index 00000000..90da243f --- /dev/null +++ b/web_service/conf/selected_properties.inc @@ -0,0 +1,18 @@ +<?php + +$aAdminFields = Array( + 'color_mutualized', + 'color_no_mutualized', + 'sig', + 'dao' +); +$aUserFields = Array( + 'color_mutualized', + 'color_no_mutualized', + 'sig', + 'dao' +); + +$properties['aAdminFields'] = array_merge($properties['aAdminFields'], $aAdminFields); +$properties['aUserFields'] = array_merge($properties['aUserFields'], $aUserFields); +?> \ No newline at end of file diff --git a/web_service/conf/version.inc b/web_service/conf/version.inc index a812e4b5..a8238eb5 100755 --- a/web_service/conf/version.inc +++ b/web_service/conf/version.inc @@ -1,7 +1,7 @@ <?php -// Numéro de la version de [Module_name] +// Numéro de la version de extraction define ("VM_VERSION", "20XX.XX.XX"); define ("VM_BUILD", "XXXXX"); define ("VM_MONTH_YEAR", "XX_20XX"); -define ("VM_STATUS", "UNSTABLE"); -?> \ No newline at end of file +define ("VM_STATUS", "STABLE"); +?> diff --git a/web_service/sql/sqlQueries.xml b/web_service/sql/sqlQueries.xml index 82925586..8e670ca0 100755 --- a/web_service/sql/sqlQueries.xml +++ b/web_service/sql/sqlQueries.xml @@ -7,10 +7,7 @@ <version>2017-01-00</version> <code> <![CDATA[ - select s_vitis.create_role_if_not_exists('extraction_user', 'NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION'); - select s_vitis.create_role_if_not_exists('extraction_admin', 'NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION'); - INSERT INTO s_vitis.privileges(rolname, description) VALUES ('extraction_user', 'utilisateur extraction'); - INSERT INTO s_vitis.privileges(rolname, description) VALUES ('extraction_admin', 'administrateur extraction'); + --Partie pour le module extraction version 2017-01-00 généré par WAB le 22/05/2018 à 09:09:32 --Partie pour le module extraction version 2017-01-01 généré par WAB le 18/07/2017 à 09:52:00 CREATE SCHEMA s_extraction AUTHORIZATION u_vitis; GRANT ALL ON SCHEMA s_extraction TO u_vitis; @@ -34,19 +31,21 @@ ALTER TABLE s_extraction.rt_format OWNER TO u_vitis; CREATE TABLE s_extraction.rt_layer (layer_id character varying(100) NOT NULL, layer character varying(255), category character varying(50), restriction character varying(50), unused_attributes text); ALTER TABLE s_extraction.rt_layer OWNER TO u_vitis; - INSERT INTO s_extraction. rt_coordsys (coordsys_id, coordsys) VALUES ('EPSG:27572', 'Lambert 2 étendu'); - INSERT INTO s_extraction. rt_coordsys (coordsys_id, coordsys) VALUES ('Lambert93', 'Lambert 93'); - INSERT INTO s_extraction. rt_coordsys (coordsys_id, coordsys) VALUES ('EPSG:3944', 'Lambert 93 CC44'); - INSERT INTO s_extraction. rt_coordsys (coordsys_id, coordsys) VALUES ('EPSG:4326', 'WGS 84'); - INSERT INTO s_extraction. rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('ECW', 'Er Mapper ECW', true, false); - INSERT INTO s_extraction. rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('ACAD', 'Autocad DWG', false, true); - INSERT INTO s_extraction. rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('SHAPE', 'Esri Shapefile', false, true); - INSERT INTO s_extraction. rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('MAPINFO', 'Mapinfo Tab', false, true); - INSERT INTO s_extraction. rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('MIF', 'Mapinfo MIF/MID', false, true); - INSERT INTO s_extraction. rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('GML', 'GML', false, true); - INSERT INTO s_extraction. rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('OGCKML', 'KML', false, true); - INSERT INTO s_extraction. rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('GEOJSON', 'GEOJSON', false, true); - INSERT INTO s_extraction. rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('TIFF', 'TIFF', true, false); + CREATE TABLE s_extraction.version(version character varying(100) NOT NULL, build integer NOT NULL, date timestamp with time zone NOT NULL, active boolean NOT NULL, CONSTRAINT version_pkey PRIMARY KEY (version)); + ALTER TABLE s_extraction.version OWNER TO u_vitis; + INSERT INTO s_extraction.rt_coordsys (coordsys_id, coordsys) VALUES ('EPSG:27572', 'Lambert 2 étendu'); + INSERT INTO s_extraction.rt_coordsys (coordsys_id, coordsys) VALUES ('Lambert93', 'Lambert 93'); + INSERT INTO s_extraction.rt_coordsys (coordsys_id, coordsys) VALUES ('EPSG:3944', 'Lambert 93 CC44'); + INSERT INTO s_extraction.rt_coordsys (coordsys_id, coordsys) VALUES ('EPSG:4326', 'WGS 84'); + INSERT INTO s_extraction.rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('ECW', 'Er Mapper ECW', true, false); + INSERT INTO s_extraction.rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('ACAD', 'Autocad DWG', false, true); + INSERT INTO s_extraction.rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('SHAPE', 'Esri Shapefile', false, true); + INSERT INTO s_extraction.rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('MAPINFO', 'Mapinfo Tab', false, true); + INSERT INTO s_extraction.rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('MIF', 'Mapinfo MIF/MID', false, true); + INSERT INTO s_extraction.rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('GML', 'GML', false, true); + INSERT INTO s_extraction.rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('OGCKML', 'KML', false, true); + INSERT INTO s_extraction.rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('GEOJSON', 'GEOJSON', false, true); + INSERT INTO s_extraction.rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('TIFF', 'TIFF', true, false); INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.arrondissement', 'id_geofla', 'fme_real64', 'fme_no_geom;fme_point;fme_line;fme_area;fme_surface;fme_collection', 1); INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.arrondissement', 'code_arr', 'fme_varchar(1)', '', 2); INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.arrondissement', 'code_chf', 'fme_varchar(3)', '', 3); @@ -288,40 +287,374 @@ GRANT ALL ON TABLE s_extraction.v_extraction TO u_vitis; GRANT ALL ON TABLE s_extraction.v_extraction TO extraction_admin; GRANT ALL ON TABLE s_extraction.v_extraction TO extraction_user; - INSERT INTO s_extraction.rt_extraction_status_group(status_id, group_id, extraction_status_group_id) VALUES ((select status_id from s_extraction.rt_extraction_status where name ='START') , (select group_id from s_vitis.group where name ='demandeur'), (select nextval('s_extraction.seq_common'))); - INSERT INTO s_extraction.rt_extraction_status_group(status_id, group_id, extraction_status_group_id) VALUES ((select status_id from s_extraction.rt_extraction_status where name ='Nouveau') , (select group_id from s_vitis.group where name ='demandeur'), (select nextval('s_extraction.seq_common'))); - INSERT INTO s_extraction.rt_extraction_status_group(status_id, group_id, extraction_status_group_id) VALUES ((select status_id from s_extraction.rt_extraction_status where name ='AE Demandé') , (select group_id from s_vitis.group where name ='demandeur'), (select nextval('s_extraction.seq_common'))); - INSERT INTO s_extraction.rt_extraction_status_group(status_id, group_id, extraction_status_group_id) VALUES ((select status_id from s_extraction.rt_extraction_status where name ='AE Généré') , (select group_id from s_vitis.group where name ='demandeur'), (select nextval('s_extraction.seq_common'))); - INSERT INTO s_extraction.rt_extraction_status_group(status_id, group_id, extraction_status_group_id) VALUES ((select status_id from s_extraction.rt_extraction_status where name ='AE Soumis') , (select group_id from s_vitis.group where name ='demandeur'), (select nextval('s_extraction.seq_common'))); - INSERT INTO s_extraction.rt_extraction_status_group(status_id, group_id, extraction_status_group_id) VALUES ((select status_id from s_extraction.rt_extraction_status where name ='Autorisée') , (select group_id from s_vitis.group where name ='demandeur'), (select nextval('s_extraction.seq_common'))); - INSERT INTO s_extraction.rt_extraction_status_group(status_id, group_id, extraction_status_group_id) VALUES ((select status_id from s_extraction.rt_extraction_status where name ='Refusée') , (select group_id from s_vitis.group where name ='demandeur'), (select nextval('s_extraction.seq_common'))); - INSERT INTO s_extraction.rt_extraction_status_group(status_id, group_id, extraction_status_group_id) VALUES ((select status_id from s_extraction.rt_extraction_status where name ='Terminée') , (select group_id from s_vitis.group where name ='demandeur'), (select nextval('s_extraction.seq_common'))); - INSERT INTO s_extraction.rt_extraction_status_group(status_id, group_id, extraction_status_group_id) VALUES ((select status_id from s_extraction.rt_extraction_status where name ='AE Soumis') , (select group_id from s_vitis.group where name ='controleur'), (select nextval('s_extraction.seq_common'))); - INSERT INTO s_extraction.rt_extraction_status_group(status_id, group_id, extraction_status_group_id) VALUES ((select status_id from s_extraction.rt_extraction_status where name ='Autorisée') , (select group_id from s_vitis.group where name ='controleur'), (select nextval('s_extraction.seq_common'))); - INSERT INTO s_extraction.rt_extraction_status_group(status_id, group_id, extraction_status_group_id) VALUES ((select status_id from s_extraction.rt_extraction_status where name ='Refusée') , (select group_id from s_vitis.group where name ='controleur'), (select nextval('s_extraction.seq_common'))); - ALTER TABLE s_extraction."extraction" ADD COLUMN email character varying(100); - - -- Frédéric le 05/09/2017 à 16h30 - ALTER TABLE s_extraction.rt_extraction_status OWNER TO u_vitis; - REVOKE ALL ON TABLE s_extraction.rt_extraction_status FROM postgres; - - GRANT ALL ON TABLE s_extraction.extraction TO extraction_admin; - GRANT ALL ON TABLE s_extraction.extraction TO extraction_user; - - GRANT ALL ON TABLE s_extraction.rt_coordsys TO extraction_admin; - GRANT SELECT ON TABLE s_extraction.rt_coordsys TO extraction_user; - - GRANT ALL ON TABLE s_extraction.rt_extraction_status TO extraction_admin; - GRANT SELECT ON TABLE s_extraction.rt_extraction_status TO extraction_user; - - GRANT ALL ON TABLE s_extraction.rt_format TO extraction_admin; - GRANT SELECT ON TABLE s_extraction.rt_format TO extraction_user; + GRANT ALL ON TABLE s_extraction.extraction TO extraction_admin; + GRANT ALL ON TABLE s_extraction.extraction TO extraction_user; + GRANT ALL ON TABLE s_extraction.rt_coordsys TO extraction_admin; + GRANT SELECT ON TABLE s_extraction.rt_coordsys TO extraction_user; + GRANT ALL ON TABLE s_extraction.rt_extraction_status TO extraction_admin; + GRANT SELECT ON TABLE s_extraction.rt_extraction_status TO extraction_user; + GRANT ALL ON TABLE s_extraction.rt_format TO extraction_admin; + GRANT SELECT ON TABLE s_extraction.rt_format TO extraction_user; + GRANT ALL ON TABLE s_extraction.rt_layer TO extraction_admin; + GRANT SELECT ON TABLE s_extraction.rt_layer TO extraction_user; + GRANT SELECT ON TABLE s_extraction.rt_feature_model TO extraction_admin; + GRANT SELECT ON TABLE s_extraction.rt_feature_model TO extraction_user; + --Partie WABSQL générée par WAB le 04/05/2018 à 14:31:04 + -- Ces tables sont normalement prévues dans votre fichier VisualParadigm et sont necessaires pour le fonctionnement de vos objets WAB + --CREATE TABLE s_extraction.rt_extraction_status (status_id integer NOT NULL DEFAULT nextval('s_vitis.seq_common'::regclass), name character varying(50) NOT NULL, progress integer NOT NULL, CONSTRAINT rt_extraction_status_pkey PRIMARY KEY (status_id)); + --CREATE TABLE s_extraction.rt_extraction_status_group (status_id integer NOT NULL, group_id integer NOT NULL, link_id integer NOT NULL DEFAULT nextval('s_vitis.seq_common'::regclass), CONSTRAINT rt_extraction_status_group_pkey PRIMARY KEY (link_id), CONSTRAINT fk_extraction_status_group FOREIGN KEY (status_id) REFERENCES s_extraction.rt_extraction_status (status_id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION); + CREATE TABLE s_extraction.extraction_history (history_id integer NOT NULL DEFAULT nextval('s_extraction.seq_common'::regclass), date timestamp with time zone NOT NULL, login character varying(50) NOT NULL, comment text NOT NULL, bo_id integer NOT NULL, CONSTRAINT extraction_history_pkey PRIMARY KEY (history_id), CONSTRAINT fk_extraction_history FOREIGN KEY (bo_id) REFERENCES s_extraction.extraction (bo_id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION); + -- Vue basique pour vos objets WAB tenant compte de la restriction groupe état + --CREATE OR REPLACE VIEW s_extraction.v_extraction AS SELECT extraction.* FROM s_extraction.extraction LEFT JOIN s_extraction.rt_extraction_status ON rt_extraction_status.status_id = extraction.status_id JOIN s_extraction.rt_extraction_status_group ON rt_extraction_status.status_id = rt_extraction_status_group.status_id WHERE (rt_extraction_status_group.group_id IN ( SELECT user_group.group_id FROM s_vitis.user_group LEFT JOIN s_vitis."user" ON user_group.user_id = "user".user_id WHERE "user".login::name = "current_user"())); + -- u_vitis est propriétaire de toutes vos tables + ALTER TABLE s_extraction.version OWNER TO u_vitis; + ALTER TABLE s_extraction.rt_feature_model OWNER TO u_vitis; + ALTER TABLE s_extraction.extraction OWNER TO u_vitis; + --ALTER TABLE s_extraction.ct OWNER TO u_vitis; + --ALTER TABLE s_extraction.commune OWNER TO u_vitis; + ALTER TABLE s_extraction.rt_coordsys OWNER TO u_vitis; + ALTER TABLE s_extraction.v_extraction OWNER TO u_vitis; + ALTER TABLE s_extraction.rt_format OWNER TO u_vitis; + ALTER TABLE s_extraction.rt_layer OWNER TO u_vitis; + ALTER TABLE s_extraction.rt_extraction_status OWNER TO u_vitis; + ALTER TABLE s_extraction.rt_extraction_status_group OWNER TO u_vitis; + ALTER TABLE s_extraction.extraction_history OWNER TO u_vitis; + -- u_vitis propriétaire sur les tables des objets WAB + --ALTER TABLE s_extraction.rt_extraction_status OWNER to u_vitis; + --ALTER TABLE s_extraction.rt_extraction_status_group OWNER to u_vitis; + --ALTER TABLE s_extraction.extraction_history OWNER to u_vitis; + -- Gestion des droits d'après les méthodes php saisies pour vos objets (annule et remplace) + REVOKE ALL ON TABLE s_extraction.rt_coordsys FROM extraction_admin; + REVOKE ALL ON TABLE s_extraction.v_extraction FROM extraction_user; + REVOKE ALL ON TABLE s_extraction.rt_format FROM extraction_admin; + REVOKE ALL ON TABLE s_extraction.rt_layer FROM extraction_admin; + GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE s_extraction.rt_coordsys TO extraction_admin; + GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE s_extraction.v_extraction TO extraction_user; + GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE s_extraction.rt_format TO extraction_admin; + GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE s_extraction.rt_layer TO extraction_admin; + -- Droits sur les tables des objets WAB + GRANT SELECT ON TABLE s_extraction.rt_extraction_status TO extraction_user; + GRANT SELECT ON TABLE s_extraction.rt_extraction_status_group TO extraction_user; + GRANT SELECT, INSERT ON TABLE s_extraction.extraction_history TO extraction_user; + INSERT INTO s_gtf.messageclass (messageclass, messageclass_type) VALUES ('AE Généré','action'); + INSERT INTO s_gtf.messageclass (messageclass, messageclass_type) VALUES ('Extraction Aix','action'); + INSERT INTO s_gtf.messageclass_action (messageclass_action_id, messageclass, actionclass, index, parameters) VALUES ((SELECT nextval('s_gtf.seq_common'::regclass)),'AE Généré','BoAction',0,'bo_id_attribute=''bo_id''|method=''trGenerer''|class=''Extractions''|module=''extraction'''); + INSERT INTO s_gtf.messageclass_action (messageclass_action_id, messageclass, actionclass, index, parameters) VALUES ((SELECT nextval('s_gtf.seq_common'::regclass)),'AE Généré','EmailAction',1,'template_id = ' || (SELECT email_template_id FROM s_gtf.email_template WHERE name = 'Email demandeur AE généré')); + INSERT INTO s_gtf.messageclass_action (messageclass_action_id, messageclass, actionclass, index, parameters) VALUES ((SELECT nextval('s_gtf.seq_common'::regclass)),'Extraction Aix','EmailAction',1,'template_id = ' || (SELECT email_template_id FROM s_gtf.email_template WHERE name = 'Email controleur données extraites')); + INSERT INTO s_gtf.messageclass_action (messageclass_action_id, messageclass, actionclass, index, parameters) VALUES ((SELECT nextval('s_gtf.seq_common'::regclass)),'Extraction Aix','EmailAction',2,'template_id = ' || (SELECT email_template_id FROM s_gtf.email_template WHERE name = 'Email demandeur données extraites')); + INSERT INTO s_gtf.messageclass_action (messageclass_action_id, messageclass, actionclass, index, parameters) VALUES ((SELECT nextval('s_gtf.seq_common'::regclass)),'Extraction Aix','BoAction',0,'bo_id_attribute=''bo_id''|method=''trTerminerExtraction''|class=''Extractions''|module=''extraction'''); + INSERT INTO s_gtf.email_template (name, subject, body, "to", cc, cci, code, use_advanced, rt_emailcontext_id, attachment) VALUES ('Email demandeur AE généré', NULL, NULL, NULL, NULL, NULL, '$logo = $this->aProperties[''ws_data_dir'']."/gtf/LOGO_AMP.jpg";' || chr(13) || '$base64 = base64_encode(file_get_contents($logo));' || chr(13) || '$image = ''<img src="data:image/png;base64,''.$base64.''">'';' || chr(13) || 'require_once("gtf_lib/gtf_object/Order.class.inc");' || chr(13) || 'require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || '$iBoId = $this->aObjects["oMessage"]->getBody(''bo_id'');' || chr(13) || '$sRequest = "SELECT * from s_extraction.extraction where bo_id = ".$iBoId;' || chr(13) || '$oPDOresult = $this->oBd->executeWithParams($sRequest, array());' || chr(13) || '$aBo = $this->oBd->ligneSuivante ($oPDOresult);' || chr(13) || '$iOrderId = $this->aObjects["oMessage"]->getBody(''order_id'');' || chr(13) || '$this->aObjects["oOrder"]= new orderLib($oBd, $iOrderId, $this->aObjects["oMessage"]->aProperties, "v_order");' || chr(13) || 'error_log( print_r($this->aObjects[''oOrder''], true));' || chr(13) || '$this->aObjects[''oUser''] = new User($oBd, $this->aObjects[''oOrder'']->aFields[''user_id''], $this->aObjects["oMessage"]->aProperties);' || chr(13) || '$this->to = $aBo[''email''];' || chr(13) || '$this->cc = $this->aObjects["oOrder"]->aFields[''email_notifications''];' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[PAYS D\''AIX - SIGAM] Demande N° ''.$aBo[''bo_id''].'' - Acte d\''Engagement pour l\''utilisation des données SIG'';' || chr(13) || '$this->body = $image.''<p>Bonjour</p>' || chr(13) || '<p></p>' || chr(13) || '<p>Suite à votre demande n°''.$aBo[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($aBo[''creation_date''])).'' pour l\''extraction des données, <u>merci de bien vouloir déposer l\''acte d\''engagement</u> ci-joint complété et signé, à l\''adresse suivante:<br/>' || chr(13) || '<A HREF="https://scpa430.cpa.fr/extraction">Application Extraction</A></p>' || chr(13) || '<p>Une fois réceptionné, l\''acte d\''engagement sera soumis à la validation du Territoire du Pays d\''Aix.<br/>' || chr(13) || 'Si celui-ci est validé, vous recevrez les données par mail (taille < 5Mo) ou par lien de téléchargement (taille > 5Mo).</p>' || chr(13) || '<p>Cordialement,</p>' || chr(13) || '<p>Le service d\''Information Géographique et Applicatifs Métiers (SIGAM)<br/>' || chr(13) || 'Territoire du Pays d\''Aix<br/>' || chr(13) || 'Tel : 04 42 93 83 50<br/>' || chr(13) || 'Mail : <a href="mailto:sig.paysdaix@ampmetropole.fr">sig.paysdaix@ampmetropole.fr</a> </p>'';' || chr(13) || '// les résultats de moins de 5 Mo sont envoyés en pièce jointe' || chr(13) || ' if (filesize($this->aObjects["oOrder"]->aFields[''result_file''])> (5*1024*1024)){' || chr(13) || ' $this->body .= ''<p>Le résultat est disponible par téléchargement :<br/><a href="'' . $this->aObjects["oOrder"]->aFields[''result_url''] . ''">Télécharger le résultat</a></p>'';' || chr(13) || ' } else {' || chr(13) || ' $this->aAttachments[0] = $this->aObjects["oOrder"]->aFields[''result_file''];' || chr(13) || ' }' || chr(13) || 'error_log(print_r($this->aObjects["oOrder"]->aFields, true));', '1', 'gtf', NULL); + INSERT INTO s_gtf.email_template (name, subject, body, "to", cc, cci, code, use_advanced, rt_emailcontext_id, attachment) VALUES ('Email demandeur AE à resoumettre', NULL, NULL, NULL, NULL, NULL, 'require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || 'require_once("vmlib/logUtil.inc");' || chr(13) || '$iBoId = $this->aObjects["oBusinessObject"]->aValues[''bo_id''];' || chr(13) || '$sUserLogin = $this->aObjects["oBusinessObject"]->aValues[''requestor''];' || chr(13) || '$sSql = ''SELECT user_id FROM s_framework.user WHERE login=\''''.$this->aObjects[''oBusinessObject'']->aValues[''requestor''].''\'''';' || chr(13) || '//writeToErrorLog($sSql);' || chr(13) || '$oResult = $oBd->execute($sSql);' || chr(13) || 'if(!$oBd->erreurRencontree) {' || chr(13) || ' if ($oBd->nombreLigne ($oResult) > 0) {' || chr(13) || ' $this->aObjects[''oUser''] = new User($oBd, $oBd->objetSuivant($oResult)->user_id, $this->aObjects["oBusinessObject"]->aProperties);' || chr(13) || ' }' || chr(13) || '}' || chr(13) || '//$this->to = ''sig@agglo-paysdaix.fr'';' || chr(13) || '$this->to = $this->aObjects[''oBusinessObject'']->aValues[''email''];' || chr(13) || '$this->cc = '''';' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[PAYS D\''AIX- SIGAM] Demande N° ''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' - Acte d\''engagement non valide'';' || chr(13) || '$this->body = ''<p>Bonjour,</p>' || chr(13) || ' <p>Suite à votre demande n°''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($this->aObjects[''oBusinessObject'']->aValues[''creation_date''])).'' pour l\''extraction des données, votre demande n\''a pas encore été validée pour la ou les raisons suivantes :<br/>'';' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''signed''] == "false"){' || chr(13) || ' $this->body .= '' - L\''acte d\''engagement n\''est pas signé<br/>'';' || chr(13) || '}' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''identification_complete''] == "false"){' || chr(13) || ' $this->body .= '' - Le cadre d\''identification du dépositaire est incomplet<br/>'';' || chr(13) || '}' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''definition_complete''] == "false"){' || chr(13) || ' $this->body .= '' - La définition des traitements pour l\''usage du cadastre est non renseignée<br/>'';' || chr(13) || '}' || chr(13) || 'error_log(print_r($this->aObjects[''oBusinessObject'']->aValues, true));' || chr(13) || '//$this->body .= ''<p>''.$this->aObjects[''oBusinessObject'']->aValues[''comment''].''</p>'';' || chr(13) || '$this->body .=''<p><u>Merci de bien vouloir déposer à nouveau l\''acte d\''engagement</u> à l\''adresse suivante :<br/>' || chr(13) || '<A HREF="https://scpa430.cpa.fr/extraction">Application Extraction</A></p>' || chr(13) || '<p>Une fois réceptionné, l\''acte d\''engagement sera soumis à la validation du Territoire du Pays d\''Aix.<br/>' || chr(13) || 'Si celui-ci est validé, vous recevrez les données par mail (taille < 5Mo) ou par lien de téléchargement (taille > 5Mo).</p>' || chr(13) || '<p>Cordialement,</p>' || chr(13) || '<p>Le service d\''Information Géographique et Applicatifs Métiers (SIGAM)<br/>' || chr(13) || 'Territoire du Pays d\''Aix<br/>' || chr(13) || 'Tel : 04 42 93 83 50<br/>' || chr(13) || 'Mail : <a href="mailto:sig.paysdaix@ampmetropole.fr">sig.paysdaix@ampmetropole.fr</a> </p>'';' || chr(13) || '$this->aAttachments[0] = '''';' || chr(13) || '', '1', 'gtf', NULL); + INSERT INTO s_gtf.email_template (name, subject, body, "to", cc, cci, code, use_advanced, rt_emailcontext_id, attachment) VALUES ('Email controleur données extraites', NULL, NULL, NULL, NULL, NULL, 'require_once("gtf_lib/gtf_object/Order.class.inc");' || chr(13) || 'require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || '$iBoId = $this->aObjects["oMessage"]->getBody(''bo_id'');' || chr(13) || '$sRequest = "SELECT * from s_extraction.extraction where bo_id = ".$iBoId;' || chr(13) || '$oPDOresult = $this->oBd->executeWithParams($sRequest, array());' || chr(13) || '$aBo = $this->oBd->ligneSuivante ($oPDOresult);' || chr(13) || '$iOrderId = $this->aObjects["oMessage"]->getBody(''order_id'');' || chr(13) || '$this->aObjects["oOrder"]= new OrderLib($oBd, $iOrderId, $this->aObjects["oMessage"]->aProperties, "v_order");' || chr(13) || '$this->aObjects[''oUser''] = new User($oBd, $this->aObjects[''oOrder'']->aFields[''user_id''], $this->aObjects["oMessage"]->aProperties);' || chr(13) || '$this->to = ''sig.paysdaix@ampmetropole.fr'';' || chr(13) || '$this->cc = '''';' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[GTF] - Demande N° ''.$aBo[''bo_id''].'' - Extraction des données'';' || chr(13) || '$this->body = ''<p>Les données concernant la demande n°''.$aBo[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($aBo[''creation_date''])).'' ont été envoyées au demandeur.</p>' || chr(13) || '<p>Cordialement,</p>' || chr(13) || '<p>L\''application d\''extraction de données de GTF</p>'';' || chr(13) || '', '1', 'gtf', NULL); + INSERT INTO s_gtf.email_template (name, subject, body, "to", cc, cci, code, use_advanced, rt_emailcontext_id, attachment) VALUES ('public', NULL, NULL, NULL, NULL, NULL, '$logo = $this->aProperties[''ws_data_dir'']."/gtf/LOGO_AMP.jpg";' || chr(13) || '$base64 = base64_encode(file_get_contents($logo));' || chr(13) || '$image = ''<img src="data:image/png;base64,''.$base64.''">'';' || chr(13) || 'if ($this->aObjects["oOrder"]->aFields[''order_status_id''] == 3) {' || chr(13) || ' $this->to = '''' . $this->aObjects["oOrder"]->getUser()->aFields[''email''] . '''';' || chr(13) || ' $this->cc = '''' . $this->aObjects["oOrder"]->aFields[''email_notifications''] . '''';' || chr(13) || ' $this->cci = '''';' || chr(13) || ' $this->subject = ''[Pays d\''Aix - SIGAM] - Données extraites'';' || chr(13) || ' $this->body = $image.''<p>Bonjour,</p>'';' || chr(13) || ' $this->body .=''<p></p><p>Les données correspondant à votre demande en date du ''.date(''d/m/Y'',strtotime($this->aObjects["oOrder"]->aFields[''order_date''])).'' sont disponibles '';' || chr(13) || ' if (filesize($this->aObjects["oOrder"]->aFields[''result_file''])> 5242880){' || chr(13) || ' $this->body .= ''sur le lien de téléchargement suivant :<br/><a href="''.$this->aObjects["oOrder"]->aFields[''result_url''] . ''">Télécharger le résultat</a></p>'';' || chr(13) || ' } else {' || chr(13) || ' $this->body .= ''en pièce jointe.</p>'';' || chr(13) || ' $this->aAttachments[0] = $this->aObjects["oOrder"]->aFields[''result_file''];' || chr(13) || ' }' || chr(13) || ' $this->body .=''<p>Vous en souhaitant bonne réception,</p>' || chr(13) || ' <p>Cordialement,</p>' || chr(13) || ' <p>Le service d\''Information Géographique et Applicatifs Métiers (SIGAM)<br/>' || chr(13) || ' Conseil de Territoire du Pays d\''Aix<br/>' || chr(13) || ' Tel : 04 42 93 83 50<br/>' || chr(13) || ' Mail : <a href="mailto:sig.paysdaix@ampmetropole.fr">sig.paysdaix@ampmetropole.fr</a> </p>' || chr(13) || '' || chr(13) || ' '';' || chr(13) || '}else{' || chr(13) || ' $this->to = '''' . $this->aObjects["oOrder"]->getUser()->aFields[''email''] . '''';' || chr(13) || ' $this->subject = ''[GTF]-'' . $this->aObjects["oOrder"]->getWorkspace()->aFields[''name''] . '' - Echec du traitement'';' || chr(13) || ' $this->body = $image.''<p>Bonjour,</p>'';' || chr(13) || ' $this->body .= ''<p>La demande n°'' . $this->aObjects["oOrder"]->aFields[''order_id''] . '' pour le traitement <strong>'' . $this->aObjects["oOrder"]->getWorkspace()->aFields[''name''] . ''</strong> n\''a pu être exécutée correctement suite à une erreur.<br/> Veuillez contactez votre administrateur.<br/>'';' || chr(13) || ' $this->aAttachments[0] = $this->aObjects["oOrder"]->aFields[''log_file''];' || chr(13) || '}', '1', 'gtf', NULL); + INSERT INTO s_gtf.email_template (name, subject, body, "to", cc, cci, code, use_advanced, rt_emailcontext_id, attachment) VALUES ('Email contrôleur AE soumis', NULL, NULL, NULL, NULL, NULL, 'require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || 'require_once("vmlib/logUtil.inc");' || chr(13) || '$iBoId = $this->aObjects["oBusinessObject"]->aValues[''bo_id''];' || chr(13) || '' || chr(13) || '//$this->to = ''sig.paysdaix@ampmetropole.fr'';' || chr(13) || '$this->to = ''sofian.pujo@veremes.com'';' || chr(13) || '$this->cc = '''';' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[GTF] - Demande N° ''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' - Dépôt de l\''Acte d\''Engagement à valider'';' || chr(13) || '$this->body = ''<p>Bonjour,</p>' || chr(13) || ' <p> </p>' || chr(13) || ' <p>L\''acte d\''engagement correspondant à la demande n°''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($this->aObjects[''oBusinessObject'']->aValues[''creation_date''])).'' a été déposé sur le serveur par le demandeur.</p>' || chr(13) || ' <p></p>' || chr(13) || ' <p>Cordialement,</p>' || chr(13) || ' <p> </p>' || chr(13) || ' <p>L\''application d\''extraction de données de GTF</p>'';' || chr(13) || 'error_log($this->body);' || chr(13) || '$this->aAttachments[0] = '''';' || chr(13) || '', '1', 'gtf', NULL); + INSERT INTO s_gtf.email_template (name, subject, body, "to", cc, cci, code, use_advanced, rt_emailcontext_id, attachment) VALUES ('Email demandeur Extraction refusée', NULL, NULL, NULL, NULL, NULL, 'require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || 'require_once("vmlib/logUtil.inc");' || chr(13) || '$iBoId = $this->aObjects["oBusinessObject"]->aValues[''bo_id''];' || chr(13) || '$sUserLogin = $this->aObjects["oBusinessObject"]->aValues[''requestor''];' || chr(13) || '$sSql = ''SELECT user_id FROM s_vitis.user WHERE login=\''''.$this->aObjects[''oBusinessObject'']->aValues[''requestor''].''\'''';' || chr(13) || '//writeToErrorLog($sSql);' || chr(13) || '$oResult = $oBd->execute($sSql);' || chr(13) || '/*if(!$oBd->erreurRencontree) {' || chr(13) || ' if ($oBd->nombreLigne ($oResult) > 0) {' || chr(13) || ' $this->aObjects[''oUser''] = new User($oBd, $oBd->objetSuivant($oResult)->user_id, $this->aObjects["oBusinessObject"]->aProperties);' || chr(13) || ' }' || chr(13) || '}*/' || chr(13) || '//$this->to = ''sig.paysdaix@ampmetropole.fr'';' || chr(13) || 'error_log(print_r($this->aObjects[''oBusinessObject''], true));' || chr(13) || '//$this->to = $this->aObjects[''oBusinessObject'']->aValues[''email''];' || chr(13) || '$this->cc = '''';' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[PAYS D\''AIX - SIGAM] Demande N° ''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' - Rejet de votre demande d\''extraction de données'';' || chr(13) || '$this->body = ''<p>Bonjour,</p>' || chr(13) || ' <p>Suite à votre demande n°''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($this->aObjects[''oBusinessObject'']->aValues[''creation_date''])).'' pour l\''extraction des données, votre demande a été rejetée pour la ou les raisons suivantes :<br/>'';' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''signed''] == "false"){' || chr(13) || ' $this->body .= '' - L\''acte d\''engagement n\''est pas signé<br/>'';' || chr(13) || '}' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''accepted_by_cpa''] == "false"){' || chr(13) || ' $this->body .= '' - La CPA ne valide pas l\''usage décrit pour les données du cadastre<br/>'';' || chr(13) || '}' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''identification_complete''] == "false"){' || chr(13) || ' $this->body .= '' - Le cadre d\''identification du dépositaire est incomplet</p>'';' || chr(13) || '}' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''definition_complete''] == "false"){' || chr(13) || ' $this->body .= '' - La définition des traitements pour l\''usage du cadastre est non renseignée<br/>'';' || chr(13) || '}' || chr(13) || '$this->body .= $this->aObjects[''oBusinessObject'']->aValues[''comment''].''<br/>'';' || chr(13) || '$this->body .=''<p>Cordialement,</p>' || chr(13) || '<p>Le service d\''Information Géographique et Applicatifs Métiers (SIGAM)<br/>' || chr(13) || 'Territoire du Pays d\''Aix<br/>' || chr(13) || 'Tel : 04 42 93 83 50<br/>' || chr(13) || 'Mail : <a href="mailto:sig.paysdaix@ampmetropole.fr">sig.paysdaix@ampmetropole.fr</a> </p>'';' || chr(13) || '$this->aAttachments[0] = '''';' || chr(13) || '', '1', 'gtf', NULL); + INSERT INTO s_gtf.email_template (name, subject, body, "to", cc, cci, code, use_advanced, rt_emailcontext_id, attachment) VALUES ('Email demandeur données extraites', NULL, NULL, NULL, NULL, NULL, 'require_once("gtf_lib/gtf_object/Order.class.inc");' || chr(13) || 'require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || '$iBoId = $this->aObjects["oMessage"]->getBody(''bo_id'');' || chr(13) || '$sRequest = "SELECT * from s_extraction.extraction where bo_id = ".$iBoId;' || chr(13) || '$oPDOresult = $this->oBd->executeWithParams($sRequest, array());' || chr(13) || '$aBo = $this->oBd->ligneSuivante ($oPDOresult);' || chr(13) || '$iOrderId = $this->aObjects["oMessage"]->getBody(''order_id'');' || chr(13) || '$this->aObjects["oOrder"]= new OrderLib($oBd, $iOrderId, $this->aObjects["oMessage"]->aProperties, "v_order");' || chr(13) || '$sUserLogin = $aBo[''requestor''];' || chr(13) || '$sSql = ''SELECT user_id FROM s_framework.user WHERE login=\''''.$this->aObjects[''oBusinessObject'']->aValues[''requestor''].''\'''';' || chr(13) || '$oResult = $oBd->execute($sSql);' || chr(13) || 'if(!$oBd->erreurRencontree) {' || chr(13) || ' if ($oBd->nombreLigne ($oResult) > 0) {' || chr(13) || ' $this->aObjects[''oUser''] = new User($oBd, $oBd->objetSuivant($oResult)->user_id, $this->aObjects["oMessage"]->aProperties);' || chr(13) || ' }' || chr(13) || '}' || chr(13) || '$this->to = $aBo[''email''];' || chr(13) || '$this->cc = $this->aObjects["oOrder"]->aFields[''email_notifications''];' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[PAYS D\''AIX - SIGAM] Demande N° ''.$aBo[''bo_id''].'' - Données SIG extraites'';' || chr(13) || '$this->body = ''<p>Bonjour</p>' || chr(13) || '<p></p><p>Les données correspondant à votre demande n°''.$aBo[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($aBo[''creation_date''])).'' sont disponibles '';' || chr(13) || ' if (filesize($this->aObjects["oOrder"]->aFields[''result_file''])> 5242880){' || chr(13) || ' $this->body .= ''sur le lien de téléchargement suivant :<br/><a href="https://sigdata.agglo-paysdaix.fr/public/gtf/''.$this->aObjects["oOrder"]->aFields[''result_url''] . ''">Télécharger le résultat</a></p>'';' || chr(13) || ' } else {' || chr(13) || ' $this->body .= ''en pièce jointe.</p>'';' || chr(13) || ' $this->aAttachments[0] = $this->aObjects["oOrder"]->aFields[''result_file''];' || chr(13) || ' }' || chr(13) || '$this->body .=''<p>Vous en souhaitant bonne réception,</p>' || chr(13) || '<p>Cordialement,</p>' || chr(13) || '<p>Le service d\''Information Géographique et Applicatifs Métiers (SIGAM)<br/>' || chr(13) || 'Terriroire du Pays d\''Aix<br/>' || chr(13) || 'Tel : 04 42 93 83 50<br/>' || chr(13) || 'Mail : <a href="mailto:sig.paysdaix@ampmetropole.fr">sig.paysdaix@ampmetropole.fr</a> </p>' || chr(13) || '' || chr(13) || ''';' || chr(13) || '// les résultats de moins de 5 Mo sont envoyés en pièce jointe' || chr(13) || ' ' || chr(13) || '', '1', 'gtf', NULL); + + ]]> + </code> + </query> + <query> + <type>update</type> + <version>2018-00-00</version> + <code> + <![CDATA[ + --Partie pour le module extraction version 2018-00-00 généré par WAB le 22/05/2018 à 09:09:32 + ALTER TABLE s_extraction.rt_layer ADD COLUMN ct_id integer; + UPDATE s_extraction.rt_layer set ct_id = 2; + ALTER TABLE s_extraction.rt_layer DROP CONSTRAINT pk_projet_type; + ALTER TABLE s_extraction.rt_layer ADD COLUMN layer_ct_id serial; + ALTER TABLE s_extraction.rt_layer ADD CONSTRAINT pk_layer_ct PRIMARY KEY (layer_ct_id); + ALTER TABLE s_extraction.rt_layer ADD COLUMN mutualized boolean; + ALTER TABLE s_extraction.rt_feature_model ADD COLUMN ct_id integer; + UPDATE s_extraction.rt_feature_model set ct_id = 2; + ALTER TABLE s_extraction.rt_feature_model ADD COLUMN layer_ct_id integer; + UPDATE s_extraction.rt_feature_model SET layer_ct_id = s_extraction.rt_layer.layer_ct_id FROM s_extraction.rt_layer WHERE rt_feature_model.feature_type = s_extraction.rt_layer.layer_id and rt_feature_model.ct_id = s_extraction.rt_feature_model.ct_id; + ALTER TABLE s_extraction.rt_feature_model DROP COLUMN ct_id; + ALTER TABLE s_extraction.rt_feature_model ALTER COLUMN layer_ct_id SET NOT NULL; + ALTER TABLE s_extraction.rt_layer ADD CONSTRAINT rt_layer_layer_id_ct_id_key UNIQUE (layer_id, ct_id); + ALTER TABLE ONLY s_extraction.rt_feature_model ADD CONSTRAINT fk_layer_ct_id FOREIGN KEY (layer_ct_id) REFERENCES s_extraction.rt_layer(layer_ct_id); + ALTER TABLE s_extraction.rt_feature_model ADD UNIQUE (feature_type, attribute_name, layer_ct_id); + ALTER TABLE s_extraction.extraction ADD COLUMN preco_tech boolean; + ALTER TABLE s_extraction.extraction ADD COLUMN chart_graph boolean; + ALTER TABLE s_extraction.extraction ADD COLUMN metadonnees boolean; + DROP VIEW s_extraction.v_extraction; + CREATE OR REPLACE VIEW s_extraction.v_extraction AS SELECT DISTINCT extraction.bo_id, extraction.status_id, extraction.history, extraction.creation_date, extraction.requestor, extraction.ae, extraction.extent, extraction.company, extraction.layers, extraction.vector_format_id, extraction.vector_format_id AS format_id, extraction.coordsys_id, extraction.raster_format_id, extraction.extent_method, extraction.signed, extraction.accepted_by_cpa, extraction.identification_complete, extraction.definition_complete, extraction.priority_id, extraction.id_com, extraction.id_conseil, extraction.email, extraction.note, extraction.preco_tech, extraction.chart_graph, extraction.metadonnees, rt_extraction_status.progress AS progress_level, rt_extraction_status.name AS status_name, rt_extraction_status.name AS status FROM s_extraction.extraction LEFT JOIN s_extraction.rt_extraction_status ON extraction.status_id = rt_extraction_status.status_id LEFT JOIN s_extraction.rt_extraction_status_group ON rt_extraction_status.status_id = rt_extraction_status_group.status_id LEFT JOIN s_vitis.user_group ON rt_extraction_status_group.group_id = user_group.group_id LEFT JOIN s_vitis."user" ON user_group.user_id = "user".user_id WHERE "user".login::name = "current_user"() AND (extraction.requestor::name = "current_user"() OR rt_extraction_status_group.group_id = 12); + ALTER TABLE s_extraction.v_extraction OWNER TO u_vitis; + GRANT ALL ON TABLE s_extraction.v_extraction TO extraction_user; + GRANT ALL ON TABLE s_extraction.v_extraction TO u_vitis; + GRANT ALL ON TABLE s_extraction.v_extraction TO extraction_admin; + COMMENT ON COLUMN s_extraction.extraction.history is 'deprecated'; + COMMENT ON COLUMN s_extraction.extraction.status is 'deprecated'; + CREATE SEQUENCE s_extraction.ct_ct_id_seq; + ALTER SEQUENCE s_extraction.ct_ct_id_seq OWNER TO u_vitis; + CREATE TABLE s_extraction.ct( ct_id integer NOT NULL DEFAULT nextval('s_extraction.ct_ct_id_seq'::regclass), name character varying(50) COLLATE pg_catalog."default" NOT NULL, format character varying(255) COLLATE pg_catalog."default", namedconnection character varying(255) COLLATE pg_catalog."default", geom geometry(MultiPolygon,2154), CONSTRAINT pk_ct PRIMARY KEY (ct_id) ); + ALTER TABLE s_extraction.ct OWNER to u_vitis; + GRANT SELECT ON TABLE s_extraction.ct TO extraction_admin; + GRANT SELECT ON TABLE s_extraction.ct TO extraction_user; + GRANT ALL ON TABLE s_extraction.ct TO u_vitis; + CREATE INDEX ct_ct_id ON s_extraction.ct USING btree (ct_id); + CREATE TABLE s_extraction.commune (commune_id character(6) COLLATE pg_catalog."default" NOT NULL,ct_id integer, name varchar(255) COLLATE pg_catalog."default" NOT NULL,geom geometry(Polygon,2154) NOT NULL,CONSTRAINT pk_commune PRIMARY KEY (commune_id), CONSTRAINT fk_ct_id FOREIGN KEY (ct_id) REFERENCES s_extraction.ct (ct_id) MATCH SIMPLE ON UPDATE RESTRICT ON DELETE SET NULL); + ALTER TABLE s_extraction.commune OWNER to u_vitis; + GRANT SELECT ON TABLE s_extraction.commune TO extraction_admin; + GRANT SELECT ON TABLE s_extraction.commune TO extraction_user; + GRANT ALL ON TABLE s_extraction.commune TO u_vitis; + --Partie WABSQL générée par WAB le 04/05/2018 à 10:02:22 + -- Ces tables sont normalement prévues dans votre fichier VisualParadigm et sont necessaires pour le fonctionnement de vos objets WAB + -- CREATE TABLE s_extraction.rt_extraction_status (status_id integer NOT NULL DEFAULT nextval('s_dtnet.seq_common'::regclass), name character varying(50) NOT NULL, progress integer NOT NULL, CONSTRAINT rt_extraction_status_pkey PRIMARY KEY (status_id)); + -- CREATE TABLE s_extraction.rt_extraction_status_group (status_id integer NOT NULL, group_id integer NOT NULL, link_id integer NOT NULL DEFAULT nextval('s_dtnet.seq_common'::regclass), CONSTRAINT rt_extraction_status_group_pkey PRIMARY KEY (link_id), CONSTRAINT fk_extraction_status_group FOREIGN KEY (status_id) REFERENCES s_extraction.rt_extraction_status (status_id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION); + -- CREATE TABLE s_extraction.extraction_history (history_id integer NOT NULL DEFAULT nextval('s_extraction.seq_common'::regclass), date timestamp with time zone NOT NULL, login character varying(50) NOT NULL, comment text NOT NULL, bo_id integer NOT NULL, CONSTRAINT extraction_history_pkey PRIMARY KEY (history_id), CONSTRAINT fk_extraction_history FOREIGN KEY (bo_id) REFERENCES s_extraction.extraction (bo_id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION); + -- Vue basique pour vos objets WAB tenant compte de la restriction groupe état + --CREATE VIEW s_extraction.v_extraction AS SELECT extraction.* FROM s_extraction.extraction LEFT JOIN s_extraction.rt_extraction_status ON rt_extraction_status.status_id = extraction.status_id JOIN s_extraction.rt_extraction_status_group ON rt_extraction_status.status_id = rt_extraction_status_group.status_id WHERE (rt_extraction_status_group.group_id IN ( SELECT user_group.group_id FROM s_vitis.user_group LEFT JOIN s_vitis."user" ON user_group.user_id = "user".user_id WHERE "user".login::name = "current_user"())); + -- u_vitis est propriétaire de toutes vos tables + ALTER TABLE s_extraction.rt_extraction_status_group OWNER TO u_vitis; + ALTER TABLE s_extraction.rt_format OWNER TO u_vitis; + ALTER TABLE s_extraction.v_extraction OWNER TO u_vitis; + ALTER TABLE s_extraction.rt_coordsys OWNER TO u_vitis; + ALTER TABLE s_extraction.rt_extraction_status OWNER TO u_vitis; + ALTER TABLE s_extraction.rt_layer OWNER TO u_vitis; + ALTER TABLE s_extraction.rt_feature_model OWNER TO u_vitis; + ALTER TABLE s_extraction.extraction OWNER TO u_vitis; + ALTER TABLE s_extraction.version OWNER TO u_vitis; + -- u_vitis propriétaire sur les tables des objets WAB + --ALTER TABLE s_extraction.rt_extraction_status OWNER to u_vitis; + --ALTER TABLE s_extraction.rt_extraction_status_group OWNER to u_vitis; + --ALTER TABLE s_extraction.extraction_history OWNER to u_vitis; + -- Gestion des droits d'après les méthodes php saisies pour vos objets (annule et remplace) + REVOKE ALL ON TABLE s_extraction.rt_coordsys FROM extraction_admin; + REVOKE ALL ON TABLE s_extraction.v_extraction FROM extraction_user; + REVOKE ALL ON TABLE s_extraction.rt_format FROM extraction_admin; + REVOKE ALL ON TABLE s_extraction.rt_layer FROM extraction_admin; + GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE s_extraction.rt_coordsys TO extraction_admin; + GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE s_extraction.v_extraction TO extraction_user; + GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE s_extraction.rt_format TO extraction_admin; + GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE s_extraction.rt_layer TO extraction_admin; + -- Droits sur les tables des objets WAB + GRANT SELECT ON TABLE s_extraction.rt_extraction_status TO extraction_user; + GRANT SELECT ON TABLE s_extraction.rt_extraction_status_group TO extraction_user; + GRANT SELECT, INSERT ON TABLE s_extraction.extraction_history TO extraction_user; + - GRANT ALL ON TABLE s_extraction.rt_layer TO extraction_admin; - GRANT SELECT ON TABLE s_extraction.rt_layer TO extraction_user; + UPDATE s_gtf.email_template SET subject=NULL, body=NULL, "to"=NULL, cc=NULL, cci=NULL, code='$logo = $this->aProperties[''ws_data_dir'']."/gtf/LOGO_AMP.jpg";' || chr(13) || '$base64 = base64_encode(file_get_contents($logo));' || chr(13) || '$image = ''<img src="data:image/png;base64,''.$base64.''">'';' || chr(13) || 'require_once("gtf_lib/gtf_object/Order.class.inc");' || chr(13) || 'require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || '$iBoId = $this->aObjects["oMessage"]->getBody(''bo_id'');' || chr(13) || '$sRequest = "SELECT * from s_extraction.extraction where bo_id = ".$iBoId;' || chr(13) || '$oPDOresult = $this->oBd->executeWithParams($sRequest, array());' || chr(13) || '$aBo = $this->oBd->ligneSuivante ($oPDOresult);' || chr(13) || '$iOrderId = $this->aObjects["oMessage"]->getBody(''order_id'');' || chr(13) || '$this->aObjects["oOrder"]= new orderLib($oBd, $iOrderId, $this->aObjects["oMessage"]->aProperties, "v_order");' || chr(13) || 'error_log( print_r($this->aObjects[''oOrder''], true));' || chr(13) || '$this->aObjects[''oUser''] = new User($oBd, $this->aObjects[''oOrder'']->aFields[''user_id''], $this->aObjects["oMessage"]->aProperties);' || chr(13) || '$this->to = $aBo[''email''];' || chr(13) || '$this->cc = $this->aObjects["oOrder"]->aFields[''email_notifications''];' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[PAYS D\''AIX - SIGAM] Demande N° ''.$aBo[''bo_id''].'' - Acte d\''Engagement pour l\''utilisation des données SIG'';' || chr(13) || '$this->body = $image.''<p>Bonjour</p>' || chr(13) || '<p></p>' || chr(13) || '<p>Suite à votre demande n°''.$aBo[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($aBo[''creation_date''])).'' pour l\''extraction des données, <u>merci de bien vouloir déposer l\''acte d\''engagement</u> ci-joint complété et signé, à l\''adresse suivante:<br/>' || chr(13) || '<A HREF="https://scpa430.cpa.fr/extraction">Application Extraction</A></p>' || chr(13) || '<p>Une fois réceptionné, l\''acte d\''engagement sera soumis à la validation du Territoire du Pays d\''Aix.<br/>' || chr(13) || 'Si celui-ci est validé, vous recevrez les données par mail (taille < 5Mo) ou par lien de téléchargement (taille > 5Mo).</p>' || chr(13) || '<p>Cordialement,</p>' || chr(13) || '<p>Le service d\''Information Géographique et Applicatifs Métiers (SIGAM)<br/>' || chr(13) || 'Territoire du Pays d\''Aix<br/>' || chr(13) || 'Tel : 04 42 93 83 50<br/>' || chr(13) || 'Mail : <a href="mailto:sig.paysdaix@ampmetropole.fr">sig.paysdaix@ampmetropole.fr</a> </p>'';' || chr(13) || '// les résultats de moins de 5 Mo sont envoyés en pièce jointe' || chr(13) || ' if (filesize($this->aObjects["oOrder"]->aFields[''result_file''])> (5*1024*1024)){' || chr(13) || ' $this->body .= ''<p>Le résultat est disponible par téléchargement :<br/><a href="'' . $this->aObjects["oOrder"]->aFields[''result_url''] . ''">Télécharger le résultat</a></p>'';' || chr(13) || ' } else {' || chr(13) || ' $this->aAttachments[0] = $this->aObjects["oOrder"]->aFields[''result_file''];' || chr(13) || ' }' || chr(13) || 'error_log(print_r($this->aObjects["oOrder"]->aFields, true));', use_advanced='1', rt_emailcontext_id='gtf', attachment=NULL WHERE "name"='Email demandeur AE généré'; + UPDATE s_gtf.email_template SET subject=NULL, body=NULL, "to"=NULL, cc=NULL, cci=NULL, code='require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || 'require_once("vmlib/logUtil.inc");' || chr(13) || '$iBoId = $this->aObjects["oBusinessObject"]->aValues[''bo_id''];' || chr(13) || '$sUserLogin = $this->aObjects["oBusinessObject"]->aValues[''requestor''];' || chr(13) || '$sSql = ''SELECT user_id FROM s_framework.user WHERE login=\''''.$this->aObjects[''oBusinessObject'']->aValues[''requestor''].''\'''';' || chr(13) || '//writeToErrorLog($sSql);' || chr(13) || '$oResult = $oBd->execute($sSql);' || chr(13) || 'if(!$oBd->erreurRencontree) {' || chr(13) || ' if ($oBd->nombreLigne ($oResult) > 0) {' || chr(13) || ' $this->aObjects[''oUser''] = new User($oBd, $oBd->objetSuivant($oResult)->user_id, $this->aObjects["oBusinessObject"]->aProperties);' || chr(13) || ' }' || chr(13) || '}' || chr(13) || '//$this->to = ''sig@agglo-paysdaix.fr'';' || chr(13) || '$this->to = $this->aObjects[''oBusinessObject'']->aValues[''email''];' || chr(13) || '$this->cc = '''';' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[PAYS D\''AIX- SIGAM] Demande N° ''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' - Acte d\''engagement non valide'';' || chr(13) || '$this->body = ''<p>Bonjour,</p>' || chr(13) || ' <p>Suite à votre demande n°''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($this->aObjects[''oBusinessObject'']->aValues[''creation_date''])).'' pour l\''extraction des données, votre demande n\''a pas encore été validée pour la ou les raisons suivantes :<br/>'';' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''signed''] == "false"){' || chr(13) || ' $this->body .= '' - L\''acte d\''engagement n\''est pas signé<br/>'';' || chr(13) || '}' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''identification_complete''] == "false"){' || chr(13) || ' $this->body .= '' - Le cadre d\''identification du dépositaire est incomplet<br/>'';' || chr(13) || '}' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''definition_complete''] == "false"){' || chr(13) || ' $this->body .= '' - La définition des traitements pour l\''usage du cadastre est non renseignée<br/>'';' || chr(13) || '}' || chr(13) || 'error_log(print_r($this->aObjects[''oBusinessObject'']->aValues, true));' || chr(13) || '//$this->body .= ''<p>''.$this->aObjects[''oBusinessObject'']->aValues[''comment''].''</p>'';' || chr(13) || '$this->body .=''<p><u>Merci de bien vouloir déposer à nouveau l\''acte d\''engagement</u> à l\''adresse suivante :<br/>' || chr(13) || '<A HREF="https://scpa430.cpa.fr/extraction">Application Extraction</A></p>' || chr(13) || '<p>Une fois réceptionné, l\''acte d\''engagement sera soumis à la validation du Territoire du Pays d\''Aix.<br/>' || chr(13) || 'Si celui-ci est validé, vous recevrez les données par mail (taille < 5Mo) ou par lien de téléchargement (taille > 5Mo).</p>' || chr(13) || '<p>Cordialement,</p>' || chr(13) || '<p>Le service d\''Information Géographique et Applicatifs Métiers (SIGAM)<br/>' || chr(13) || 'Territoire du Pays d\''Aix<br/>' || chr(13) || 'Tel : 04 42 93 83 50<br/>' || chr(13) || 'Mail : <a href="mailto:sig.paysdaix@ampmetropole.fr">sig.paysdaix@ampmetropole.fr</a> </p>'';' || chr(13) || '$this->aAttachments[0] = '''';' || chr(13) || '', use_advanced='1', rt_emailcontext_id='gtf', attachment=NULL WHERE "name"='Email demandeur AE à resoumettre'; + UPDATE s_gtf.email_template SET subject=NULL, body=NULL, "to"=NULL, cc=NULL, cci=NULL, code='require_once("gtf_lib/gtf_object/Order.class.inc");' || chr(13) || 'require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || '$iBoId = $this->aObjects["oMessage"]->getBody(''bo_id'');' || chr(13) || '$sRequest = "SELECT * from s_extraction.extraction where bo_id = ".$iBoId;' || chr(13) || '$oPDOresult = $this->oBd->executeWithParams($sRequest, array());' || chr(13) || '$aBo = $this->oBd->ligneSuivante ($oPDOresult);' || chr(13) || '$iOrderId = $this->aObjects["oMessage"]->getBody(''order_id'');' || chr(13) || '$this->aObjects["oOrder"]= new OrderLib($oBd, $iOrderId, $this->aObjects["oMessage"]->aProperties, "v_order");' || chr(13) || '$this->aObjects[''oUser''] = new User($oBd, $this->aObjects[''oOrder'']->aFields[''user_id''], $this->aObjects["oMessage"]->aProperties);' || chr(13) || '$this->to = ''sig.paysdaix@ampmetropole.fr'';' || chr(13) || '$this->cc = '''';' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[GTF] - Demande N° ''.$aBo[''bo_id''].'' - Extraction des données'';' || chr(13) || '$this->body = ''<p>Les données concernant la demande n°''.$aBo[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($aBo[''creation_date''])).'' ont été envoyées au demandeur.</p>' || chr(13) || '<p>Cordialement,</p>' || chr(13) || '<p>L\''application d\''extraction de données de GTF</p>'';' || chr(13) || '', use_advanced='1', rt_emailcontext_id='gtf', attachment=NULL WHERE "name"='Email controleur données extraites'; + UPDATE s_gtf.email_template SET subject=NULL, body=NULL, "to"=NULL, cc=NULL, cci=NULL, code='$logo = $this->aProperties[''ws_data_dir'']."/gtf/LOGO_AMP.jpg";' || chr(13) || '$base64 = base64_encode(file_get_contents($logo));' || chr(13) || '$image = ''<img src="data:image/png;base64,''.$base64.''">'';' || chr(13) || 'if ($this->aObjects["oOrder"]->aFields[''order_status_id''] == 3) {' || chr(13) || ' $this->to = '''' . $this->aObjects["oOrder"]->getUser()->aFields[''email''] . '''';' || chr(13) || ' $this->cc = '''' . $this->aObjects["oOrder"]->aFields[''email_notifications''] . '''';' || chr(13) || ' $this->cci = '''';' || chr(13) || ' $this->subject = ''[Pays d\''Aix - SIGAM] - Données extraites'';' || chr(13) || ' $this->body = $image.''<p>Bonjour,</p>'';' || chr(13) || ' $this->body .=''<p></p><p>Les données correspondant à votre demande en date du ''.date(''d/m/Y'',strtotime($this->aObjects["oOrder"]->aFields[''order_date''])).'' sont disponibles '';' || chr(13) || ' if (filesize($this->aObjects["oOrder"]->aFields[''result_file''])> 5242880){' || chr(13) || ' $this->body .= ''sur le lien de téléchargement suivant :<br/><a href="''.$this->aObjects["oOrder"]->aFields[''result_url''] . ''">Télécharger le résultat</a></p>'';' || chr(13) || ' } else {' || chr(13) || ' $this->body .= ''en pièce jointe.</p>'';' || chr(13) || ' $this->aAttachments[0] = $this->aObjects["oOrder"]->aFields[''result_file''];' || chr(13) || ' }' || chr(13) || ' $this->body .=''<p>Vous en souhaitant bonne réception,</p>' || chr(13) || ' <p>Cordialement,</p>' || chr(13) || ' <p>Le service d\''Information Géographique et Applicatifs Métiers (SIGAM)<br/>' || chr(13) || ' Conseil de Territoire du Pays d\''Aix<br/>' || chr(13) || ' Tel : 04 42 93 83 50<br/>' || chr(13) || ' Mail : <a href="mailto:sig.paysdaix@ampmetropole.fr">sig.paysdaix@ampmetropole.fr</a> </p>' || chr(13) || '' || chr(13) || ' '';' || chr(13) || '}else{' || chr(13) || ' $this->to = '''' . $this->aObjects["oOrder"]->getUser()->aFields[''email''] . '''';' || chr(13) || ' $this->subject = ''[GTF]-'' . $this->aObjects["oOrder"]->getWorkspace()->aFields[''name''] . '' - Echec du traitement'';' || chr(13) || ' $this->body = $image.''<p>Bonjour,</p>'';' || chr(13) || ' $this->body .= ''<p>La demande n°'' . $this->aObjects["oOrder"]->aFields[''order_id''] . '' pour le traitement <strong>'' . $this->aObjects["oOrder"]->getWorkspace()->aFields[''name''] . ''</strong> n\''a pu être exécutée correctement suite à une erreur.<br/> Veuillez contactez votre administrateur.<br/>'';' || chr(13) || ' $this->aAttachments[0] = $this->aObjects["oOrder"]->aFields[''log_file''];' || chr(13) || '}', use_advanced='1', rt_emailcontext_id='gtf', attachment=NULL WHERE "name"='public'; + UPDATE s_gtf.email_template SET subject=NULL, body=NULL, "to"=NULL, cc=NULL, cci=NULL, code='require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || 'require_once("vmlib/logUtil.inc");' || chr(13) || '$iBoId = $this->aObjects["oBusinessObject"]->aValues[''bo_id''];' || chr(13) || '' || chr(13) || '//$this->to = ''sig.paysdaix@ampmetropole.fr'';' || chr(13) || '$this->to = ''sofian.pujo@veremes.com'';' || chr(13) || '$this->cc = '''';' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[GTF] - Demande N° ''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' - Dépôt de l\''Acte d\''Engagement à valider'';' || chr(13) || '$this->body = ''<p>Bonjour,</p>' || chr(13) || ' <p> </p>' || chr(13) || ' <p>L\''acte d\''engagement correspondant à la demande n°''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($this->aObjects[''oBusinessObject'']->aValues[''creation_date''])).'' a été déposé sur le serveur par le demandeur.</p>' || chr(13) || ' <p></p>' || chr(13) || ' <p>Cordialement,</p>' || chr(13) || ' <p> </p>' || chr(13) || ' <p>L\''application d\''extraction de données de GTF</p>'';' || chr(13) || 'error_log($this->body);' || chr(13) || '$this->aAttachments[0] = '''';' || chr(13) || '', use_advanced='1', rt_emailcontext_id='gtf', attachment=NULL WHERE "name"='Email contrôleur AE soumis'; + UPDATE s_gtf.email_template SET subject=NULL, body=NULL, "to"=NULL, cc=NULL, cci=NULL, code='require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || 'require_once("vmlib/logUtil.inc");' || chr(13) || '$iBoId = $this->aObjects["oBusinessObject"]->aValues[''bo_id''];' || chr(13) || '$sUserLogin = $this->aObjects["oBusinessObject"]->aValues[''requestor''];' || chr(13) || '$sSql = ''SELECT user_id FROM s_vitis.user WHERE login=\''''.$this->aObjects[''oBusinessObject'']->aValues[''requestor''].''\'''';' || chr(13) || '//writeToErrorLog($sSql);' || chr(13) || '$oResult = $oBd->execute($sSql);' || chr(13) || '/*if(!$oBd->erreurRencontree) {' || chr(13) || ' if ($oBd->nombreLigne ($oResult) > 0) {' || chr(13) || ' $this->aObjects[''oUser''] = new User($oBd, $oBd->objetSuivant($oResult)->user_id, $this->aObjects["oBusinessObject"]->aProperties);' || chr(13) || ' }' || chr(13) || '}*/' || chr(13) || '//$this->to = ''sig.paysdaix@ampmetropole.fr'';' || chr(13) || 'error_log(print_r($this->aObjects[''oBusinessObject''], true));' || chr(13) || '//$this->to = $this->aObjects[''oBusinessObject'']->aValues[''email''];' || chr(13) || '$this->cc = '''';' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[PAYS D\''AIX - SIGAM] Demande N° ''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' - Rejet de votre demande d\''extraction de données'';' || chr(13) || '$this->body = ''<p>Bonjour,</p>' || chr(13) || ' <p>Suite à votre demande n°''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($this->aObjects[''oBusinessObject'']->aValues[''creation_date''])).'' pour l\''extraction des données, votre demande a été rejetée pour la ou les raisons suivantes :<br/>'';' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''signed''] == "false"){' || chr(13) || ' $this->body .= '' - L\''acte d\''engagement n\''est pas signé<br/>'';' || chr(13) || '}' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''accepted_by_cpa''] == "false"){' || chr(13) || ' $this->body .= '' - La CPA ne valide pas l\''usage décrit pour les données du cadastre<br/>'';' || chr(13) || '}' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''identification_complete''] == "false"){' || chr(13) || ' $this->body .= '' - Le cadre d\''identification du dépositaire est incomplet</p>'';' || chr(13) || '}' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''definition_complete''] == "false"){' || chr(13) || ' $this->body .= '' - La définition des traitements pour l\''usage du cadastre est non renseignée<br/>'';' || chr(13) || '}' || chr(13) || '$this->body .= $this->aObjects[''oBusinessObject'']->aValues[''comment''].''<br/>'';' || chr(13) || '$this->body .=''<p>Cordialement,</p>' || chr(13) || '<p>Le service d\''Information Géographique et Applicatifs Métiers (SIGAM)<br/>' || chr(13) || 'Territoire du Pays d\''Aix<br/>' || chr(13) || 'Tel : 04 42 93 83 50<br/>' || chr(13) || 'Mail : <a href="mailto:sig.paysdaix@ampmetropole.fr">sig.paysdaix@ampmetropole.fr</a> </p>'';' || chr(13) || '$this->aAttachments[0] = '''';' || chr(13) || '', use_advanced='1', rt_emailcontext_id='gtf', attachment=NULL WHERE "name"='Email demandeur Extraction refusée'; + UPDATE s_gtf.email_template SET subject=NULL, body=NULL, "to"=NULL, cc=NULL, cci=NULL, code='require_once("gtf_lib/gtf_object/Order.class.inc");' || chr(13) || 'require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || '$iBoId = $this->aObjects["oMessage"]->getBody(''bo_id'');' || chr(13) || '$sRequest = "SELECT * from s_extraction.extraction where bo_id = ".$iBoId;' || chr(13) || '$oPDOresult = $this->oBd->executeWithParams($sRequest, array());' || chr(13) || '$aBo = $this->oBd->ligneSuivante ($oPDOresult);' || chr(13) || '$iOrderId = $this->aObjects["oMessage"]->getBody(''order_id'');' || chr(13) || '$this->aObjects["oOrder"]= new OrderLib($oBd, $iOrderId, $this->aObjects["oMessage"]->aProperties, "v_order");' || chr(13) || '$sUserLogin = $aBo[''requestor''];' || chr(13) || '$sSql = ''SELECT user_id FROM s_framework.user WHERE login=\''''.$this->aObjects[''oBusinessObject'']->aValues[''requestor''].''\'''';' || chr(13) || '$oResult = $oBd->execute($sSql);' || chr(13) || 'if(!$oBd->erreurRencontree) {' || chr(13) || ' if ($oBd->nombreLigne ($oResult) > 0) {' || chr(13) || ' $this->aObjects[''oUser''] = new User($oBd, $oBd->objetSuivant($oResult)->user_id, $this->aObjects["oMessage"]->aProperties);' || chr(13) || ' }' || chr(13) || '}' || chr(13) || '$this->to = $aBo[''email''];' || chr(13) || '$this->cc = $this->aObjects["oOrder"]->aFields[''email_notifications''];' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[PAYS D\''AIX - SIGAM] Demande N° ''.$aBo[''bo_id''].'' - Données SIG extraites'';' || chr(13) || '$this->body = ''<p>Bonjour</p>' || chr(13) || '<p></p><p>Les données correspondant à votre demande n°''.$aBo[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($aBo[''creation_date''])).'' sont disponibles '';' || chr(13) || ' if (filesize($this->aObjects["oOrder"]->aFields[''result_file''])> 5242880){' || chr(13) || ' $this->body .= ''sur le lien de téléchargement suivant :<br/><a href="https://sigdata.agglo-paysdaix.fr/public/gtf/''.$this->aObjects["oOrder"]->aFields[''result_url''] . ''">Télécharger le résultat</a></p>'';' || chr(13) || ' } else {' || chr(13) || ' $this->body .= ''en pièce jointe.</p>'';' || chr(13) || ' $this->aAttachments[0] = $this->aObjects["oOrder"]->aFields[''result_file''];' || chr(13) || ' }' || chr(13) || '$this->body .=''<p>Vous en souhaitant bonne réception,</p>' || chr(13) || '<p>Cordialement,</p>' || chr(13) || '<p>Le service d\''Information Géographique et Applicatifs Métiers (SIGAM)<br/>' || chr(13) || 'Terriroire du Pays d\''Aix<br/>' || chr(13) || 'Tel : 04 42 93 83 50<br/>' || chr(13) || 'Mail : <a href="mailto:sig.paysdaix@ampmetropole.fr">sig.paysdaix@ampmetropole.fr</a> </p>' || chr(13) || '' || chr(13) || ''';' || chr(13) || '// les résultats de moins de 5 Mo sont envoyés en pièce jointe' || chr(13) || ' ' || chr(13) || '', use_advanced='1', rt_emailcontext_id='gtf', attachment=NULL WHERE "name"='Email demandeur données extraites'; + DELETE FROM s_gtf.messageclass_action WHERE messageclass LIKE 'extraction_%'; + INSERT INTO s_gtf.messageclass_action (messageclass_action_id, messageclass, actionclass, index, parameters) VALUES ((SELECT nextval('s_gtf.seq_common'::regclass)),'AE Généré','BoAction',0,'bo_id_attribute=''bo_id''|method=''trGenerer''|class=''Extractions''|module=''extraction'''); + INSERT INTO s_gtf.messageclass_action (messageclass_action_id, messageclass, actionclass, index, parameters) VALUES ((SELECT nextval('s_gtf.seq_common'::regclass)),'AE Généré','EmailAction',1,'template_id = ' || (SELECT email_template_id FROM s_gtf.email_template WHERE name = 'Email demandeur AE généré')); + INSERT INTO s_gtf.messageclass_action (messageclass_action_id, messageclass, actionclass, index, parameters) VALUES ((SELECT nextval('s_gtf.seq_common'::regclass)),'Extraction Aix','EmailAction',1,'template_id = ' || (SELECT email_template_id FROM s_gtf.email_template WHERE name = 'Email controleur données extraites')); + INSERT INTO s_gtf.messageclass_action (messageclass_action_id, messageclass, actionclass, index, parameters) VALUES ((SELECT nextval('s_gtf.seq_common'::regclass)),'Extraction Aix','EmailAction',2,'template_id = ' || (SELECT email_template_id FROM s_gtf.email_template WHERE name = 'Email demandeur données extraites')); + INSERT INTO s_gtf.messageclass_action (messageclass_action_id, messageclass, actionclass, index, parameters) VALUES ((SELECT nextval('s_gtf.seq_common'::regclass)),'Extraction Aix','BoAction',0,'bo_id_attribute=''bo_id''|method=''trTerminerExtraction''|class=''Extractions''|module=''extraction'''); + --Partie s_vitis généré par WAB le 22/05/2018 à 09:09:31 + DELETE FROM s_vitis.vm_section WHERE label_id ~ '^extraction_([0-9]+)$'; + DELETE FROM s_vitis.vm_table_field WHERE label_id ~ '^extraction_([0-9]+)$'; + DELETE FROM s_vitis.vm_table_button WHERE label_id ~ '^extraction_([0-9]+)$'; + DELETE FROM s_vitis.vm_module WHERE module_id='extraction'; + DELETE FROM s_vitis.vm_string WHERE string_id ~ '^extraction_([0-9]+)$'; + INSERT INTO s_vitis.vm_module (module_id, description, version, label) VALUES ('extraction','Module Extraction CG34',0.1,'Module Extraction'); + INSERT INTO s_vitis.group (group_id, name) SELECT (SELECT nextval('s_vitis.seq_common'::regclass)), 'demandeur' WHERE NOT EXISTS (SELECT group_id FROM s_vitis.group WHERE name='demandeur'); + INSERT INTO s_vitis.group (group_id, name) SELECT (SELECT nextval('s_vitis.seq_common'::regclass)), 'controleur' WHERE NOT EXISTS (SELECT group_id FROM s_vitis.group WHERE name='controleur'); + INSERT INTO s_vitis.privileges (rolname, description) SELECT 'extraction_admin', 'administrateur extraction' WHERE NOT EXISTS (SELECT rolname FROM s_vitis.privileges WHERE rolname='extraction_admin'); + INSERT INTO s_vitis.privileges (rolname, description) SELECT 'extraction_user', 'utilisateur extraction' WHERE NOT EXISTS (SELECT rolname FROM s_vitis.privileges WHERE rolname='extraction_user'); + SELECT s_vitis.create_role_if_not_exists('extraction_admin', 'NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION'); + SELECT s_vitis.create_role_if_not_exists('extraction_user', 'NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Section General', 'extraction_1'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field bo_id', 'extraction_4'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field status', 'extraction_6'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('objet extraction_extraction', 'extraction_0'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field progress_level', 'extraction_7'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Supprimer', 'extraction_2'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field company', 'extraction_8'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Ajout', 'extraction_3'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field requestor', 'extraction_5'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field layers', 'extraction_9'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('objet extraction_coordsys', 'extraction_10'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Section General', 'extraction_11'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Supprimer', 'extraction_12'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Ajout', 'extraction_13'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('objet extraction_format', 'extraction_14'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Section General', 'extraction_15'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Supprimer', 'extraction_16'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Ajout', 'extraction_17'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('objet extraction_layer', 'extraction_18'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Section General', 'extraction_19'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Supprimer', 'extraction_20'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Ajout', 'extraction_21'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field coordsys_id', 'extraction_22'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field coordsys', 'extraction_23'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field format_id', 'extraction_24'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field format', 'extraction_25'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field use_for_raster', 'extraction_26'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field use_for_vector', 'extraction_27'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field layer_id', 'extraction_28'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field layer', 'extraction_29'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field category', 'extraction_30'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field restriction', 'extraction_31'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field unused_attributes', 'extraction_32'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Section General', 'extraction_33'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Supprimer', 'extraction_34'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Ajout', 'extraction_35'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Section General', 'extraction_36'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Supprimer', 'extraction_37'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Ajout', 'extraction_38'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Section General', 'extraction_39'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Supprimer', 'extraction_40'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Ajout', 'extraction_41'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Section General', 'extraction_42'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Supprimer', 'extraction_43'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Ajout', 'extraction_44'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field bo_id', 'extraction_45'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field status', 'extraction_46'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field requestor', 'extraction_47'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field company', 'extraction_48'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field layers', 'extraction_49'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field coordsys_id', 'extraction_50'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field coordsys', 'extraction_51'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field format_id', 'extraction_52'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field format', 'extraction_53'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field use_for_raster', 'extraction_54'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field use_for_vector', 'extraction_55'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field layer_id', 'extraction_56'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field layer', 'extraction_57'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field category', 'extraction_58'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field restriction', 'extraction_59'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field unused_attributes', 'extraction_60'); + INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('section extractionConfig', 'extraction_61'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_1','fr','Informations générales'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_1','en','General'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_4','fr','ID'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_4','en','ID'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_6','en','Status'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_6','fr','Etat'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_0','en','Extraction'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_0','fr','Extraction'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_7','en','Progress level'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_7','fr','Avancement'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_2','en','Supprimer les plans'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_2','fr','Supprimer les plans'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_8','en','Company'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_8','fr','Organisme'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_3','en','Ajouter une extraction'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_3','fr','Ajouter une extraction'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_5','fr','Demandeur'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_5','en','Demandeur'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_9','en','Layers'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_9','fr','Couches'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_10','fr','Systèmes de coordonnées'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_10','en','Coordinate systems'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_11','fr','Informations générales'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_11','en','General'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_12','fr','Supprimer les systèmes de coordonnées'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_12','en','Delete coordinate systems'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_13','fr','Ajouter un système de coordonnées'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_13','en','Add coordinate systems'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_14','fr','Formats'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_14','en','Formats'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_15','fr','Informations générales'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_15','en','General'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_16','fr','Supprimer les formats'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_16','en','Delete formats'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_17','fr','Ajouter un format'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_17','en','Add format'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_18','fr','Couches'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_18','en','Layers'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_19','fr','Informations générales'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_19','en','General'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_20','fr','Supprimer les couches'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_20','en','Delete layers'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_21','fr','Ajouter une couche'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_21','en','Add layer'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_22','fr','ID'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_22','en','ID'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_23','fr','Nom'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_23','en','Name'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_24','en','ID'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_24','fr','ID'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_25','fr','Nom'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_25','en','Name'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_26','fr','Raster'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_26','en','Raster'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_27','fr','Vecteur'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_27','en','Vector'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_28','fr','ID'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_28','en','ID'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_29','fr','Nom'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_29','en','Name'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_30','fr','Catégorie'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_30','en','Category'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_31','fr','Restriction'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_31','en','Restriction'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_32','fr','Attributs inutilisés'); + INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_32','en','Unused attributes'); + INSERT INTO s_vitis.vm_mode (mode_id, module_id) VALUES ('extraction','extraction'); + INSERT INTO s_vitis.vm_mode (mode_id, module_id) VALUES ('extraction_ref','extraction'); + INSERT INTO s_vitis.vm_mode_rolname (index,mode_id, rolname) VALUES (0,'extraction','extraction_user'); + INSERT INTO s_vitis.vm_mode_rolname (index,mode_id, rolname) VALUES (1,'extraction_ref','extraction_admin'); + INSERT INTO s_vitis.vm_tab (tab_id, event, index, mode_id, label_id, ressource_id, edit_column, show_column, sorted_by, sorted_dir, name) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)),'loadList()', 1, 'extraction_ref', 'extraction_14', 'extraction/formats', 'editSectionForm', 'showSectionForm', 'format_id', 'ASC', 'extraction_format'); + INSERT INTO s_vitis.vm_tab (tab_id, event, index, mode_id, label_id, ressource_id, edit_column, show_column, sorted_by, sorted_dir, name) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)),'loadList()', 0, 'extraction_ref', 'extraction_10', 'extraction/coordsyss', 'editSectionForm', 'showSectionForm', 'coordsys_id', 'ASC', 'extraction_coordsys'); + INSERT INTO s_vitis.vm_tab (tab_id, event, index, mode_id, label_id, ressource_id, edit_column, show_column, sorted_by, sorted_dir, name) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)),'loadList()', 2, 'extraction_ref', 'extraction_18', 'extraction/layers', 'editSectionForm', 'showSectionForm', 'layer_id', 'ASC', 'extraction_layer'); + INSERT INTO s_vitis.vm_tab (tab_id, event, index, mode_id, label_id, ressource_id, edit_column, show_column, sorted_by, sorted_dir, name) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)),'loadList()', 0, 'extraction', 'extraction_0', 'extraction/extractions', 'editSectionForm', 'showSectionForm', 'bo_id', 'ASC', 'extraction_extraction'); + INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('add_smallFlexigrid',(SELECT nextval('s_vitis.seq_vm'::regclass)), 'AddSectionForm', 'extraction_21', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'), (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer')); + INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('deleteFlexigrid',(SELECT nextval('s_vitis.seq_vm'::regclass)), 'DeleteSelection', 'extraction_2', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction')); + INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('add_smallFlexigrid',(SELECT nextval('s_vitis.seq_vm'::regclass)), 'AddSectionForm', 'extraction_3', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction')); + INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('deleteFlexigrid',(SELECT nextval('s_vitis.seq_vm'::regclass)), 'DeleteSelection', 'extraction_12', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys'), (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys')); + INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('add_smallFlexigrid',(SELECT nextval('s_vitis.seq_vm'::regclass)), 'AddSectionForm', 'extraction_13', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys'), (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys')); + INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('deleteFlexigrid',(SELECT nextval('s_vitis.seq_vm'::regclass)), 'DeleteSelection', 'extraction_16', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'), (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format')); + INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('add_smallFlexigrid',(SELECT nextval('s_vitis.seq_vm'::regclass)), 'AddSectionForm', 'extraction_17', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'), (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format')); + INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('deleteFlexigrid',(SELECT nextval('s_vitis.seq_vm'::regclass)), 'DeleteSelection', 'extraction_20', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'), (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer')); + INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'bo_id', '1', '1', 0, 50, 'left', 'extraction_4', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction')); + INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'status', '1', '1', 2, 150, 'left', 'extraction_6', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction')); + INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'progress_level', '1', '1', 4, 150, 'center', 'extraction_7', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), '<div data-app-navbar data-mode="info" data-hidevalue data-striped data-active></div>',(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction')); + INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'company', '1', '1', 3, 200, 'left', 'extraction_8', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction')); + INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'requestor', '1', '1', 1, 200, 'left', 'extraction_5', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction')); + INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'layers', '1', '1', 5, 60, 'left', 'extraction_9', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), '<div data-app-extraction-layers-column="{{row.entity[col.field]}}"></div>',(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction')); + INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'coordsys_id', '1', '1', 0, 200, 'left', 'extraction_22', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys')); + INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'coordsys', '1', '1', 1, 200, 'left', 'extraction_23', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys')); + INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'format_id', '1', '1', 0, 100, 'left', 'extraction_24', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format')); + INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'format', '1', '1', 1, 200, 'left', 'extraction_25', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format')); + INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'use_for_raster', '1', '1', 2, 100, 'left', 'extraction_26', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'), '<div data-app-set-boolean-icon-column="{{row.entity[col.field]}}"></div>',(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format')); + INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'use_for_vector', '1', '1', 3, 100, 'left', 'extraction_27', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'), '<div data-app-set-boolean-icon-column="{{row.entity[col.field]}}"></div>',(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format')); + INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'layer_id', '1', '1', 0, 150, 'left', 'extraction_28', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer')); + INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'layer', '1', '1', 1, 150, 'left', 'extraction_29', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer')); + INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'category', '1', '1', 2, 150, 'left', 'extraction_30', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer')); + INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'restriction', '1', '1', 3, 100, 'left', 'extraction_31', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer')); + INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'unused_attributes', '1', '1', 4, 110, 'left', 'extraction_32', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'), '<div data-app-extraction-ref-unused-attributes-column="{{row.entity[col.field]}}"></div>',(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer')); + INSERT INTO s_vitis.vm_section (label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ('extraction_15', 'general', 1, 'Javascript:loadSectionForm', (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'), 'workspaceListTpl.html', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'), 'extraction'); + INSERT INTO s_vitis.vm_section (label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ('extraction_11', 'general', 1, 'Javascript:loadSectionForm', (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys'), 'workspaceListTpl.html', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys'), 'extraction'); + INSERT INTO s_vitis.vm_section (label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ('extraction_19', 'general', 1, 'Javascript:loadSectionForm', (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'), 'workspaceListTpl.html', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'), 'extraction'); + INSERT INTO s_vitis.vm_section (label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ('extraction_1', 'general', 1, 'Javascript:loadSectionForm', (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), 'workspaceListTpl.html', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), 'extraction'); + SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','START', 0); + SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','Nouveau', 10); + SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','AE Généré', 30); + SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','AE Soumis', 40); + SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','AE Demandé', 20); + SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','Dépôt terminé', 100); + SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','Fichier déposé', 90); + SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','Autorisée', 60); + SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','Fichier accepté', 100); + SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','Fichier invalidé', 80); + SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','Extraction terminée', 80); + SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','Refusée', 100); + TRUNCATE s_extraction.rt_extraction_status_group; + INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='START'), (SELECT group_id FROM s_vitis."group" WHERE "name"='demandeur'), 1); + INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='Nouveau'), (SELECT group_id FROM s_vitis."group" WHERE "name"='demandeur'), 2); + INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='AE Demandé'), (SELECT group_id FROM s_vitis."group" WHERE "name"='demandeur'), 3); + INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='AE Généré'), (SELECT group_id FROM s_vitis."group" WHERE "name"='demandeur'), 4); + INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='AE Soumis'), (SELECT group_id FROM s_vitis."group" WHERE "name"='controleur'), 5); + INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='AE Soumis'), (SELECT group_id FROM s_vitis."group" WHERE "name"='demandeur'), 6); + INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='Autorisée'), (SELECT group_id FROM s_vitis."group" WHERE "name"='demandeur'), 7); + INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='Autorisée'), (SELECT group_id FROM s_vitis."group" WHERE "name"='controleur'), 8); + INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='Refusée'), (SELECT group_id FROM s_vitis."group" WHERE "name"='controleur'), 9); + INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='Refusée'), (SELECT group_id FROM s_vitis."group" WHERE "name"='demandeur'), 10); + INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='Extraction terminée'), (SELECT group_id FROM s_vitis."group" WHERE "name"='controleur'), 11); + INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='Fichier déposé'), (SELECT group_id FROM s_vitis."group" WHERE "name"='demandeur'), 12); + INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='Fichier invalidé'), (SELECT group_id FROM s_vitis."group" WHERE "name"='demandeur'), 13); + INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='Fichier accepté'), (SELECT group_id FROM s_vitis."group" WHERE "name"='demandeur'), 14); + INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='Dépôt terminé'), (SELECT group_id FROM s_vitis."group" WHERE "name"='controleur'), 15); - GRANT SELECT ON TABLE s_extraction.rt_feature_model TO extraction_admin; - GRANT SELECT ON TABLE s_extraction.rt_feature_model TO extraction_user; ]]> </code> </query> diff --git a/web_service/ws/Coordsys.class.inc b/web_service/ws/Coordsys.class.inc index 9d472a5f..5b03fbd7 100755 --- a/web_service/ws/Coordsys.class.inc +++ b/web_service/ws/Coordsys.class.inc @@ -12,7 +12,7 @@ require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection * \brief This file contains the Coordsys php class * * This class defines operation for one Coordsys - * + * */ class Coordsys extends ExtractionExtraction { @@ -87,4 +87,4 @@ class Coordsys extends ExtractionExtraction { } -?> \ No newline at end of file +?> diff --git a/web_service/ws/Coordsyss.class.inc b/web_service/ws/Coordsyss.class.inc index f3160591..84853918 100755 --- a/web_service/ws/Coordsyss.class.inc +++ b/web_service/ws/Coordsyss.class.inc @@ -9,7 +9,7 @@ * \brief This file contains the Coordsyss php class * * This class defines Rest Api to Vitis Coordsyss - * + * */ require_once __DIR__ . '/ExtractionExtraction.class.inc'; require_once 'Coordsys.class.inc'; @@ -189,7 +189,7 @@ class Coordsyss extends ExtractionExtraction { */ function PUT() { $aReturn = $this->genericPut($this->aProperties['schema_extraction'], 'rt_coordsys', 'coordsys_id'); - + return $aReturn['sMessage']; } @@ -260,7 +260,7 @@ class Coordsyss extends ExtractionExtraction { return $aReturn['sMessage']; } - + } -?> \ No newline at end of file +?> diff --git a/web_service/ws/Extraction.class.inc b/web_service/ws/Extraction.class.inc index 162782d8..a4eef6a4 100755 --- a/web_service/ws/Extraction.class.inc +++ b/web_service/ws/Extraction.class.inc @@ -12,7 +12,7 @@ require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection * \brief This file contains the Extraction php class * * This class defines operation for one Extraction - * + * */ class Extraction extends ExtractionExtraction { @@ -25,67 +25,76 @@ class Extraction extends ExtractionExtraction { * @param type $properties properties * @param type $oConnection connection object */ - function __construct($aPath, $aValues, $properties, $bShortcut = false) { - parent::__construct($aPath, $aValues, $properties, $bShortcut); + public function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) + { + parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection); } - /** - * @SWG\Get(path="/extractions/{id_extraction}", - * tags={"Extractions"}, - * summary="Get Extraction", - * description="Request to get Extraction by id", - * operationId="GET", - * produces={"application/xml", "application/json"}, - * @SWG\Parameter( - * name="token", - * in="query", - * description="user token", - * required=true, - * type="string" - * ), - * @SWG\Parameter( - * name="id_extraction", - * in="path", - * description="id_extraction", - * required=true, - * type="integer", - * format="int32" - * ), - * @SWG\Parameter( - * name="attributs", - * in="query", - * description="list of attributs", - * required=false, - * type="string" - * ), - * @SWG\Response( - * response=200, - * description="Extraction Response", - * @SWG\Schema(ref="#/definitions/extractions") - * ) - * ) - */ +/** + * @SWG\Get(path="/extractions/{id_extraction}", + * tags={"Extractions"}, + * summary="Get Extraction", + * description="Request to get Extraction by id", + * operationId="GET", + * produces={"application/xml", "application/json"}, + * @SWG\Parameter( + * name="token", + * in="query", + * description="user token", + * required=true, + * type="string" + * ), + * @SWG\Parameter( + * name="id_extraction", + * in="path", + * description="id_extraction", + * required=true, + * type="integer", + * format="int32" + * ), + * @SWG\Parameter( + * name="attributs", + * in="query", + * description="list of attributs", + * required=false, + * type="string" + * ), + * @SWG\Response( + * response=200, + * description="Extraction Response", + * @SWG\Schema(ref="#/definitions/extractions") + * ) + * ) + */ /** * get informations about mode */ - function GET() { + public function GET() + { require $this->sRessourcesFile; $this->aFields = $this->getFields($this->aProperties['schema_extraction'], "extraction", "bo_id"); // Url vers l'acte d'engagement. - if (!empty($this->aFields['ae'])) + if (!empty($this->aFields['ae'])) { $this->aFields['ae'] = $this->aProperties['web_server_name'] . '/' . $this->aProperties['ws_data_alias'] . '/extraction/extraction_extraction_extraction/documents/' . $this->aValues["my_vitis_id"] . '/ae/' . $this->aFields['ae']; - + } + // Date au format Français. if ($this->aProperties["language"] == 'fr') { - $oDate = new DateTime($this->aFields['creation_date']); + $oDate = new DateTime($this->aFields['creation_date']); $this->aFields['creation_date'] = $oDate->format('d/m/Y'); } - + // Libellés du champ "Commune". if (!empty($this->aFields['id_com'])) { - $sSql = str_replace('[id_com]', str_replace('|', ',', $this->aFields['id_com']), $aSql['getCommuneLabel']); - $oPDOresult = $this->oConnection->oBd->executeWithParams($sSql, array()); + //On donne les paramètres à remplacer dans la requête + $aSQLParams = array( + 'id_com' => array('value' => $this->aFields['id_com'], 'type' => 'group'), + ); + + $sSql = $aSql['getCommuneLabel']; + + $oPDOresult = $this->oConnection->oBd->executeWithParams($sSql, $aSQLParams); if (!$this->oConnection->oBd->enErreur()) { while ($aLine = $this->oConnection->oBd->ligneSuivante($oPDOresult)) { $aCommune[] = $aLine['nom_com']; @@ -93,20 +102,30 @@ class Extraction extends ExtractionExtraction { $this->aFields['id_com_label'] = implode(',', $aCommune); } } - + // Libellés du champ "Conseil de Territoire". if (!empty($this->aFields['id_conseil'])) { - $sSql = str_replace('[id_conseil]', str_replace('|', ',', $this->aFields['id_conseil']), $aSql['getConseilLabel']); - $oPDOresult = $this->oConnection->oBd->executeWithParams($sSql, array()); + + $aSQLParams = array( + 'id_conseil' => array('value' => $this->aFields['id_conseil'], 'type' => 'group'), + ); + //$sSql = str_replace('[id_conseil]', str_replace('|', ',', $this->aFields['id_conseil']), $aSql['getConseilLabel']); + $aConseil = []; + $sSql = $aSql['getConseilLabel']; + $oPDOresult = $this->oConnection->oBd->executeWithParams($sSql, $aSQLParams); if (!$this->oConnection->oBd->enErreur()) { while ($aLine = $this->oConnection->oBd->ligneSuivante($oPDOresult)) { $aConseil[] = $aLine['nom_epci']; } - $this->aFields['id_conseil_label'] = implode(',', $aConseil); + if (is_array($aConseil)) { + $this->aFields['id_conseil_label'] = implode(',', $aConseil); + } else { + $this->aFields['id_conseil_label'][0] = $aConseil; + } } } - - // Nom de l'état de l'extraction. + + // Nom de l'état de l'extraction. $this->aFields['status_name'] = $this->aFields['status']; } @@ -121,5 +140,5 @@ class Extraction extends ExtractionExtraction { $this->aFields["bo_id"] = $this->aValues["my_vitis_id"]; } } + } -?> \ No newline at end of file diff --git a/web_service/ws/ExtractionExtraction.class.inc b/web_service/ws/ExtractionExtraction.class.inc index b2cf23b4..a78555e5 100755 --- a/web_service/ws/ExtractionExtraction.class.inc +++ b/web_service/ws/ExtractionExtraction.class.inc @@ -8,7 +8,7 @@ class ExtractionExtraction extends Vitis { //Chemin du fichier de ressources contenant les requêtes SQL var $sRessourcesFile = 'ws/extraction/ExtractionExtraction.class.sql.inc'; - + function __construct($aPath, $aValues, $properties, $bShortcut) { parent::__construct($aPath, $aValues, $properties, $bShortcut); } @@ -18,28 +18,31 @@ class ExtractionExtraction extends Vitis { * @param type $sIndex * @param type $sFolder */ - function uploadDocument($sIndex, $sFolder) { + public function uploadDocument($sIndex, $sFolder) + { // Crée le répertoire si inexistant. $sDirPath = $this->aProperties['ws_data_dir'] . '/extraction/' . $sFolder . '/documents/' . $this->aValues["my_vitis_id"] . '/' . $sIndex . '/'; - if (!is_dir($sDirPath)) + if (!is_dir($sDirPath)) { mkdir($sDirPath, 0777, true); + } + // Ecrit le fichier. if (!empty($_FILES[$sIndex])) { $sErrorMessage = uploadFile($sIndex, "", $sDirPath . $_FILES[$sIndex]["name"], $_FILES[$sIndex]['size'] + 1); - if ($sErrorMessage != "") + if ($sErrorMessage != "") { writeToErrorLog($sErrorMessage); - } - else { + } + + } else { $sfileContentIndex = $sIndex . '_file'; - $sfileNameIndex = $sIndex . '_name'; + $sfileNameIndex = $sIndex . '_name'; if (!empty($this->aValues[$sfileContentIndex])) { $this->aValues[$sIndex] = $this->aValues[$sfileNameIndex]; - $fp = fopen($sDirPath . $this->aValues[$sfileNameIndex], "w"); + $fp = fopen($sDirPath . $this->aValues[$sfileNameIndex], "w"); fwrite($fp, $this->aValues[$sfileContentIndex]); fclose($fp); } } } } -?> \ No newline at end of file diff --git a/web_service/ws/ExtractionExtraction.class.sql.inc b/web_service/ws/ExtractionExtraction.class.sql.inc index a1e819a3..6edd56aa 100755 --- a/web_service/ws/ExtractionExtraction.class.sql.inc +++ b/web_service/ws/ExtractionExtraction.class.sql.inc @@ -14,4 +14,6 @@ $aSql['getCommuneLabel'] = 'SELECT nom_com FROM public.ref_cpa_limadm_commune WH $aSql['getConseilLabel'] = 'SELECT nom_epci FROM public.ref_amp_lim_ct WHERE objectid IN([id_conseil])'; $aSql['getRtLayer'] = 'SELECT layer_id, layer, category FROM [schema_extraction].rt_layer [sql_params] ORDER BY category, layer'; $aSql['getUserGroups'] = 'SELECT name FROM [schema_framework]."group",[schema_framework].user_group WHERE "group".group_id = user_group.group_id AND user_group.user_id = [user_id]'; -?> \ No newline at end of file + +$aSql['getFormat'] = 'SELECT id_format FROM q_control."format" WHERE "format".extensions like [extension]'; +?> diff --git a/web_service/ws/Extraction_depots.class.inc b/web_service/ws/Extraction_depots.class.inc new file mode 100755 index 00000000..e424f2ce --- /dev/null +++ b/web_service/ws/Extraction_depots.class.inc @@ -0,0 +1,440 @@ +<?php + +/** + * \file Extraction_depots.class.inc + * \class Extraction_depots + * + * \author WAB <support.wab@veremes.com>. + * + * \brief This file contains the Extraction_depots php class + * + * This class defines Rest Api to Vitis Extraction_depots + * + */ +require_once __DIR__ . '/ExtractionExtraction.class.inc'; +require_once 'Extraction_depot.class.inc'; +require_once __DIR__ . '/../../class/wab_lib/BusinessObject.class.inc'; +require_once __DIR__ . '/Extractions.class.inc'; + +class Extraction_depots extends ExtractionExtraction +{ + /** + * @SWG\Definition( + * definition="/extraction_depots", + * allOf={ + * @SWG\Schema(ref="#/definitions/extraction_depots") + * } + * ) + * * @SWG\Tag( + * name="Extraction_depots", + * description="Operations about Extraction_depots" + * ) + */ + + /** + * construct + * @param type $aPath url of the request + * @param type $aValues parameters of the request + * @param type $properties properties + * @param type $bShortcut false to reinit variables + * @param type $oConnection connection object + */ + public function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) + { + parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection); + } + + /** + * @SWG\Get(path="/extraction_depots", + * tags={"Extraction_depots"}, + * summary="Get Extraction_depots", + * description="Request to get Extraction_depots", + * operationId="GET", + * produces={"application/xml", "application/json", "application/x-vm-json"}, + * @SWG\Parameter( + * name="token", + * in="query", + * description="user token", + * required=true, + * type="string" + * ), + * @SWG\Parameter( + * name="order_by", + * in="query", + * description="list of ordering fields", + * required=false, + * type="string" + * ), + * @SWG\Parameter( + * name="sort_order", + * in="query", + * description="sort_order", + * required=false, + * type="string" + * ), + * @SWG\Parameter( + * name="limit", + * in="query", + * description="number of element", + * required=false, + * type="integer", + * format="int32" + * ), + * @SWG\Parameter( + * name="offset", + * in="query", + * description="index of first element", + * required=false, + * type="string", + * format="int32" + * ), + * @SWG\Parameter( + * name="attributs", + * in="query", + * description="list of attributs", + * required=false, + * type="string" + * ), + * @SWG\Parameter( + * name="filter", + * in="query", + * description="filter results", + * required=false, + * type="string" + * ), + * @SWG\Parameter( + * name="distinct", + * in="query", + * description="delete duplicates", + * required=false, + * type="boolean" + * ), + * @SWG\Response( + * response=200, + * description="extraction_depot Response", + * @SWG\Schema(ref="#/definitions/extraction_depots") + * ) + * ) + */ + + /** + * get Extraction_depots + * @return Extraction_depots + */ + public function GET() + { + if (!empty($this->aPath[2])) { + if ($this->aPath[2] == "Tree") { + $sDirPath = $this->aProperties['ws_data_dir'] . '/extraction/extraction_depot'; + //Création du dossier extraction_depot + if (!is_dir($sDirPath)) { + //Création du dossier du demandeur + if (!mkdir($sDirPath)) { + //Mettre une erreur dans le log d'erreur + } + } + $sDirPath = $this->aProperties['ws_data_dir'] . '/extraction/extraction_depot/' . $_SERVER["REMOTE_ADDR"]; + if (!is_dir($sDirPath)) { + if (!mkdir($sDirPath)) { + //Mettre une erreur dans le log d'erreur + } + } + $sDirPath = $this->aProperties['ws_data_dir'] . '/extraction/extraction_depot/' . $_SERVER["REMOTE_ADDR"] . "/Fichiers déposés"; + if (!is_dir($sDirPath)) { + if (!mkdir($sDirPath)) { + //Mettre une erreur dans le log d'erreur + } + } + $sDirPath = $this->aProperties['ws_data_dir'] . '/extraction/extraction_depot/' . $_SERVER["REMOTE_ADDR"] . "/Résultats"; + if (!is_dir($sDirPath)) { + if (!mkdir($sDirPath)) { + //Mettre une erreur dans le log d'erreur + } + } + $sDirPath = $this->aProperties['ws_data_dir'] . '/extraction/extraction_depot/' . $_SERVER["REMOTE_ADDR"]; + return json_encode($this->getFolderInfos($sDirPath)); + } elseif ($this->aPath[2] == "File") { + $this->getWorkspaceFile(); + } + } + } + + /** + * Get file. + */ + public function getWorkspaceFile() + { + $aReturn = array('status' => 1, 'message' => ''); + $sFilePath = $this->aProperties['ws_data_dir'] . '/extraction/extraction_depot/' . $_SERVER["REMOTE_ADDR"] . "/" . $this->aValues['file_name']; + // Le fichier existe ? + if (file_exists($sFilePath)) { + header("Content-Type: application/octet-stream"); + header("Content-Transfer-Encoding: Binary"); + header("Content-disposition: attachment; filename=\"" . $this->aValues['file_name'] . "\""); + header('Content-Length: ' . filesize($sFilePath)); + error_log(readfile($sFilePath)); + } + } + + /** + * + * @param string $sDirectoryPath + * @return array $aTree + */ + public function getFolderInfos($sDirectoryPath) + { + + if (is_dir($sDirectoryPath)) { + $aContentDir = scandir($sDirectoryPath); + $aTree = $this->getFileInfos($sDirectoryPath); + $aDir = array(); + for ($i = 0; $i < count($aContentDir); $i++) { + if ($aContentDir[$i] !== "." && $aContentDir[$i] !== "..") { + array_push($aDir, $this->getFolderInfos($sDirectoryPath . "/" . $aContentDir[$i])); + } + } + + $aTree["content"] = $aDir; + $aTree["status"] = 1; + return $aTree; + } else { + return $this->getFileInfos($sDirectoryPath); + } + } + + /** + * + * @param string $sFilePath + * @return array + */ + public function getFileInfos($sFilePath) + { + $iFileSize = filesize($sFilePath); + + $sFileSize = $iFileSize . "octets"; + if ($iFileSize > 1024) { + if ($iFileSize > 1024 * 1024) { + if ($iFileSize > 1024 * 1024 * 1024) { + $sFileSize = "-"; + } else { + $sFileSize = (ceil($iFileSize / (1024 * 1024))) . "Mo"; + } + } else { + $sFileSize = (ceil($iFileSize / 1024)) . "Ko"; + } + } + + $aFileName = explode(DIRECTORY_SEPARATOR, $sFilePath); + + return array("filename" => $aFileName[count($aFileName) - 1], "size" => $sFileSize, "lastModification" => date("d/m/Y H:i:s", filemtime($sFilePath))); + } + + /** + * @SWG\Delete(path="/[Class_name]s", + * tags={"[Class_name_upper]s"}, + * summary="delete [Class_name_upper]s", + * description="Request to delete [Class_name_upper]s", + * operationId="DELETE", + * produces={"application/xml", "application/json"}, + * @SWG\Parameter( + * name="token", + * in="query", + * description="token", + * required=true, + * type="string" + * ), + * * @SWG\Parameter( + * name="idList", + * in="query", + * description="id of the [Class_name]", + * required=true, + * type="string" + * ), + * @SWG\Response( + * response=200, + * description="[Class_name] Response", + * @SWG\Schema(ref="#/definitions/[Class_name]s") + * ) + * ) + */ + /** + * @SWG\Delete(path="/[Class_name]s/{id_[Class_name]}", + * tags={"[Class_name_upper]s"}, + * summary="delete [Class_name_upper]s", + * description="Request to delete [Class_name_upper]s", + * operationId="DELETE", + * produces={"application/xml", "application/json"}, + * @SWG\Parameter( + * name="token", + * in="query", + * description="[Class_name_upper] token", + * required=true, + * type="string" + * ), + * * @SWG\Parameter( + * name="id_[Class_name]", + * in="path", + * description="id of the [Class_name_upper]s", + * required=true, + * type="integer", + * format = "int32" + * ), + * @SWG\Response( + * response=200, + * description="Poprerties Response", + * @SWG\Schema(ref="#/definitions/[Class_name]s") + * ) + * ) + */ + + /** + * delete [Class_name]s + * @return id of [Class_name]s deleted or error object if a [Class_name]s is not deleted + */ + public function DELETES() + { + $sDirPath = $this->aProperties['ws_data_dir'] . '/extraction/extraction_depot/' . $_SERVER["REMOTE_ADDR"]; + //On supprime le fichier + $sMessage = unlink($sDirPath . "/" . $this->aValues['file_name']); + return $sMessage; + } + + /** + * @SWG\Put(path="/[Class_name]s/{id_[Class_name]}", + * tags={"[Class_name_upper]s"}, + * summary="update [Class_name_upper]s", + * description="Request to update [Class_name_upper]s", + * operationId="PUT", + * produces={"application/xml", "application/json"}, + * @SWG\Parameter( + * name="token", + * in="query", + * description="[Class_name_upper] token", + * required=true, + * type="string" + * ), + * * @SWG\Parameter( + * name="id_[Class_name]", + * in="path", + * description="id of the [Class_name_upper]s", + * required=true, + * type="integer", + * format = "int32" + * ), + * @SWG\Response( + * response=200, + * description="Poprerties Response", + * @SWG\Schema(ref="#/definitions/[Class_name]s") + * ) + * ) + */ + + /** + * update [Class_name]s + * @return id of [Class_name]s updated or error object if a [Class_name]s is not updated + */ + public function PUT() + { + if (!empty($this->aValues["action"]) && $this->aValues["action"] == "Metadata") { + $aReturn = $this->reintegrateMetadata(); + + $aXmlRacineAttribute['status'] = $aReturn['status']; + $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], true, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); + } else { + $sDirName = $this->aProperties['ws_data_dir'] . '/extraction/extraction_depot/' . $_SERVER["REMOTE_ADDR"]; + $error_message = ""; + + // Si le dossier {id} n'existe pas (Important pour gérer les erreurs) + if (!is_dir($sDirName)) { + $error_message .= $sDirName . " does not exist"; + writeToErrorLog("WARNING: " . $error_message); + + $aXmlRacineAttribute['status'] = 0; + $this->aFields = array(); + $this->aFields['errorMessage'] = $error_message; + $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], true, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); + return $sMessage; + } + // Si le dossier {id}/Fichiers déposés n'existe pas (Important pour gérer les erreurs) + if (!is_dir($sDirName . "/Fichiers déposés")) { + $error_message .= $sDirName . "/Fichiers déposés does not exist"; + writeToErrorLog("WARNING: " . $error_message); + + $aXmlRacineAttribute['status'] = 0; + $this->aFields = array(); + $this->aFields['errorMessage'] = $error_message; + $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], true, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); + return $sMessage; + } + + // Si le dossier {id}/form n'existe pas il est crée + if (!is_dir($sDirName . "/Résultats")) { + writeToErrorLog("WARNING: " . $sDirName . "/Résultats"); + @mkdir($sDirName . "/Résultats"); + } + + if (!empty($this->aValues["control_file_file"])) { + $this->aValues["control_file"] = $this->aValues["control_file_name"]; + } + if (!empty($this->aValues["control_file_file"])) { + //if ($aReturn['sStatus'] == 1) { + $aXmlRacineAttribute['status'] = 1; + $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], true, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); + $sDirPath = $this->aProperties["upload_dir"] . "/" . getUniqRandomId(); + while (is_dir($sDirPath)) { + $sDirPath = $this->aProperties["upload_dir"] . "/" . getUniqRandomId(); + } + if (!mkdir($sDirPath)) { + return false; + } + // Sauvegarde le nouveau fichier. + $fp = fopen($sDirPath . '/' . utf8_decode($this->aValues["control_file_name"]), "w"); + fwrite($fp, $this->aValues["control_file_file"]); + fclose($fp); + + $sExtension = '*.' . end(explode(".", $this->aValues["control_file_name"])); + if (in_array($sExtension, explode("|", $this->aProperties['sig'])) or in_array($sExtension, explode("|", $this->aProperties['dao']))) { + $sSchemaContrainte = ""; + if (in_array($sExtension, explode("|", $this->aProperties['sig']))) { + $sSchemaContrainte = $this->aProperties["schema_sig"]; + } elseif (in_array($sExtension, explode("|", $this->aProperties['dao']))) { + $sSchemaContrainte = $this->aProperties["schema_dao"]; + } + + $this->sRessourcesFile = "ExtractionExtraction.class.sql.inc"; + require $this->sRessourcesFile; + $sSql = $aSql['getFormat']; + $aSQLParams = array( + 'extension' => array('type' => 'quoted_string', 'value' => '%' . $sExtension . '%'), + ); + + $oPDOresult = $this->oConnection->oBd->executeWithParams($sSql, $aSQLParams); + $sFormat = ""; + if (!$this->oConnection->oBd->enErreur()) { + $aResult = $this->oConnection->oBd->getResultTableAssoc($oPDOresult); + foreach ($aResult as $sFormats) { + $sFormat = $sFormats['id_format']; + } + } + + $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']); + //$this->oBO->insertOrder('EM0160AYYTK48', 'bo_id=' . $this->aValues["bo_id"] . '|sourceDir=' . end(explode("/", $sDirPath)) . '/' . $this->aValues["control_file_name"] . '|sourceMotif=' . $sExtension . '|schema=' . $sSchemaContrainte . '|format=ACAD|destDir=' . $this->aProperties['ws_data_dir'] . '/extraction/extraction_depot/' . $_SERVER["REMOTE_ADDR"] . "/Fichiers déposés"); + $this->oBO->insertOrder('EM0160AYYTK48', 'bo_id=' . $this->aValues["bo_id"] . '|sourceDir=' . $sDirPath . '/' . $this->aValues["control_file_name"] . '|sourceMotif=' . $sExtension . '|schema=' . $sSchemaContrainte . '|format='.$sFormat.'|depotDir=' . $this->aProperties['ws_data_dir'] . '/extraction/extraction_depot/' . $_SERVER["REMOTE_ADDR"] . '/Fichiers déposés/' . $this->aValues["control_file_name"]); + } else { + //Si l'extension n'est pas bonne + $error_message .= $this->aValues["control_file_name"] . " format is not authaurized (" . $sExtension . ")"; + writeToErrorLog("WARNING: " . $error_message); + + $aXmlRacineAttribute['status'] = 0; + $this->aFields = array(); + $this->aFields['errorMessage'] = $error_message; + $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], true, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); + return $sMessage; + } + } + } + + return $sMessage; + } + +} diff --git a/web_service/ws/Extractions.class.inc b/web_service/ws/Extractions.class.inc index 456c2aa7..010fefce 100755 --- a/web_service/ws/Extractions.class.inc +++ b/web_service/ws/Extractions.class.inc @@ -6,16 +6,19 @@ * * \author WAB <support.wab@veremes.com>. * - * \brief This file contains the Extractions php class + * \brief This file contains the Extractions php class * * This class defines Rest Api to Vitis Extractions - * + * */ require_once __DIR__ . '/ExtractionExtraction.class.inc'; require_once 'Extraction.class.inc'; require_once(dirname($_SERVER['SCRIPT_FILENAME']) . '/class/wab_lib/BusinessObject.class.inc'); -class Extractions extends ExtractionExtraction { +class Extractions extends ExtractionExtraction +{ + + protected $iIdExtraction; /** * @SWG\Definition( * definition="/extractions", @@ -35,82 +38,83 @@ class Extractions extends ExtractionExtraction { * @param type $aValues parameters of the request * @param type $properties properties */ - function __construct($aPath, $aValues, $properties, $bShortcut = false) { - parent::__construct($aPath, $aValues, $properties, $bShortcut); + public function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) + { + parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection); } - /** - * @SWG\Get(path="/extractions", - * tags={"Extractions"}, - * summary="Get Extractions", - * description="Request to get Extractions", - * operationId="GET", - * produces={"application/xml", "application/json", "application/x-vm-json"}, - * @SWG\Parameter( - * name="token", - * in="query", - * description="user token", - * required=true, - * type="string" - * ), - * @SWG\Parameter( - * name="order_by", - * in="query", - * description="list of ordering fields", - * required=false, - * type="string" - * ), - * @SWG\Parameter( - * name="sort_order", - * in="query", - * description="sort_order", - * required=false, - * type="string" - * ), - * @SWG\Parameter( - * name="limit", - * in="query", - * description="number of element", - * required=false, - * type="integer", - * format="int32" - * ), - * @SWG\Parameter( - * name="offset", - * in="query", - * description="index of first element", - * required=false, - * type="string", - * format="int32" - * ), - * @SWG\Parameter( - * name="attributs", - * in="query", - * description="list of attributs", - * required=false, - * type="string" - * ), - * @SWG\Parameter( - * name="filter", - * in="query", - * description="filter results", - * required=false, - * type="string" - * ), - * @SWG\Parameter( - * name="distinct", - * in="query", - * description="delete duplicates", - * required=false, - * type="boolean" - * ), - * @SWG\Response( - * response=200, - * description="extraction Response", - * @SWG\Schema(ref="#/definitions/extractions") - * ) - * ) - */ +/** + * @SWG\Get(path="/extractions", + * tags={"Extractions"}, + * summary="Get Extractions", + * description="Request to get Extractions", + * operationId="GET", + * produces={"application/xml", "application/json", "application/x-vm-json"}, + * @SWG\Parameter( + * name="token", + * in="query", + * description="user token", + * required=true, + * type="string" + * ), + * @SWG\Parameter( + * name="order_by", + * in="query", + * description="list of ordering fields", + * required=false, + * type="string" + * ), + * @SWG\Parameter( + * name="sort_order", + * in="query", + * description="sort_order", + * required=false, + * type="string" + * ), + * @SWG\Parameter( + * name="limit", + * in="query", + * description="number of element", + * required=false, + * type="integer", + * format="int32" + * ), + * @SWG\Parameter( + * name="offset", + * in="query", + * description="index of first element", + * required=false, + * type="string", + * format="int32" + * ), + * @SWG\Parameter( + * name="attributs", + * in="query", + * description="list of attributs", + * required=false, + * type="string" + * ), + * @SWG\Parameter( + * name="filter", + * in="query", + * description="filter results", + * required=false, + * type="string" + * ), + * @SWG\Parameter( + * name="distinct", + * in="query", + * description="delete duplicates", + * required=false, + * type="boolean" + * ), + * @SWG\Response( + * response=200, + * description="extraction Response", + * @SWG\Schema(ref="#/definitions/extractions") + * ) + * ) + */ /** * @SWG\Get(path="/extractions/Layers", * tags={"Extractions"}, @@ -137,123 +141,191 @@ class Extractions extends ExtractionExtraction { * get Extractions * @return Extractions */ - function GET() { - if (!empty($this->aPath[2]) && $this->aPath[2] == "Layers") + public function GET() + { + if (!empty($this->aPath[2]) && $this->aPath[2] == "Layers") { $sMessage = $this->getLayers(); - else { - $aReturn = $this->genericGet($this->aProperties['schema_extraction'], "v_extraction", "bo_id"); + } else { + $aReturn = $this->genericGet($this->aProperties['schema_extraction'], "v_extraction", "bo_id"); $sMessage = $aReturn['sMessage']; } return $sMessage; } - /** - * @SWG\Post(path="/extractions", - * tags={"Extractions"}, - * summary="Add extraction", - * description="Request to add Extractions", - * operationId="POST", - * produces={"application/xml", "application/json"}, - * @SWG\Parameter( - * name="token", - * in="query", - * description="user token", - * required=true, - * type="string" - * ), - * @SWG\Response( - * response=200, - * description="extraction Response", - * @SWG\Schema(ref="#/definitions/extractions") - * ) - * ) - */ +/** + * @SWG\Post(path="/extractions", + * tags={"Extractions"}, + * summary="Add extraction", + * description="Request to add Extractions", + * operationId="POST", + * produces={"application/xml", "application/json"}, + * @SWG\Parameter( + * name="token", + * in="query", + * description="user token", + * required=true, + * type="string" + * ), + * @SWG\Response( + * response=200, + * description="extraction Response", + * @SWG\Schema(ref="#/definitions/extractions") + * ) + * ) + */ /** * insert extraction * @return id of the extraction created */ - function POST() { - $aReturn = $this->genericPost($this->aProperties['schema_extraction'], 'extraction', $this->aProperties['schema_extraction'].'.bo_id_extraction_seq', 'bo_id'); + public function POST() + { + $aReturn = $this->genericPost($this->aProperties['schema_extraction'], 'extraction', $this->aProperties['schema_extraction'] . '.bo_id_extraction_seq', 'bo_id'); $this->aValues["bo_id"] = $this->aValues['my_vitis_id']; - eval('$this->' . $this->aValues['tr_status_method'] . '();'); + eval('$this->' . $this->aValues['tr_status_method'] . '();'); return $aReturn['sMessage']; } - /** - * @SWG\Put(path="/extractions/{id_extraction}", - * tags={"Extractions"}, - * summary="update Extractions", - * description="Request to update Extractions", - * operationId="PUT", - * produces={"application/xml", "application/json"}, - * @SWG\Parameter( - * name="token", - * in="query", - * description="Extraction token", - * required=true, - * type="string" - * ), - * * @SWG\Parameter( - * name="id_extraction", - * in="path", - * description="id of the Extractions", - * required=true, - * type="integer", - * format = "int32" - * ), - * @SWG\Response( - * response=200, - * description="Poprerties Response", - * @SWG\Schema(ref="#/definitions/extractions") - * ) - * ) - */ +/** + * @SWG\Put(path="/extractions/{id_extraction}", + * tags={"Extractions"}, + * summary="update Extractions", + * description="Request to update Extractions", + * operationId="PUT", + * produces={"application/xml", "application/json"}, + * @SWG\Parameter( + * name="token", + * in="query", + * description="Extraction token", + * required=true, + * type="string" + * ), + * * @SWG\Parameter( + * name="id_extraction", + * in="path", + * description="id of the Extractions", + * required=true, + * type="integer", + * format = "int32" + * ), + * @SWG\Response( + * response=200, + * description="Poprerties Response", + * @SWG\Schema(ref="#/definitions/extractions") + * ) + * ) + */ /** * update extractions * @return id of extractions updated or error object if a extractions is not updated */ - function PUT() { + public function PUT() + { // Upload l'acte d'engagement. $this->uploadDocument('ae', 'extraction_extraction_extraction'); // - $aReturn = $this->genericPut($this->aProperties['schema_extraction'], 'extraction', 'bo_id'); + $aReturn = $this->genericPut($this->aProperties['schema_extraction'], 'extraction', 'bo_id'); $this->aValues["bo_id"] = $this->aValues['my_vitis_id']; - // Méthode de transition. - if (!empty($this->aValues['tr_status_method'])) - eval('$this->' . $this->aValues['tr_status_method'] . '();'); + + //On vérifie que le fichier existe et ne soit pas vide + if (!empty($this->aValues['input_deposit_file'])) { + //On va déplacer le fichier dans un dossier temporaire + $aXmlRacineAttribute['status'] = 1; + $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], true, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); + $sDirPath = $this->aProperties["upload_dir"] . "/" . getUniqRandomId(); + //Récupération de sDirPath pour trDéposer + $this->sDirPath = $sDirPath; + + $sExtension = '*.' . end(explode(".", $this->aValues["input_deposit_name"])); + + //Si l'extension est autorisée + if (in_array($sExtension, explode("|", $this->aProperties['sig'])) || in_array($sExtension, explode("|", $this->aProperties['dao']))) { + + // Méthode de transition. + if (!empty($this->aValues['tr_status_method'])) { + eval('$this->' . $this->aValues['tr_status_method'] . '();'); + } + + $sSchemaContrainte = ""; + if (in_array($sExtension, explode("|", $this->aProperties['sig']))) { + $sSchemaContrainte = $this->aProperties["schema_sig"]; + } elseif (in_array($sExtension, explode("|", $this->aProperties['dao']))) { + $sSchemaContrainte = $this->aProperties["schema_dao"]; + } + + while (is_dir($sDirPath)) { + $sDirPath = $this->aProperties["upload_dir"] . "/" . getUniqRandomId(); + } + if (!mkdir($sDirPath)) { + return false; + } + // Sauvegarde le nouveau fichier. + $fp = fopen($sDirPath . '/' . utf8_decode($this->aValues["input_deposit_name"]), "w"); + fwrite($fp, $this->aValues["input_deposit_file"]); + fclose($fp); + + $this->sRessourcesFile = "ExtractionExtraction.class.sql.inc"; + require $this->sRessourcesFile; + $sSql = $aSql['getFormat']; + $aSQLParams = array( + 'extension' => array('type' => 'quoted_string', 'value' => '%' . $sExtension . '%'), + ); + + $oPDOresult = $this->oConnection->oBd->executeWithParams($sSql, $aSQLParams); + $sFormat = ""; + if (!$this->oConnection->oBd->enErreur()) { + $aResult = $this->oConnection->oBd->getResultTableAssoc($oPDOresult); + foreach ($aResult as $sFormats) { + $sFormat = $sFormats['id_format']; + } + } + + //Demande GTF + $this->oBO->insertOrder('EM0160AYYTK48', 'bo_id=' . $this->aValues["bo_id"] . '|sourceDir=' . end(explode("/", $sDirPath)) . '/' . $this->aValues["input_deposit_name"] . '|sourceMotif=' . $sExtension . '|depotDir=' . $sSchemaContrainte . '|format=' . $sFormat . '|depotDir=' . $this->aProperties['ws_data_dir'] . '/extraction/extraction_depot/' . $_SERVER["REMOTE_ADDR"] . "/Fichiers déposés/" . $this->aValues["input_deposit_name"]); + } else { + //Si l'extension n'est pas bonne + $error_message .= $this->aValues["input_deposit_name"] . " format is not authaurized (" . $sExtension . ")"; + writeToErrorLog("WARNING: " . $error_message); + + $aXmlRacineAttribute['status'] = 0; + $this->aFields = array(); + $this->aFields['errorMessage'] = $error_message; + $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], true, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); + return $sMessage; + } + } return $aReturn['sMessage']; } - /** - * @SWG\Delete(path="/extractions", - * tags={"Extractions"}, - * summary="delete Extractions", - * description="Request to delete Extractions", - * operationId="DELETE", - * produces={"application/xml", "application/json"}, - * @SWG\Parameter( - * name="token", - * in="query", - * description="token", - * required=true, - * type="string" - * ), - * * @SWG\Parameter( - * name="idList", - * in="query", - * description="id of the extraction", - * required=true, - * type="string" - * ), - * @SWG\Response( - * response=200, - * description="extraction Response", - * @SWG\Schema(ref="#/definitions/extractions") - * ) - * ) - */ +/** + * @SWG\Delete(path="/extractions", + * tags={"Extractions"}, + * summary="delete Extractions", + * description="Request to delete Extractions", + * operationId="DELETE", + * produces={"application/xml", "application/json"}, + * @SWG\Parameter( + * name="token", + * in="query", + * description="token", + * required=true, + * type="string" + * ), + * * @SWG\Parameter( + * name="idList", + * in="query", + * description="id of the extraction", + * required=true, + * type="string" + * ), + * @SWG\Response( + * response=200, + * description="extraction Response", + * @SWG\Schema(ref="#/definitions/extractions") + * ) + * ) + */ /** * @SWG\Delete(path="/extractions/{id_extraction}", * tags={"Extractions"}, @@ -293,143 +365,281 @@ class Extractions extends ExtractionExtraction { return $aReturn['sMessage']; } - /** - * Transition Method trGenerer - */ - function trGenerer() { + * Liste des couches. + */ + public function getLayers() + { + require $this->sRessourcesFile; + //On décode le json récupéré via le filtre + if (!empty($this->aValues["filter"])) { + $decode = $this->decodeJSONFilter($this->aValues["filter"], $this->aProperties['schema_extraction'], $this->aValues["table"]); + } + + if (is_object($this->aValues) || is_array($this->aValues)) { + $sJSONFilter = json_encode($this->aValues); + } + + if (!empty($sJSONFilter)) { + $aJSONFilter = json_decode($sJSONFilter, true); + + if (!empty($aJSONFilter["filter"])) { + if (is_object($aJSONFilter["filter"]) || is_array($aJSONFilter["filter"])) { + $sJSONFilter = json_encode($aJSONFilter["filter"]); + } + } + } + $aSQLParams = array( + 'schema_framework' => array('value' => $this->aProperties['schema_framework'], 'type' => 'schema_name'), + 'user_id' => array('value' => $_SESSION['ses_user_id'], 'type' => 'string'), + ); + + $sSql = $aSql['getUserGroups']; + $oPDOresult = $this->oConnection->oBd->executeWithParams($sSql, $aSQLParams); + if (!$this->oConnection->oBd->enErreur()) { + $aResult = $this->oConnection->oBd->getResultTableAssoc($oPDOresult); + foreach ($aResult as $aUserGroup) { + $aUserGroups[] = $aUserGroup['name']; + } + + if (!empty($aValues["filter"])) { + $aSQLParams = array( + 'schema_extraction' => array('value' => $this->aProperties['schema_extraction'], 'type' => 'schema_name'), + ); + + $sSql = $aSql['getCtId']; + //On donne la condition + if ($decode["request"]) { + $sSql .= " WHERE "; + $sSql .= $decode["request"]; + $sSql .= 'ORDER BY ct_id;'; + } + //error_log(print_r($sSql, true)); + $merge = array_merge($aSQLParams, $decode["params"]); + + $oPDOresult = $this->oConnection->oBd->executeWithParams($sSql, $merge); + + $aCtResult = $this->oConnection->oBd->getResultTableAssoc($oPDOresult); + } + // Restriction de l'utilisateur suivant ses groupes. + if (in_array('interne', $aUserGroups)) { + $sSqlParams = " ORDER BY category, layer_id;"; + } else if (in_array('restreint', $aUserGroups)) { + $sSqlParams = " AND restriction <> 'interne' ORDER BY category, layer_id;"; + } else { + $sSqlParams = " AND restriction = 'public' ORDER BY category, layer_id;"; + } + + // Liste des cartes. + $this->aFields['treeview_layers'] = array(); + + //Requête pour récupérer les couches + if (!empty($aValues["filter"])) { + $sSql = $aSql['getRtLayerWithCtId'] . $sSqlParams; + } else { + $sSql = $aSql['getRtLayer'] . $sSqlParams; + } + $ct_id; + if (!empty($aCtResult)) { + for ($i = 0; $i < sizeof($aCtResult); $i++) { + $ct_id .= $aCtResult[$i]["ct_id"] . "|"; + } + //On retire la dernière pipe qui ne sert à rien + $ct_idToSend = substr($ct_id, 0, -1); + } else { + //On donne un id qui n'existe pas pour éviter une erreur dans la requête SQL + $ct_idToSend = -1; + } + //error_log(print_r($aCtResult[$i]["ct_id"], true)); + $aSQLParams = array( + 'schema_extraction' => array('value' => $this->aProperties['schema_extraction'], 'type' => 'schema_name'), + 'aCtId' => array('value' => $ct_idToSend, 'type' => 'group'), + ); + $oPDOresult = $this->oConnection->oBd->executeWithParams($sSql, $aSQLParams); + if (!$this->oConnection->oBd->enErreur()) { + $aRtLayer = $this->oConnection->oBd->getResultTableAssoc($oPDOresult); + $aLayers = array(); + if (!empty($aRtLayer)) { + foreach ($aRtLayer as $aLayer) { + + $aLayers[$aLayer['category']][] = array("text" => $aLayer['layer'], "value" => $aLayer['layer_id'], "mutualized" => $aLayer['mutualized'], "statistique" => $aLayer['statistique']); + + } + } + $this->aFields['layers'] = $aLayers; + $aXmlRacineAttribute['status'] = 1; + $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], true, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); + } else { + $aXmlRacineAttribute['status'] = 0; + $this->aFields['error'] = "Request error."; + $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], true, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); + } + } else { + $aXmlRacineAttribute['status'] = 0; + $this->aFields['error'] = "Request error."; + $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], true, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); + } + //error_log(print_r($sMessage, true)); + return $sMessage; + } + + /** + * Transition Method trNouveau + */ + public function trNouveau() + { + $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']); + + // Check si la table existe si oui change l'état + $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "Nouveau"); + + } + + /** + * Transition Method trGenerer + */ + public function trGenerer() + { $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']); - // Check si la table existe si oui change l'état + // Check si la table existe si oui change l'état $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "AE Généré"); - + } - + /** - * Transition Method trNouveau - */ - function trNouveau() { + * Transition Method trResoumettre + */ + public function trResoumettre() + { $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']); - - // Check si la table existe si oui change l'état - $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "Nouveau"); - + + // Check si la table existe si oui change l'état + $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "AE Généré"); + //$this->sendmail(9904); + $this->sendmail(171); } - + /** - * Transition Method trTerminer - */ - function trTerminer() { + * Transition Method trSoumettre + */ + public function trSoumettre() + { $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']); - - // Check si la table existe si oui change l'état - $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "Terminée"); - + + // Check si la table existe si oui change l'état + $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "AE Soumis"); + //$this->oBO->sendmail(39); + $this->oBO->sendmail(174); } - + /** - * Transition Method trAutoriser - */ - function trAutoriser() { + * Transition Method trDemander + */ + public function trDemander() + { $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']); - $this->oBO->insertOrder('D16ECS75P', 'bo_id='.$this->aValues['bo_id'], $this->aValues['priority_id'], 2 ); - // Check si la table existe si oui change l'état + $this->oBO->insertOrder('832HZ8J2PTCSG', 'bo_id=' . $this->aValues['bo_id']); + // Check si la table existe si oui change l'état + $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "AE Demandé"); + + } + + /** + * Transition Method trReception + */ + public function trReception() + { + $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']); + + // Check si la table existe si oui change l'état + $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "Dépôt terminé"); + + } + + /** + * Transition Method trDeposer + */ + public function trDeposer() + { + $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']); + // Check si la table existe si oui change l'état + $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "Fichier déposé"); + + } + + /** + * Transition Method trAutoriser + */ + public function trAutoriser() + { + $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']); + $this->oBO->insertOrder('8BCP8WGIOW4KO', 'bo_id=' . $this->aValues['bo_id']); + // Check si la table existe si oui change l'état $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "Autorisée"); - + } - + /** - * Transition Method trDemander - */ - function trDemander() { + * Transition Method trAccepter + */ + public function trAccepter() + { $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']); - $this->oBO->insertOrder('D14RHVRJC', 'bo_id='.$this->aValues['bo_id'], 1, 2); - // Check si la table existe si oui change l'état - $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "AE Demandé"); - + // Check si la table existe si oui change l'état + $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "Fichier accepté"); + + //$this->oBO->sendmail(id_du_mail_pour_dire_que_le_fichier_est_accepté); + $this->trReception(); + } - + /** - * Transition Method trResoumettre - */ - function trResoumettre() { + * Transition Method trInvalider + */ + public function trInvalider() + { $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']); - - // Check si la table existe si oui change l'état - $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "AE Généré"); - //$this->sendmail(9904); + + // Check si la table existe si oui change l'état + $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "Fichier invalidé"); + $this->oBO->sendmail(1057); + $this->trRetour(); + } - + /** - * Transition Method trSoumettre - */ - function trSoumettre() { + * Transition Method trRetour + */ + public function trRetour() + { $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']); - - // Check si la table existe si oui change l'état - $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "AE Soumis"); - $this->oBO->sendmail(39); + + // Check si la table existe si oui change l'état + $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "Extraction terminée"); + } - + /** - * Transition Method trRefuser - */ - function trRefuser() { + * Transition Method trTerminerExtraction + */ + public function trTerminerExtraction() + { $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']); - - // Check si la table existe si oui change l'état - $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "Refusée"); - //$this->sendmail(9902); + // Check si la table existe si oui change l'état + $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "Extraction terminée"); + } - + /** - * Liste des couches. + * Transition Method trRefuser */ - function getLayers() { - require $this->sRessourcesFile; - // Liste des groupes de l'utilisateur. - $sSql = str_replace('[schema_framework]', $this->aProperties['schema_framework'], $aSql['getUserGroups']); - $sSql = str_replace('[user_id]', $_SESSION['ses_user_id'], $sSql); - $oPDOresult = $this->oConnection->oBd->executeWithParams($sSql, array()); - if (!$this->oConnection->oBd->enErreur()) { - $aResult = $this->oConnection->oBd->getResultTableAssoc($oPDOresult); - foreach($aResult as $aUserGroup) { - $aUserGroups[] = $aUserGroup['name']; - } - // Restriction de l'utilisateur suivant ses groupes. - if (in_array('interne', $aUserGroups)) - $sSqlParams = ''; - else if (in_array('restreint', $aUserGroups)) - $sSqlParams = " WHERE restriction <> 'interne'"; - else - $sSqlParams = " WHERE restriction = 'public'"; - // Liste des cartes. - $this->aFields['treeview_layers'] = array(); - $sSql = str_replace('[schema_extraction]', $this->aProperties['schema_extraction'], $aSql['getRtLayer']); - $sSql = str_replace('[sql_params]', $sSqlParams, $sSql); - $oPDOresult = $this->oConnection->oBd->executeWithParams($sSql, array()); - if (!$this->oConnection->oBd->enErreur()) { - $aRtLayer = $this->oConnection->oBd->getResultTableAssoc($oPDOresult); - $aLayers = array(); - if (!empty($aRtLayer)) { - foreach($aRtLayer as $aLayer) - $aLayers[$aLayer['category']][] = array("text" => $aLayer['layer'], "value" => $aLayer['layer_id']); - } - $this->aFields['layers'] = $aLayers; - $aXmlRacineAttribute['status']=1; - $sMessage = $this->asDocument('','vitis',$this->aValues['sEncoding'],True,$aXmlRacineAttribute,$this->aValues['sSourceEncoding'],$this->aValues['output']); - } - else { - $aXmlRacineAttribute['status']=0; - $this->aFields['error'] = "Request error."; - $sMessage = $this->asDocument('','vitis',$this->aValues['sEncoding'],True,$aXmlRacineAttribute,$this->aValues['sSourceEncoding'],$this->aValues['output']); - } - } - else { - $aXmlRacineAttribute['status']=0; - $this->aFields['error'] = "Request error."; - $sMessage = $this->asDocument('','vitis',$this->aValues['sEncoding'],True,$aXmlRacineAttribute,$this->aValues['sSourceEncoding'],$this->aValues['output']); - } - return $sMessage; + public function trRefuser() + { + $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']); + + // Check si la table existe si oui change l'état + $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "Refusée"); + //$this->sendmail(9902); } + } -?> \ No newline at end of file diff --git a/web_service/ws/Format.class.inc b/web_service/ws/Format.class.inc index 005eb0b2..385d4329 100755 --- a/web_service/ws/Format.class.inc +++ b/web_service/ws/Format.class.inc @@ -12,7 +12,7 @@ require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection * \brief This file contains the Format php class * * This class defines operation for one Format - * + * */ class Format extends ExtractionExtraction { @@ -87,4 +87,4 @@ class Format extends ExtractionExtraction { } -?> \ No newline at end of file +?> diff --git a/web_service/ws/Formats.class.inc b/web_service/ws/Formats.class.inc index fb2e5ec5..15d7aecc 100755 --- a/web_service/ws/Formats.class.inc +++ b/web_service/ws/Formats.class.inc @@ -9,7 +9,7 @@ * \brief This file contains the Formats php class * * This class defines Rest Api to Vitis Formats - * + * */ require_once __DIR__ . '/ExtractionExtraction.class.inc'; require_once 'Format.class.inc'; @@ -150,7 +150,7 @@ class Formats extends ExtractionExtraction { */ function POST() { $aReturn = $this->genericPost($this->aProperties['schema_extraction'], 'rt_format', '', 'format_id'); - + return $aReturn['sMessage']; } @@ -190,7 +190,7 @@ class Formats extends ExtractionExtraction { */ function PUT() { $aReturn = $this->genericPut($this->aProperties['schema_extraction'], 'rt_format', 'format_id'); - + return $aReturn['sMessage']; } @@ -261,7 +261,7 @@ class Formats extends ExtractionExtraction { return $aReturn['sMessage']; } - + } -?> \ No newline at end of file +?> diff --git a/web_service/ws/Layer.class.inc b/web_service/ws/Layer.class.inc index b9a17a3f..1d5a36e9 100755 --- a/web_service/ws/Layer.class.inc +++ b/web_service/ws/Layer.class.inc @@ -12,7 +12,7 @@ require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection * \brief This file contains the Layer php class * * This class defines operation for one Layer - * + * */ class Layer extends ExtractionExtraction { @@ -87,4 +87,4 @@ class Layer extends ExtractionExtraction { } -?> \ No newline at end of file +?> diff --git a/web_service/ws/Layers.class.inc b/web_service/ws/Layers.class.inc index f89ede1b..8b11cd56 100755 --- a/web_service/ws/Layers.class.inc +++ b/web_service/ws/Layers.class.inc @@ -9,7 +9,7 @@ * \brief This file contains the Layers php class * * This class defines Rest Api to Vitis Layers - * + * */ require_once __DIR__ . '/ExtractionExtraction.class.inc'; require_once 'Layer.class.inc'; @@ -150,7 +150,7 @@ class Layers extends ExtractionExtraction { */ function POST() { $aReturn = $this->genericPost($this->aProperties['schema_extraction'], 'rt_layer', '', 'layer_id'); - + return $aReturn['sMessage']; } @@ -190,7 +190,7 @@ class Layers extends ExtractionExtraction { */ function PUT() { $aReturn = $this->genericPut($this->aProperties['schema_extraction'], 'rt_layer', 'layer_id'); - + return $aReturn['sMessage']; } @@ -261,7 +261,7 @@ class Layers extends ExtractionExtraction { return $aReturn['sMessage']; } - + } -?> \ No newline at end of file +?> -- GitLab From 797aafab4736fba0f7b9bf8614fe31b2a2f8e04a Mon Sep 17 00:00:00 2001 From: Armand Bahi <armand.bahi@veremes.com> Date: Thu, 15 Nov 2018 14:04:44 +0100 Subject: [PATCH 3/3] Squashed 'src/vitis/' changes from 856dbd25..f019c6bf f019c6bf Reset from master git-subtree-dir: src/vitis git-subtree-split: f019c6bf74d16b05462a6efa01fed6e9945aa3a8 --- README.md | 14 +- .../dependencies/mapserver/.htaccess | 0 .../dependencies/mapserver/linux/apache.conf | 0 .../mapserver/windows/apache.conf | 0 .../dependencies/php/linux/apache.conf | 0 .../dependencies/php/php.ini | 0 .../dependencies/php/windows/apache.conf | 0 .../dependencies/pycron/crontab.txt | 0 .../dependencies/websocket/apache.conf | 0 .../websocket/linux/websocket_vitis | 0 .../dependencies/websocket/websocket.cfg | 0 .../_install => _install}/dependency.xml | 0 {src/vitis/client => client}/.htaccess | 0 .../css/icons/fonts/veremes.eot | Bin .../css/icons/fonts/veremes.svg | 0 .../css/icons/fonts/veremes.ttf | Bin .../css/icons/fonts/veremes.woff | Bin .../css/icons/selection.json | 0 .../client => client}/css/icons/style.css | 0 .../css/lib/awesome-bootstrap-checkbox.css | 0 .../css/lib/bootstrap-checkbox/build.css | 0 .../lib/bootstrap-checkbox/font-awesome.css | 0 .../bootstrap-checkbox/font-awesome.min.css | 0 .../css/lib/bootstrap/css/bootstrap-theme.css | 0 .../lib/bootstrap/css/bootstrap-theme.css.map | 0 .../lib/bootstrap/css/bootstrap-theme.min.css | 0 .../css/lib/bootstrap/css/bootstrap.css | 0 .../css/lib/bootstrap/css/bootstrap.css.map | 0 .../css/lib/bootstrap/css/bootstrap.min.css | 0 .../fonts/glyphicons-halflings-regular.eot | Bin .../fonts/glyphicons-halflings-regular.svg | 0 .../fonts/glyphicons-halflings-regular.ttf | Bin .../fonts/glyphicons-halflings-regular.woff | Bin .../fonts/glyphicons-halflings-regular.woff2 | Bin .../css/lib/codemirror/codemirror.css | 0 .../lib/codemirror/codemirror_foldgutter.css | 0 .../css/lib/codemirror/dialog.css | 0 .../css/lib/codemirror/docs.css | 0 .../css/lib/codemirror/map.css | 0 .../css/lib/codemirror/show-hint.css | 0 .../css/lib/codemirror/theme/3024-day.css | 0 .../css/lib/codemirror/theme/3024-night.css | 0 .../css/lib/codemirror/theme/Veremes.css | 0 .../css/lib/codemirror/theme/abcdef.css | 0 .../lib/codemirror/theme/ambiance-mobile.css | 0 .../css/lib/codemirror/theme/ambiance.css | 0 .../css/lib/codemirror/theme/base16-dark.css | 0 .../css/lib/codemirror/theme/base16-light.css | 0 .../css/lib/codemirror/theme/bespin.css | 0 .../css/lib/codemirror/theme/blackboard.css | 0 .../css/lib/codemirror/theme/cobalt.css | 0 .../css/lib/codemirror/theme/colorforth.css | 0 .../css/lib/codemirror/theme/dracula.css | 0 .../css/lib/codemirror/theme/eclipse.css | 0 .../css/lib/codemirror/theme/elegant.css | 0 .../css/lib/codemirror/theme/erlang-dark.css | 0 .../css/lib/codemirror/theme/hopscotch.css | 0 .../css/lib/codemirror/theme/icecoder.css | 0 .../css/lib/codemirror/theme/isotope.css | 0 .../css/lib/codemirror/theme/lesser-dark.css | 0 .../css/lib/codemirror/theme/liquibyte.css | 0 .../css/lib/codemirror/theme/material.css | 0 .../css/lib/codemirror/theme/mbo.css | 0 .../css/lib/codemirror/theme/mdn-like.css | 0 .../css/lib/codemirror/theme/midnight.css | 0 .../css/lib/codemirror/theme/monokai.css | 0 .../css/lib/codemirror/theme/neat.css | 0 .../css/lib/codemirror/theme/neo.css | 0 .../css/lib/codemirror/theme/night.css | 0 .../css/lib/codemirror/theme/paraiso-dark.css | 0 .../lib/codemirror/theme/paraiso-light.css | 0 .../lib/codemirror/theme/pastel-on-dark.css | 0 .../css/lib/codemirror/theme/railscasts.css | 0 .../css/lib/codemirror/theme/rubyblue.css | 0 .../css/lib/codemirror/theme/seti.css | 0 .../css/lib/codemirror/theme/solarized.css | 0 .../css/lib/codemirror/theme/the-matrix.css | 0 .../theme/tomorrow-night-bright.css | 0 .../theme/tomorrow-night-eighties.css | 0 .../css/lib/codemirror/theme/ttcn.css | 0 .../css/lib/codemirror/theme/twilight.css | 0 .../css/lib/codemirror/theme/vibrant-ink.css | 0 .../css/lib/codemirror/theme/xq-dark.css | 0 .../css/lib/codemirror/theme/xq-light.css | 0 .../css/lib/codemirror/theme/yeti.css | 0 .../css/lib/codemirror/theme/zenburn.css | 0 .../css/lib/font-awesome/HELP-US-OUT.txt | 0 .../css/lib/font-awesome/css/font-awesome.css | 0 .../lib/font-awesome/css/font-awesome.min.css | 0 .../lib/font-awesome/fonts/FontAwesome.otf | Bin .../fonts/fontawesome-webfont.eot | Bin .../fonts/fontawesome-webfont.svg | 0 .../fonts/fontawesome-webfont.ttf | Bin .../fonts/fontawesome-webfont.woff | Bin .../fonts/fontawesome-webfont.woff2 | Bin .../css/lib/font-awesome/less/animated.less | 0 .../font-awesome/less/bordered-pulled.less | 0 .../css/lib/font-awesome/less/core.less | 0 .../lib/font-awesome/less/fixed-width.less | 0 .../lib/font-awesome/less/font-awesome.less | 0 .../css/lib/font-awesome/less/icons.less | 0 .../css/lib/font-awesome/less/larger.less | 0 .../css/lib/font-awesome/less/list.less | 0 .../css/lib/font-awesome/less/mixins.less | 0 .../css/lib/font-awesome/less/path.less | 0 .../font-awesome/less/rotated-flipped.less | 0 .../css/lib/font-awesome/less/stacked.less | 0 .../css/lib/font-awesome/less/variables.less | 0 .../css/lib/font-awesome/scss/_animated.scss | 0 .../font-awesome/scss/_bordered-pulled.scss | 0 .../css/lib/font-awesome/scss/_core.scss | 0 .../lib/font-awesome/scss/_fixed-width.scss | 0 .../css/lib/font-awesome/scss/_icons.scss | 0 .../css/lib/font-awesome/scss/_larger.scss | 0 .../css/lib/font-awesome/scss/_list.scss | 0 .../css/lib/font-awesome/scss/_mixins.scss | 0 .../css/lib/font-awesome/scss/_path.scss | 0 .../font-awesome/scss/_rotated-flipped.scss | 0 .../css/lib/font-awesome/scss/_stacked.scss | 0 .../css/lib/font-awesome/scss/_variables.scss | 0 .../lib/font-awesome/scss/font-awesome.scss | 0 .../css/lib/fonts/FontAwesome.otf | Bin .../css/lib/fonts/fontawesome-webfont.eot | Bin .../css/lib/fonts/fontawesome-webfont.svg | 0 .../css/lib/fonts/fontawesome-webfont.ttf | Bin .../css/lib/fonts/fontawesome-webfont.woff | Bin .../css/lib/fonts/fontawesome-webfont.woff2 | Bin .../fonts/glyphicons-halflings-regular.eot | Bin .../fonts/glyphicons-halflings-regular.svg | 0 .../fonts/glyphicons-halflings-regular.ttf | Bin .../fonts/glyphicons-halflings-regular.woff | Bin .../fonts/glyphicons-halflings-regular.woff2 | Bin .../css/bootstrap-colorpicker.min.css | 0 .../alpha-horizontal.png | Bin .../img/bootstrap-colorpicker/alpha.png | Bin .../bootstrap-colorpicker/hue-horizontal.png | Bin .../img/bootstrap-colorpicker/hue.png | Bin .../img/bootstrap-colorpicker/saturation.png | Bin .../bootstrap-datepicker3.css | 0 .../bootstrap-datepicker3.min.css | 0 .../bootstrap-fileinput/css/fileinput.css | 0 .../bootstrap-fileinput/css/fileinput.min.css | 0 .../bootstrap-fileinput/img/loading-sm.gif | Bin .../bootstrap-fileinput/img/loading.gif | Bin .../bootstrap-slider/bootstrap-slider.min.css | 0 .../bootstrap-tagsinput.css | 0 .../bootstrap-treeview/bootstrap-treeview.css | 0 .../bootstrap-treeview.min.css | 0 .../jquery.mCustomScrollbar.min.css | 0 .../css/lib/materialize/materialize.css | 0 .../css/lib/materialize/materialize.min.css | 0 .../css/lib/openlayers/ol.css | 0 .../lib/ui-grid/plugins/draggable-rows.less | 0 .../css/lib/ui-grid/ui-grid.css | 0 .../css/lib/ui-grid/ui-grid.eot | Bin .../css/lib/ui-grid/ui-grid.min.css | 0 .../css/lib/ui-grid/ui-grid.svg | 0 .../css/lib/ui-grid/ui-grid.ttf | Bin .../css/lib/ui-grid/ui-grid.woff | Bin .../css/lib/viewer/viewer.min.css | 0 .../forms/forgotten_password.json | 0 {src/vitis/client => client}/forms/login.js | 0 {src/vitis/client => client}/forms/login.json | 0 .../client => client}/forms/sign_up.json | 0 .../images/ajax-big-loader.GIF | Bin .../images/ajax-load-big.gif | Bin .../client => client}/images/ajax-load.gif | Bin .../client => client}/images/bandeau.png | Bin .../vitis/client => client}/images/custom.png | Bin .../images/disconnect_button.png | Bin .../client => client}/images/download.png | Bin .../vitis/client => client}/images/editer.png | Bin .../client => client}/images/enveloppe.png | Bin {src/vitis/client => client}/images/false.png | Bin .../client => client}/images/favicon.ico | Bin {src/vitis/client => client}/images/i.png | Bin .../images/icons/geolocation_marker.png | Bin .../icons/geolocation_marker_heading.png | Bin .../images/icons/icon-arrow-FME.png | Bin .../images/icons/icon-arrow-FME2.png | Bin .../images/icons/icon-filtrage.png | Bin .../images/icons/icons-down-search-arrow.png | Bin .../images/icons/icons-right-search-arrow.png | Bin .../client => client}/images/logo-veremes.jpg | Bin .../client => client}/images/logo-veremes.png | Bin .../images/mode/configuration.png | Bin .../images/mode/development.png | Bin .../client => client}/images/mode/engine.png | Bin .../client => client}/images/mode/help.png | Bin .../client => client}/images/mode/logs.png | Bin .../client => client}/images/mode/my_work.png | Bin .../images/mode/publication.png | Bin .../images/mode/statistics.png | Bin .../images/mode/supervision.png | Bin .../client => client}/images/mode/user.png | Bin .../client => client}/images/mode/users.png | Bin .../client => client}/images/mode/vmap.png | Bin {src/vitis/client => client}/images/page.png | Bin .../client => client}/images/sql_list/st1.gif | Bin .../client => client}/images/sql_list/st1.png | Bin .../client => client}/images/sql_list/st2.png | Bin .../client => client}/images/sql_list/st3.png | Bin .../client => client}/images/sql_list/st4.png | Bin .../client => client}/images/sql_list/st5.gif | Bin .../client => client}/images/sql_list/st6.png | Bin {src/vitis/client => client}/images/true.png | Bin .../client => client}/images/ui-grid/wbg.gif | Bin .../client => client}/images/visualiser.png | Bin .../client => client}/images/wk_params.png | Bin {src/vitis/client => client}/index.html | 0 .../client => client}/javascript/app/app.js | 0 .../javascript/app/config.js | 0 .../app/controllers/doubleFormCtrl.js | 0 .../app/controllers/htmlFormCtrl.js | 0 .../javascript/app/controllers/initCtrl.js | 0 .../javascript/app/controllers/loginCtrl.js | 0 .../javascript/app/controllers/mainCtrl.js | 0 .../app/controllers/sectionFormCtrl.js | 0 .../app/controllers/simpleFormCtrl.js | 0 .../app/controllers/workspaceListCtrl.js | 0 .../app/directives/doubleFormDrtv.js | 0 .../javascript/app/directives/htmlFormDrtv.js | 0 .../javascript/app/directives/initDrtv.js | 0 .../javascript/app/directives/loginDrtv.js | 0 .../javascript/app/directives/mainDrtv.js | 0 .../app/directives/sectionFormDrtv.js | 0 .../app/directives/simpleFormDrtv.js | 0 .../app/directives/workspaceListDrtv.js | 0 .../javascript/app/loadApp.js | 0 .../javascript/app/loadExternalFiles.js | 0 .../javascript/app/modules/mainMod.js | 0 .../javascript/app/script_client.js | 0 .../javascript/app/services/formSrvc.js | 0 .../javascript/app/services/mainSrvc.js | 0 .../javascript/app/vitiswebsocket.js | 0 .../javascript/externs/LICENSE | 0 .../javascript/externs/alasql/alasql.min.js | 0 .../externs/alasql/xlsx.core.min.js | 0 .../externs/angular-bind-notifier/LICENSE | 0 .../angular-bind-notifier/bindNotifier.js | 0 .../externs/angular-ui-codemirror/LICENSE | 0 .../angular-ui-codemirror/ui-codemirror.js | 0 .../ui-codemirror.min.js | 0 .../javascript/externs/angular/LICENSE | 0 .../javascript/externs/angular/angular.js | 0 .../javascript/externs/angular/angular.min.js | 0 .../externs/angular/angular.min.js.map | 0 .../angular/modules/angular-translate/LICENSE | 0 .../angular-translate-loader-partial.js | 0 .../angular-translate-loader-partial.min.js | 0 .../angular-translate-loader-static-files.js | 0 ...gular-translate-loader-static-files.min.js | 0 .../angular-translate/angular-translate.js | 0 .../angular-translate.min.js | 0 .../modules/sanitize/angular-sanitize.js | 0 .../modules/sanitize/angular-sanitize.min.js | 0 .../sanitize/angular-sanitize.min.js.map | 0 .../angular/modules/ui-codemirror/LICENSE | 0 .../ui-codemirror/ui-codemirror.min.js | 0 .../angular/modules/ui-grid/LICENSE.md | 0 .../modules/ui-grid/plugins/draggable-rows.js | 0 .../angular/modules/ui-grid/ui-grid.js | 0 .../angular/modules/ui-grid/ui-grid.min.js | 0 .../angular/modules/ui-tinymce/LICENSE | 0 .../angular/modules/ui-tinymce/tinymce.js | 0 .../javascript/externs/bootbox/LICENSE.md | 0 .../javascript/externs/bootbox/bootbox.min.js | 0 .../javascript/externs/bootstrap/LICENSE | 0 .../javascript/externs/bootstrap/bootstrap.js | 0 .../externs/bootstrap/bootstrap.min.js | 0 .../javascript/externs/codemirror/LICENSE | 0 .../codemirror/addon/comment/comment.js | 0 .../addon/comment/continuecomment.js | 0 .../codemirror/addon/dialog/dialog.css | 0 .../externs/codemirror/addon/dialog/dialog.js | 0 .../codemirror/addon/display/autorefresh.js | 0 .../codemirror/addon/display/fullscreen.css | 0 .../codemirror/addon/display/fullscreen.js | 0 .../externs/codemirror/addon/display/panel.js | 0 .../codemirror/addon/display/placeholder.js | 0 .../codemirror/addon/display/rulers.js | 0 .../codemirror/addon/edit/closebrackets.js | 0 .../externs/codemirror/addon/edit/closetag.js | 0 .../codemirror/addon/edit/continuelist.js | 0 .../codemirror/addon/edit/matchbrackets.js | 0 .../codemirror/addon/edit/matchtags.js | 0 .../codemirror/addon/edit/trailingspace.js | 0 .../codemirror/addon/fold/brace-fold.js | 0 .../codemirror/addon/fold/comment-fold.js | 0 .../externs/codemirror/addon/fold/foldcode.js | 0 .../codemirror/addon/fold/foldgutter.css | 0 .../codemirror/addon/fold/foldgutter.js | 0 .../codemirror/addon/fold/indent-fold.js | 0 .../codemirror/addon/fold/markdown-fold.js | 0 .../externs/codemirror/addon/fold/xml-fold.js | 0 .../codemirror/addon/hint/anyword-hint.js | 0 .../externs/codemirror/addon/hint/css-hint.js | 0 .../codemirror/addon/hint/html-hint.js | 0 .../codemirror/addon/hint/javascript-hint.js | 0 .../codemirror/addon/hint/show-hint.css | 0 .../codemirror/addon/hint/show-hint.js | 0 .../externs/codemirror/addon/hint/sql-hint.js | 0 .../externs/codemirror/addon/hint/xml-hint.js | 0 .../codemirror/addon/keymap/sublime.js | 0 .../addon/lint/coffeescript-lint.js | 0 .../externs/codemirror/addon/lint/css-lint.js | 0 .../codemirror/addon/lint/html-lint.js | 0 .../codemirror/addon/lint/javascript-lint.js | 0 .../codemirror/addon/lint/json-lint.js | 0 .../externs/codemirror/addon/lint/lint.css | 0 .../externs/codemirror/addon/lint/lint.js | 0 .../codemirror/addon/lint/yaml-lint.js | 0 .../externs/codemirror/addon/merge/merge.css | 0 .../externs/codemirror/addon/merge/merge.js | 0 .../externs/codemirror/addon/mode/loadmode.js | 0 .../codemirror/addon/mode/multiplex.js | 0 .../codemirror/addon/mode/multiplex_test.js | 0 .../externs/codemirror/addon/mode/overlay.js | 0 .../externs/codemirror/addon/mode/simple.js | 0 .../codemirror/addon/runmode/colorize.js | 0 .../addon/runmode/runmode-standalone.js | 0 .../codemirror/addon/runmode/runmode.js | 0 .../codemirror/addon/runmode/runmode.node.js | 0 .../addon/scroll/annotatescrollbar.js | 0 .../codemirror/addon/scroll/scrollpastend.js | 0 .../addon/scroll/simplescrollbars.css | 0 .../addon/scroll/simplescrollbars.js | 0 .../codemirror/addon/search/jump-to-line.js | 0 .../addon/search/match-highlighter.js | 0 .../addon/search/matchesonscrollbar.css | 0 .../addon/search/matchesonscrollbar.js | 0 .../externs/codemirror/addon/search/search.js | 0 .../codemirror/addon/search/searchcursor.js | 0 .../codemirror/addon/selection/active-line.js | 0 .../addon/selection/mark-selection.js | 0 .../addon/selection/selection-pointer.js | 0 .../externs/codemirror/addon/tern/tern.css | 0 .../externs/codemirror/addon/tern/tern.js | 0 .../externs/codemirror/addon/tern/worker.js | 0 .../externs/codemirror/addon/wrap/hardwrap.js | 0 .../javascript/externs/codemirror/clike.js | 0 .../externs/codemirror/codemirror.js | 0 .../externs/codemirror/codemirror.min.js | 0 .../javascript/externs/codemirror/css.js | 0 .../externs/codemirror/htmlmixed.js | 0 .../externs/codemirror/javascript.js | 0 .../javascript/externs/codemirror/map.js | 0 .../javascript/externs/codemirror/php.js | 0 .../externs/codemirror/show-hint.js | 0 .../javascript/externs/codemirror/sql.js | 0 .../javascript/externs/codemirror/xml.js | 0 .../externs/formReader/component/component.js | 0 .../externs/formReader/component/map.js | 0 .../map_workbench/map_workbench.html | 0 .../component/map_workbench/map_workbench.js | 0 .../externs/formReader/formReader.html | 0 .../externs/formReader/formReader.js | 0 .../externs/formReader/formReaderCtrl.js | 0 .../externs/formReader/formReaderDrtv.js | 0 .../externs/formReader/formReaderSrvc.js | 0 .../javascript/externs/jquery/LICENSE.txt | 0 .../externs/jquery/jquery-1.11.3.js | 0 .../externs/jquery/jquery-1.11.3.min.js | 0 .../externs/jquery/jquery-1.11.3.min.map | 0 .../externs/jquery/plugins/bootbox/bootbox.js | 0 .../jquery/plugins/bootbox/bootbox.min.js | 0 .../bootstrap-colorpicker.min.js | 0 .../js/bootstrap-colorpicker.js | 0 .../js/bootstrap-colorpicker.min.js | 0 .../bootstrap-confirmation.min.js | 0 .../bootstrap-datepicker.js | 0 .../bootstrap-datepicker.min.js | 0 .../locales/bootstrap-datepicker.fr.min.js | 0 .../bootstrap-datetimepicker.min.js | 0 .../plugins/bootstrap-fileinput/fileinput.js | 0 .../bootstrap-fileinput/fileinput.min.js | 0 .../fileinput_locale_fr.js | 0 .../bootstrap-slider/bootstrap-slider.min.js | 0 .../bootstrap-tagsinput.min.js | 0 .../bootstrap-treeview/bootstrap-treeview.js | 0 .../bootstrap-treeview.min.js | 0 .../jquery.mCustomScrollbar.concat.min.js | 0 .../externs/jquery/plugins/notify/notify.js | 0 .../jquery/plugins/notify/notify.min.js | 0 .../javascript/externs/less/LICENSE | 0 .../javascript/externs/less/less.min.js | 0 .../externs/letter-avatar/ngletteravatar.js | 0 .../letter-avatar/ngletteravatar.min.js | 0 .../javascript/externs/mapJSON/MapJSON.js | 0 .../externs/materialize/materialize.js | 0 .../externs/materialize/materialize.min.js | 0 .../javascript/externs/mobile-detect/LICENSE | 0 .../externs/mobile-detect/mobile-detect.js | 0 .../mobile-detect/mobile-detect.min.js | 0 .../javascript/externs/moment/LICENSE | 0 .../javascript/externs/moment/locale/af.js | 0 .../javascript/externs/moment/locale/ar-ma.js | 0 .../javascript/externs/moment/locale/ar-sa.js | 0 .../javascript/externs/moment/locale/ar-tn.js | 0 .../javascript/externs/moment/locale/ar.js | 0 .../javascript/externs/moment/locale/az.js | 0 .../javascript/externs/moment/locale/be.js | 0 .../javascript/externs/moment/locale/bg.js | 0 .../javascript/externs/moment/locale/bn.js | 0 .../javascript/externs/moment/locale/bo.js | 0 .../javascript/externs/moment/locale/br.js | 0 .../javascript/externs/moment/locale/bs.js | 0 .../javascript/externs/moment/locale/ca.js | 0 .../javascript/externs/moment/locale/cs.js | 0 .../javascript/externs/moment/locale/cv.js | 0 .../javascript/externs/moment/locale/cy.js | 0 .../javascript/externs/moment/locale/da.js | 0 .../javascript/externs/moment/locale/de-at.js | 0 .../javascript/externs/moment/locale/de.js | 0 .../javascript/externs/moment/locale/dv.js | 0 .../javascript/externs/moment/locale/el.js | 0 .../javascript/externs/moment/locale/en-au.js | 0 .../javascript/externs/moment/locale/en-ca.js | 0 .../javascript/externs/moment/locale/en-gb.js | 0 .../javascript/externs/moment/locale/en-ie.js | 0 .../javascript/externs/moment/locale/en-nz.js | 0 .../javascript/externs/moment/locale/eo.js | 0 .../javascript/externs/moment/locale/es.js | 0 .../javascript/externs/moment/locale/et.js | 0 .../javascript/externs/moment/locale/eu.js | 0 .../javascript/externs/moment/locale/fa.js | 0 .../javascript/externs/moment/locale/fi.js | 0 .../javascript/externs/moment/locale/fo.js | 0 .../javascript/externs/moment/locale/fr-ca.js | 0 .../javascript/externs/moment/locale/fr-ch.js | 0 .../javascript/externs/moment/locale/fr.js | 0 .../javascript/externs/moment/locale/fy.js | 0 .../javascript/externs/moment/locale/gd.js | 0 .../javascript/externs/moment/locale/gl.js | 0 .../javascript/externs/moment/locale/he.js | 0 .../javascript/externs/moment/locale/hi.js | 0 .../javascript/externs/moment/locale/hr.js | 0 .../javascript/externs/moment/locale/hu.js | 0 .../javascript/externs/moment/locale/hy-am.js | 0 .../javascript/externs/moment/locale/id.js | 0 .../javascript/externs/moment/locale/is.js | 0 .../javascript/externs/moment/locale/it.js | 0 .../javascript/externs/moment/locale/ja.js | 0 .../javascript/externs/moment/locale/jv.js | 0 .../javascript/externs/moment/locale/ka.js | 0 .../javascript/externs/moment/locale/kk.js | 0 .../javascript/externs/moment/locale/km.js | 0 .../javascript/externs/moment/locale/ko.js | 0 .../javascript/externs/moment/locale/lb.js | 0 .../javascript/externs/moment/locale/lo.js | 0 .../javascript/externs/moment/locale/lt.js | 0 .../javascript/externs/moment/locale/lv.js | 0 .../javascript/externs/moment/locale/me.js | 0 .../javascript/externs/moment/locale/mk.js | 0 .../javascript/externs/moment/locale/ml.js | 0 .../javascript/externs/moment/locale/mr.js | 0 .../javascript/externs/moment/locale/ms-my.js | 0 .../javascript/externs/moment/locale/ms.js | 0 .../javascript/externs/moment/locale/my.js | 0 .../javascript/externs/moment/locale/nb.js | 0 .../javascript/externs/moment/locale/ne.js | 0 .../javascript/externs/moment/locale/nl.js | 0 .../javascript/externs/moment/locale/nn.js | 0 .../javascript/externs/moment/locale/pl.js | 0 .../javascript/externs/moment/locale/pt-br.js | 0 .../javascript/externs/moment/locale/pt.js | 0 .../javascript/externs/moment/locale/ro.js | 0 .../javascript/externs/moment/locale/ru.js | 0 .../javascript/externs/moment/locale/se.js | 0 .../javascript/externs/moment/locale/si.js | 0 .../javascript/externs/moment/locale/sk.js | 0 .../javascript/externs/moment/locale/sl.js | 0 .../javascript/externs/moment/locale/sq.js | 0 .../externs/moment/locale/sr-cyrl.js | 0 .../javascript/externs/moment/locale/sr.js | 0 .../javascript/externs/moment/locale/sv.js | 0 .../javascript/externs/moment/locale/sw.js | 0 .../javascript/externs/moment/locale/ta.js | 0 .../javascript/externs/moment/locale/te.js | 0 .../javascript/externs/moment/locale/th.js | 0 .../javascript/externs/moment/locale/tl-ph.js | 0 .../javascript/externs/moment/locale/tlh.js | 0 .../javascript/externs/moment/locale/tr.js | 0 .../javascript/externs/moment/locale/tzl.js | 0 .../externs/moment/locale/tzm-latn.js | 0 .../javascript/externs/moment/locale/tzm.js | 0 .../javascript/externs/moment/locale/uk.js | 0 .../javascript/externs/moment/locale/uz.js | 0 .../javascript/externs/moment/locale/vi.js | 0 .../javascript/externs/moment/locale/zh-cn.js | 0 .../javascript/externs/moment/locale/zh-tw.js | 0 .../javascript/externs/moment/min/locales.js | 0 .../externs/moment/min/locales.min.js | 0 .../externs/moment/min/moment-with-locales.js | 0 .../moment/min/moment-with-locales.min.js | 0 .../externs/moment/min/moment.min.js | 0 .../javascript/externs/moment/min/tests.js | 0 .../javascript/externs/moment/moment.min.js | 0 .../moment/src/lib/create/check-overflow.js | 0 .../moment/src/lib/create/date-from-array.js | 0 .../moment/src/lib/create/from-anything.js | 0 .../moment/src/lib/create/from-array.js | 0 .../moment/src/lib/create/from-object.js | 0 .../src/lib/create/from-string-and-array.js | 0 .../src/lib/create/from-string-and-format.js | 0 .../moment/src/lib/create/from-string.js | 0 .../externs/moment/src/lib/create/local.js | 0 .../moment/src/lib/create/parsing-flags.js | 0 .../externs/moment/src/lib/create/utc.js | 0 .../externs/moment/src/lib/create/valid.js | 0 .../externs/moment/src/lib/duration/abs.js | 0 .../moment/src/lib/duration/add-subtract.js | 0 .../externs/moment/src/lib/duration/as.js | 0 .../externs/moment/src/lib/duration/bubble.js | 0 .../moment/src/lib/duration/constructor.js | 0 .../externs/moment/src/lib/duration/create.js | 0 .../moment/src/lib/duration/duration.js | 0 .../externs/moment/src/lib/duration/get.js | 0 .../moment/src/lib/duration/humanize.js | 0 .../moment/src/lib/duration/iso-string.js | 0 .../moment/src/lib/duration/prototype.js | 0 .../externs/moment/src/lib/format/format.js | 0 .../externs/moment/src/lib/locale/calendar.js | 0 .../moment/src/lib/locale/constructor.js | 0 .../externs/moment/src/lib/locale/en.js | 0 .../externs/moment/src/lib/locale/formats.js | 0 .../externs/moment/src/lib/locale/invalid.js | 0 .../externs/moment/src/lib/locale/lists.js | 0 .../externs/moment/src/lib/locale/locale.js | 0 .../externs/moment/src/lib/locale/locales.js | 0 .../externs/moment/src/lib/locale/ordinal.js | 0 .../moment/src/lib/locale/pre-post-format.js | 0 .../moment/src/lib/locale/prototype.js | 0 .../externs/moment/src/lib/locale/relative.js | 0 .../externs/moment/src/lib/locale/set.js | 0 .../moment/src/lib/moment/add-subtract.js | 0 .../externs/moment/src/lib/moment/calendar.js | 0 .../externs/moment/src/lib/moment/clone.js | 0 .../externs/moment/src/lib/moment/compare.js | 0 .../moment/src/lib/moment/constructor.js | 0 .../moment/src/lib/moment/creation-data.js | 0 .../externs/moment/src/lib/moment/diff.js | 0 .../externs/moment/src/lib/moment/format.js | 0 .../externs/moment/src/lib/moment/from.js | 0 .../externs/moment/src/lib/moment/get-set.js | 0 .../externs/moment/src/lib/moment/locale.js | 0 .../externs/moment/src/lib/moment/min-max.js | 0 .../externs/moment/src/lib/moment/moment.js | 0 .../externs/moment/src/lib/moment/now.js | 0 .../moment/src/lib/moment/prototype.js | 0 .../moment/src/lib/moment/start-end-of.js | 0 .../externs/moment/src/lib/moment/to-type.js | 0 .../externs/moment/src/lib/moment/to.js | 0 .../externs/moment/src/lib/moment/valid.js | 0 .../externs/moment/src/lib/parse/regex.js | 0 .../externs/moment/src/lib/parse/token.js | 0 .../externs/moment/src/lib/units/aliases.js | 0 .../externs/moment/src/lib/units/constants.js | 0 .../moment/src/lib/units/day-of-month.js | 0 .../moment/src/lib/units/day-of-week.js | 0 .../moment/src/lib/units/day-of-year.js | 0 .../externs/moment/src/lib/units/hour.js | 0 .../moment/src/lib/units/millisecond.js | 0 .../externs/moment/src/lib/units/minute.js | 0 .../externs/moment/src/lib/units/month.js | 0 .../externs/moment/src/lib/units/offset.js | 0 .../externs/moment/src/lib/units/quarter.js | 0 .../externs/moment/src/lib/units/second.js | 0 .../externs/moment/src/lib/units/timestamp.js | 0 .../externs/moment/src/lib/units/timezone.js | 0 .../externs/moment/src/lib/units/units.js | 0 .../src/lib/units/week-calendar-utils.js | 0 .../externs/moment/src/lib/units/week-year.js | 0 .../externs/moment/src/lib/units/week.js | 0 .../externs/moment/src/lib/units/year.js | 0 .../externs/moment/src/lib/utils/abs-ceil.js | 0 .../externs/moment/src/lib/utils/abs-floor.js | 0 .../moment/src/lib/utils/compare-arrays.js | 0 .../externs/moment/src/lib/utils/defaults.js | 0 .../externs/moment/src/lib/utils/deprecate.js | 0 .../externs/moment/src/lib/utils/extend.js | 0 .../moment/src/lib/utils/has-own-prop.js | 0 .../externs/moment/src/lib/utils/hooks.js | 0 .../externs/moment/src/lib/utils/is-array.js | 0 .../externs/moment/src/lib/utils/is-date.js | 0 .../moment/src/lib/utils/is-function.js | 0 .../moment/src/lib/utils/is-undefined.js | 0 .../externs/moment/src/lib/utils/map.js | 0 .../externs/moment/src/lib/utils/to-int.js | 0 .../externs/moment/src/lib/utils/zero-fill.js | 0 .../externs/moment/src/locale/af.js | 0 .../externs/moment/src/locale/ar-ma.js | 0 .../externs/moment/src/locale/ar-sa.js | 0 .../externs/moment/src/locale/ar-tn.js | 0 .../externs/moment/src/locale/ar.js | 0 .../externs/moment/src/locale/az.js | 0 .../externs/moment/src/locale/be.js | 0 .../externs/moment/src/locale/bg.js | 0 .../externs/moment/src/locale/bn.js | 0 .../externs/moment/src/locale/bo.js | 0 .../externs/moment/src/locale/br.js | 0 .../externs/moment/src/locale/bs.js | 0 .../externs/moment/src/locale/ca.js | 0 .../externs/moment/src/locale/cs.js | 0 .../externs/moment/src/locale/cv.js | 0 .../externs/moment/src/locale/cy.js | 0 .../externs/moment/src/locale/da.js | 0 .../externs/moment/src/locale/de-at.js | 0 .../externs/moment/src/locale/de.js | 0 .../externs/moment/src/locale/dv.js | 0 .../externs/moment/src/locale/el.js | 0 .../externs/moment/src/locale/en-au.js | 0 .../externs/moment/src/locale/en-ca.js | 0 .../externs/moment/src/locale/en-gb.js | 0 .../externs/moment/src/locale/en-ie.js | 0 .../externs/moment/src/locale/en-nz.js | 0 .../externs/moment/src/locale/eo.js | 0 .../externs/moment/src/locale/es.js | 0 .../externs/moment/src/locale/et.js | 0 .../externs/moment/src/locale/eu.js | 0 .../externs/moment/src/locale/fa.js | 0 .../externs/moment/src/locale/fi.js | 0 .../externs/moment/src/locale/fo.js | 0 .../externs/moment/src/locale/fr-ca.js | 0 .../externs/moment/src/locale/fr-ch.js | 0 .../externs/moment/src/locale/fr.js | 0 .../externs/moment/src/locale/fy.js | 0 .../externs/moment/src/locale/gd.js | 0 .../externs/moment/src/locale/gl.js | 0 .../externs/moment/src/locale/he.js | 0 .../externs/moment/src/locale/hi.js | 0 .../externs/moment/src/locale/hr.js | 0 .../externs/moment/src/locale/hu.js | 0 .../externs/moment/src/locale/hy-am.js | 0 .../externs/moment/src/locale/id.js | 0 .../externs/moment/src/locale/is.js | 0 .../externs/moment/src/locale/it.js | 0 .../externs/moment/src/locale/ja.js | 0 .../externs/moment/src/locale/jv.js | 0 .../externs/moment/src/locale/ka.js | 0 .../externs/moment/src/locale/kk.js | 0 .../externs/moment/src/locale/km.js | 0 .../externs/moment/src/locale/ko.js | 0 .../externs/moment/src/locale/lb.js | 0 .../externs/moment/src/locale/lo.js | 0 .../externs/moment/src/locale/lt.js | 0 .../externs/moment/src/locale/lv.js | 0 .../externs/moment/src/locale/me.js | 0 .../externs/moment/src/locale/mk.js | 0 .../externs/moment/src/locale/ml.js | 0 .../externs/moment/src/locale/mr.js | 0 .../externs/moment/src/locale/ms-my.js | 0 .../externs/moment/src/locale/ms.js | 0 .../externs/moment/src/locale/my.js | 0 .../externs/moment/src/locale/nb.js | 0 .../externs/moment/src/locale/ne.js | 0 .../externs/moment/src/locale/nl.js | 0 .../externs/moment/src/locale/nn.js | 0 .../externs/moment/src/locale/pl.js | 0 .../externs/moment/src/locale/pt-br.js | 0 .../externs/moment/src/locale/pt.js | 0 .../externs/moment/src/locale/ro.js | 0 .../externs/moment/src/locale/ru.js | 0 .../externs/moment/src/locale/se.js | 0 .../externs/moment/src/locale/si.js | 0 .../externs/moment/src/locale/sk.js | 0 .../externs/moment/src/locale/sl.js | 0 .../externs/moment/src/locale/sq.js | 0 .../externs/moment/src/locale/sr-cyrl.js | 0 .../externs/moment/src/locale/sr.js | 0 .../externs/moment/src/locale/sv.js | 0 .../externs/moment/src/locale/sw.js | 0 .../externs/moment/src/locale/ta.js | 0 .../externs/moment/src/locale/te.js | 0 .../externs/moment/src/locale/th.js | 0 .../externs/moment/src/locale/tl-ph.js | 0 .../externs/moment/src/locale/tlh.js | 0 .../externs/moment/src/locale/tr.js | 0 .../externs/moment/src/locale/tzl.js | 0 .../externs/moment/src/locale/tzm-latn.js | 0 .../externs/moment/src/locale/tzm.js | 0 .../externs/moment/src/locale/uk.js | 0 .../externs/moment/src/locale/uz.js | 0 .../externs/moment/src/locale/vi.js | 0 .../externs/moment/src/locale/zh-cn.js | 0 .../externs/moment/src/locale/zh-tw.js | 0 .../javascript/externs/moment/src/moment.js | 0 .../externs/moment/templates/amd-named.js | 0 .../externs/moment/templates/amd.js | 0 .../externs/moment/templates/default.js | 0 .../externs/moment/templates/globals.js | 0 .../externs/moment/templates/locale-header.js | 0 .../externs/moment/templates/test-header.js | 0 .../openLayers/licenses/APACHE-2.0.txt | 0 .../openLayers/licenses/BSD-LICENSE.txt | 0 .../openLayers/licenses/MIT-LICENSE.txt | 0 .../externs/openLayers/ol.ext/pbf.js | 0 .../externs/openLayers/ol.ext/pixelworks.js | 0 .../externs/openLayers/ol.ext/rbush.js | 0 .../externs/openLayers/ol.ext/vectortile.js | 0 .../externs/openLayers/ol/ol/array.js | 0 .../openLayers/ol/ol/assertionerror.js | 0 .../externs/openLayers/ol/ol/asserts.js | 0 .../externs/openLayers/ol/ol/attribution.js | 0 .../externs/openLayers/ol/ol/canvasmap.js | 0 .../openLayers/ol/ol/centerconstraint.js | 0 .../externs/openLayers/ol/ol/collection.js | 0 .../openLayers/ol/ol/collectioneventtype.js | 0 .../externs/openLayers/ol/ol/color.js | 0 .../externs/openLayers/ol/ol/color.jsdoc | 0 .../externs/openLayers/ol/ol/colorlike.js | 0 .../externs/openLayers/ol/ol/colorlike.jsdoc | 0 .../externs/openLayers/ol/ol/control.js | 0 .../openLayers/ol/ol/control/attribution.js | 0 .../openLayers/ol/ol/control/control.js | 0 .../openLayers/ol/ol/control/fullscreen.js | 0 .../openLayers/ol/ol/control/index.jsdoc | 0 .../openLayers/ol/ol/control/mouseposition.js | 0 .../openLayers/ol/ol/control/overviewmap.js | 0 .../openLayers/ol/ol/control/rotate.js | 0 .../openLayers/ol/ol/control/scaleline.js | 0 .../ol/ol/control/scalelineunits.js | 0 .../externs/openLayers/ol/ol/control/zoom.js | 0 .../openLayers/ol/ol/control/zoomslider.js | 0 .../openLayers/ol/ol/control/zoomtoextent.js | 0 .../externs/openLayers/ol/ol/coordinate.js | 0 .../externs/openLayers/ol/ol/coordinate.jsdoc | 0 .../externs/openLayers/ol/ol/css.js | 0 .../openLayers/ol/ol/deviceorientation.js | 0 .../externs/openLayers/ol/ol/disposable.js | 0 .../externs/openLayers/ol/ol/dom.js | 0 .../externs/openLayers/ol/ol/easing.js | 0 .../externs/openLayers/ol/ol/easing.jsdoc | 0 .../externs/openLayers/ol/ol/events.js | 0 .../openLayers/ol/ol/events/condition.js | 0 .../openLayers/ol/ol/events/condition.jsdoc | 0 .../externs/openLayers/ol/ol/events/event.js | 0 .../openLayers/ol/ol/events/eventtarget.js | 0 .../openLayers/ol/ol/events/eventtype.js | 0 .../openLayers/ol/ol/events/keycode.js | 0 .../externs/openLayers/ol/ol/extent.js | 0 .../externs/openLayers/ol/ol/extent.jsdoc | 0 .../externs/openLayers/ol/ol/extent/corner.js | 0 .../openLayers/ol/ol/extent/relationship.js | 0 .../externs/openLayers/ol/ol/feature.js | 0 .../externs/openLayers/ol/ol/featureloader.js | 0 .../openLayers/ol/ol/featureloader.jsdoc | 0 .../openLayers/ol/ol/format/esrijson.js | 0 .../openLayers/ol/ol/format/feature.js | 0 .../externs/openLayers/ol/ol/format/filter.js | 0 .../openLayers/ol/ol/format/filter/and.js | 0 .../openLayers/ol/ol/format/filter/bbox.js | 0 .../ol/ol/format/filter/comparison.js | 0 .../ol/ol/format/filter/comparisonbinary.js | 0 .../ol/ol/format/filter/contains.js | 0 .../openLayers/ol/ol/format/filter/during.js | 0 .../openLayers/ol/ol/format/filter/equalto.js | 0 .../openLayers/ol/ol/format/filter/filter.js | 0 .../ol/ol/format/filter/greaterthan.js | 0 .../ol/format/filter/greaterthanorequalto.js | 0 .../ol/ol/format/filter/index.jsdoc | 0 .../ol/ol/format/filter/intersects.js | 0 .../ol/ol/format/filter/isbetween.js | 0 .../openLayers/ol/ol/format/filter/islike.js | 0 .../openLayers/ol/ol/format/filter/isnull.js | 0 .../ol/ol/format/filter/lessthan.js | 0 .../ol/ol/format/filter/lessthanorequalto.js | 0 .../ol/ol/format/filter/logicalnary.js | 0 .../openLayers/ol/ol/format/filter/not.js | 0 .../ol/ol/format/filter/notequalto.js | 0 .../openLayers/ol/ol/format/filter/or.js | 0 .../openLayers/ol/ol/format/filter/spatial.js | 0 .../openLayers/ol/ol/format/filter/within.js | 0 .../openLayers/ol/ol/format/formattype.js | 0 .../openLayers/ol/ol/format/geojson.js | 0 .../externs/openLayers/ol/ol/format/gml.js | 0 .../externs/openLayers/ol/ol/format/gml2.js | 0 .../externs/openLayers/ol/ol/format/gml3.js | 0 .../openLayers/ol/ol/format/gmlbase.js | 0 .../externs/openLayers/ol/ol/format/gpx.js | 0 .../externs/openLayers/ol/ol/format/igc.js | 0 .../externs/openLayers/ol/ol/format/igcz.js | 0 .../openLayers/ol/ol/format/index.jsdoc | 0 .../openLayers/ol/ol/format/jsonfeature.js | 0 .../externs/openLayers/ol/ol/format/kml.js | 0 .../externs/openLayers/ol/ol/format/mvt.js | 0 .../externs/openLayers/ol/ol/format/osmxml.js | 0 .../externs/openLayers/ol/ol/format/ows.js | 0 .../openLayers/ol/ol/format/polyline.js | 0 .../externs/openLayers/ol/ol/format/readme.md | 0 .../openLayers/ol/ol/format/textfeature.js | 0 .../openLayers/ol/ol/format/topojson.js | 0 .../externs/openLayers/ol/ol/format/wfs.js | 0 .../externs/openLayers/ol/ol/format/wkt.js | 0 .../ol/ol/format/wmscapabilities.js | 0 .../ol/ol/format/wmsgetfeatureinfo.js | 0 .../ol/ol/format/wmtscapabilities.js | 0 .../externs/openLayers/ol/ol/format/xlink.js | 0 .../externs/openLayers/ol/ol/format/xml.js | 0 .../openLayers/ol/ol/format/xmlfeature.js | 0 .../externs/openLayers/ol/ol/format/xsd.js | 0 .../externs/openLayers/ol/ol/functions.js | 0 .../externs/openLayers/ol/ol/geolocation.js | 0 .../openLayers/ol/ol/geolocationproperty.js | 0 .../externs/openLayers/ol/ol/geom/circle.js | 0 .../openLayers/ol/ol/geom/flat/area.js | 0 .../openLayers/ol/ol/geom/flat/center.js | 0 .../openLayers/ol/ol/geom/flat/closest.js | 0 .../openLayers/ol/ol/geom/flat/contains.js | 0 .../openLayers/ol/ol/geom/flat/deflate.js | 0 .../openLayers/ol/ol/geom/flat/flip.js | 0 .../openLayers/ol/ol/geom/flat/geodesic.js | 0 .../openLayers/ol/ol/geom/flat/inflate.js | 0 .../ol/ol/geom/flat/interiorpoint.js | 0 .../openLayers/ol/ol/geom/flat/interpolate.js | 0 .../ol/ol/geom/flat/intersectsextent.js | 0 .../openLayers/ol/ol/geom/flat/length.js | 0 .../openLayers/ol/ol/geom/flat/orient.js | 0 .../openLayers/ol/ol/geom/flat/reverse.js | 0 .../openLayers/ol/ol/geom/flat/segments.js | 0 .../openLayers/ol/ol/geom/flat/simplify.js | 0 .../ol/ol/geom/flat/straightchunk.js | 0 .../openLayers/ol/ol/geom/flat/textpath.js | 0 .../openLayers/ol/ol/geom/flat/topology.js | 0 .../openLayers/ol/ol/geom/flat/transform.js | 0 .../externs/openLayers/ol/ol/geom/geom.jsdoc | 0 .../externs/openLayers/ol/ol/geom/geometry.js | 0 .../ol/ol/geom/geometrycollection.js | 0 .../openLayers/ol/ol/geom/geometrylayout.js | 0 .../openLayers/ol/ol/geom/geometrytype.js | 0 .../openLayers/ol/ol/geom/linearring.js | 0 .../openLayers/ol/ol/geom/linestring.js | 0 .../openLayers/ol/ol/geom/multilinestring.js | 0 .../openLayers/ol/ol/geom/multipoint.js | 0 .../openLayers/ol/ol/geom/multipolygon.js | 0 .../externs/openLayers/ol/ol/geom/point.js | 0 .../externs/openLayers/ol/ol/geom/polygon.js | 0 .../openLayers/ol/ol/geom/simplegeometry.js | 0 .../externs/openLayers/ol/ol/graticule.js | 0 .../externs/openLayers/ol/ol/has.js | 0 .../externs/openLayers/ol/ol/has.jsdoc | 0 .../externs/openLayers/ol/ol/image.js | 0 .../externs/openLayers/ol/ol/imagebase.js | 0 .../externs/openLayers/ol/ol/imagecanvas.js | 0 .../externs/openLayers/ol/ol/imagestate.js | 0 .../externs/openLayers/ol/ol/imagetile.js | 0 .../externs/openLayers/ol/ol/index.js | 0 .../externs/openLayers/ol/ol/interaction.js | 0 .../ol/ol/interaction/doubleclickzoom.js | 0 .../ol/ol/interaction/draganddrop.js | 0 .../openLayers/ol/ol/interaction/dragbox.js | 0 .../openLayers/ol/ol/interaction/dragpan.js | 0 .../ol/ol/interaction/dragrotate.js | 0 .../ol/ol/interaction/dragrotateandzoom.js | 0 .../openLayers/ol/ol/interaction/dragzoom.js | 0 .../openLayers/ol/ol/interaction/draw.js | 0 .../ol/ol/interaction/draweventtype.js | 0 .../openLayers/ol/ol/interaction/extent.js | 0 .../ol/ol/interaction/extenteventtype.js | 0 .../ol/ol/interaction/interaction.js | 0 .../ol/ol/interaction/interaction.jsdoc | 0 .../ol/ol/interaction/keyboardpan.js | 0 .../ol/ol/interaction/keyboardzoom.js | 0 .../openLayers/ol/ol/interaction/modify.js | 0 .../ol/ol/interaction/modifyeventtype.js | 0 .../ol/ol/interaction/mousewheelzoom.js | 0 .../ol/ol/interaction/pinchrotate.js | 0 .../openLayers/ol/ol/interaction/pinchzoom.js | 0 .../openLayers/ol/ol/interaction/pointer.js | 0 .../openLayers/ol/ol/interaction/property.js | 0 .../openLayers/ol/ol/interaction/select.js | 0 .../openLayers/ol/ol/interaction/snap.js | 0 .../openLayers/ol/ol/interaction/translate.js | 0 .../ol/ol/interaction/translateeventtype.js | 0 .../externs/openLayers/ol/ol/kinetic.js | 0 .../externs/openLayers/ol/ol/layer/base.js | 0 .../externs/openLayers/ol/ol/layer/group.js | 0 .../externs/openLayers/ol/ol/layer/heatmap.js | 0 .../externs/openLayers/ol/ol/layer/image.js | 0 .../externs/openLayers/ol/ol/layer/layer.js | 0 .../openLayers/ol/ol/layer/layer.jsdoc | 0 .../openLayers/ol/ol/layer/property.js | 0 .../externs/openLayers/ol/ol/layer/tile.js | 0 .../openLayers/ol/ol/layer/tileproperty.js | 0 .../externs/openLayers/ol/ol/layer/vector.js | 0 .../ol/ol/layer/vectorrendertype.js | 0 .../openLayers/ol/ol/layer/vectortile.js | 0 .../ol/ol/layer/vectortilerendertype.js | 0 .../externs/openLayers/ol/ol/layertype.js | 0 .../openLayers/ol/ol/loadingstrategy.js | 0 .../openLayers/ol/ol/loadingstrategy.jsdoc | 0 .../externs/openLayers/ol/ol/map.js | 0 .../openLayers/ol/ol/mapbrowserevent.js | 0 .../ol/ol/mapbrowsereventhandler.js | 0 .../openLayers/ol/ol/mapbrowsereventtype.js | 0 .../ol/ol/mapbrowserpointerevent.js | 0 .../externs/openLayers/ol/ol/mapevent.js | 0 .../externs/openLayers/ol/ol/mapeventtype.js | 0 .../externs/openLayers/ol/ol/mapproperty.js | 0 .../externs/openLayers/ol/ol/math.js | 0 .../externs/openLayers/ol/ol/net.js | 0 .../externs/openLayers/ol/ol/obj.js | 0 .../externs/openLayers/ol/ol/object.js | 0 .../openLayers/ol/ol/objecteventtype.js | 0 .../externs/openLayers/ol/ol/observable.js | 0 .../externs/openLayers/ol/ol/overlay.js | 0 .../openLayers/ol/ol/overlaypositioning.js | 0 .../externs/openLayers/ol/ol/pluggablemap.js | 0 .../externs/openLayers/ol/ol/plugins.js | 0 .../externs/openLayers/ol/ol/plugintype.js | 0 .../openLayers/ol/ol/pointer/eventsource.js | 0 .../openLayers/ol/ol/pointer/eventtype.js | 0 .../openLayers/ol/ol/pointer/mousesource.js | 0 .../openLayers/ol/ol/pointer/mssource.js | 0 .../openLayers/ol/ol/pointer/nativesource.js | 0 .../openLayers/ol/ol/pointer/pointerevent.js | 0 .../ol/ol/pointer/pointereventhandler.js | 0 .../openLayers/ol/ol/pointer/touchsource.js | 0 .../externs/openLayers/ol/ol/proj.js | 0 .../externs/openLayers/ol/ol/proj/common.js | 0 .../externs/openLayers/ol/ol/proj/epsg3857.js | 0 .../externs/openLayers/ol/ol/proj/epsg4326.js | 0 .../externs/openLayers/ol/ol/proj/index.jsdoc | 0 .../externs/openLayers/ol/ol/proj/proj4.js | 0 .../openLayers/ol/ol/proj/projection.js | 0 .../openLayers/ol/ol/proj/projections.js | 0 .../openLayers/ol/ol/proj/transforms.js | 0 .../externs/openLayers/ol/ol/proj/units.js | 0 .../externs/openLayers/ol/ol/render.js | 0 .../externs/openLayers/ol/ol/render.jsdoc | 0 .../externs/openLayers/ol/ol/render/box.js | 0 .../externs/openLayers/ol/ol/render/canvas.js | 0 .../ol/ol/render/canvas/imagereplay.js | 0 .../ol/ol/render/canvas/immediate.js | 0 .../ol/ol/render/canvas/index.jsdoc | 0 .../ol/ol/render/canvas/instruction.js | 0 .../ol/ol/render/canvas/linestringreplay.js | 0 .../ol/ol/render/canvas/polygonreplay.js | 0 .../openLayers/ol/ol/render/canvas/replay.js | 0 .../ol/ol/render/canvas/replaygroup.js | 0 .../ol/ol/render/canvas/textreplay.js | 0 .../externs/openLayers/ol/ol/render/event.js | 0 .../openLayers/ol/ol/render/eventtype.js | 0 .../openLayers/ol/ol/render/feature.js | 0 .../externs/openLayers/ol/ol/render/replay.js | 0 .../openLayers/ol/ol/render/replaygroup.js | 0 .../openLayers/ol/ol/render/replaytype.js | 0 .../openLayers/ol/ol/render/vectorcontext.js | 0 .../externs/openLayers/ol/ol/render/webgl.js | 0 .../ol/ol/render/webgl/circlereplay.js | 0 .../webgl/circlereplay/defaultshader.glsl | 0 .../webgl/circlereplay/defaultshader.js | 0 .../circlereplay/defaultshader/locations.js | 0 .../ol/ol/render/webgl/imagereplay.js | 0 .../ol/ol/render/webgl/immediate.js | 0 .../openLayers/ol/ol/render/webgl/index.jsdoc | 0 .../ol/ol/render/webgl/linestringreplay.js | 0 .../webgl/linestringreplay/defaultshader.glsl | 0 .../webgl/linestringreplay/defaultshader.js | 0 .../defaultshader/locations.js | 0 .../ol/ol/render/webgl/polygonreplay.js | 0 .../webgl/polygonreplay/defaultshader.glsl | 0 .../webgl/polygonreplay/defaultshader.js | 0 .../polygonreplay/defaultshader/locations.js | 0 .../openLayers/ol/ol/render/webgl/replay.js | 0 .../ol/ol/render/webgl/replaygroup.js | 0 .../ol/ol/render/webgl/textreplay.js | 0 .../ol/ol/render/webgl/texturereplay.js | 0 .../webgl/texturereplay/defaultshader.glsl | 0 .../webgl/texturereplay/defaultshader.js | 0 .../texturereplay/defaultshader/locations.js | 0 .../ol/ol/renderer/canvas/imagelayer.js | 0 .../ol/renderer/canvas/intermediatecanvas.js | 0 .../openLayers/ol/ol/renderer/canvas/layer.js | 0 .../openLayers/ol/ol/renderer/canvas/map.js | 0 .../ol/ol/renderer/canvas/tilelayer.js | 0 .../ol/ol/renderer/canvas/vectorlayer.js | 0 .../ol/ol/renderer/canvas/vectortilelayer.js | 0 .../openLayers/ol/ol/renderer/index.jsdoc | 0 .../openLayers/ol/ol/renderer/layer.js | 0 .../externs/openLayers/ol/ol/renderer/map.js | 0 .../externs/openLayers/ol/ol/renderer/type.js | 0 .../openLayers/ol/ol/renderer/vector.js | 0 .../ol/renderer/webgl/defaultmapshader.glsl | 0 .../ol/ol/renderer/webgl/defaultmapshader.js | 0 .../webgl/defaultmapshader/locations.js | 0 .../ol/ol/renderer/webgl/imagelayer.js | 0 .../openLayers/ol/ol/renderer/webgl/layer.js | 0 .../openLayers/ol/ol/renderer/webgl/map.js | 0 .../ol/ol/renderer/webgl/tilelayer.js | 0 .../ol/ol/renderer/webgl/tilelayershader.glsl | 0 .../ol/ol/renderer/webgl/tilelayershader.js | 0 .../webgl/tilelayershader/locations.js | 0 .../ol/ol/renderer/webgl/vectorlayer.js | 0 .../externs/openLayers/ol/ol/reproj.js | 0 .../externs/openLayers/ol/ol/reproj/image.js | 0 .../externs/openLayers/ol/ol/reproj/tile.js | 0 .../openLayers/ol/ol/reproj/triangulation.js | 0 .../openLayers/ol/ol/resolutionconstraint.js | 0 .../openLayers/ol/ol/rotationconstraint.js | 0 .../externs/openLayers/ol/ol/size.js | 0 .../externs/openLayers/ol/ol/source.jsdoc | 0 .../openLayers/ol/ol/source/bingmaps.js | 0 .../openLayers/ol/ol/source/cartodb.js | 0 .../openLayers/ol/ol/source/cluster.js | 0 .../externs/openLayers/ol/ol/source/image.js | 0 .../ol/ol/source/imagearcgisrest.js | 0 .../openLayers/ol/ol/source/imagecanvas.js | 0 .../openLayers/ol/ol/source/imagemapguide.js | 0 .../openLayers/ol/ol/source/imagestatic.js | 0 .../openLayers/ol/ol/source/imagevector.js | 0 .../openLayers/ol/ol/source/imagewms.js | 0 .../externs/openLayers/ol/ol/source/osm.js | 0 .../externs/openLayers/ol/ol/source/raster.js | 0 .../ol/ol/source/rasteroperationtype.js | 0 .../externs/openLayers/ol/ol/source/source.js | 0 .../externs/openLayers/ol/ol/source/stamen.js | 0 .../externs/openLayers/ol/ol/source/state.js | 0 .../externs/openLayers/ol/ol/source/tile.js | 0 .../openLayers/ol/ol/source/tilearcgisrest.js | 0 .../openLayers/ol/ol/source/tiledebug.js | 0 .../openLayers/ol/ol/source/tileeventtype.js | 0 .../openLayers/ol/ol/source/tileimage.js | 0 .../openLayers/ol/ol/source/tilejson.js | 0 .../openLayers/ol/ol/source/tileutfgrid.js | 0 .../openLayers/ol/ol/source/tilewms.js | 0 .../openLayers/ol/ol/source/urltile.js | 0 .../externs/openLayers/ol/ol/source/vector.js | 0 .../ol/ol/source/vectoreventtype.js | 0 .../openLayers/ol/ol/source/vectortile.js | 0 .../openLayers/ol/ol/source/wmsservertype.js | 0 .../externs/openLayers/ol/ol/source/wmts.js | 0 .../ol/ol/source/wmtsrequestencoding.js | 0 .../externs/openLayers/ol/ol/source/xyz.js | 0 .../openLayers/ol/ol/source/zoomify.js | 0 .../externs/openLayers/ol/ol/sphere.js | 0 .../externs/openLayers/ol/ol/string.js | 0 .../openLayers/ol/ol/structs/linkedlist.js | 0 .../openLayers/ol/ol/structs/lrucache.js | 0 .../openLayers/ol/ol/structs/priorityqueue.js | 0 .../externs/openLayers/ol/ol/structs/rbush.js | 0 .../externs/openLayers/ol/ol/style.js | 0 .../externs/openLayers/ol/ol/style/atlas.js | 0 .../openLayers/ol/ol/style/atlasmanager.js | 0 .../externs/openLayers/ol/ol/style/circle.js | 0 .../externs/openLayers/ol/ol/style/fill.js | 0 .../externs/openLayers/ol/ol/style/icon.js | 0 .../openLayers/ol/ol/style/iconanchorunits.js | 0 .../openLayers/ol/ol/style/iconimage.js | 0 .../openLayers/ol/ol/style/iconimagecache.js | 0 .../openLayers/ol/ol/style/iconorigin.js | 0 .../externs/openLayers/ol/ol/style/image.js | 0 .../openLayers/ol/ol/style/index.jsdoc | 0 .../openLayers/ol/ol/style/regularshape.js | 0 .../externs/openLayers/ol/ol/style/stroke.js | 0 .../externs/openLayers/ol/ol/style/style.js | 0 .../externs/openLayers/ol/ol/style/text.js | 0 .../openLayers/ol/ol/style/textplacement.js | 0 .../externs/openLayers/ol/ol/tile.js | 0 .../externs/openLayers/ol/ol/tilecache.js | 0 .../externs/openLayers/ol/ol/tilecoord.js | 0 .../externs/openLayers/ol/ol/tilegrid.js | 0 .../openLayers/ol/ol/tilegrid/index.jsdoc | 0 .../openLayers/ol/ol/tilegrid/tilegrid.js | 0 .../externs/openLayers/ol/ol/tilegrid/wmts.js | 0 .../externs/openLayers/ol/ol/tilequeue.js | 0 .../externs/openLayers/ol/ol/tilerange.js | 0 .../externs/openLayers/ol/ol/tilestate.js | 0 .../openLayers/ol/ol/tileurlfunction.js | 0 .../externs/openLayers/ol/ol/transform.js | 0 .../externs/openLayers/ol/ol/typedefs.js | 0 .../externs/openLayers/ol/ol/uri.js | 0 .../externs/openLayers/ol/ol/vec/mat4.js | 0 .../openLayers/ol/ol/vectorimagetile.js | 0 .../externs/openLayers/ol/ol/vectortile.js | 0 .../externs/openLayers/ol/ol/view.js | 0 .../externs/openLayers/ol/ol/viewhint.js | 0 .../externs/openLayers/ol/ol/viewproperty.js | 0 .../externs/openLayers/ol/ol/webgl.js | 0 .../externs/openLayers/ol/ol/webgl/buffer.js | 0 .../externs/openLayers/ol/ol/webgl/context.js | 0 .../ol/ol/webgl/contexteventtype.js | 0 .../openLayers/ol/ol/webgl/fragment.js | 0 .../externs/openLayers/ol/ol/webgl/shader.js | 0 .../openLayers/ol/ol/webgl/shader.mustache | 0 .../ol/ol/webgl/shaderlocations.mustache | 0 .../externs/openLayers/ol/ol/webgl/vertex.js | 0 .../externs/openLayers/ol/ol/xml.js | 0 .../externs/openLayers/ol3-ext/licence.txt | 0 .../externs/openLayers/ol3-ext/readme.txt | 0 .../ol3-ext/style/fonts/fontanc.def.js | 0 .../ol3-ext/style/fonts/fontawesome.def.js | 0 .../ol3-ext/style/fonts/fontveremes.def.js | 0 .../openLayers/ol3-ext/style/fontsymbol.js | 0 .../openLayers/ol3-ext/style/shadowstyle.js | 0 .../openLayers/ol3-ext/utils/ol.ordering.js | 0 .../openLayers/ol3-veremes/mobilemodify.js | 0 .../openLayers/ol3-veremes/ol.veremes.js | 0 .../externs/rgraph/RGraph.bar_min.js | 0 .../rgraph/RGraph.common.context_min.js | 0 .../externs/rgraph/RGraph.common.core_min.js | 0 .../rgraph/RGraph.common.dynamic_min.js | 0 .../rgraph/RGraph.common.effects_min.js | 0 .../externs/rgraph/RGraph.common.key_min.js | 0 .../rgraph/RGraph.common.tooltips_min.js | 0 .../externs/rgraph/RGraph.drawing.rect_min.js | 0 .../externs/rgraph/RGraph.drawing.text_min.js | 0 .../externs/rgraph/RGraph.pie_min.js | 0 .../externs/rgraph/RGraph.scatter_min.js | 0 .../javascript/externs/scripts_cryptage.js | 0 .../javascript/externs/showdown/showdown.js | 0 .../externs/showdown/showdown.js.map | 0 .../externs/showdown/showdown.min.js | 0 .../externs/showdown/showdown.min.js.map | 0 .../studio/javascript/app/ElementForm.js | 0 .../studio/javascript/app/FormBuilder.js | 0 .../studio/javascript/app/FormTools.js | 0 .../studio/javascript/app/JsonLoader.js | 0 .../externs/studio/javascript/app/Utils.js | 0 .../studio/javascript/app/Visualizer.js | 0 .../javascript/app/VisualizerMode/CssMode.js | 0 .../javascript/app/VisualizerMode/FormMode.js | 0 .../javascript/app/VisualizerMode/JsMode.js | 0 .../javascript/app/VisualizerMode/JsonMode.js | 0 .../externs/studio/lang/lang-en.json | 0 .../externs/studio/lang/lang-fr.json | 0 .../externs/studio/less/CodeMirror.less | 0 .../externs/studio/less/studio.less | 0 .../externs/studio/properties/properties.js | 0 .../studio/templates/Componant/Map.html | 0 .../externs/studio/templates/ElementForm.html | 0 .../externs/studio/templates/FormTools.html | 0 .../externs/studio/templates/JsonLoader.html | 0 .../studio/templates/MainTemplate.html | 0 .../externs/studio/templates/Visualizer.html | 0 .../templates/VisualizerMode/CssMode.html | 0 .../templates/VisualizerMode/FormMode.html | 0 .../templates/VisualizerMode/JsMode.html | 0 .../templates/VisualizerMode/JsonMode.html | 0 .../javascript/externs/tinymce/LICENSE.TXT | 0 .../javascript/externs/tinymce/langs/fr_FR.js | 0 .../tinymce/plugins/image/plugin.min.js | 0 .../skins/lightgray/content.inline.min.css | 0 .../tinymce/skins/lightgray/content.min.css | 0 .../skins/lightgray/fonts/tinymce-small.eot | Bin .../skins/lightgray/fonts/tinymce-small.svg | 0 .../skins/lightgray/fonts/tinymce-small.ttf | Bin .../skins/lightgray/fonts/tinymce-small.woff | Bin .../tinymce/skins/lightgray/fonts/tinymce.eot | Bin .../tinymce/skins/lightgray/fonts/tinymce.svg | 0 .../tinymce/skins/lightgray/fonts/tinymce.ttf | Bin .../skins/lightgray/fonts/tinymce.woff | Bin .../tinymce/skins/lightgray/img/anchor.gif | Bin .../tinymce/skins/lightgray/img/loader.gif | Bin .../tinymce/skins/lightgray/img/object.gif | Bin .../tinymce/skins/lightgray/img/trans.gif | Bin .../tinymce/skins/lightgray/skin.ie7.min.css | 0 .../tinymce/skins/lightgray/skin.min.css | 0 .../tinymce/themes/modern/theme.min.js | 0 .../javascript/externs/tinymce/tinymce.min.js | 0 .../javascript/externs/underscore-min.js | 0 .../javascript/externs/underscore.js | 0 .../externs/viewer/Apache-License-2.0.txt | 0 .../javascript/externs/viewer/viewer.min.js | 0 .../javascript/require/requireVitis.js | 0 .../test/e2e/Output/order/htmlReport.html | 0 .../1fe7143891469e980d1fcca05a66b3a2.png | Bin .../22a14751fa17bd62335ee88ba6c6f9e6.png | Bin .../286dc054fdb1ed4e3c1a14730da91fe3.png | Bin .../446e6e12b1a4a349745acaa42b1fd65d.png | Bin .../4e6851a1377af65074210820d5903ea4.png | Bin .../52280521fa920cd916802fa7bf0752c1.png | Bin .../565819f55fb9493820b1f462eb1469af.png | Bin .../5ef9ed38ebad6379a04897ec6f383aeb.png | Bin .../6c0be7e24610a0144c94df2e1c691718.png | Bin .../85bd21280813079f2797df7a66b953ec.png | Bin .../9d224f9d204337458fa46ab0f4b4a3f9.png | Bin .../a971981cadcc1dafd26000f39ea8a68a.png | Bin .../aa05ad4c25af482047fb6ea3951a4ed9.png | Bin .../cb30486ebf3bd7f9aaa687cc51e07134.png | Bin .../d236806b20deffd8ce0f6393acda549e.png | Bin .../e11cf5a8b029208fb74fb66c82acc314.png | Bin .../fd3ebf7f15da963e0243b0763ccf4888.png | Bin .../e2e/Output/publication/htmlReport.html | 0 .../1a593987e7ca4240d8dfa7d6611b79e7.png | Bin .../29ff6bceadd409d2da0d4e1ffe3146ec.png | Bin .../31d7ecf9dd49ad85104ef4b491582c27.png | Bin .../3d588c2cc178ebbc6085fdbac873049b.png | Bin .../66864911363c5dfa802360f4cd169d15.png | Bin .../71acb5849026bc31c2e1a3efaf750c8c.png | Bin .../859d507231ab559be0caa350c33361b0.png | Bin .../9bbbcfee24b1eeadfe4cbebce3d68f37.png | Bin .../ac9d916cef66cf3b0c6dc04361fc8c7a.png | Bin .../b9c0bafaae0a695509eb679f32d7bbc4.png | Bin .../b9ddfa35957bf67b37ae22b31d8d2467.png | Bin .../c4beb465fd449624d359f3471d6ee4c1.png | Bin .../d044896b4c0e135963e4cc03d2381d56.png | Bin .../e0eec7bfffe9f6b747cb85db357889a0.png | Bin .../e589e1728c06bfa8de1a8a9ce5a24b4d.png | Bin .../e630b1b432c5ec391a0625040a7b7ba8.png | Bin .../ff2cdf03ef3a270449425608d47b23a0.png | Bin .../javascript/test/e2e/VeremesTest.js | 0 .../test/e2e/cu_vitis_abonnement.bat | 0 .../javascript/test/e2e/cu_vitis_ad.bat | 0 .../test/e2e/cu_vitis_categorie.bat | 0 .../javascript/test/e2e/cu_vitis_depot.bat | 0 .../test/e2e/cu_vitis_fichiers_interdits.bat | 0 .../javascript/test/e2e/cu_vitis_filter.bat | 0 .../test/e2e/cu_vitis_formulaire.bat | 0 .../test/e2e/cu_vitis_import_export.bat | 0 .../javascript/test/e2e/cu_vitis_ip.bat | 0 .../javascript/test/e2e/cu_vitis_lot.bat | 0 .../javascript/test/e2e/cu_vitis_metadata.bat | 0 .../javascript/test/e2e/cu_vitis_moteurs.bat | 0 .../javascript/test/e2e/cu_vitis_order.bat | 0 .../test/e2e/cu_vitis_publication.bat | 0 .../javascript/test/e2e/cu_vitis_unicite.bat | 0 .../javascript/test/e2e/cu_vitis_upload.bat | 0 .../test/e2e/cu_vitis_upload_fmw.bat | 0 .../test/e2e/cu_vitis_upload_zip.bat | 0 .../test/e2e/cu_vitis_user_existant.bat | 0 .../javascript/test/e2e/cu_vitis_users.bat | 0 .../test/e2e/cu_vitis_users_linux.bat | 0 .../test/e2e/cu_vitis_users_speciaux.bat | 0 .../test/e2e/cu_vitis_verrouillage_projet.bat | 0 .../.npmignore | 0 .../README.md | 0 .../index.js | 0 .../node_modules/.bin/mkdirp | 0 .../node_modules/.bin/mkdirp.cmd | 0 .../node_modules/hat/README.markdown | 0 .../node_modules/hat/example/hat.js | 0 .../node_modules/hat/example/rack.js | 0 .../node_modules/hat/index.js | 0 .../node_modules/hat/package.json | 0 .../node_modules/hat/test/id.js | 0 .../node_modules/hat/test/rack.js | 0 .../node_modules/lodash/LICENSE | 0 .../node_modules/lodash/README.md | 0 .../node_modules/lodash/array.js | 0 .../node_modules/lodash/array/chunk.js | 0 .../node_modules/lodash/array/compact.js | 0 .../node_modules/lodash/array/difference.js | 0 .../node_modules/lodash/array/drop.js | 0 .../node_modules/lodash/array/dropRight.js | 0 .../lodash/array/dropRightWhile.js | 0 .../node_modules/lodash/array/dropWhile.js | 0 .../node_modules/lodash/array/fill.js | 0 .../node_modules/lodash/array/findIndex.js | 0 .../lodash/array/findLastIndex.js | 0 .../node_modules/lodash/array/first.js | 0 .../node_modules/lodash/array/flatten.js | 0 .../node_modules/lodash/array/flattenDeep.js | 0 .../node_modules/lodash/array/head.js | 0 .../node_modules/lodash/array/indexOf.js | 0 .../node_modules/lodash/array/initial.js | 0 .../node_modules/lodash/array/intersection.js | 0 .../node_modules/lodash/array/last.js | 0 .../node_modules/lodash/array/lastIndexOf.js | 0 .../node_modules/lodash/array/object.js | 0 .../node_modules/lodash/array/pull.js | 0 .../node_modules/lodash/array/pullAt.js | 0 .../node_modules/lodash/array/remove.js | 0 .../node_modules/lodash/array/rest.js | 0 .../node_modules/lodash/array/slice.js | 0 .../node_modules/lodash/array/sortedIndex.js | 0 .../lodash/array/sortedLastIndex.js | 0 .../node_modules/lodash/array/tail.js | 0 .../node_modules/lodash/array/take.js | 0 .../node_modules/lodash/array/takeRight.js | 0 .../lodash/array/takeRightWhile.js | 0 .../node_modules/lodash/array/takeWhile.js | 0 .../node_modules/lodash/array/union.js | 0 .../node_modules/lodash/array/uniq.js | 0 .../node_modules/lodash/array/unique.js | 0 .../node_modules/lodash/array/unzip.js | 0 .../node_modules/lodash/array/unzipWith.js | 0 .../node_modules/lodash/array/without.js | 0 .../node_modules/lodash/array/xor.js | 0 .../node_modules/lodash/array/zip.js | 0 .../node_modules/lodash/array/zipObject.js | 0 .../node_modules/lodash/array/zipWith.js | 0 .../node_modules/lodash/chain.js | 0 .../node_modules/lodash/chain/chain.js | 0 .../node_modules/lodash/chain/commit.js | 0 .../node_modules/lodash/chain/concat.js | 0 .../node_modules/lodash/chain/lodash.js | 0 .../node_modules/lodash/chain/plant.js | 0 .../node_modules/lodash/chain/reverse.js | 0 .../node_modules/lodash/chain/run.js | 0 .../node_modules/lodash/chain/tap.js | 0 .../node_modules/lodash/chain/thru.js | 0 .../node_modules/lodash/chain/toJSON.js | 0 .../node_modules/lodash/chain/toString.js | 0 .../node_modules/lodash/chain/value.js | 0 .../node_modules/lodash/chain/valueOf.js | 0 .../node_modules/lodash/chain/wrapperChain.js | 0 .../lodash/chain/wrapperCommit.js | 0 .../lodash/chain/wrapperConcat.js | 0 .../node_modules/lodash/chain/wrapperPlant.js | 0 .../lodash/chain/wrapperReverse.js | 0 .../lodash/chain/wrapperToString.js | 0 .../node_modules/lodash/chain/wrapperValue.js | 0 .../node_modules/lodash/collection.js | 0 .../node_modules/lodash/collection/all.js | 0 .../node_modules/lodash/collection/any.js | 0 .../node_modules/lodash/collection/at.js | 0 .../node_modules/lodash/collection/collect.js | 0 .../lodash/collection/contains.js | 0 .../node_modules/lodash/collection/countBy.js | 0 .../node_modules/lodash/collection/detect.js | 0 .../node_modules/lodash/collection/each.js | 0 .../lodash/collection/eachRight.js | 0 .../node_modules/lodash/collection/every.js | 0 .../node_modules/lodash/collection/filter.js | 0 .../node_modules/lodash/collection/find.js | 0 .../lodash/collection/findLast.js | 0 .../lodash/collection/findWhere.js | 0 .../node_modules/lodash/collection/foldl.js | 0 .../node_modules/lodash/collection/foldr.js | 0 .../node_modules/lodash/collection/forEach.js | 0 .../lodash/collection/forEachRight.js | 0 .../node_modules/lodash/collection/groupBy.js | 0 .../node_modules/lodash/collection/include.js | 0 .../lodash/collection/includes.js | 0 .../node_modules/lodash/collection/indexBy.js | 0 .../node_modules/lodash/collection/inject.js | 0 .../node_modules/lodash/collection/invoke.js | 0 .../node_modules/lodash/collection/map.js | 0 .../node_modules/lodash/collection/max.js | 0 .../node_modules/lodash/collection/min.js | 0 .../lodash/collection/partition.js | 0 .../node_modules/lodash/collection/pluck.js | 0 .../node_modules/lodash/collection/reduce.js | 0 .../lodash/collection/reduceRight.js | 0 .../node_modules/lodash/collection/reject.js | 0 .../node_modules/lodash/collection/sample.js | 0 .../node_modules/lodash/collection/select.js | 0 .../node_modules/lodash/collection/shuffle.js | 0 .../node_modules/lodash/collection/size.js | 0 .../node_modules/lodash/collection/some.js | 0 .../node_modules/lodash/collection/sortBy.js | 0 .../lodash/collection/sortByAll.js | 0 .../lodash/collection/sortByOrder.js | 0 .../node_modules/lodash/collection/sum.js | 0 .../node_modules/lodash/collection/where.js | 0 .../node_modules/lodash/date.js | 0 .../node_modules/lodash/date/now.js | 0 .../node_modules/lodash/function.js | 0 .../node_modules/lodash/function/after.js | 0 .../node_modules/lodash/function/ary.js | 0 .../node_modules/lodash/function/backflow.js | 0 .../node_modules/lodash/function/before.js | 0 .../node_modules/lodash/function/bind.js | 0 .../node_modules/lodash/function/bindAll.js | 0 .../node_modules/lodash/function/bindKey.js | 0 .../node_modules/lodash/function/compose.js | 0 .../node_modules/lodash/function/curry.js | 0 .../lodash/function/curryRight.js | 0 .../node_modules/lodash/function/debounce.js | 0 .../node_modules/lodash/function/defer.js | 0 .../node_modules/lodash/function/delay.js | 0 .../node_modules/lodash/function/flow.js | 0 .../node_modules/lodash/function/flowRight.js | 0 .../node_modules/lodash/function/memoize.js | 0 .../node_modules/lodash/function/modArgs.js | 0 .../node_modules/lodash/function/negate.js | 0 .../node_modules/lodash/function/once.js | 0 .../node_modules/lodash/function/partial.js | 0 .../lodash/function/partialRight.js | 0 .../node_modules/lodash/function/rearg.js | 0 .../node_modules/lodash/function/restParam.js | 0 .../node_modules/lodash/function/spread.js | 0 .../node_modules/lodash/function/throttle.js | 0 .../node_modules/lodash/function/wrap.js | 0 .../node_modules/lodash/index.js | 0 .../lodash/internal/LazyWrapper.js | 0 .../lodash/internal/LodashWrapper.js | 0 .../node_modules/lodash/internal/MapCache.js | 0 .../node_modules/lodash/internal/SetCache.js | 0 .../lodash/internal/arrayConcat.js | 0 .../node_modules/lodash/internal/arrayCopy.js | 0 .../node_modules/lodash/internal/arrayEach.js | 0 .../lodash/internal/arrayEachRight.js | 0 .../lodash/internal/arrayEvery.js | 0 .../lodash/internal/arrayExtremum.js | 0 .../lodash/internal/arrayFilter.js | 0 .../node_modules/lodash/internal/arrayMap.js | 0 .../node_modules/lodash/internal/arrayPush.js | 0 .../lodash/internal/arrayReduce.js | 0 .../lodash/internal/arrayReduceRight.js | 0 .../node_modules/lodash/internal/arraySome.js | 0 .../node_modules/lodash/internal/arraySum.js | 0 .../lodash/internal/assignDefaults.js | 0 .../lodash/internal/assignOwnDefaults.js | 0 .../lodash/internal/assignWith.js | 0 .../lodash/internal/baseAssign.js | 0 .../node_modules/lodash/internal/baseAt.js | 0 .../lodash/internal/baseCallback.js | 0 .../node_modules/lodash/internal/baseClone.js | 0 .../lodash/internal/baseCompareAscending.js | 0 .../node_modules/lodash/internal/baseCopy.js | 0 .../lodash/internal/baseCreate.js | 0 .../node_modules/lodash/internal/baseDelay.js | 0 .../lodash/internal/baseDifference.js | 0 .../node_modules/lodash/internal/baseEach.js | 0 .../lodash/internal/baseEachRight.js | 0 .../node_modules/lodash/internal/baseEvery.js | 0 .../lodash/internal/baseExtremum.js | 0 .../node_modules/lodash/internal/baseFill.js | 0 .../lodash/internal/baseFilter.js | 0 .../node_modules/lodash/internal/baseFind.js | 0 .../lodash/internal/baseFindIndex.js | 0 .../lodash/internal/baseFlatten.js | 0 .../node_modules/lodash/internal/baseFor.js | 0 .../node_modules/lodash/internal/baseForIn.js | 0 .../lodash/internal/baseForOwn.js | 0 .../lodash/internal/baseForOwnRight.js | 0 .../lodash/internal/baseForRight.js | 0 .../lodash/internal/baseFunctions.js | 0 .../node_modules/lodash/internal/baseGet.js | 0 .../lodash/internal/baseIndexOf.js | 0 .../lodash/internal/baseIsEqual.js | 0 .../lodash/internal/baseIsEqualDeep.js | 0 .../lodash/internal/baseIsFunction.js | 0 .../lodash/internal/baseIsMatch.js | 0 .../lodash/internal/baseLodash.js | 0 .../node_modules/lodash/internal/baseMap.js | 0 .../lodash/internal/baseMatches.js | 0 .../lodash/internal/baseMatchesProperty.js | 0 .../node_modules/lodash/internal/baseMerge.js | 0 .../lodash/internal/baseMergeDeep.js | 0 .../lodash/internal/baseProperty.js | 0 .../lodash/internal/basePropertyDeep.js | 0 .../lodash/internal/basePullAt.js | 0 .../lodash/internal/baseRandom.js | 0 .../lodash/internal/baseReduce.js | 0 .../lodash/internal/baseSetData.js | 0 .../node_modules/lodash/internal/baseSlice.js | 0 .../node_modules/lodash/internal/baseSome.js | 0 .../lodash/internal/baseSortBy.js | 0 .../lodash/internal/baseSortByOrder.js | 0 .../node_modules/lodash/internal/baseSum.js | 0 .../lodash/internal/baseToString.js | 0 .../node_modules/lodash/internal/baseUniq.js | 0 .../lodash/internal/baseValues.js | 0 .../node_modules/lodash/internal/baseWhile.js | 0 .../lodash/internal/baseWrapperValue.js | 0 .../lodash/internal/binaryIndex.js | 0 .../lodash/internal/binaryIndexBy.js | 0 .../lodash/internal/bindCallback.js | 0 .../lodash/internal/bufferClone.js | 0 .../lodash/internal/cacheIndexOf.js | 0 .../node_modules/lodash/internal/cachePush.js | 0 .../lodash/internal/charsLeftIndex.js | 0 .../lodash/internal/charsRightIndex.js | 0 .../lodash/internal/compareAscending.js | 0 .../lodash/internal/compareMultiple.js | 0 .../lodash/internal/composeArgs.js | 0 .../lodash/internal/composeArgsRight.js | 0 .../lodash/internal/createAggregator.js | 0 .../lodash/internal/createAssigner.js | 0 .../lodash/internal/createBaseEach.js | 0 .../lodash/internal/createBaseFor.js | 0 .../lodash/internal/createBindWrapper.js | 0 .../lodash/internal/createCache.js | 0 .../lodash/internal/createCompounder.js | 0 .../lodash/internal/createCtorWrapper.js | 0 .../lodash/internal/createCurry.js | 0 .../lodash/internal/createDefaults.js | 0 .../lodash/internal/createExtremum.js | 0 .../lodash/internal/createFind.js | 0 .../lodash/internal/createFindIndex.js | 0 .../lodash/internal/createFindKey.js | 0 .../lodash/internal/createFlow.js | 0 .../lodash/internal/createForEach.js | 0 .../lodash/internal/createForIn.js | 0 .../lodash/internal/createForOwn.js | 0 .../lodash/internal/createHybridWrapper.js | 0 .../lodash/internal/createObjectMapper.js | 0 .../lodash/internal/createPadDir.js | 0 .../lodash/internal/createPadding.js | 0 .../lodash/internal/createPartial.js | 0 .../lodash/internal/createPartialWrapper.js | 0 .../lodash/internal/createReduce.js | 0 .../lodash/internal/createRound.js | 0 .../lodash/internal/createSortedIndex.js | 0 .../lodash/internal/createWrapper.js | 0 .../lodash/internal/deburrLetter.js | 0 .../lodash/internal/equalArrays.js | 0 .../lodash/internal/equalByTag.js | 0 .../lodash/internal/equalObjects.js | 0 .../lodash/internal/escapeHtmlChar.js | 0 .../lodash/internal/escapeRegExpChar.js | 0 .../lodash/internal/escapeStringChar.js | 0 .../node_modules/lodash/internal/getData.js | 0 .../lodash/internal/getFuncName.js | 0 .../node_modules/lodash/internal/getLength.js | 0 .../lodash/internal/getMatchData.js | 0 .../node_modules/lodash/internal/getNative.js | 0 .../node_modules/lodash/internal/getView.js | 0 .../lodash/internal/indexOfNaN.js | 0 .../lodash/internal/initCloneArray.js | 0 .../lodash/internal/initCloneByTag.js | 0 .../lodash/internal/initCloneObject.js | 0 .../lodash/internal/invokePath.js | 0 .../lodash/internal/isArrayLike.js | 0 .../node_modules/lodash/internal/isIndex.js | 0 .../lodash/internal/isIterateeCall.js | 0 .../node_modules/lodash/internal/isKey.js | 0 .../lodash/internal/isLaziable.js | 0 .../node_modules/lodash/internal/isLength.js | 0 .../lodash/internal/isObjectLike.js | 0 .../node_modules/lodash/internal/isSpace.js | 0 .../lodash/internal/isStrictComparable.js | 0 .../node_modules/lodash/internal/lazyClone.js | 0 .../lodash/internal/lazyReverse.js | 0 .../node_modules/lodash/internal/lazyValue.js | 0 .../node_modules/lodash/internal/mapDelete.js | 0 .../node_modules/lodash/internal/mapGet.js | 0 .../node_modules/lodash/internal/mapHas.js | 0 .../node_modules/lodash/internal/mapSet.js | 0 .../node_modules/lodash/internal/mergeData.js | 0 .../lodash/internal/mergeDefaults.js | 0 .../node_modules/lodash/internal/metaMap.js | 0 .../lodash/internal/pickByArray.js | 0 .../lodash/internal/pickByCallback.js | 0 .../node_modules/lodash/internal/reEscape.js | 0 .../lodash/internal/reEvaluate.js | 0 .../lodash/internal/reInterpolate.js | 0 .../node_modules/lodash/internal/realNames.js | 0 .../node_modules/lodash/internal/reorder.js | 0 .../lodash/internal/replaceHolders.js | 0 .../node_modules/lodash/internal/setData.js | 0 .../node_modules/lodash/internal/shimKeys.js | 0 .../lodash/internal/sortedUniq.js | 0 .../lodash/internal/toIterable.js | 0 .../node_modules/lodash/internal/toObject.js | 0 .../node_modules/lodash/internal/toPath.js | 0 .../lodash/internal/trimmedLeftIndex.js | 0 .../lodash/internal/trimmedRightIndex.js | 0 .../lodash/internal/unescapeHtmlChar.js | 0 .../lodash/internal/wrapperClone.js | 0 .../node_modules/lodash/lang.js | 0 .../node_modules/lodash/lang/clone.js | 0 .../node_modules/lodash/lang/cloneDeep.js | 0 .../node_modules/lodash/lang/eq.js | 0 .../node_modules/lodash/lang/gt.js | 0 .../node_modules/lodash/lang/gte.js | 0 .../node_modules/lodash/lang/isArguments.js | 0 .../node_modules/lodash/lang/isArray.js | 0 .../node_modules/lodash/lang/isBoolean.js | 0 .../node_modules/lodash/lang/isDate.js | 0 .../node_modules/lodash/lang/isElement.js | 0 .../node_modules/lodash/lang/isEmpty.js | 0 .../node_modules/lodash/lang/isEqual.js | 0 .../node_modules/lodash/lang/isError.js | 0 .../node_modules/lodash/lang/isFinite.js | 0 .../node_modules/lodash/lang/isFunction.js | 0 .../node_modules/lodash/lang/isMatch.js | 0 .../node_modules/lodash/lang/isNaN.js | 0 .../node_modules/lodash/lang/isNative.js | 0 .../node_modules/lodash/lang/isNull.js | 0 .../node_modules/lodash/lang/isNumber.js | 0 .../node_modules/lodash/lang/isObject.js | 0 .../node_modules/lodash/lang/isPlainObject.js | 0 .../node_modules/lodash/lang/isRegExp.js | 0 .../node_modules/lodash/lang/isString.js | 0 .../node_modules/lodash/lang/isTypedArray.js | 0 .../node_modules/lodash/lang/isUndefined.js | 0 .../node_modules/lodash/lang/lt.js | 0 .../node_modules/lodash/lang/lte.js | 0 .../node_modules/lodash/lang/toArray.js | 0 .../node_modules/lodash/lang/toPlainObject.js | 0 .../node_modules/lodash/math.js | 0 .../node_modules/lodash/math/add.js | 0 .../node_modules/lodash/math/ceil.js | 0 .../node_modules/lodash/math/floor.js | 0 .../node_modules/lodash/math/max.js | 0 .../node_modules/lodash/math/min.js | 0 .../node_modules/lodash/math/round.js | 0 .../node_modules/lodash/math/sum.js | 0 .../node_modules/lodash/number.js | 0 .../node_modules/lodash/number/inRange.js | 0 .../node_modules/lodash/number/random.js | 0 .../node_modules/lodash/object.js | 0 .../node_modules/lodash/object/assign.js | 0 .../node_modules/lodash/object/create.js | 0 .../node_modules/lodash/object/defaults.js | 0 .../lodash/object/defaultsDeep.js | 0 .../node_modules/lodash/object/extend.js | 0 .../node_modules/lodash/object/findKey.js | 0 .../node_modules/lodash/object/findLastKey.js | 0 .../node_modules/lodash/object/forIn.js | 0 .../node_modules/lodash/object/forInRight.js | 0 .../node_modules/lodash/object/forOwn.js | 0 .../node_modules/lodash/object/forOwnRight.js | 0 .../node_modules/lodash/object/functions.js | 0 .../node_modules/lodash/object/get.js | 0 .../node_modules/lodash/object/has.js | 0 .../node_modules/lodash/object/invert.js | 0 .../node_modules/lodash/object/keys.js | 0 .../node_modules/lodash/object/keysIn.js | 0 .../node_modules/lodash/object/mapKeys.js | 0 .../node_modules/lodash/object/mapValues.js | 0 .../node_modules/lodash/object/merge.js | 0 .../node_modules/lodash/object/methods.js | 0 .../node_modules/lodash/object/omit.js | 0 .../node_modules/lodash/object/pairs.js | 0 .../node_modules/lodash/object/pick.js | 0 .../node_modules/lodash/object/result.js | 0 .../node_modules/lodash/object/set.js | 0 .../node_modules/lodash/object/transform.js | 0 .../node_modules/lodash/object/values.js | 0 .../node_modules/lodash/object/valuesIn.js | 0 .../node_modules/lodash/package.json | 0 .../node_modules/lodash/string.js | 0 .../node_modules/lodash/string/camelCase.js | 0 .../node_modules/lodash/string/capitalize.js | 0 .../node_modules/lodash/string/deburr.js | 0 .../node_modules/lodash/string/endsWith.js | 0 .../node_modules/lodash/string/escape.js | 0 .../lodash/string/escapeRegExp.js | 0 .../node_modules/lodash/string/kebabCase.js | 0 .../node_modules/lodash/string/pad.js | 0 .../node_modules/lodash/string/padLeft.js | 0 .../node_modules/lodash/string/padRight.js | 0 .../node_modules/lodash/string/parseInt.js | 0 .../node_modules/lodash/string/repeat.js | 0 .../node_modules/lodash/string/snakeCase.js | 0 .../node_modules/lodash/string/startCase.js | 0 .../node_modules/lodash/string/startsWith.js | 0 .../node_modules/lodash/string/template.js | 0 .../lodash/string/templateSettings.js | 0 .../node_modules/lodash/string/trim.js | 0 .../node_modules/lodash/string/trimLeft.js | 0 .../node_modules/lodash/string/trimRight.js | 0 .../node_modules/lodash/string/trunc.js | 0 .../node_modules/lodash/string/unescape.js | 0 .../node_modules/lodash/string/words.js | 0 .../node_modules/lodash/support.js | 0 .../node_modules/lodash/utility.js | 0 .../node_modules/lodash/utility/attempt.js | 0 .../node_modules/lodash/utility/callback.js | 0 .../node_modules/lodash/utility/constant.js | 0 .../node_modules/lodash/utility/identity.js | 0 .../node_modules/lodash/utility/iteratee.js | 0 .../node_modules/lodash/utility/matches.js | 0 .../lodash/utility/matchesProperty.js | 0 .../node_modules/lodash/utility/method.js | 0 .../node_modules/lodash/utility/methodOf.js | 0 .../node_modules/lodash/utility/mixin.js | 0 .../node_modules/lodash/utility/noop.js | 0 .../node_modules/lodash/utility/property.js | 0 .../node_modules/lodash/utility/propertyOf.js | 0 .../node_modules/lodash/utility/range.js | 0 .../node_modules/lodash/utility/times.js | 0 .../node_modules/lodash/utility/uniqueId.js | 0 .../node_modules/mkdirp/.travis.yml | 0 .../node_modules/mkdirp/LICENSE | 0 .../node_modules/mkdirp/bin/cmd.js | 0 .../node_modules/mkdirp/bin/usage.txt | 0 .../node_modules/mkdirp/examples/pow.js | 0 .../node_modules/mkdirp/index.js | 0 .../mkdirp/node_modules/minimist/.travis.yml | 0 .../mkdirp/node_modules/minimist/LICENSE | 0 .../node_modules/minimist/example/parse.js | 0 .../mkdirp/node_modules/minimist/index.js | 0 .../mkdirp/node_modules/minimist/package.json | 0 .../node_modules/minimist/readme.markdown | 0 .../mkdirp/node_modules/minimist/test/dash.js | 0 .../minimist/test/default_bool.js | 0 .../node_modules/minimist/test/dotted.js | 0 .../mkdirp/node_modules/minimist/test/long.js | 0 .../node_modules/minimist/test/parse.js | 0 .../minimist/test/parse_modified.js | 0 .../node_modules/minimist/test/short.js | 0 .../node_modules/minimist/test/whitespace.js | 0 .../node_modules/mkdirp/package.json | 0 .../node_modules/mkdirp/readme.markdown | 0 .../node_modules/mkdirp/test/chmod.js | 0 .../node_modules/mkdirp/test/clobber.js | 0 .../node_modules/mkdirp/test/mkdirp.js | 0 .../node_modules/mkdirp/test/opts_fs.js | 0 .../node_modules/mkdirp/test/opts_fs_sync.js | 0 .../node_modules/mkdirp/test/perm.js | 0 .../node_modules/mkdirp/test/perm_sync.js | 0 .../node_modules/mkdirp/test/race.js | 0 .../node_modules/mkdirp/test/rel.js | 0 .../node_modules/mkdirp/test/return.js | 0 .../node_modules/mkdirp/test/return_sync.js | 0 .../node_modules/mkdirp/test/root.js | 0 .../node_modules/mkdirp/test/sync.js | 0 .../node_modules/mkdirp/test/umask.js | 0 .../node_modules/mkdirp/test/umask_sync.js | 0 .../LICENSE-MIT.txt | 0 .../string.prototype.startswith/README.md | 0 .../string.prototype.startswith/package.json | 0 .../string.prototype.startswith/startswith.js | 0 .../package.json | 0 .../protractor.config.js | 0 .../template.html | 0 .../test/test2Spec.js | 0 .../test/testSpec.js | 0 .../test/e2e/protractor.conf.abonnement.js | 0 .../javascript/test/e2e/protractor.conf.ad.js | 0 .../test/e2e/protractor.conf.categorie.js | 0 .../test/e2e/protractor.conf.depot.js | 0 .../e2e/protractor.conf.fichiers_interdits.js | 0 .../test/e2e/protractor.conf.filter.js | 0 .../test/e2e/protractor.conf.formulaire.js | 0 .../test/e2e/protractor.conf.import.export.js | 0 .../javascript/test/e2e/protractor.conf.ip.js | 0 .../javascript/test/e2e/protractor.conf.js | 0 .../test/e2e/protractor.conf.lot.js | 0 .../test/e2e/protractor.conf.metada.js | 0 .../test/e2e/protractor.conf.metadata.js | 0 .../test/e2e/protractor.conf.moteurs.js | 0 .../test/e2e/protractor.conf.order.js | 0 .../test/e2e/protractor.conf.publication.js | 0 .../test/e2e/protractor.conf.unicite.js | 0 .../test/e2e/protractor.conf.upload.js | 0 .../test/e2e/protractor.conf.upload_fmw.js | 0 .../test/e2e/protractor.conf.upload_zip.js | 0 .../test/e2e/protractor.conf.user_existant.js | 0 .../test/e2e/protractor.conf.users.js | 0 .../e2e/protractor.conf.users_speciaux.js | 0 .../protractor.conf.users_speciaux.linux.js | 0 .../protractor.conf.verrouillage_projet.js | 0 .../javascript/test/e2e/resource/DATE.gex | Bin .../javascript/test/e2e/resource/DPT.DBF | Bin .../javascript/test/e2e/resource/DPT.SHP | Bin .../javascript/test/e2e/resource/DPT.SHX | Bin .../javascript/test/e2e/resource/DPT.prj | 0 .../javascript/test/e2e/resource/DPT.zip | Bin .../test/e2e/resource/choix_multiple.fmw | 0 .../test/e2e/resource/choix_multiple.log | 0 .../test/e2e/resource/controle_quali.gex | Bin .../javascript/test/e2e/resource/dep dep.zip | Bin .../javascript/test/e2e/resource/depts.zip | Bin .../javascript/test/e2e/resource/dpt2.dbf | Bin .../javascript/test/e2e/resource/dpt2.prj | 0 .../javascript/test/e2e/resource/dpt2.shp | Bin .../javascript/test/e2e/resource/dpt2.shx | Bin .../javascript/test/e2e/resource/dpt2.zip | Bin .../test/e2e/resource/d\303\251p.zip" | Bin .../javascript/test/e2e/resource/ee aa.fmw | 0 .../javascript/test/e2e/resource/exemples.gex | Bin ...raction_geofla_par_d\303\251partement.gex" | Bin .../test/e2e/resource/import_export.gex | Bin .../test/e2e/resource/import_export2.gex | Bin .../test/e2e/resource/it3/ARDECHE.dbf | Bin .../test/e2e/resource/it3/ARDECHE.prj | 0 .../test/e2e/resource/it3/ARDECHE.shp | Bin .../test/e2e/resource/it3/ARDECHE.shx | Bin .../javascript/test/e2e/resource/metadata.fmw | 0 .../javascript/test/e2e/resource/metadata.log | 0 .../test/e2e/resource/metadata2.fmw | 0 .../test/e2e/resource/selection_villes.gex | Bin .../javascript/test/e2e/resource/shp2mif.fmw | 0 .../test/e2e/resource/t_abonnement.fmw | 0 .../test/e2e/resource/t_formulaire.fmw | 0 .../test/e2e/resource/t_importparlot1.fmw | 0 .../test/e2e/resource/t_importparlot2.fmw | 0 .../test/e2e/resource/t_unicite.fmw | 0 .../javascript/test/e2e/resource/test_gex.gex | Bin .../e2e/resource/test_param_choice_villes.fmw | 0 .../test/e2e/resource/test_param_couleur.fmw | 0 .../e2e/resource/test_param_date_time.fmw | 0 .../e2e/resource/test_param_date_time.log | 0 .../javascript/test/e2e/resource/villes.zip | Bin .../javascript/test/e2e/resource/vse.jpg | Bin .../test/e2e/resource/\303\251\303\240.fmw" | 0 .../test/e2e/scenario/sc_vitis_abonnement.js | 0 .../test/e2e/scenario/sc_vitis_ad.js | 0 .../test/e2e/scenario/sc_vitis_categorie.js | 0 .../test/e2e/scenario/sc_vitis_depot.js | 0 .../scenario/sc_vitis_fichiers_interdits.js | 0 .../test/e2e/scenario/sc_vitis_filter.js | 0 .../test/e2e/scenario/sc_vitis_fme_params.js | 0 .../test/e2e/scenario/sc_vitis_formulaire.js | 0 .../e2e/scenario/sc_vitis_import_export.js | 0 .../test/e2e/scenario/sc_vitis_ip.js | 0 .../test/e2e/scenario/sc_vitis_lot.js | 0 .../test/e2e/scenario/sc_vitis_metadata.js | 0 .../test/e2e/scenario/sc_vitis_moteurs.js | 0 .../test/e2e/scenario/sc_vitis_order.js | 0 .../test/e2e/scenario/sc_vitis_publication.js | 0 .../test/e2e/scenario/sc_vitis_unicite.js | 0 .../test/e2e/scenario/sc_vitis_upload.js | 0 .../test/e2e/scenario/sc_vitis_upload_fmw.js | 0 .../test/e2e/scenario/sc_vitis_upload_zip.js | 0 .../e2e/scenario/sc_vitis_user_existant.js | 0 .../test/e2e/scenario/sc_vitis_users.js | 0 .../test/e2e/scenario/sc_vitis_users_linux.js | 0 .../e2e/scenario/sc_vitis_users_speciaux.js | 0 .../scenario/sc_vitis_users_speciaux_linux.js | 0 .../scenario/sc_vitis_verrouillage_projet.js | 0 .../vitis/client => client}/lang/lang-en.json | 0 .../vitis/client => client}/lang/lang-fr.json | 0 .../client => client}/less/doubleForm.less | 0 .../client => client}/less/htmlForm.less | 0 {src/vitis/client => client}/less/login.less | 0 {src/vitis/client => client}/less/main.less | 0 {src/vitis/client => client}/less/mobile.less | 0 .../client => client}/less/sectionForm.less | 0 .../client => client}/less/simpleForm.less | 0 .../client => client}/less/workspaceList.less | 0 .../modules/vitis/data/proj.json | 0 .../configuration_vitis_configuration.json | 0 .../exploitation_exploitation.json | 0 .../vitis/forms/logs/logs_vitis_log.json | 0 .../vitis/forms/user/user_vitis_user.js | 0 .../vitis/forms/user/user_vitis_user.json | 0 .../users/active_directory_connection.json | 0 .../users/search_active_directory_group.json | 0 .../users/search_active_directory_person.json | 0 .../forms/users/users_vitis_billinggroup.json | 0 .../vitis/forms/users/users_vitis_domain.json | 0 .../vitis/forms/users/users_vitis_group.json | 0 .../forms/users/users_vitis_privilege.json | 0 .../vitis/forms/users/users_vitis_users.json | 0 .../modules/vitis/images/administrator.png | Bin .../modules/vitis/images/button_green.gif | Bin .../modules/vitis/images/button_red.gif | Bin .../modules/vitis/images/user.png | Bin .../controllers/activeDirectoryTreeCtrl.js | 0 .../vitis/javascript/controllers/logsCtrl.js | 0 .../controllers/versionConfigurationCtrl.js | 0 .../controllers/webServiceHelpCtrl.js | 0 .../controllers/websocketConfigurationCtrl.js | 0 .../modules/vitis/javascript/deps.js | 0 .../directives/activeDirectoryTreeDrtv.js | 0 .../vitis/javascript/directives/logsDrtv.js | 0 .../directives/phpInfoConfigurationDrtv.js | 0 .../directives/versionConfigurationDrtv.js | 0 .../directives/webServiceHelpDrtv.js | 0 .../directives/websocketConfigurationDrtv.js | 0 .../modules/vitis/javascript/script_module.js | 0 .../modules/vitis/lang/lang-en.json | 0 .../modules/vitis/lang/lang-fr.json | 0 .../vitis/less/activeDirectoryTree.less | 0 .../modules/vitis/less/logs.less | 0 .../modules/vitis/less/main.less | 0 .../vitis/less/phpInfoConfiguration.less | 0 .../modules/vitis/less/sharedDirectory.less | 0 .../vitis/less/updateConfiguration.less | 0 .../modules/vitis/less/users.less | 0 .../vitis/less/versionConfiguration.less | 0 .../modules/vitis/less/webServiceHelp.less | 0 .../templates/activeDirectoryTreeLeftTpl.html | 0 .../activeDirectoryTreeRightTpl.html | 0 .../modules/vitis/templates/logsLeftTpl.html | 0 .../modules/vitis/templates/logsRightTpl.html | 0 .../templates/phpInfoConfigurationTpl.html | 0 .../templates/updateConfigurationTpl.html | 0 .../templates/versionConfigurationTpl.html | 0 .../vitis/templates/webServiceHelpTpl.html | 0 .../templates/websocketConfigurationTpl.html | 0 .../templates/clientDocumentationTpl.html | 0 .../templates/creditsTpl.html | 0 .../templates/doubleFormTpl.html | 0 .../client => client}/templates/formTpl.html | 0 .../client => client}/templates/loginTpl.html | 0 .../client => client}/templates/mainTpl.html | 0 .../templates/sectionFormTpl.html | 0 .../templates/simpleFormTpl.html | 0 .../templates/uiGridActionTpl.html | 0 .../templates/uiGridPaginationTpl.html | 0 .../templates/workspaceListTpl.html | 0 conf/Gruntfile.js | 112 - conf/_install/apache.conf | 6 - conf/_install/dependency.xml | 16 - conf/_install/fileToDelete.txt | 2 - conf/_install/folderToDelete.txt | 1 - conf/credits.json | 156 - conf/less/variables.less | 35 - conf/package.json | 4 - conf/requires/config.js | 66 - conf/requires/requiresApp.js | 11 - install.bat | 18 - install.sh | 25 - pull_subtrees.sh | 13 - push_subtrees.sh | 13 - src/closure/README.md | 1 - src/closure/conf/depswriter/closurebuilder.py | 293 - src/closure/conf/depswriter/depstree.py | 189 - src/closure/conf/depswriter/depstree_test.py | 127 - src/closure/conf/depswriter/depswriter.py | 212 - .../conf/depswriter/depswriter_test.py | 62 - src/closure/conf/depswriter/jscompiler.py | 162 - .../conf/depswriter/jscompiler_test.py | 114 - src/closure/conf/depswriter/source.py | 132 - src/closure/conf/depswriter/source_test.py | 152 - src/closure/conf/depswriter/treescan.py | 78 - src/closure/conf/externs/angular-1.3.js | 2392 -------- src/closure/conf/externs/bingmaps.js | 176 - src/closure/conf/externs/bootstrap.js | 242 - src/closure/conf/externs/geojson.js | 171 - src/closure/conf/externs/html2canvas.js | 8 - src/closure/conf/externs/jquery-1.9.js | 2166 -------- src/closure/conf/externs/jspdf.js | 51 - src/closure/conf/externs/vmap.js | 75 - src/module_extraction/README.md | 3 - src/module_extraction/_install/dependency.xml | 19 - .../_install/fileToDelete.txt | 6 - .../_install/folderToDelete.txt | 2 - ..._vitis_configuration_extractionConfig.json | 1 - .../extraction_extraction_extraction.js | 500 -- .../extraction_extraction_extraction.json | 4838 ----------------- ...ction_depot_extraction_extraction_depot.js | 253 - ...ion_depot_extraction_extraction_depot.json | 291 - .../extraction_ref_extraction_coordsys.json | 240 - .../extraction_ref_extraction_format.json | 393 -- .../extraction_ref_extraction_layer.json | 355 -- .../module/forms/login/sign_up.json | 230 - .../module/javascript/script_module.js | 412 -- .../module/lang/lang-en.json | 111 - .../module/lang/lang-fr.json | 123 - src/module_extraction/module/less/main.less | 5 - .../module/templates/depositDirectoryTpl.html | 16 - .../web_service/conf/properties.inc | 7 - .../web_service/conf/properties_server.inc | 3 - .../web_service/conf/selected_properties.inc | 18 - .../web_service/conf/version.inc | 7 - .../web_service/sql/sqlQueries.xml | 493 -- .../web_service/ws/Coordsys.class.inc | 91 - .../web_service/ws/Coordsyss.class.inc | 268 - .../web_service/ws/Extraction.class.inc | 147 - .../ws/ExtractionExtraction.class.inc | 44 - .../ws/ExtractionExtraction.class.sql.inc | 22 - .../web_service/ws/Extraction_depot.class.inc | 81 - .../ws/Extraction_depots.class.inc | 440 -- .../web_service/ws/Extractions.class.inc | 650 --- .../web_service/ws/Format.class.inc | 91 - .../web_service/ws/Formats.class.inc | 269 - .../web_service/ws/Layer.class.inc | 91 - .../web_service/ws/Layers.class.inc | 269 - .../web_service/ws/overview.phtml | 24 - src/vitis/.gitignore | 0 src/vitis/README.md | 1 - src/vitis/_install/client/fileToDelete.txt | 4 - src/vitis/_install/client/folderToDelete.txt | 8 - .../_install/client/listModuleApache.txt | 5 - src/vitis/_install/vas/apache.conf | 70 - src/vitis/_install/vas/listModuleApache.txt | 16 - src/vitis/vas/rest/class/.htaccess | 1 - src/vitis/vas/rest/class/Ldap.class.inc | 347 -- src/vitis/vas/rest/class/PEAR/Autoloader.php | 223 - src/vitis/vas/rest/class/PEAR/Builder.php | 486 -- src/vitis/vas/rest/class/PEAR/ChannelFile.php | 1615 ------ .../rest/class/PEAR/ChannelFile/Parser.php | 73 - src/vitis/vas/rest/class/PEAR/Command.php | 416 -- .../vas/rest/class/PEAR/Command/Auth.php | 203 - .../vas/rest/class/PEAR/Command/Auth.xml | 26 - .../vas/rest/class/PEAR/Command/Build.php | 104 - .../vas/rest/class/PEAR/Command/Build.xml | 10 - .../vas/rest/class/PEAR/Command/Channels.php | 737 --- .../vas/rest/class/PEAR/Command/Channels.xml | 98 - .../vas/rest/class/PEAR/Command/Common.php | 291 - .../vas/rest/class/PEAR/Command/Config.php | 422 -- .../vas/rest/class/PEAR/Command/Config.xml | 92 - .../vas/rest/class/PEAR/Command/Install.php | 1188 ---- .../vas/rest/class/PEAR/Command/Install.xml | 259 - .../vas/rest/class/PEAR/Command/Mirror.php | 153 - .../vas/rest/class/PEAR/Command/Mirror.xml | 18 - .../vas/rest/class/PEAR/Command/Package.php | 843 --- .../vas/rest/class/PEAR/Command/Package.xml | 194 - .../vas/rest/class/PEAR/Command/Pickle.php | 376 -- .../vas/rest/class/PEAR/Command/Pickle.xml | 40 - .../vas/rest/class/PEAR/Command/Registry.php | 1070 ---- .../vas/rest/class/PEAR/Command/Registry.xml | 58 - .../vas/rest/class/PEAR/Command/Remote.php | 812 --- .../vas/rest/class/PEAR/Command/Remote.xml | 108 - .../vas/rest/class/PEAR/Command/Test.php | 345 -- .../vas/rest/class/PEAR/Command/Test.xml | 54 - src/vitis/vas/rest/class/PEAR/Common.php | 1126 ---- src/vitis/vas/rest/class/PEAR/Config.php | 2163 -------- src/vitis/vas/rest/class/PEAR/Dependency.php | 498 -- src/vitis/vas/rest/class/PEAR/Dependency2.php | 1299 ----- .../vas/rest/class/PEAR/DependencyDB.php | 713 --- src/vitis/vas/rest/class/PEAR/Downloader.php | 1752 ------ .../rest/class/PEAR/Downloader/Package.php | 1853 ------- src/vitis/vas/rest/class/PEAR/ErrorStack.php | 985 ---- src/vitis/vas/rest/class/PEAR/Exception.php | 397 -- .../rest/class/PEAR/FixPHP5PEARWarnings.php | 7 - src/vitis/vas/rest/class/PEAR/Frontend.php | 223 - .../vas/rest/class/PEAR/Frontend/CLI.php | 794 --- src/vitis/vas/rest/class/PEAR/Installer.php | 1723 ------ .../vas/rest/class/PEAR/Installer/Role.php | 253 - .../rest/class/PEAR/Installer/Role/Cfg.php | 108 - .../rest/class/PEAR/Installer/Role/Cfg.xml | 15 - .../rest/class/PEAR/Installer/Role/Common.php | 180 - .../rest/class/PEAR/Installer/Role/Data.php | 34 - .../rest/class/PEAR/Installer/Role/Data.xml | 15 - .../rest/class/PEAR/Installer/Role/Doc.php | 34 - .../rest/class/PEAR/Installer/Role/Doc.xml | 15 - .../rest/class/PEAR/Installer/Role/Ext.php | 34 - .../rest/class/PEAR/Installer/Role/Ext.xml | 12 - .../rest/class/PEAR/Installer/Role/Php.php | 34 - .../rest/class/PEAR/Installer/Role/Php.xml | 15 - .../rest/class/PEAR/Installer/Role/Script.php | 34 - .../rest/class/PEAR/Installer/Role/Script.xml | 15 - .../rest/class/PEAR/Installer/Role/Src.php | 40 - .../rest/class/PEAR/Installer/Role/Src.xml | 12 - .../rest/class/PEAR/Installer/Role/Test.php | 34 - .../rest/class/PEAR/Installer/Role/Test.xml | 15 - .../rest/class/PEAR/Installer/Role/Www.php | 34 - .../rest/class/PEAR/Installer/Role/Www.xml | 15 - src/vitis/vas/rest/class/PEAR/Mail.php | 245 - src/vitis/vas/rest/class/PEAR/Mail/RFC822.php | 940 ---- src/vitis/vas/rest/class/PEAR/Mail/mail.php | 143 - src/vitis/vas/rest/class/PEAR/Mail/mime.php | 1495 ----- .../vas/rest/class/PEAR/Mail/mimePart.php | 1261 ----- src/vitis/vas/rest/class/PEAR/Mail/mock.php | 119 - .../vas/rest/class/PEAR/Mail/net/SMTP.php | 1082 ---- .../vas/rest/class/PEAR/Mail/net/Socket.php | 592 -- .../rest/class/PEAR/Mail/net/docs/guide.txt | 211 - .../class/PEAR/Mail/net/examples/basic.php | 39 - .../rest/class/PEAR/Mail/net/tests/auth.phpt | 40 - .../rest/class/PEAR/Mail/net/tests/basic.phpt | 37 - .../class/PEAR/Mail/net/tests/config.php.dist | 15 - .../class/PEAR/Mail/net/tests/quotedata.phpt | 62 - src/vitis/vas/rest/class/PEAR/Mail/null.php | 60 - .../vas/rest/class/PEAR/Mail/sendmail.php | 170 - src/vitis/vas/rest/class/PEAR/Mail/smtp.php | 407 -- src/vitis/vas/rest/class/PEAR/Mail/smtpmx.php | 478 -- src/vitis/vas/rest/class/PEAR/PEAR.php | 1118 ---- src/vitis/vas/rest/class/PEAR/PackageFile.php | 474 -- .../class/PEAR/PackageFile/Generator/v1.php | 1272 ----- .../class/PEAR/PackageFile/Generator/v2.php | 1531 ------ .../rest/class/PEAR/PackageFile/Parser/v1.php | 465 -- .../rest/class/PEAR/PackageFile/Parser/v2.php | 117 - .../vas/rest/class/PEAR/PackageFile/v1.php | 1618 ------ .../vas/rest/class/PEAR/PackageFile/v2.php | 2046 ------- .../class/PEAR/PackageFile/v2/Validator.php | 2116 ------- .../vas/rest/class/PEAR/PackageFile/v2/rw.php | 1603 ------ src/vitis/vas/rest/class/PEAR/Packager.php | 199 - src/vitis/vas/rest/class/PEAR/REST.php | 397 -- src/vitis/vas/rest/class/PEAR/REST/10.php | 797 --- src/vitis/vas/rest/class/PEAR/REST/11.php | 317 -- src/vitis/vas/rest/class/PEAR/REST/13.php | 280 - src/vitis/vas/rest/class/PEAR/Registry.php | 2236 -------- src/vitis/vas/rest/class/PEAR/Remote.php | 498 -- src/vitis/vas/rest/class/PEAR/RunTest.php | 927 ---- src/vitis/vas/rest/class/PEAR/Task/Common.php | 208 - .../class/PEAR/Task/Postinstallscript.php | 329 -- .../class/PEAR/Task/Postinstallscript/rw.php | 176 - .../vas/rest/class/PEAR/Task/Replace.php | 182 - .../vas/rest/class/PEAR/Task/Replace/rw.php | 67 - .../vas/rest/class/PEAR/Task/Unixeol.php | 83 - .../vas/rest/class/PEAR/Task/Unixeol/rw.php | 62 - .../vas/rest/class/PEAR/Task/Windowseol.php | 83 - .../rest/class/PEAR/Task/Windowseol/rw.php | 62 - src/vitis/vas/rest/class/PEAR/Validate.php | 634 --- .../vas/rest/class/PEAR/Validator/PECL.php | 63 - src/vitis/vas/rest/class/PEAR/XMLParser.php | 261 - .../class/PHPMailer/extras/EasyPeasyICS.php | 148 - .../vas/rest/class/PHPMailer/extras/README.md | 17 - .../class/PHPMailer/extras/htmlfilter.php | 1159 ---- .../PHPMailer/extras/ntlm_sasl_client.php | 185 - .../PHPMailer/language/phpmailer.lang-am.php | 26 - .../PHPMailer/language/phpmailer.lang-ar.php | 27 - .../PHPMailer/language/phpmailer.lang-az.php | 26 - .../PHPMailer/language/phpmailer.lang-ba.php | 26 - .../PHPMailer/language/phpmailer.lang-be.php | 26 - .../PHPMailer/language/phpmailer.lang-bg.php | 26 - .../PHPMailer/language/phpmailer.lang-ca.php | 26 - .../PHPMailer/language/phpmailer.lang-ch.php | 26 - .../PHPMailer/language/phpmailer.lang-cs.php | 25 - .../PHPMailer/language/phpmailer.lang-da.php | 26 - .../PHPMailer/language/phpmailer.lang-de.php | 25 - .../PHPMailer/language/phpmailer.lang-el.php | 25 - .../PHPMailer/language/phpmailer.lang-eo.php | 25 - .../PHPMailer/language/phpmailer.lang-es.php | 26 - .../PHPMailer/language/phpmailer.lang-et.php | 27 - .../PHPMailer/language/phpmailer.lang-fa.php | 27 - .../PHPMailer/language/phpmailer.lang-fi.php | 27 - .../PHPMailer/language/phpmailer.lang-fo.php | 26 - .../PHPMailer/language/phpmailer.lang-fr.php | 29 - .../PHPMailer/language/phpmailer.lang-gl.php | 26 - .../PHPMailer/language/phpmailer.lang-he.php | 26 - .../PHPMailer/language/phpmailer.lang-hi.php | 26 - .../PHPMailer/language/phpmailer.lang-hr.php | 26 - .../PHPMailer/language/phpmailer.lang-hu.php | 26 - .../PHPMailer/language/phpmailer.lang-id.php | 27 - .../PHPMailer/language/phpmailer.lang-it.php | 27 - .../PHPMailer/language/phpmailer.lang-ja.php | 27 - .../PHPMailer/language/phpmailer.lang-ka.php | 26 - .../PHPMailer/language/phpmailer.lang-ko.php | 26 - .../PHPMailer/language/phpmailer.lang-lt.php | 26 - .../PHPMailer/language/phpmailer.lang-lv.php | 26 - .../PHPMailer/language/phpmailer.lang-ms.php | 26 - .../PHPMailer/language/phpmailer.lang-nb.php | 25 - .../PHPMailer/language/phpmailer.lang-nl.php | 26 - .../PHPMailer/language/phpmailer.lang-pl.php | 26 - .../PHPMailer/language/phpmailer.lang-pt.php | 26 - .../language/phpmailer.lang-pt_br.php | 29 - .../PHPMailer/language/phpmailer.lang-ro.php | 26 - .../PHPMailer/language/phpmailer.lang-rs.php | 26 - .../PHPMailer/language/phpmailer.lang-ru.php | 27 - .../PHPMailer/language/phpmailer.lang-sk.php | 26 - .../PHPMailer/language/phpmailer.lang-sl.php | 26 - .../PHPMailer/language/phpmailer.lang-sr.php | 26 - .../PHPMailer/language/phpmailer.lang-sv.php | 26 - .../PHPMailer/language/phpmailer.lang-tr.php | 30 - .../PHPMailer/language/phpmailer.lang-uk.php | 27 - .../PHPMailer/language/phpmailer.lang-vi.php | 26 - .../PHPMailer/language/phpmailer.lang-zh.php | 28 - .../language/phpmailer.lang-zh_cn.php | 28 - .../rest/class/PHPMailer/src/Exception.php | 39 - .../vas/rest/class/PHPMailer/src/OAuth.php | 138 - .../rest/class/PHPMailer/src/PHPMailer.php | 4420 --------------- .../vas/rest/class/PHPMailer/src/POP3.php | 419 -- .../vas/rest/class/PHPMailer/src/SMTP.php | 1325 ----- .../AWS_Notification/AWS_SMS.class.inc | 56 - .../AWS_notification.class.inc | 87 - .../rest/class/aws_lib/AmazonAWS.class.inc | 485 -- .../class/aws_lib/AmazonApiGateway.class.inc | 124 - .../vas/rest/class/aws_lib/AmazonS3.class.inc | 375 -- .../vas/rest/class/treeview/LdapTree.php | 46 - src/vitis/vas/rest/class/treeview/Tree.php | 60 - src/vitis/vas/rest/class/treeview/aciTree.php | 56 - .../rest/class/vitis_lib/Connection.class.inc | 292 - .../rest/class/vitis_lib/DbClass.class.inc | 158 - .../vas/rest/class/vitis_lib/Form.class.inc | 151 - .../rest/class/vitis_lib/VitisError.class.inc | 73 - .../class/vitis_lib/XmlAbstract.class.inc | 256 - src/vitis/vas/rest/class/vmlib/BD.class.inc | 1873 ------- .../vas/rest/class/vmlib/BdDataAccess.inc | 20 - .../vas/rest/class/vmlib/Email.class.inc | 328 -- .../rest/class/vmlib/EmailTemplate.class.inc | 107 - .../class/vmlib/EmailTemplate.class.sql.inc | 4 - src/vitis/vas/rest/class/vmlib/Ldap.class.inc | 276 - .../class/vmlib/PgsqlDataAccess.class.inc | 497 -- .../rest/class/vmlib/PostgisUtil.class.inc | 61 - src/vitis/vas/rest/class/vmlib/Vm.class.inc | 891 --- .../vas/rest/class/vmlib/Vm.class.sql.inc | 30 - .../class/vmlib/class.websocket_client.php | 296 - .../vmlib/coffeescript/class.jstocoffee.php | 136 - .../vmlib/coffeescript/classes/errors.php | 15 - .../vmlib/coffeescript/classes/helpers.php | 236 - .../vmlib/coffeescript/classes/lexer.php | 1108 ---- .../vmlib/coffeescript/classes/nodes.php | 137 - .../coffeescript/classes/nodes/access.php | 32 - .../vmlib/coffeescript/classes/nodes/arr.php | 69 - .../coffeescript/classes/nodes/assign.php | 300 - .../vmlib/coffeescript/classes/nodes/base.php | 279 - .../coffeescript/classes/nodes/block.php | 226 - .../vmlib/coffeescript/classes/nodes/call.php | 271 - .../coffeescript/classes/nodes/class.php | 236 - .../coffeescript/classes/nodes/closure.php | 49 - .../vmlib/coffeescript/classes/nodes/code.php | 160 - .../coffeescript/classes/nodes/comment.php | 37 - .../coffeescript/classes/nodes/existence.php | 47 - .../coffeescript/classes/nodes/extends.php | 28 - .../vmlib/coffeescript/classes/nodes/for.php | 258 - .../vmlib/coffeescript/classes/nodes/if.php | 146 - .../vmlib/coffeescript/classes/nodes/in.php | 79 - .../coffeescript/classes/nodes/index.php | 27 - .../coffeescript/classes/nodes/literal.php | 93 - .../vmlib/coffeescript/classes/nodes/obj.php | 104 - .../vmlib/coffeescript/classes/nodes/op.php | 230 - .../coffeescript/classes/nodes/param.php | 62 - .../coffeescript/classes/nodes/parens.php | 50 - .../vmlib/coffeescript/classes/nodes/push.php | 19 - .../coffeescript/classes/nodes/range.php | 152 - .../coffeescript/classes/nodes/return.php | 56 - .../coffeescript/classes/nodes/slice.php | 48 - .../coffeescript/classes/nodes/splat.php | 95 - .../coffeescript/classes/nodes/switch.php | 116 - .../coffeescript/classes/nodes/throw.php | 37 - .../vmlib/coffeescript/classes/nodes/try.php | 67 - .../coffeescript/classes/nodes/value.php | 218 - .../coffeescript/classes/nodes/while.php | 101 - .../vmlib/coffeescript/classes/parser.php | 3291 ----------- .../vmlib/coffeescript/classes/rewriter.php | 641 --- .../vmlib/coffeescript/classes/scope.php | 189 - .../class/vmlib/coffeescript/coffeescript.php | 37 - .../rest/class/vmlib/coffeescript/jsmaker.php | 16 - .../vas/rest/class/vmlib/context/covage.inc | 12 - .../vas/rest/class/vmlib/context/gtf.inc | 62 - .../vas/rest/class/vmlib/context/message.inc | 12 - src/vitis/vas/rest/class/vmlib/cryptUtil.inc | 302 - .../vas/rest/class/vmlib/dateUtil.class.inc | 260 - src/vitis/vas/rest/class/vmlib/dbUtil.inc | 400 -- src/vitis/vas/rest/class/vmlib/error.inc | 70 - .../rest/class/vmlib/lang_vmlib/en-lang.inc | 114 - .../rest/class/vmlib/lang_vmlib/fr-lang.inc | 114 - src/vitis/vas/rest/class/vmlib/logUtil.inc | 198 - src/vitis/vas/rest/class/vmlib/phpUtil.inc | 744 --- src/vitis/vas/rest/class/vmlib/stringUtil.inc | 149 - .../class/wab_lib/BusinessObject.class.inc | 390 -- .../wab_lib/BusinessObject.class.sql.inc | 5 - .../vas/rest/ws/vitis/Accounts.class.mail.inc | 622 --- src/vitis/vas/sql/sqlQueries.xml | 948 ---- update.bat | 10 - utils/copy_hooks.sh | 14 - utils/get_deps.sh | 48 - utils/githooks/post-merge | 18 - utils/githooks/pre-push | 21 - utils/init_subtrees.sh | 48 - utils/init_symlinks.sh | 129 - utils/pull_subtrees.sh | 46 - utils/push_subtrees.sh | 37 - utils/utils/copy_hooks.bat | 3 - utils/utils/copy_hooks.sh | 14 - utils/utils/get_deps.sh | 47 - utils/utils/githooks/post-merge | 19 - utils/utils/githooks/pre-push | 22 - utils/utils/init_subtrees.sh | 48 - utils/utils/init_symlinks.sh | 159 - utils/utils/init_tree.bat | 99 - utils/utils/pull_subtrees.sh | 32 - utils/utils/push_subtrees.sh | 41 - utils/utils/update_tree.bat | 80 - {src/vitis/vas => vas}/doc/composer.json | 0 {src/vitis/vas => vas}/doc/composer.lock | 0 {src/vitis/vas => vas}/doc/css/reset.css | 0 {src/vitis/vas => vas}/doc/css/screen.css | 0 {src/vitis/vas => vas}/doc/css/style.css | 0 {src/vitis/vas => vas}/doc/images/gtf_ws.png | Bin {src/vitis/vas => vas}/doc/images/order.png | Bin .../vitis/vas => vas}/doc/images/overview.png | Bin {src/vitis/vas => vas}/doc/images/rest.png | Bin .../vitis/vas => vas}/doc/images/throbber.gif | Bin {src/vitis/vas => vas}/doc/images/token.png | Bin .../vas => vas}/doc/images/workspace.png | Bin {src/vitis/vas => vas}/doc/index.phtml | 0 .../doc/javascript/backbone-min.js | 0 .../doc/javascript/handlebars-1.0.0.js | 0 .../doc/javascript/handlebars-2.0.0.js | 0 .../doc/javascript/highlight.7.3.pack.js | 0 .../doc/javascript/jquery-1.8.0.min.js | 0 .../doc/javascript/jquery.ba-bbq.min.js | 0 .../doc/javascript/jquery.slideto.min.js | 0 .../doc/javascript/jquery.wiggle.min.js | 0 .../vas => vas}/doc/javascript/marked.js | 0 .../doc/javascript/shred.bundle.js | 0 .../doc/javascript/shred/content.js | 0 .../doc/javascript/swagger-oauth.js | 0 .../vas => vas}/doc/javascript/swagger-ui.js | 0 .../doc/javascript/swagger-ui.min.js | 0 .../doc/javascript/underscore-min.js | 0 .../doc/javascript/underscore-min.map | 0 {src/vitis/vas => vas}/doc/swagger.php | 0 .../vitis/vas => vas}/doc/vendor/autoload.php | 0 {src/vitis/vas => vas}/doc/vendor/bin/swagger | 0 .../doc/vendor/composer/ClassLoader.php | 0 .../vas => vas}/doc/vendor/composer/LICENSE | 0 .../doc/vendor/composer/autoload_classmap.php | 0 .../doc/vendor/composer/autoload_files.php | 0 .../vendor/composer/autoload_namespaces.php | 0 .../doc/vendor/composer/autoload_psr4.php | 0 .../doc/vendor/composer/autoload_real.php | 0 .../doc/vendor/composer/autoload_static.php | 0 .../doc/vendor/composer/installed.json | 0 .../doc/vendor/doctrine/annotations/LICENSE | 0 .../doc/vendor/doctrine/annotations/README.md | 0 .../vendor/doctrine/annotations/composer.json | 0 .../Common/Annotations/Annotation.php | 0 .../Annotations/Annotation/Attribute.php | 0 .../Annotations/Annotation/Attributes.php | 0 .../Common/Annotations/Annotation/Enum.php | 0 .../Annotation/IgnoreAnnotation.php | 0 .../Annotations/Annotation/Required.php | 0 .../Common/Annotations/Annotation/Target.php | 0 .../Annotations/AnnotationException.php | 0 .../Common/Annotations/AnnotationReader.php | 0 .../Common/Annotations/AnnotationRegistry.php | 0 .../Common/Annotations/CachedReader.php | 0 .../Doctrine/Common/Annotations/DocLexer.php | 0 .../Doctrine/Common/Annotations/DocParser.php | 0 .../Common/Annotations/FileCacheReader.php | 0 .../Common/Annotations/IndexedReader.php | 0 .../Doctrine/Common/Annotations/PhpParser.php | 0 .../Doctrine/Common/Annotations/Reader.php | 0 .../Annotations/SimpleAnnotationReader.php | 0 .../Common/Annotations/TokenParser.php | 0 .../doc/vendor/doctrine/lexer/LICENSE | 0 .../doc/vendor/doctrine/lexer/README.md | 0 .../doc/vendor/doctrine/lexer/composer.json | 0 .../Doctrine/Common/Lexer/AbstractLexer.php | 0 .../doc/vendor/symfony/finder/.gitignore | 0 .../finder/Adapter/AbstractAdapter.php | 0 .../finder/Adapter/AbstractFindAdapter.php | 0 .../finder/Adapter/AdapterInterface.php | 0 .../symfony/finder/Adapter/BsdFindAdapter.php | 0 .../symfony/finder/Adapter/GnuFindAdapter.php | 0 .../symfony/finder/Adapter/PhpAdapter.php | 0 .../doc/vendor/symfony/finder/CHANGELOG.md | 0 .../symfony/finder/Comparator/Comparator.php | 0 .../finder/Comparator/DateComparator.php | 0 .../finder/Comparator/NumberComparator.php | 0 .../Exception/AccessDeniedException.php | 0 .../Exception/AdapterFailureException.php | 0 .../finder/Exception/ExceptionInterface.php | 0 .../OperationNotPermitedException.php | 0 .../ShellCommandFailureException.php | 0 .../symfony/finder/Expression/Expression.php | 0 .../vendor/symfony/finder/Expression/Glob.php | 0 .../symfony/finder/Expression/Regex.php | 0 .../finder/Expression/ValueInterface.php | 0 .../doc/vendor/symfony/finder/Finder.php | 0 .../doc/vendor/symfony/finder/Glob.php | 0 .../finder/Iterator/CustomFilterIterator.php | 0 .../Iterator/DateRangeFilterIterator.php | 0 .../Iterator/DepthRangeFilterIterator.php | 0 .../ExcludeDirectoryFilterIterator.php | 0 .../finder/Iterator/FilePathsIterator.php | 0 .../Iterator/FileTypeFilterIterator.php | 0 .../Iterator/FilecontentFilterIterator.php | 0 .../Iterator/FilenameFilterIterator.php | 0 .../finder/Iterator/FilterIterator.php | 0 .../Iterator/MultiplePcreFilterIterator.php | 0 .../finder/Iterator/PathFilterIterator.php | 0 .../Iterator/RecursiveDirectoryIterator.php | 0 .../Iterator/SizeRangeFilterIterator.php | 0 .../finder/Iterator/SortableIterator.php | 0 .../doc/vendor/symfony/finder/LICENSE | 0 .../doc/vendor/symfony/finder/README.md | 0 .../vendor/symfony/finder/Shell/Command.php | 0 .../doc/vendor/symfony/finder/Shell/Shell.php | 0 .../doc/vendor/symfony/finder/SplFileInfo.php | 0 .../symfony/finder/Tests/BsdFinderTest.php | 0 .../Tests/Comparator/ComparatorTest.php | 0 .../Tests/Comparator/DateComparatorTest.php | 0 .../Tests/Comparator/NumberComparatorTest.php | 0 .../Tests/Expression/ExpressionTest.php | 0 .../finder/Tests/Expression/GlobTest.php | 0 .../finder/Tests/Expression/RegexTest.php | 0 .../finder/Tests/FakeAdapter/DummyAdapter.php | 0 .../Tests/FakeAdapter/FailingAdapter.php | 0 .../finder/Tests/FakeAdapter/NamedAdapter.php | 0 .../Tests/FakeAdapter/UnsupportedAdapter.php | 0 .../symfony/finder/Tests/FinderTest.php | 0 .../finder/Tests/Fixtures/A/B/C/abc.dat | 0 .../symfony/finder/Tests/Fixtures/A/B/ab.dat | 0 .../symfony/finder/Tests/Fixtures/A/a.dat | 0 .../Tests/Fixtures/copy/A/B/C/abc.dat.copy | 0 .../Tests/Fixtures/copy/A/B/ab.dat.copy | 0 .../finder/Tests/Fixtures/copy/A/a.dat.copy | 0 .../symfony/finder/Tests/Fixtures/dolor.txt | 0 .../symfony/finder/Tests/Fixtures/ipsum.txt | 0 .../symfony/finder/Tests/Fixtures/lorem.txt | 0 .../symfony/finder/Tests/Fixtures/one/a | 0 .../finder/Tests/Fixtures/one/b/c.neon | 0 .../finder/Tests/Fixtures/one/b/d.neon | 0 .../Fixtures/r+e.gex[c]a(r)s/dir/bar.dat | 0 .../finder/Tests/Fixtures/with space/foo.txt | 0 .../vendor/symfony/finder/Tests/GlobTest.php | 0 .../symfony/finder/Tests/GnuFinderTest.php | 0 .../Iterator/CustomFilterIteratorTest.php | 0 .../Iterator/DateRangeFilterIteratorTest.php | 0 .../Iterator/DepthRangeFilterIteratorTest.php | 0 .../ExcludeDirectoryFilterIteratorTest.php | 0 .../Tests/Iterator/FilePathsIteratorTest.php | 0 .../Iterator/FileTypeFilterIteratorTest.php | 0 .../FilecontentFilterIteratorTest.php | 0 .../Iterator/FilenameFilterIteratorTest.php | 0 .../Tests/Iterator/FilterIteratorTest.php | 0 .../finder/Tests/Iterator/Iterator.php | 0 .../Tests/Iterator/IteratorTestCase.php | 0 .../Tests/Iterator/MockFileListIterator.php | 0 .../finder/Tests/Iterator/MockSplFileInfo.php | 0 .../MultiplePcreFilterIteratorTest.php | 0 .../Tests/Iterator/PathFilterIteratorTest.php | 0 .../Tests/Iterator/RealIteratorTestCase.php | 0 .../RecursiveDirectoryIteratorTest.php | 0 .../Iterator/SizeRangeFilterIteratorTest.php | 0 .../Tests/Iterator/SortableIteratorTest.php | 0 .../finder/Tests/Shell/CommandTest.php | 0 .../doc/vendor/symfony/finder/composer.json | 0 .../vendor/symfony/finder/phpunit.xml.dist | 0 .../doc/vendor/zircote/swagger-php/.gitignore | 0 .../vendor/zircote/swagger-php/.travis.yml | 0 .../vendor/zircote/swagger-php/Changelog.md | 0 .../zircote/swagger-php/Examples/Examples.md | 0 .../petstore.swagger.io/ApiResponse.php | 0 .../controllers/PetController.php | 0 .../controllers/StoreController.php | 0 .../controllers/UserController.php | 0 .../petstore.swagger.io/models/Category.php | 0 .../petstore.swagger.io/models/Order.php | 0 .../petstore.swagger.io/models/Pet.php | 0 .../petstore.swagger.io/models/Tag.php | 0 .../petstore.swagger.io/models/User.php | 0 .../Examples/petstore.swagger.io/security.php | 0 .../petstore.swagger.io/swagger-v2.php | 0 .../Examples/petstore.swagger.io/tags.php | 0 .../petstore-simple/SimplePet.php | 0 .../petstore-simple/SimplePetsController.php | 0 .../swagger-spec/petstore-simple/api.php | 0 .../controllers/PetWithDocsController.php | 0 .../petstore-with-external-docs/docs.php | 0 .../models/ErrorModel.php | 0 .../models/Pet.php | 0 .../Examples/swagger-spec/petstore/Pet.php | 0 .../swagger-spec/petstore/PetsController.php | 0 .../Examples/swagger-spec/petstore/api.php | 0 .../zircote/swagger-php/LICENSE-2.0.txt | 0 .../doc/vendor/zircote/swagger-php/README.md | 0 .../doc/vendor/zircote/swagger-php/VERSION | 0 .../vendor/zircote/swagger-php/bin/swagger | 0 .../vendor/zircote/swagger-php/composer.json | 0 .../zircote/swagger-php/docs/Advanced.md | 0 .../swagger-php/docs/Getting-started.md | 0 .../swagger-php/docs/Migrating-to-v2.md | 0 .../swagger-php/docs/Related-projects.md | 0 .../zircote/swagger-php/phpunit.xml.dist | 0 .../zircote/swagger-php/src/Analyser.php | 0 .../zircote/swagger-php/src/Analysis.php | 0 .../src/Annotations/AbstractAnnotation.php | 0 .../swagger-php/src/Annotations/Contact.php | 0 .../src/Annotations/Definition.php | 0 .../swagger-php/src/Annotations/Delete.php | 0 .../src/Annotations/ExternalDocumentation.php | 0 .../swagger-php/src/Annotations/Get.php | 0 .../swagger-php/src/Annotations/Head.php | 0 .../swagger-php/src/Annotations/Header.php | 0 .../swagger-php/src/Annotations/Info.php | 0 .../swagger-php/src/Annotations/Items.php | 0 .../swagger-php/src/Annotations/License.php | 0 .../swagger-php/src/Annotations/Operation.php | 0 .../swagger-php/src/Annotations/Options.php | 0 .../swagger-php/src/Annotations/Parameter.php | 0 .../swagger-php/src/Annotations/Patch.php | 0 .../swagger-php/src/Annotations/Path.php | 0 .../swagger-php/src/Annotations/Post.php | 0 .../swagger-php/src/Annotations/Property.php | 0 .../swagger-php/src/Annotations/Put.php | 0 .../swagger-php/src/Annotations/Response.php | 0 .../swagger-php/src/Annotations/Schema.php | 0 .../src/Annotations/SecurityScheme.php | 0 .../swagger-php/src/Annotations/Swagger.php | 0 .../swagger-php/src/Annotations/Tag.php | 0 .../swagger-php/src/Annotations/Xml.php | 0 .../zircote/swagger-php/src/Context.php | 0 .../vendor/zircote/swagger-php/src/Logger.php | 0 .../src/Processors/AugmentDefinitions.php | 0 .../src/Processors/AugmentOperations.php | 0 .../src/Processors/AugmentParameters.php | 0 .../src/Processors/AugmentProperties.php | 0 .../swagger-php/src/Processors/BuildPaths.php | 0 .../src/Processors/CleanUnmerged.php | 0 .../src/Processors/HandleReferences.php | 0 .../src/Processors/InheritProperties.php | 0 .../src/Processors/MergeIntoSwagger.php | 0 .../zircote/swagger-php/src/Serializer.php | 0 .../swagger-php/src/StaticAnalyser.php | 0 .../vendor/zircote/swagger-php/src/Util.php | 0 .../zircote/swagger-php/src/functions.php | 0 .../tests/AbstractAnnotationTest.php | 0 .../swagger-php/tests/AnalyserTest.php | 0 .../swagger-php/tests/AnalysisTest.php | 0 .../tests/AugmentDefinitionsTest.php | 0 .../tests/AugmentOperationTest.php | 0 .../tests/AugmentParameterTest.php | 0 .../tests/AugmentPropertiesTest.php | 0 .../swagger-php/tests/BuildPathsTest.php | 0 .../swagger-php/tests/CleanUnmergedTest.php | 0 .../tests/CommandlineInterfaceTest.php | 0 .../swagger-php/tests/ConstantsTest.php | 0 .../zircote/swagger-php/tests/ContextTest.php | 0 .../tests/ExamplesOutput/petstore-simple.json | 0 .../petstore-with-external-docs.json | 0 .../tests/ExamplesOutput/petstore.json | 0 .../ExamplesOutput/petstore.swagger.io.json | 0 .../swagger-php/tests/ExamplesTest.php | 0 .../swagger-php/tests/Fixtures/Ancestor.php | 0 .../Fixtures/AncestorWithoutDocBlocks.php | 0 .../swagger-php/tests/Fixtures/Child.php | 0 .../tests/Fixtures/ChildWithDocBlocks.php | 0 .../swagger-php/tests/Fixtures/Customer.php | 0 .../tests/Fixtures/GrandAncestor.php | 0 .../swagger-php/tests/Fixtures/HelloTrait.php | 0 .../tests/Fixtures/NestedProperty.php | 0 .../tests/Fixtures/ThirdPartyAnnotations.php | 0 .../tests/Fixtures/UsingPhpDoc.php | 0 .../swagger-php/tests/Fixtures/UsingRefs.php | 0 .../swagger-php/tests/Fixtures/routes.php | 0 .../tests/InheritPropertiesTest.php | 0 .../zircote/swagger-php/tests/ItemsTest.php | 0 .../tests/MergeIntoSwaggerTest.php | 0 .../swagger-php/tests/NestedPropertyTest.php | 0 .../swagger-php/tests/ResponseTest.php | 0 .../swagger-php/tests/SerializerTest.php | 0 .../swagger-php/tests/StaticAnalyserTest.php | 0 .../swagger-php/tests/SwaggerTestCase.php | 0 .../zircote/swagger-php/tests/UtilTest.php | 0 .../tests/ValidateRelationsTest.php | 0 .../vas => vas}/public/studio/default.js | 0 {src/vitis/vas => vas}/rest/.htaccess | 0 .../vitis/vas => vas}/rest/conf/constants.inc | 0 {src/vitis/vas => vas}/rest/conf/php_conf.inc | 0 .../vas => vas}/rest/conf/properties.inc | 0 .../rest/conf/properties_domain.inc | 0 .../vas => vas}/rest/conf/properties_post.inc | 0 .../rest/conf/properties_server.inc | 0 .../rest/conf/selected_properties.inc | 0 {src/vitis/vas => vas}/rest/conf/version.inc | 0 .../rest/inc/MetadataAccess.class.inc | 0 .../rest/inc/MetadataAccess.sql.inc | 0 {src/vitis/vas => vas}/rest/index.phtml | 0 {src/vitis/vas => vas}/rest/index.vhtml | 0 .../rest/ws/vitis/Accounts.class.inc | 0 .../rest/ws/vitis}/Accounts.class.mail.inc | 1237 +++-- .../rest/ws/vitis/Accounts.class.sql.inc | 0 .../rest/ws/vitis/Action.class.inc | 0 .../rest/ws/vitis/Actions.class.inc | 0 .../rest/ws/vitis/ActiveDirectory.class.inc | 0 .../rest/ws/vitis/BillingGroup.class.inc | 0 .../rest/ws/vitis/BillingGroups.class.inc | 0 .../rest/ws/vitis/Column.class.inc | 0 .../rest/ws/vitis/Columns.class.inc | 0 .../rest/ws/vitis/Database.class.inc | 0 .../rest/ws/vitis/Domain.class.inc | 0 .../rest/ws/vitis/Domains.class.inc | 0 .../rest/ws/vitis/Exploitations.class.inc | 0 .../rest/ws/vitis/FormatDate.class.inc | 0 .../rest/ws/vitis/FormatDates.class.inc | 0 .../rest/ws/vitis/GenericQuery.class.inc | 0 .../rest/ws/vitis/GenericQuerys.class.inc | 0 .../rest/ws/vitis/GenericQuerys.class.sql.inc | 0 .../vas => vas}/rest/ws/vitis/Group.class.inc | 0 .../rest/ws/vitis/Groups.class.inc | 0 .../vas => vas}/rest/ws/vitis/Logs.class.inc | 0 .../vas => vas}/rest/ws/vitis/Mode.class.inc | 0 .../vas => vas}/rest/ws/vitis/Modes.class.inc | 0 .../rest/ws/vitis/PhpInfo.class.inc | 0 .../rest/ws/vitis/PrivateToken.class.inc | 0 .../rest/ws/vitis/Privilege.class.inc | 0 .../rest/ws/vitis/Privileges.class.inc | 0 .../rest/ws/vitis/Properties.class.inc | 0 .../rest/ws/vitis/PublicToken.class.inc | 0 .../rest/ws/vitis/Ressources.class.inc | 0 .../rest/ws/vitis/Schema.class.inc | 0 .../rest/ws/vitis/SmtpServer.class.inc | 0 .../vas => vas}/rest/ws/vitis/Tab.class.inc | 0 .../vas => vas}/rest/ws/vitis/Table.class.inc | 0 .../vas => vas}/rest/ws/vitis/Tabs.class.inc | 0 .../rest/ws/vitis/TimeZone.class.inc | 0 .../rest/ws/vitis/TimeZones.class.inc | 0 .../vas => vas}/rest/ws/vitis/User.class.inc | 0 .../vas => vas}/rest/ws/vitis/Users.class.inc | 0 .../rest/ws/vitis/Versions.class.inc | 0 .../vas => vas}/rest/ws/vitis/Vitis.class.inc | 0 .../rest/ws/vitis/Vitis.class.sql.inc | 0 .../rest/ws/vitis/VitisSection.class.inc | 0 .../rest/ws/vitis/VitisSections.class.inc | 0 .../rest/ws/vitis/WebServices.class.inc | 0 .../vas => vas}/rest/ws/vitis/overview.phtml | 0 {src/vitis/vas => vas}/tmp/file_to_delete.txt | 0 {src/vitis/vas => vas}/util/coordsys.txt | 0 .../util/migration/anc/SplitAddress.fmx | Bin .../util/migration/anc/lisez-moi.txt | 0 .../anc/migration_anc_veremap__vmap.fmw | Bin .../migration/migration_user_and_group.fmw | 0 .../migration/migration_veremap_layer.fmw | 0 .../printserver/client/lib/angular/LICENSE | 0 .../printserver/client/lib/angular/angular.js | 0 .../client/lib/angular/angular.min.js | 0 .../client/lib/angular/angular.min.js.map | 0 .../modules/angular-route/angular-route.js | 0 .../angular/modules/angular-translate/LICENSE | 0 .../angular-translate-loader-partial.js | 0 .../angular-translate-loader-partial.min.js | 0 .../angular-translate-loader-static-files.js | 0 ...gular-translate-loader-static-files.min.js | 0 .../angular-translate/angular-translate.js | 0 .../angular-translate.min.js | 0 .../modules/sanitize/angular-sanitize.js | 0 .../modules/sanitize/angular-sanitize.min.js | 0 .../sanitize/angular-sanitize.min.js.map | 0 .../lib/angular/modules/ui-codemirror/LICENSE | 0 .../ui-codemirror/ui-codemirror.min.js | 0 .../lib/angular/modules/ui-grid/LICENSE.md | 0 .../modules/ui-grid/plugins/draggable-rows.js | 0 .../lib/angular/modules/ui-grid/ui-grid.js | 0 .../angular/modules/ui-grid/ui-grid.min.js | 0 .../lib/angular/modules/ui-tinymce/LICENSE | 0 .../lib/angular/modules/ui-tinymce/tinymce.js | 0 .../printserver/client/lib/bootstrap/LICENSE | 0 .../lib/bootstrap/css/bootstrap-theme.css | 0 .../lib/bootstrap/css/bootstrap-theme.css.map | 0 .../lib/bootstrap/css/bootstrap-theme.min.css | 0 .../bootstrap/css/bootstrap-theme.min.css.map | 0 .../client/lib/bootstrap/css/bootstrap.css | 0 .../lib/bootstrap/css/bootstrap.css.map | 0 .../lib/bootstrap/css/bootstrap.min.css | 0 .../lib/bootstrap/css/bootstrap.min.css.map | 0 .../fonts/glyphicons-halflings-regular.eot | Bin .../fonts/glyphicons-halflings-regular.svg | 0 .../fonts/glyphicons-halflings-regular.ttf | Bin .../fonts/glyphicons-halflings-regular.woff | Bin .../fonts/glyphicons-halflings-regular.woff2 | Bin .../client/lib/bootstrap/js/bootstrap.js | 0 .../client/lib/bootstrap/js/bootstrap.min.js | 0 .../client/lib/bootstrap/js/npm.js | 0 .../client/lib/closure/goog/base.js | 0 .../printserver/client/lib/jquery/LICENSE.txt | 0 .../client/lib/jquery/jquery-1.11.3.js | 0 .../client/lib/jquery/jquery-1.11.3.min.js | 0 .../client/lib/jquery/jquery-1.11.3.min.map | 0 .../printserver/client/lib/mapJSON/MapJSON.js | 0 .../printserver/client/lib/ol/ol-debug.js | 0 .../util/printserver/client/lib/ol/ol.css | 0 .../util/printserver/client/lib/ol/ol.js | 0 .../client/lib/ol/ol3-ext/licence.txt | 0 .../client/lib/ol/ol3-ext/readme.txt | 0 .../ol/ol3-ext/style/fonts/fontawesome.def.js | 0 .../client/lib/ol/ol3-ext/style/fontsymbol.js | 0 .../lib/ol/ol3-ext/style/shadowstyle.js | 0 .../lib/ol/ol3-ext/utils/ol.ordering.js | 0 .../client/lib/ol/ol3-veremes/ol.veremes.js | 0 .../util/printserver/client/map/index.html | 0 .../util/printserver/client/map/index.js | 0 .../util/printserver/client/map/map.js | 0 .../util/printserver/client/map/progress.js | 0 .../printserver/client/map/projections.js | 0 .../util/printserver/client/map/scale.js | 0 .../util/printserver/client/report/index.html | 0 .../util/printserver/client/report/index.js | 0 .../util/printserver/client/report/report.js | 0 .../printserver/client/template/index.html | 0 .../util/printserver/client/template/index.js | 0 .../printserver/client/template/template.js | 0 .../util/printserver/client/utils/http.js | 0 .../printserver/client/utils/properties.js | 0 .../util/printserver/client/utils/utils.js | 0 .../util/printserver/server/printmap.js | 0 .../util/printserver/server/printreport.js | 0 .../util/printserver/server/printtemplate.js | 0 .../util/printserver/server/saveimage.js | 0 .../util/printserver/server/targetsize.js | 0 {src/vitis/vas => vas}/util/proxy/proxy.php | 0 .../webSocket/server/lib/SplClassLoader.php | 0 .../lib/WebSocket/Application/Application.php | 0 .../WebSocket/Application/DemoApplication.php | 0 .../lib/WebSocket/Application/GtfEvents.php | 0 .../lib/WebSocket/Application/Status.php | 0 .../Application/StatusApplication.php | 0 .../Application/VitisApplication.php | 0 .../lib/WebSocket/Application/VmapEvents.php | 0 .../server/lib/WebSocket/Connection.php | 0 .../webSocket/server/lib/WebSocket/Server.php | 0 .../webSocket/server/lib/WebSocket/Socket.php | 0 .../util/webSocket/server/server.pem | 0 .../util/webSocket/server/server.php | 0 {src/vitis/vas => vas}/util/writerpick.txt | 0 2650 files changed, 617 insertions(+), 102171 deletions(-) rename {src/vitis/_install => _install}/dependencies/mapserver/.htaccess (100%) rename {src/vitis/_install => _install}/dependencies/mapserver/linux/apache.conf (100%) rename {src/vitis/_install => _install}/dependencies/mapserver/windows/apache.conf (100%) rename {src/vitis/_install => _install}/dependencies/php/linux/apache.conf (100%) rename {src/vitis/_install => _install}/dependencies/php/php.ini (100%) rename {src/vitis/_install => _install}/dependencies/php/windows/apache.conf (100%) rename {src/vitis/_install => _install}/dependencies/pycron/crontab.txt (100%) rename {src/vitis/_install => _install}/dependencies/websocket/apache.conf (100%) rename {src/vitis/_install => _install}/dependencies/websocket/linux/websocket_vitis (100%) rename {src/vitis/_install => _install}/dependencies/websocket/websocket.cfg (100%) rename {src/vitis/_install => _install}/dependency.xml (100%) rename {src/vitis/client => client}/.htaccess (100%) rename {src/vitis/client => client}/css/icons/fonts/veremes.eot (100%) rename {src/vitis/client => client}/css/icons/fonts/veremes.svg (100%) rename {src/vitis/client => client}/css/icons/fonts/veremes.ttf (100%) rename {src/vitis/client => client}/css/icons/fonts/veremes.woff (100%) rename {src/vitis/client => client}/css/icons/selection.json (100%) rename {src/vitis/client => client}/css/icons/style.css (100%) rename {src/vitis/client => client}/css/lib/awesome-bootstrap-checkbox.css (100%) rename {src/vitis/client => client}/css/lib/bootstrap-checkbox/build.css (100%) rename {src/vitis/client => client}/css/lib/bootstrap-checkbox/font-awesome.css (100%) rename {src/vitis/client => client}/css/lib/bootstrap-checkbox/font-awesome.min.css (100%) rename {src/vitis/client => client}/css/lib/bootstrap/css/bootstrap-theme.css (100%) rename {src/vitis/client => client}/css/lib/bootstrap/css/bootstrap-theme.css.map (100%) rename {src/vitis/client => client}/css/lib/bootstrap/css/bootstrap-theme.min.css (100%) rename {src/vitis/client => client}/css/lib/bootstrap/css/bootstrap.css (100%) rename {src/vitis/client => client}/css/lib/bootstrap/css/bootstrap.css.map (100%) rename {src/vitis/client => client}/css/lib/bootstrap/css/bootstrap.min.css (100%) rename {src/vitis/client => client}/css/lib/bootstrap/fonts/glyphicons-halflings-regular.eot (100%) rename {src/vitis/client => client}/css/lib/bootstrap/fonts/glyphicons-halflings-regular.svg (100%) rename {src/vitis/client => client}/css/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf (100%) rename {src/vitis/client => client}/css/lib/bootstrap/fonts/glyphicons-halflings-regular.woff (100%) rename {src/vitis/client => client}/css/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2 (100%) rename {src/vitis/client => client}/css/lib/codemirror/codemirror.css (100%) rename {src/vitis/client => client}/css/lib/codemirror/codemirror_foldgutter.css (100%) rename {src/vitis/client => client}/css/lib/codemirror/dialog.css (100%) rename {src/vitis/client => client}/css/lib/codemirror/docs.css (100%) rename {src/vitis/client => client}/css/lib/codemirror/map.css (100%) rename {src/vitis/client => client}/css/lib/codemirror/show-hint.css (100%) rename {src/vitis/client => client}/css/lib/codemirror/theme/3024-day.css (100%) rename {src/vitis/client => client}/css/lib/codemirror/theme/3024-night.css (100%) rename {src/vitis/client => client}/css/lib/codemirror/theme/Veremes.css (100%) rename {src/vitis/client => client}/css/lib/codemirror/theme/abcdef.css (100%) rename {src/vitis/client => client}/css/lib/codemirror/theme/ambiance-mobile.css (100%) rename {src/vitis/client => client}/css/lib/codemirror/theme/ambiance.css (100%) rename {src/vitis/client => client}/css/lib/codemirror/theme/base16-dark.css (100%) rename {src/vitis/client => client}/css/lib/codemirror/theme/base16-light.css (100%) rename {src/vitis/client => client}/css/lib/codemirror/theme/bespin.css (100%) rename {src/vitis/client => client}/css/lib/codemirror/theme/blackboard.css (100%) rename {src/vitis/client => client}/css/lib/codemirror/theme/cobalt.css (100%) rename {src/vitis/client => client}/css/lib/codemirror/theme/colorforth.css (100%) rename {src/vitis/client => client}/css/lib/codemirror/theme/dracula.css (100%) rename {src/vitis/client => client}/css/lib/codemirror/theme/eclipse.css (100%) rename {src/vitis/client => client}/css/lib/codemirror/theme/elegant.css (100%) rename {src/vitis/client => client}/css/lib/codemirror/theme/erlang-dark.css (100%) rename {src/vitis/client => client}/css/lib/codemirror/theme/hopscotch.css (100%) rename {src/vitis/client => client}/css/lib/codemirror/theme/icecoder.css (100%) rename {src/vitis/client => client}/css/lib/codemirror/theme/isotope.css (100%) rename {src/vitis/client => client}/css/lib/codemirror/theme/lesser-dark.css (100%) rename {src/vitis/client => client}/css/lib/codemirror/theme/liquibyte.css (100%) rename {src/vitis/client => client}/css/lib/codemirror/theme/material.css (100%) rename {src/vitis/client => client}/css/lib/codemirror/theme/mbo.css (100%) rename {src/vitis/client => client}/css/lib/codemirror/theme/mdn-like.css (100%) rename {src/vitis/client => client}/css/lib/codemirror/theme/midnight.css (100%) rename {src/vitis/client => client}/css/lib/codemirror/theme/monokai.css (100%) rename {src/vitis/client => client}/css/lib/codemirror/theme/neat.css (100%) rename {src/vitis/client => client}/css/lib/codemirror/theme/neo.css (100%) rename {src/vitis/client => client}/css/lib/codemirror/theme/night.css (100%) rename {src/vitis/client => client}/css/lib/codemirror/theme/paraiso-dark.css (100%) rename {src/vitis/client => client}/css/lib/codemirror/theme/paraiso-light.css (100%) rename {src/vitis/client => client}/css/lib/codemirror/theme/pastel-on-dark.css (100%) rename {src/vitis/client => client}/css/lib/codemirror/theme/railscasts.css (100%) rename {src/vitis/client => client}/css/lib/codemirror/theme/rubyblue.css (100%) rename {src/vitis/client => client}/css/lib/codemirror/theme/seti.css (100%) rename {src/vitis/client => client}/css/lib/codemirror/theme/solarized.css (100%) rename {src/vitis/client => client}/css/lib/codemirror/theme/the-matrix.css (100%) rename {src/vitis/client => client}/css/lib/codemirror/theme/tomorrow-night-bright.css (100%) rename {src/vitis/client => client}/css/lib/codemirror/theme/tomorrow-night-eighties.css (100%) rename {src/vitis/client => client}/css/lib/codemirror/theme/ttcn.css (100%) rename {src/vitis/client => client}/css/lib/codemirror/theme/twilight.css (100%) rename {src/vitis/client => client}/css/lib/codemirror/theme/vibrant-ink.css (100%) rename {src/vitis/client => client}/css/lib/codemirror/theme/xq-dark.css (100%) rename {src/vitis/client => client}/css/lib/codemirror/theme/xq-light.css (100%) rename {src/vitis/client => client}/css/lib/codemirror/theme/yeti.css (100%) rename {src/vitis/client => client}/css/lib/codemirror/theme/zenburn.css (100%) rename {src/vitis/client => client}/css/lib/font-awesome/HELP-US-OUT.txt (100%) rename {src/vitis/client => client}/css/lib/font-awesome/css/font-awesome.css (100%) rename {src/vitis/client => client}/css/lib/font-awesome/css/font-awesome.min.css (100%) rename {src/vitis/client => client}/css/lib/font-awesome/fonts/FontAwesome.otf (100%) rename {src/vitis/client => client}/css/lib/font-awesome/fonts/fontawesome-webfont.eot (100%) rename {src/vitis/client => client}/css/lib/font-awesome/fonts/fontawesome-webfont.svg (100%) rename {src/vitis/client => client}/css/lib/font-awesome/fonts/fontawesome-webfont.ttf (100%) rename {src/vitis/client => client}/css/lib/font-awesome/fonts/fontawesome-webfont.woff (100%) rename {src/vitis/client => client}/css/lib/font-awesome/fonts/fontawesome-webfont.woff2 (100%) rename {src/vitis/client => client}/css/lib/font-awesome/less/animated.less (100%) rename {src/vitis/client => client}/css/lib/font-awesome/less/bordered-pulled.less (100%) rename {src/vitis/client => client}/css/lib/font-awesome/less/core.less (100%) rename {src/vitis/client => client}/css/lib/font-awesome/less/fixed-width.less (100%) rename {src/vitis/client => client}/css/lib/font-awesome/less/font-awesome.less (100%) rename {src/vitis/client => client}/css/lib/font-awesome/less/icons.less (100%) rename {src/vitis/client => client}/css/lib/font-awesome/less/larger.less (100%) rename {src/vitis/client => client}/css/lib/font-awesome/less/list.less (100%) rename {src/vitis/client => client}/css/lib/font-awesome/less/mixins.less (100%) rename {src/vitis/client => client}/css/lib/font-awesome/less/path.less (100%) rename {src/vitis/client => client}/css/lib/font-awesome/less/rotated-flipped.less (100%) rename {src/vitis/client => client}/css/lib/font-awesome/less/stacked.less (100%) rename {src/vitis/client => client}/css/lib/font-awesome/less/variables.less (100%) rename {src/vitis/client => client}/css/lib/font-awesome/scss/_animated.scss (100%) rename {src/vitis/client => client}/css/lib/font-awesome/scss/_bordered-pulled.scss (100%) rename {src/vitis/client => client}/css/lib/font-awesome/scss/_core.scss (100%) rename {src/vitis/client => client}/css/lib/font-awesome/scss/_fixed-width.scss (100%) rename {src/vitis/client => client}/css/lib/font-awesome/scss/_icons.scss (100%) rename {src/vitis/client => client}/css/lib/font-awesome/scss/_larger.scss (100%) rename {src/vitis/client => client}/css/lib/font-awesome/scss/_list.scss (100%) rename {src/vitis/client => client}/css/lib/font-awesome/scss/_mixins.scss (100%) rename {src/vitis/client => client}/css/lib/font-awesome/scss/_path.scss (100%) rename {src/vitis/client => client}/css/lib/font-awesome/scss/_rotated-flipped.scss (100%) rename {src/vitis/client => client}/css/lib/font-awesome/scss/_stacked.scss (100%) rename {src/vitis/client => client}/css/lib/font-awesome/scss/_variables.scss (100%) rename {src/vitis/client => client}/css/lib/font-awesome/scss/font-awesome.scss (100%) rename {src/vitis/client => client}/css/lib/fonts/FontAwesome.otf (100%) rename {src/vitis/client => client}/css/lib/fonts/fontawesome-webfont.eot (100%) rename {src/vitis/client => client}/css/lib/fonts/fontawesome-webfont.svg (100%) rename {src/vitis/client => client}/css/lib/fonts/fontawesome-webfont.ttf (100%) rename {src/vitis/client => client}/css/lib/fonts/fontawesome-webfont.woff (100%) rename {src/vitis/client => client}/css/lib/fonts/fontawesome-webfont.woff2 (100%) rename {src/vitis/client => client}/css/lib/fonts/glyphicons-halflings-regular.eot (100%) rename {src/vitis/client => client}/css/lib/fonts/glyphicons-halflings-regular.svg (100%) rename {src/vitis/client => client}/css/lib/fonts/glyphicons-halflings-regular.ttf (100%) rename {src/vitis/client => client}/css/lib/fonts/glyphicons-halflings-regular.woff (100%) rename {src/vitis/client => client}/css/lib/fonts/glyphicons-halflings-regular.woff2 (100%) rename {src/vitis/client => client}/css/lib/jquery/plugins/bootstrap-colorpicker/css/bootstrap-colorpicker.min.css (100%) rename {src/vitis/client => client}/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/alpha-horizontal.png (100%) rename {src/vitis/client => client}/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/alpha.png (100%) rename {src/vitis/client => client}/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/hue-horizontal.png (100%) rename {src/vitis/client => client}/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/hue.png (100%) rename {src/vitis/client => client}/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/saturation.png (100%) rename {src/vitis/client => client}/css/lib/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker3.css (100%) rename {src/vitis/client => client}/css/lib/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker3.min.css (100%) rename {src/vitis/client => client}/css/lib/jquery/plugins/bootstrap-fileinput/css/fileinput.css (100%) rename {src/vitis/client => client}/css/lib/jquery/plugins/bootstrap-fileinput/css/fileinput.min.css (100%) rename {src/vitis/client => client}/css/lib/jquery/plugins/bootstrap-fileinput/img/loading-sm.gif (100%) rename {src/vitis/client => client}/css/lib/jquery/plugins/bootstrap-fileinput/img/loading.gif (100%) rename {src/vitis/client => client}/css/lib/jquery/plugins/bootstrap-slider/bootstrap-slider.min.css (100%) rename {src/vitis/client => client}/css/lib/jquery/plugins/bootstrap-tagsinput/bootstrap-tagsinput.css (100%) rename {src/vitis/client => client}/css/lib/jquery/plugins/bootstrap-treeview/bootstrap-treeview.css (100%) rename {src/vitis/client => client}/css/lib/jquery/plugins/bootstrap-treeview/bootstrap-treeview.min.css (100%) rename {src/vitis/client => client}/css/lib/jquery/plugins/malihu-custom-scrollbar/jquery.mCustomScrollbar.min.css (100%) rename {src/vitis/client => client}/css/lib/materialize/materialize.css (100%) rename {src/vitis/client => client}/css/lib/materialize/materialize.min.css (100%) rename {src/vitis/client => client}/css/lib/openlayers/ol.css (100%) rename {src/vitis/client => client}/css/lib/ui-grid/plugins/draggable-rows.less (100%) rename {src/vitis/client => client}/css/lib/ui-grid/ui-grid.css (100%) rename {src/vitis/client => client}/css/lib/ui-grid/ui-grid.eot (100%) rename {src/vitis/client => client}/css/lib/ui-grid/ui-grid.min.css (100%) rename {src/vitis/client => client}/css/lib/ui-grid/ui-grid.svg (100%) rename {src/vitis/client => client}/css/lib/ui-grid/ui-grid.ttf (100%) rename {src/vitis/client => client}/css/lib/ui-grid/ui-grid.woff (100%) rename {src/vitis/client => client}/css/lib/viewer/viewer.min.css (100%) rename {src/vitis/client => client}/forms/forgotten_password.json (100%) rename {src/vitis/client => client}/forms/login.js (100%) rename {src/vitis/client => client}/forms/login.json (100%) rename {src/vitis/client => client}/forms/sign_up.json (100%) rename {src/vitis/client => client}/images/ajax-big-loader.GIF (100%) rename {src/vitis/client => client}/images/ajax-load-big.gif (100%) rename {src/vitis/client => client}/images/ajax-load.gif (100%) rename {src/vitis/client => client}/images/bandeau.png (100%) rename {src/vitis/client => client}/images/custom.png (100%) rename {src/vitis/client => client}/images/disconnect_button.png (100%) rename {src/vitis/client => client}/images/download.png (100%) rename {src/vitis/client => client}/images/editer.png (100%) rename {src/vitis/client => client}/images/enveloppe.png (100%) rename {src/vitis/client => client}/images/false.png (100%) rename {src/vitis/client => client}/images/favicon.ico (100%) rename {src/vitis/client => client}/images/i.png (100%) rename {src/vitis/client => client}/images/icons/geolocation_marker.png (100%) rename {src/vitis/client => client}/images/icons/geolocation_marker_heading.png (100%) rename {src/vitis/client => client}/images/icons/icon-arrow-FME.png (100%) rename {src/vitis/client => client}/images/icons/icon-arrow-FME2.png (100%) rename {src/vitis/client => client}/images/icons/icon-filtrage.png (100%) rename {src/vitis/client => client}/images/icons/icons-down-search-arrow.png (100%) rename {src/vitis/client => client}/images/icons/icons-right-search-arrow.png (100%) rename {src/vitis/client => client}/images/logo-veremes.jpg (100%) rename {src/vitis/client => client}/images/logo-veremes.png (100%) rename {src/vitis/client => client}/images/mode/configuration.png (100%) rename {src/vitis/client => client}/images/mode/development.png (100%) rename {src/vitis/client => client}/images/mode/engine.png (100%) rename {src/vitis/client => client}/images/mode/help.png (100%) rename {src/vitis/client => client}/images/mode/logs.png (100%) rename {src/vitis/client => client}/images/mode/my_work.png (100%) rename {src/vitis/client => client}/images/mode/publication.png (100%) rename {src/vitis/client => client}/images/mode/statistics.png (100%) rename {src/vitis/client => client}/images/mode/supervision.png (100%) rename {src/vitis/client => client}/images/mode/user.png (100%) rename {src/vitis/client => client}/images/mode/users.png (100%) rename {src/vitis/client => client}/images/mode/vmap.png (100%) rename {src/vitis/client => client}/images/page.png (100%) rename {src/vitis/client => client}/images/sql_list/st1.gif (100%) rename {src/vitis/client => client}/images/sql_list/st1.png (100%) rename {src/vitis/client => client}/images/sql_list/st2.png (100%) rename {src/vitis/client => client}/images/sql_list/st3.png (100%) rename {src/vitis/client => client}/images/sql_list/st4.png (100%) rename {src/vitis/client => client}/images/sql_list/st5.gif (100%) rename {src/vitis/client => client}/images/sql_list/st6.png (100%) rename {src/vitis/client => client}/images/true.png (100%) rename {src/vitis/client => client}/images/ui-grid/wbg.gif (100%) rename {src/vitis/client => client}/images/visualiser.png (100%) rename {src/vitis/client => client}/images/wk_params.png (100%) rename {src/vitis/client => client}/index.html (100%) rename {src/vitis/client => client}/javascript/app/app.js (100%) rename {src/vitis/client => client}/javascript/app/config.js (100%) rename {src/vitis/client => client}/javascript/app/controllers/doubleFormCtrl.js (100%) rename {src/vitis/client => client}/javascript/app/controllers/htmlFormCtrl.js (100%) rename {src/vitis/client => client}/javascript/app/controllers/initCtrl.js (100%) rename {src/vitis/client => client}/javascript/app/controllers/loginCtrl.js (100%) rename {src/vitis/client => client}/javascript/app/controllers/mainCtrl.js (100%) rename {src/vitis/client => client}/javascript/app/controllers/sectionFormCtrl.js (100%) rename {src/vitis/client => client}/javascript/app/controllers/simpleFormCtrl.js (100%) rename {src/vitis/client => client}/javascript/app/controllers/workspaceListCtrl.js (100%) rename {src/vitis/client => client}/javascript/app/directives/doubleFormDrtv.js (100%) rename {src/vitis/client => client}/javascript/app/directives/htmlFormDrtv.js (100%) rename {src/vitis/client => client}/javascript/app/directives/initDrtv.js (100%) rename {src/vitis/client => client}/javascript/app/directives/loginDrtv.js (100%) rename {src/vitis/client => client}/javascript/app/directives/mainDrtv.js (100%) rename {src/vitis/client => client}/javascript/app/directives/sectionFormDrtv.js (100%) rename {src/vitis/client => client}/javascript/app/directives/simpleFormDrtv.js (100%) rename {src/vitis/client => client}/javascript/app/directives/workspaceListDrtv.js (100%) rename {src/vitis/client => client}/javascript/app/loadApp.js (100%) rename {src/vitis/client => client}/javascript/app/loadExternalFiles.js (100%) rename {src/vitis/client => client}/javascript/app/modules/mainMod.js (100%) rename {src/vitis/client => client}/javascript/app/script_client.js (100%) rename {src/vitis/client => client}/javascript/app/services/formSrvc.js (100%) rename {src/vitis/client => client}/javascript/app/services/mainSrvc.js (100%) rename {src/vitis/client => client}/javascript/app/vitiswebsocket.js (100%) rename {src/vitis/client => client}/javascript/externs/LICENSE (100%) rename {src/vitis/client => client}/javascript/externs/alasql/alasql.min.js (100%) rename {src/vitis/client => client}/javascript/externs/alasql/xlsx.core.min.js (100%) rename {src/vitis/client => client}/javascript/externs/angular-bind-notifier/LICENSE (100%) rename {src/vitis/client => client}/javascript/externs/angular-bind-notifier/bindNotifier.js (100%) rename {src/vitis/client => client}/javascript/externs/angular-ui-codemirror/LICENSE (100%) rename {src/vitis/client => client}/javascript/externs/angular-ui-codemirror/ui-codemirror.js (100%) rename {src/vitis/client => client}/javascript/externs/angular-ui-codemirror/ui-codemirror.min.js (100%) rename {src/vitis/client => client}/javascript/externs/angular/LICENSE (100%) rename {src/vitis/client => client}/javascript/externs/angular/angular.js (100%) rename {src/vitis/client => client}/javascript/externs/angular/angular.min.js (100%) rename {src/vitis/client => client}/javascript/externs/angular/angular.min.js.map (100%) rename {src/vitis/client => client}/javascript/externs/angular/modules/angular-translate/LICENSE (100%) rename {src/vitis/client => client}/javascript/externs/angular/modules/angular-translate/angular-translate-loader-partial.js (100%) rename {src/vitis/client => client}/javascript/externs/angular/modules/angular-translate/angular-translate-loader-partial.min.js (100%) rename {src/vitis/client => client}/javascript/externs/angular/modules/angular-translate/angular-translate-loader-static-files.js (100%) rename {src/vitis/client => client}/javascript/externs/angular/modules/angular-translate/angular-translate-loader-static-files.min.js (100%) rename {src/vitis/client => client}/javascript/externs/angular/modules/angular-translate/angular-translate.js (100%) rename {src/vitis/client => client}/javascript/externs/angular/modules/angular-translate/angular-translate.min.js (100%) rename {src/vitis/client => client}/javascript/externs/angular/modules/sanitize/angular-sanitize.js (100%) rename {src/vitis/client => client}/javascript/externs/angular/modules/sanitize/angular-sanitize.min.js (100%) rename {src/vitis/client => client}/javascript/externs/angular/modules/sanitize/angular-sanitize.min.js.map (100%) rename {src/vitis/client => client}/javascript/externs/angular/modules/ui-codemirror/LICENSE (100%) rename {src/vitis/client => client}/javascript/externs/angular/modules/ui-codemirror/ui-codemirror.min.js (100%) rename {src/vitis/client => client}/javascript/externs/angular/modules/ui-grid/LICENSE.md (100%) rename {src/vitis/client => client}/javascript/externs/angular/modules/ui-grid/plugins/draggable-rows.js (100%) rename {src/vitis/client => client}/javascript/externs/angular/modules/ui-grid/ui-grid.js (100%) rename {src/vitis/client => client}/javascript/externs/angular/modules/ui-grid/ui-grid.min.js (100%) rename {src/vitis/client => client}/javascript/externs/angular/modules/ui-tinymce/LICENSE (100%) rename {src/vitis/client => client}/javascript/externs/angular/modules/ui-tinymce/tinymce.js (100%) rename {src/vitis/client => client}/javascript/externs/bootbox/LICENSE.md (100%) rename {src/vitis/client => client}/javascript/externs/bootbox/bootbox.min.js (100%) rename {src/vitis/client => client}/javascript/externs/bootstrap/LICENSE (100%) rename {src/vitis/client => client}/javascript/externs/bootstrap/bootstrap.js (100%) rename {src/vitis/client => client}/javascript/externs/bootstrap/bootstrap.min.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/LICENSE (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/comment/comment.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/comment/continuecomment.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/dialog/dialog.css (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/dialog/dialog.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/display/autorefresh.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/display/fullscreen.css (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/display/fullscreen.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/display/panel.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/display/placeholder.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/display/rulers.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/edit/closebrackets.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/edit/closetag.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/edit/continuelist.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/edit/matchbrackets.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/edit/matchtags.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/edit/trailingspace.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/fold/brace-fold.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/fold/comment-fold.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/fold/foldcode.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/fold/foldgutter.css (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/fold/foldgutter.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/fold/indent-fold.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/fold/markdown-fold.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/fold/xml-fold.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/hint/anyword-hint.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/hint/css-hint.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/hint/html-hint.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/hint/javascript-hint.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/hint/show-hint.css (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/hint/show-hint.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/hint/sql-hint.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/hint/xml-hint.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/keymap/sublime.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/lint/coffeescript-lint.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/lint/css-lint.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/lint/html-lint.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/lint/javascript-lint.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/lint/json-lint.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/lint/lint.css (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/lint/lint.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/lint/yaml-lint.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/merge/merge.css (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/merge/merge.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/mode/loadmode.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/mode/multiplex.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/mode/multiplex_test.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/mode/overlay.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/mode/simple.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/runmode/colorize.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/runmode/runmode-standalone.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/runmode/runmode.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/runmode/runmode.node.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/scroll/annotatescrollbar.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/scroll/scrollpastend.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/scroll/simplescrollbars.css (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/scroll/simplescrollbars.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/search/jump-to-line.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/search/match-highlighter.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/search/matchesonscrollbar.css (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/search/matchesonscrollbar.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/search/search.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/search/searchcursor.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/selection/active-line.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/selection/mark-selection.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/selection/selection-pointer.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/tern/tern.css (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/tern/tern.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/tern/worker.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/addon/wrap/hardwrap.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/clike.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/codemirror.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/codemirror.min.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/css.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/htmlmixed.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/javascript.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/map.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/php.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/show-hint.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/sql.js (100%) rename {src/vitis/client => client}/javascript/externs/codemirror/xml.js (100%) rename {src/vitis/client => client}/javascript/externs/formReader/component/component.js (100%) rename {src/vitis/client => client}/javascript/externs/formReader/component/map.js (100%) rename {src/vitis/client => client}/javascript/externs/formReader/component/map_workbench/map_workbench.html (100%) rename {src/vitis/client => client}/javascript/externs/formReader/component/map_workbench/map_workbench.js (100%) rename {src/vitis/client => client}/javascript/externs/formReader/formReader.html (100%) rename {src/vitis/client => client}/javascript/externs/formReader/formReader.js (100%) rename {src/vitis/client => client}/javascript/externs/formReader/formReaderCtrl.js (100%) rename {src/vitis/client => client}/javascript/externs/formReader/formReaderDrtv.js (100%) rename {src/vitis/client => client}/javascript/externs/formReader/formReaderSrvc.js (100%) rename {src/vitis/client => client}/javascript/externs/jquery/LICENSE.txt (100%) rename {src/vitis/client => client}/javascript/externs/jquery/jquery-1.11.3.js (100%) rename {src/vitis/client => client}/javascript/externs/jquery/jquery-1.11.3.min.js (100%) rename {src/vitis/client => client}/javascript/externs/jquery/jquery-1.11.3.min.map (100%) rename {src/vitis/client => client}/javascript/externs/jquery/plugins/bootbox/bootbox.js (100%) rename {src/vitis/client => client}/javascript/externs/jquery/plugins/bootbox/bootbox.min.js (100%) rename {src/vitis/client => client}/javascript/externs/jquery/plugins/bootstrap-colorpicker/bootstrap-colorpicker.min.js (100%) rename {src/vitis/client => client}/javascript/externs/jquery/plugins/bootstrap-colorpicker/js/bootstrap-colorpicker.js (100%) rename {src/vitis/client => client}/javascript/externs/jquery/plugins/bootstrap-colorpicker/js/bootstrap-colorpicker.min.js (100%) rename {src/vitis/client => client}/javascript/externs/jquery/plugins/bootstrap-confirmation/bootstrap-confirmation.min.js (100%) rename {src/vitis/client => client}/javascript/externs/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker.js (100%) rename {src/vitis/client => client}/javascript/externs/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker.min.js (100%) rename {src/vitis/client => client}/javascript/externs/jquery/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.fr.min.js (100%) rename {src/vitis/client => client}/javascript/externs/jquery/plugins/bootstrap-datetimepicker/bootstrap-datetimepicker.min.js (100%) rename {src/vitis/client => client}/javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput.js (100%) rename {src/vitis/client => client}/javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput.min.js (100%) rename {src/vitis/client => client}/javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput_locale_fr.js (100%) rename {src/vitis/client => client}/javascript/externs/jquery/plugins/bootstrap-slider/bootstrap-slider.min.js (100%) rename {src/vitis/client => client}/javascript/externs/jquery/plugins/bootstrap-tagsinput/bootstrap-tagsinput.min.js (100%) rename {src/vitis/client => client}/javascript/externs/jquery/plugins/bootstrap-treeview/bootstrap-treeview.js (100%) rename {src/vitis/client => client}/javascript/externs/jquery/plugins/bootstrap-treeview/bootstrap-treeview.min.js (100%) rename {src/vitis/client => client}/javascript/externs/jquery/plugins/malihu-custom-scrollbar/jquery.mCustomScrollbar.concat.min.js (100%) rename {src/vitis/client => client}/javascript/externs/jquery/plugins/notify/notify.js (100%) rename {src/vitis/client => client}/javascript/externs/jquery/plugins/notify/notify.min.js (100%) rename {src/vitis/client => client}/javascript/externs/less/LICENSE (100%) rename {src/vitis/client => client}/javascript/externs/less/less.min.js (100%) rename {src/vitis/client => client}/javascript/externs/letter-avatar/ngletteravatar.js (100%) rename {src/vitis/client => client}/javascript/externs/letter-avatar/ngletteravatar.min.js (100%) rename {src/vitis/client => client}/javascript/externs/mapJSON/MapJSON.js (100%) rename {src/vitis/client => client}/javascript/externs/materialize/materialize.js (100%) rename {src/vitis/client => client}/javascript/externs/materialize/materialize.min.js (100%) rename {src/vitis/client => client}/javascript/externs/mobile-detect/LICENSE (100%) rename {src/vitis/client => client}/javascript/externs/mobile-detect/mobile-detect.js (100%) rename {src/vitis/client => client}/javascript/externs/mobile-detect/mobile-detect.min.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/LICENSE (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/af.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/ar-ma.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/ar-sa.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/ar-tn.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/ar.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/az.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/be.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/bg.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/bn.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/bo.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/br.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/bs.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/ca.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/cs.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/cv.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/cy.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/da.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/de-at.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/de.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/dv.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/el.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/en-au.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/en-ca.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/en-gb.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/en-ie.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/en-nz.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/eo.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/es.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/et.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/eu.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/fa.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/fi.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/fo.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/fr-ca.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/fr-ch.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/fr.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/fy.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/gd.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/gl.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/he.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/hi.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/hr.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/hu.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/hy-am.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/id.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/is.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/it.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/ja.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/jv.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/ka.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/kk.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/km.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/ko.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/lb.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/lo.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/lt.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/lv.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/me.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/mk.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/ml.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/mr.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/ms-my.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/ms.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/my.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/nb.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/ne.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/nl.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/nn.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/pl.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/pt-br.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/pt.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/ro.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/ru.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/se.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/si.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/sk.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/sl.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/sq.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/sr-cyrl.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/sr.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/sv.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/sw.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/ta.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/te.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/th.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/tl-ph.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/tlh.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/tr.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/tzl.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/tzm-latn.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/tzm.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/uk.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/uz.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/vi.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/zh-cn.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/locale/zh-tw.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/min/locales.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/min/locales.min.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/min/moment-with-locales.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/min/moment-with-locales.min.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/min/moment.min.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/min/tests.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/moment.min.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/create/check-overflow.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/create/date-from-array.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/create/from-anything.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/create/from-array.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/create/from-object.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/create/from-string-and-array.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/create/from-string-and-format.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/create/from-string.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/create/local.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/create/parsing-flags.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/create/utc.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/create/valid.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/duration/abs.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/duration/add-subtract.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/duration/as.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/duration/bubble.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/duration/constructor.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/duration/create.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/duration/duration.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/duration/get.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/duration/humanize.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/duration/iso-string.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/duration/prototype.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/format/format.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/locale/calendar.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/locale/constructor.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/locale/en.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/locale/formats.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/locale/invalid.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/locale/lists.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/locale/locale.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/locale/locales.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/locale/ordinal.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/locale/pre-post-format.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/locale/prototype.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/locale/relative.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/locale/set.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/moment/add-subtract.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/moment/calendar.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/moment/clone.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/moment/compare.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/moment/constructor.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/moment/creation-data.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/moment/diff.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/moment/format.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/moment/from.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/moment/get-set.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/moment/locale.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/moment/min-max.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/moment/moment.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/moment/now.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/moment/prototype.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/moment/start-end-of.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/moment/to-type.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/moment/to.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/moment/valid.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/parse/regex.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/parse/token.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/units/aliases.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/units/constants.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/units/day-of-month.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/units/day-of-week.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/units/day-of-year.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/units/hour.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/units/millisecond.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/units/minute.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/units/month.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/units/offset.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/units/quarter.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/units/second.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/units/timestamp.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/units/timezone.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/units/units.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/units/week-calendar-utils.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/units/week-year.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/units/week.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/units/year.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/utils/abs-ceil.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/utils/abs-floor.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/utils/compare-arrays.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/utils/defaults.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/utils/deprecate.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/utils/extend.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/utils/has-own-prop.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/utils/hooks.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/utils/is-array.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/utils/is-date.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/utils/is-function.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/utils/is-undefined.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/utils/map.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/utils/to-int.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/lib/utils/zero-fill.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/af.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/ar-ma.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/ar-sa.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/ar-tn.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/ar.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/az.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/be.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/bg.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/bn.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/bo.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/br.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/bs.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/ca.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/cs.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/cv.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/cy.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/da.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/de-at.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/de.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/dv.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/el.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/en-au.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/en-ca.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/en-gb.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/en-ie.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/en-nz.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/eo.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/es.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/et.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/eu.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/fa.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/fi.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/fo.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/fr-ca.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/fr-ch.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/fr.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/fy.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/gd.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/gl.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/he.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/hi.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/hr.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/hu.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/hy-am.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/id.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/is.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/it.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/ja.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/jv.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/ka.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/kk.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/km.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/ko.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/lb.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/lo.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/lt.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/lv.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/me.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/mk.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/ml.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/mr.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/ms-my.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/ms.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/my.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/nb.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/ne.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/nl.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/nn.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/pl.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/pt-br.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/pt.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/ro.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/ru.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/se.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/si.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/sk.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/sl.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/sq.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/sr-cyrl.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/sr.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/sv.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/sw.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/ta.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/te.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/th.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/tl-ph.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/tlh.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/tr.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/tzl.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/tzm-latn.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/tzm.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/uk.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/uz.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/vi.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/zh-cn.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/locale/zh-tw.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/src/moment.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/templates/amd-named.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/templates/amd.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/templates/default.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/templates/globals.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/templates/locale-header.js (100%) rename {src/vitis/client => client}/javascript/externs/moment/templates/test-header.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/licenses/APACHE-2.0.txt (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/licenses/BSD-LICENSE.txt (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/licenses/MIT-LICENSE.txt (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol.ext/pbf.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol.ext/pixelworks.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol.ext/rbush.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol.ext/vectortile.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/array.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/assertionerror.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/asserts.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/attribution.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/canvasmap.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/centerconstraint.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/collection.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/collectioneventtype.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/color.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/color.jsdoc (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/colorlike.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/colorlike.jsdoc (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/control.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/control/attribution.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/control/control.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/control/fullscreen.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/control/index.jsdoc (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/control/mouseposition.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/control/overviewmap.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/control/rotate.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/control/scaleline.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/control/scalelineunits.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/control/zoom.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/control/zoomslider.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/control/zoomtoextent.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/coordinate.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/coordinate.jsdoc (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/css.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/deviceorientation.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/disposable.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/dom.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/easing.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/easing.jsdoc (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/events.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/events/condition.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/events/condition.jsdoc (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/events/event.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/events/eventtarget.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/events/eventtype.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/events/keycode.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/extent.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/extent.jsdoc (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/extent/corner.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/extent/relationship.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/feature.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/featureloader.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/featureloader.jsdoc (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/format/esrijson.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/format/feature.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/format/filter.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/format/filter/and.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/format/filter/bbox.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/format/filter/comparison.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/format/filter/comparisonbinary.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/format/filter/contains.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/format/filter/during.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/format/filter/equalto.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/format/filter/filter.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/format/filter/greaterthan.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/format/filter/greaterthanorequalto.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/format/filter/index.jsdoc (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/format/filter/intersects.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/format/filter/isbetween.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/format/filter/islike.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/format/filter/isnull.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/format/filter/lessthan.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/format/filter/lessthanorequalto.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/format/filter/logicalnary.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/format/filter/not.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/format/filter/notequalto.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/format/filter/or.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/format/filter/spatial.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/format/filter/within.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/format/formattype.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/format/geojson.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/format/gml.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/format/gml2.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/format/gml3.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/format/gmlbase.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/format/gpx.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/format/igc.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/format/igcz.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/format/index.jsdoc (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/format/jsonfeature.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/format/kml.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/format/mvt.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/format/osmxml.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/format/ows.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/format/polyline.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/format/readme.md (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/format/textfeature.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/format/topojson.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/format/wfs.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/format/wkt.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/format/wmscapabilities.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/format/wmsgetfeatureinfo.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/format/wmtscapabilities.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/format/xlink.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/format/xml.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/format/xmlfeature.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/format/xsd.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/functions.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/geolocation.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/geolocationproperty.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/geom/circle.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/geom/flat/area.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/geom/flat/center.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/geom/flat/closest.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/geom/flat/contains.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/geom/flat/deflate.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/geom/flat/flip.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/geom/flat/geodesic.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/geom/flat/inflate.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/geom/flat/interiorpoint.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/geom/flat/interpolate.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/geom/flat/intersectsextent.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/geom/flat/length.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/geom/flat/orient.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/geom/flat/reverse.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/geom/flat/segments.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/geom/flat/simplify.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/geom/flat/straightchunk.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/geom/flat/textpath.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/geom/flat/topology.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/geom/flat/transform.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/geom/geom.jsdoc (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/geom/geometry.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/geom/geometrycollection.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/geom/geometrylayout.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/geom/geometrytype.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/geom/linearring.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/geom/linestring.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/geom/multilinestring.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/geom/multipoint.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/geom/multipolygon.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/geom/point.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/geom/polygon.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/geom/simplegeometry.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/graticule.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/has.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/has.jsdoc (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/image.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/imagebase.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/imagecanvas.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/imagestate.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/imagetile.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/index.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/interaction.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/interaction/doubleclickzoom.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/interaction/draganddrop.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/interaction/dragbox.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/interaction/dragpan.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/interaction/dragrotate.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/interaction/dragrotateandzoom.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/interaction/dragzoom.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/interaction/draw.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/interaction/draweventtype.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/interaction/extent.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/interaction/extenteventtype.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/interaction/interaction.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/interaction/interaction.jsdoc (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/interaction/keyboardpan.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/interaction/keyboardzoom.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/interaction/modify.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/interaction/modifyeventtype.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/interaction/mousewheelzoom.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/interaction/pinchrotate.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/interaction/pinchzoom.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/interaction/pointer.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/interaction/property.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/interaction/select.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/interaction/snap.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/interaction/translate.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/interaction/translateeventtype.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/kinetic.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/layer/base.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/layer/group.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/layer/heatmap.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/layer/image.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/layer/layer.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/layer/layer.jsdoc (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/layer/property.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/layer/tile.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/layer/tileproperty.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/layer/vector.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/layer/vectorrendertype.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/layer/vectortile.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/layer/vectortilerendertype.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/layertype.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/loadingstrategy.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/loadingstrategy.jsdoc (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/map.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/mapbrowserevent.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/mapbrowsereventhandler.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/mapbrowsereventtype.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/mapbrowserpointerevent.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/mapevent.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/mapeventtype.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/mapproperty.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/math.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/net.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/obj.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/object.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/objecteventtype.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/observable.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/overlay.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/overlaypositioning.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/pluggablemap.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/plugins.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/plugintype.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/pointer/eventsource.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/pointer/eventtype.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/pointer/mousesource.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/pointer/mssource.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/pointer/nativesource.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/pointer/pointerevent.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/pointer/pointereventhandler.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/pointer/touchsource.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/proj.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/proj/common.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/proj/epsg3857.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/proj/epsg4326.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/proj/index.jsdoc (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/proj/proj4.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/proj/projection.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/proj/projections.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/proj/transforms.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/proj/units.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/render.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/render.jsdoc (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/render/box.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/render/canvas.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/render/canvas/imagereplay.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/render/canvas/immediate.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/render/canvas/index.jsdoc (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/render/canvas/instruction.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/render/canvas/linestringreplay.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/render/canvas/polygonreplay.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/render/canvas/replay.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/render/canvas/replaygroup.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/render/canvas/textreplay.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/render/event.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/render/eventtype.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/render/feature.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/render/replay.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/render/replaygroup.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/render/replaytype.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/render/vectorcontext.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/render/webgl.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay/defaultshader.glsl (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay/defaultshader.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay/defaultshader/locations.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/render/webgl/imagereplay.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/render/webgl/immediate.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/render/webgl/index.jsdoc (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay/defaultshader.glsl (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay/defaultshader.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay/defaultshader/locations.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay/defaultshader.glsl (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay/defaultshader.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay/defaultshader/locations.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/render/webgl/replay.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/render/webgl/replaygroup.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/render/webgl/textreplay.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay/defaultshader.glsl (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay/defaultshader.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay/defaultshader/locations.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/renderer/canvas/imagelayer.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/renderer/canvas/intermediatecanvas.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/renderer/canvas/layer.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/renderer/canvas/map.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/renderer/canvas/tilelayer.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/renderer/canvas/vectorlayer.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/renderer/canvas/vectortilelayer.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/renderer/index.jsdoc (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/renderer/layer.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/renderer/map.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/renderer/type.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/renderer/vector.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/renderer/webgl/defaultmapshader.glsl (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/renderer/webgl/defaultmapshader.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/renderer/webgl/defaultmapshader/locations.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/renderer/webgl/imagelayer.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/renderer/webgl/layer.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/renderer/webgl/map.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayer.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayershader.glsl (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayershader.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayershader/locations.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/renderer/webgl/vectorlayer.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/reproj.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/reproj/image.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/reproj/tile.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/reproj/triangulation.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/resolutionconstraint.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/rotationconstraint.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/size.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/source.jsdoc (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/source/bingmaps.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/source/cartodb.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/source/cluster.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/source/image.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/source/imagearcgisrest.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/source/imagecanvas.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/source/imagemapguide.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/source/imagestatic.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/source/imagevector.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/source/imagewms.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/source/osm.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/source/raster.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/source/rasteroperationtype.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/source/source.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/source/stamen.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/source/state.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/source/tile.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/source/tilearcgisrest.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/source/tiledebug.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/source/tileeventtype.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/source/tileimage.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/source/tilejson.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/source/tileutfgrid.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/source/tilewms.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/source/urltile.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/source/vector.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/source/vectoreventtype.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/source/vectortile.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/source/wmsservertype.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/source/wmts.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/source/wmtsrequestencoding.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/source/xyz.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/source/zoomify.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/sphere.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/string.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/structs/linkedlist.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/structs/lrucache.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/structs/priorityqueue.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/structs/rbush.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/style.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/style/atlas.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/style/atlasmanager.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/style/circle.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/style/fill.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/style/icon.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/style/iconanchorunits.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/style/iconimage.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/style/iconimagecache.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/style/iconorigin.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/style/image.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/style/index.jsdoc (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/style/regularshape.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/style/stroke.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/style/style.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/style/text.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/style/textplacement.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/tile.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/tilecache.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/tilecoord.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/tilegrid.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/tilegrid/index.jsdoc (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/tilegrid/tilegrid.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/tilegrid/wmts.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/tilequeue.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/tilerange.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/tilestate.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/tileurlfunction.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/transform.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/typedefs.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/uri.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/vec/mat4.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/vectorimagetile.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/vectortile.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/view.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/viewhint.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/viewproperty.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/webgl.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/webgl/buffer.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/webgl/context.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/webgl/contexteventtype.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/webgl/fragment.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/webgl/shader.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/webgl/shader.mustache (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/webgl/shaderlocations.mustache (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/webgl/vertex.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol/ol/xml.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol3-ext/licence.txt (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol3-ext/readme.txt (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol3-ext/style/fonts/fontanc.def.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol3-ext/style/fonts/fontawesome.def.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol3-ext/style/fonts/fontveremes.def.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol3-ext/style/fontsymbol.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol3-ext/style/shadowstyle.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol3-ext/utils/ol.ordering.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol3-veremes/mobilemodify.js (100%) rename {src/vitis/client => client}/javascript/externs/openLayers/ol3-veremes/ol.veremes.js (100%) rename {src/vitis/client => client}/javascript/externs/rgraph/RGraph.bar_min.js (100%) rename {src/vitis/client => client}/javascript/externs/rgraph/RGraph.common.context_min.js (100%) rename {src/vitis/client => client}/javascript/externs/rgraph/RGraph.common.core_min.js (100%) rename {src/vitis/client => client}/javascript/externs/rgraph/RGraph.common.dynamic_min.js (100%) rename {src/vitis/client => client}/javascript/externs/rgraph/RGraph.common.effects_min.js (100%) rename {src/vitis/client => client}/javascript/externs/rgraph/RGraph.common.key_min.js (100%) rename {src/vitis/client => client}/javascript/externs/rgraph/RGraph.common.tooltips_min.js (100%) rename {src/vitis/client => client}/javascript/externs/rgraph/RGraph.drawing.rect_min.js (100%) rename {src/vitis/client => client}/javascript/externs/rgraph/RGraph.drawing.text_min.js (100%) rename {src/vitis/client => client}/javascript/externs/rgraph/RGraph.pie_min.js (100%) rename {src/vitis/client => client}/javascript/externs/rgraph/RGraph.scatter_min.js (100%) rename {src/vitis/client => client}/javascript/externs/scripts_cryptage.js (100%) rename {src/vitis/client => client}/javascript/externs/showdown/showdown.js (100%) rename {src/vitis/client => client}/javascript/externs/showdown/showdown.js.map (100%) rename {src/vitis/client => client}/javascript/externs/showdown/showdown.min.js (100%) rename {src/vitis/client => client}/javascript/externs/showdown/showdown.min.js.map (100%) rename {src/vitis/client => client}/javascript/externs/studio/javascript/app/ElementForm.js (100%) rename {src/vitis/client => client}/javascript/externs/studio/javascript/app/FormBuilder.js (100%) rename {src/vitis/client => client}/javascript/externs/studio/javascript/app/FormTools.js (100%) rename {src/vitis/client => client}/javascript/externs/studio/javascript/app/JsonLoader.js (100%) rename {src/vitis/client => client}/javascript/externs/studio/javascript/app/Utils.js (100%) rename {src/vitis/client => client}/javascript/externs/studio/javascript/app/Visualizer.js (100%) rename {src/vitis/client => client}/javascript/externs/studio/javascript/app/VisualizerMode/CssMode.js (100%) rename {src/vitis/client => client}/javascript/externs/studio/javascript/app/VisualizerMode/FormMode.js (100%) rename {src/vitis/client => client}/javascript/externs/studio/javascript/app/VisualizerMode/JsMode.js (100%) rename {src/vitis/client => client}/javascript/externs/studio/javascript/app/VisualizerMode/JsonMode.js (100%) rename {src/vitis/client => client}/javascript/externs/studio/lang/lang-en.json (100%) rename {src/vitis/client => client}/javascript/externs/studio/lang/lang-fr.json (100%) rename {src/vitis/client => client}/javascript/externs/studio/less/CodeMirror.less (100%) rename {src/vitis/client => client}/javascript/externs/studio/less/studio.less (100%) rename {src/vitis/client => client}/javascript/externs/studio/properties/properties.js (100%) rename {src/vitis/client => client}/javascript/externs/studio/templates/Componant/Map.html (100%) rename {src/vitis/client => client}/javascript/externs/studio/templates/ElementForm.html (100%) rename {src/vitis/client => client}/javascript/externs/studio/templates/FormTools.html (100%) rename {src/vitis/client => client}/javascript/externs/studio/templates/JsonLoader.html (100%) rename {src/vitis/client => client}/javascript/externs/studio/templates/MainTemplate.html (100%) rename {src/vitis/client => client}/javascript/externs/studio/templates/Visualizer.html (100%) rename {src/vitis/client => client}/javascript/externs/studio/templates/VisualizerMode/CssMode.html (100%) rename {src/vitis/client => client}/javascript/externs/studio/templates/VisualizerMode/FormMode.html (100%) rename {src/vitis/client => client}/javascript/externs/studio/templates/VisualizerMode/JsMode.html (100%) rename {src/vitis/client => client}/javascript/externs/studio/templates/VisualizerMode/JsonMode.html (100%) rename {src/vitis/client => client}/javascript/externs/tinymce/LICENSE.TXT (100%) rename {src/vitis/client => client}/javascript/externs/tinymce/langs/fr_FR.js (100%) rename {src/vitis/client => client}/javascript/externs/tinymce/plugins/image/plugin.min.js (100%) rename {src/vitis/client => client}/javascript/externs/tinymce/skins/lightgray/content.inline.min.css (100%) rename {src/vitis/client => client}/javascript/externs/tinymce/skins/lightgray/content.min.css (100%) rename {src/vitis/client => client}/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.eot (100%) rename {src/vitis/client => client}/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.svg (100%) rename {src/vitis/client => client}/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.ttf (100%) rename {src/vitis/client => client}/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.woff (100%) rename {src/vitis/client => client}/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.eot (100%) rename {src/vitis/client => client}/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.svg (100%) rename {src/vitis/client => client}/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.ttf (100%) rename {src/vitis/client => client}/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.woff (100%) rename {src/vitis/client => client}/javascript/externs/tinymce/skins/lightgray/img/anchor.gif (100%) rename {src/vitis/client => client}/javascript/externs/tinymce/skins/lightgray/img/loader.gif (100%) rename {src/vitis/client => client}/javascript/externs/tinymce/skins/lightgray/img/object.gif (100%) rename {src/vitis/client => client}/javascript/externs/tinymce/skins/lightgray/img/trans.gif (100%) rename {src/vitis/client => client}/javascript/externs/tinymce/skins/lightgray/skin.ie7.min.css (100%) rename {src/vitis/client => client}/javascript/externs/tinymce/skins/lightgray/skin.min.css (100%) rename {src/vitis/client => client}/javascript/externs/tinymce/themes/modern/theme.min.js (100%) rename {src/vitis/client => client}/javascript/externs/tinymce/tinymce.min.js (100%) rename {src/vitis/client => client}/javascript/externs/underscore-min.js (100%) rename {src/vitis/client => client}/javascript/externs/underscore.js (100%) rename {src/vitis/client => client}/javascript/externs/viewer/Apache-License-2.0.txt (100%) rename {src/vitis/client => client}/javascript/externs/viewer/viewer.min.js (100%) rename {src/vitis/client => client}/javascript/require/requireVitis.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/Output/order/htmlReport.html (100%) rename {src/vitis/client => client}/javascript/test/e2e/Output/order/images/1fe7143891469e980d1fcca05a66b3a2.png (100%) rename {src/vitis/client => client}/javascript/test/e2e/Output/order/images/22a14751fa17bd62335ee88ba6c6f9e6.png (100%) rename {src/vitis/client => client}/javascript/test/e2e/Output/order/images/286dc054fdb1ed4e3c1a14730da91fe3.png (100%) rename {src/vitis/client => client}/javascript/test/e2e/Output/order/images/446e6e12b1a4a349745acaa42b1fd65d.png (100%) rename {src/vitis/client => client}/javascript/test/e2e/Output/order/images/4e6851a1377af65074210820d5903ea4.png (100%) rename {src/vitis/client => client}/javascript/test/e2e/Output/order/images/52280521fa920cd916802fa7bf0752c1.png (100%) rename {src/vitis/client => client}/javascript/test/e2e/Output/order/images/565819f55fb9493820b1f462eb1469af.png (100%) rename {src/vitis/client => client}/javascript/test/e2e/Output/order/images/5ef9ed38ebad6379a04897ec6f383aeb.png (100%) rename {src/vitis/client => client}/javascript/test/e2e/Output/order/images/6c0be7e24610a0144c94df2e1c691718.png (100%) rename {src/vitis/client => client}/javascript/test/e2e/Output/order/images/85bd21280813079f2797df7a66b953ec.png (100%) rename {src/vitis/client => client}/javascript/test/e2e/Output/order/images/9d224f9d204337458fa46ab0f4b4a3f9.png (100%) rename {src/vitis/client => client}/javascript/test/e2e/Output/order/images/a971981cadcc1dafd26000f39ea8a68a.png (100%) rename {src/vitis/client => client}/javascript/test/e2e/Output/order/images/aa05ad4c25af482047fb6ea3951a4ed9.png (100%) rename {src/vitis/client => client}/javascript/test/e2e/Output/order/images/cb30486ebf3bd7f9aaa687cc51e07134.png (100%) rename {src/vitis/client => client}/javascript/test/e2e/Output/order/images/d236806b20deffd8ce0f6393acda549e.png (100%) rename {src/vitis/client => client}/javascript/test/e2e/Output/order/images/e11cf5a8b029208fb74fb66c82acc314.png (100%) rename {src/vitis/client => client}/javascript/test/e2e/Output/order/images/fd3ebf7f15da963e0243b0763ccf4888.png (100%) rename {src/vitis/client => client}/javascript/test/e2e/Output/publication/htmlReport.html (100%) rename {src/vitis/client => client}/javascript/test/e2e/Output/publication/images/1a593987e7ca4240d8dfa7d6611b79e7.png (100%) rename {src/vitis/client => client}/javascript/test/e2e/Output/publication/images/29ff6bceadd409d2da0d4e1ffe3146ec.png (100%) rename {src/vitis/client => client}/javascript/test/e2e/Output/publication/images/31d7ecf9dd49ad85104ef4b491582c27.png (100%) rename {src/vitis/client => client}/javascript/test/e2e/Output/publication/images/3d588c2cc178ebbc6085fdbac873049b.png (100%) rename {src/vitis/client => client}/javascript/test/e2e/Output/publication/images/66864911363c5dfa802360f4cd169d15.png (100%) rename {src/vitis/client => client}/javascript/test/e2e/Output/publication/images/71acb5849026bc31c2e1a3efaf750c8c.png (100%) rename {src/vitis/client => client}/javascript/test/e2e/Output/publication/images/859d507231ab559be0caa350c33361b0.png (100%) rename {src/vitis/client => client}/javascript/test/e2e/Output/publication/images/9bbbcfee24b1eeadfe4cbebce3d68f37.png (100%) rename {src/vitis/client => client}/javascript/test/e2e/Output/publication/images/ac9d916cef66cf3b0c6dc04361fc8c7a.png (100%) rename {src/vitis/client => client}/javascript/test/e2e/Output/publication/images/b9c0bafaae0a695509eb679f32d7bbc4.png (100%) rename {src/vitis/client => client}/javascript/test/e2e/Output/publication/images/b9ddfa35957bf67b37ae22b31d8d2467.png (100%) rename {src/vitis/client => client}/javascript/test/e2e/Output/publication/images/c4beb465fd449624d359f3471d6ee4c1.png (100%) rename {src/vitis/client => client}/javascript/test/e2e/Output/publication/images/d044896b4c0e135963e4cc03d2381d56.png (100%) rename {src/vitis/client => client}/javascript/test/e2e/Output/publication/images/e0eec7bfffe9f6b747cb85db357889a0.png (100%) rename {src/vitis/client => client}/javascript/test/e2e/Output/publication/images/e589e1728c06bfa8de1a8a9ce5a24b4d.png (100%) rename {src/vitis/client => client}/javascript/test/e2e/Output/publication/images/e630b1b432c5ec391a0625040a7b7ba8.png (100%) rename {src/vitis/client => client}/javascript/test/e2e/Output/publication/images/ff2cdf03ef3a270449425608d47b23a0.png (100%) rename {src/vitis/client => client}/javascript/test/e2e/VeremesTest.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/cu_vitis_abonnement.bat (100%) rename {src/vitis/client => client}/javascript/test/e2e/cu_vitis_ad.bat (100%) rename {src/vitis/client => client}/javascript/test/e2e/cu_vitis_categorie.bat (100%) rename {src/vitis/client => client}/javascript/test/e2e/cu_vitis_depot.bat (100%) rename {src/vitis/client => client}/javascript/test/e2e/cu_vitis_fichiers_interdits.bat (100%) rename {src/vitis/client => client}/javascript/test/e2e/cu_vitis_filter.bat (100%) rename {src/vitis/client => client}/javascript/test/e2e/cu_vitis_formulaire.bat (100%) rename {src/vitis/client => client}/javascript/test/e2e/cu_vitis_import_export.bat (100%) rename {src/vitis/client => client}/javascript/test/e2e/cu_vitis_ip.bat (100%) rename {src/vitis/client => client}/javascript/test/e2e/cu_vitis_lot.bat (100%) rename {src/vitis/client => client}/javascript/test/e2e/cu_vitis_metadata.bat (100%) rename {src/vitis/client => client}/javascript/test/e2e/cu_vitis_moteurs.bat (100%) rename {src/vitis/client => client}/javascript/test/e2e/cu_vitis_order.bat (100%) rename {src/vitis/client => client}/javascript/test/e2e/cu_vitis_publication.bat (100%) rename {src/vitis/client => client}/javascript/test/e2e/cu_vitis_unicite.bat (100%) rename {src/vitis/client => client}/javascript/test/e2e/cu_vitis_upload.bat (100%) rename {src/vitis/client => client}/javascript/test/e2e/cu_vitis_upload_fmw.bat (100%) rename {src/vitis/client => client}/javascript/test/e2e/cu_vitis_upload_zip.bat (100%) rename {src/vitis/client => client}/javascript/test/e2e/cu_vitis_user_existant.bat (100%) rename {src/vitis/client => client}/javascript/test/e2e/cu_vitis_users.bat (100%) rename {src/vitis/client => client}/javascript/test/e2e/cu_vitis_users_linux.bat (100%) rename {src/vitis/client => client}/javascript/test/e2e/cu_vitis_users_speciaux.bat (100%) rename {src/vitis/client => client}/javascript/test/e2e/cu_vitis_verrouillage_projet.bat (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/.npmignore (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/README.md (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/index.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/.bin/mkdirp (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/.bin/mkdirp.cmd (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/README.markdown (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/example/hat.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/example/rack.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/index.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/package.json (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/test/id.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/test/rack.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/LICENSE (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/README.md (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/chunk.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/compact.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/difference.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/drop.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/dropRight.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/dropRightWhile.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/dropWhile.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/fill.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/findIndex.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/findLastIndex.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/first.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/flatten.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/flattenDeep.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/head.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/indexOf.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/initial.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/intersection.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/last.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/lastIndexOf.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/object.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/pull.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/pullAt.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/remove.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/rest.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/slice.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/sortedIndex.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/sortedLastIndex.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/tail.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/take.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/takeRight.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/takeRightWhile.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/takeWhile.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/union.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/uniq.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/unique.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/unzip.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/unzipWith.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/without.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/xor.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/zip.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/zipObject.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/zipWith.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/chain.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/commit.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/concat.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/lodash.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/plant.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/reverse.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/run.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/tap.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/thru.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/toJSON.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/toString.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/value.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/valueOf.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperChain.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperCommit.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperConcat.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperPlant.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperReverse.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperToString.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperValue.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/all.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/any.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/at.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/collect.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/contains.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/countBy.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/detect.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/each.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/eachRight.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/every.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/filter.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/find.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/findLast.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/findWhere.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/foldl.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/foldr.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/forEach.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/forEachRight.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/groupBy.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/include.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/includes.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/indexBy.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/inject.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/invoke.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/map.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/max.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/min.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/partition.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/pluck.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/reduce.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/reduceRight.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/reject.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sample.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/select.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/shuffle.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/size.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/some.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sortBy.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sortByAll.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sortByOrder.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sum.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/where.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/date.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/date/now.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/after.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/ary.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/backflow.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/before.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/bind.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/bindAll.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/bindKey.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/compose.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/curry.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/curryRight.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/debounce.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/defer.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/delay.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/flow.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/flowRight.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/memoize.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/modArgs.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/negate.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/once.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/partial.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/partialRight.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/rearg.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/restParam.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/spread.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/throttle.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/wrap.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/index.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/LazyWrapper.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/LodashWrapper.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/MapCache.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/SetCache.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayConcat.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayCopy.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayEach.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayEachRight.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayEvery.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayExtremum.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayFilter.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayMap.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayPush.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayReduce.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayReduceRight.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arraySome.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arraySum.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/assignDefaults.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/assignOwnDefaults.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/assignWith.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseAssign.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseAt.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCallback.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseClone.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCompareAscending.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCopy.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCreate.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseDelay.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseDifference.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseEach.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseEachRight.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseEvery.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseExtremum.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFill.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFilter.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFind.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFindIndex.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFlatten.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFor.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForIn.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForOwn.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForOwnRight.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForRight.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFunctions.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseGet.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIndexOf.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsEqual.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsEqualDeep.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsFunction.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsMatch.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseLodash.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMap.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMatches.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMatchesProperty.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMerge.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMergeDeep.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseProperty.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/basePropertyDeep.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/basePullAt.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseRandom.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseReduce.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSetData.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSlice.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSome.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSortBy.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSortByOrder.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSum.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseToString.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseUniq.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseValues.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseWhile.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseWrapperValue.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/binaryIndex.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/binaryIndexBy.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/bindCallback.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/bufferClone.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/cacheIndexOf.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/cachePush.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/charsLeftIndex.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/charsRightIndex.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/compareAscending.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/compareMultiple.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/composeArgs.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/composeArgsRight.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createAggregator.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createAssigner.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createBaseEach.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createBaseFor.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createBindWrapper.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCache.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCompounder.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCtorWrapper.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCurry.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createDefaults.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createExtremum.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFind.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFindIndex.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFindKey.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFlow.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createForEach.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createForIn.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createForOwn.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createHybridWrapper.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createObjectMapper.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPadDir.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPadding.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPartial.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPartialWrapper.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createReduce.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createRound.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createSortedIndex.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createWrapper.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/deburrLetter.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/equalArrays.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/equalByTag.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/equalObjects.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/escapeHtmlChar.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/escapeRegExpChar.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/escapeStringChar.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getData.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getFuncName.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getLength.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getMatchData.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getNative.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getView.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/indexOfNaN.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/initCloneArray.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/initCloneByTag.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/initCloneObject.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/invokePath.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isArrayLike.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isIndex.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isIterateeCall.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isKey.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isLaziable.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isLength.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isObjectLike.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isSpace.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isStrictComparable.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/lazyClone.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/lazyReverse.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/lazyValue.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapDelete.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapGet.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapHas.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapSet.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mergeData.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mergeDefaults.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/metaMap.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/pickByArray.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/pickByCallback.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reEscape.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reEvaluate.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reInterpolate.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/realNames.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reorder.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/replaceHolders.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/setData.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/shimKeys.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/sortedUniq.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/toIterable.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/toObject.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/toPath.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/trimmedLeftIndex.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/trimmedRightIndex.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/unescapeHtmlChar.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/wrapperClone.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/clone.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/cloneDeep.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/eq.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/gt.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/gte.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isArguments.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isArray.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isBoolean.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isDate.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isElement.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isEmpty.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isEqual.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isError.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isFinite.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isFunction.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isMatch.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNaN.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNative.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNull.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNumber.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isObject.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isPlainObject.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isRegExp.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isString.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isTypedArray.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isUndefined.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/lt.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/lte.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/toArray.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/toPlainObject.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/add.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/ceil.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/floor.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/max.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/min.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/round.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/sum.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/number.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/number/inRange.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/number/random.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/assign.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/create.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/defaults.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/defaultsDeep.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/extend.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/findKey.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/findLastKey.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forIn.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forInRight.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forOwn.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forOwnRight.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/functions.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/get.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/has.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/invert.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/keys.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/keysIn.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/mapKeys.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/mapValues.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/merge.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/methods.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/omit.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/pairs.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/pick.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/result.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/set.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/transform.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/values.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/valuesIn.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/package.json (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/camelCase.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/capitalize.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/deburr.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/endsWith.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/escape.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/escapeRegExp.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/kebabCase.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/pad.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/padLeft.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/padRight.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/parseInt.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/repeat.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/snakeCase.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/startCase.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/startsWith.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/template.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/templateSettings.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trim.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trimLeft.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trimRight.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trunc.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/unescape.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/words.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/support.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/attempt.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/callback.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/constant.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/identity.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/iteratee.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/matches.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/matchesProperty.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/method.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/methodOf.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/mixin.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/noop.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/property.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/propertyOf.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/range.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/times.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/uniqueId.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/.travis.yml (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/LICENSE (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/bin/cmd.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/bin/usage.txt (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/examples/pow.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/index.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/.travis.yml (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/LICENSE (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/example/parse.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/index.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/package.json (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/readme.markdown (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/dash.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/default_bool.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/dotted.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/long.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/parse.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/parse_modified.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/short.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/whitespace.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/package.json (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/readme.markdown (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/chmod.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/clobber.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/mkdirp.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/opts_fs.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/opts_fs_sync.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/perm.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/perm_sync.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/race.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/rel.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/return.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/return_sync.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/root.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/sync.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/umask.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/umask_sync.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/LICENSE-MIT.txt (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/README.md (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/package.json (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/startswith.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/package.json (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/protractor.config.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/template.html (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/test/test2Spec.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/test/testSpec.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/protractor.conf.abonnement.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/protractor.conf.ad.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/protractor.conf.categorie.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/protractor.conf.depot.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/protractor.conf.fichiers_interdits.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/protractor.conf.filter.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/protractor.conf.formulaire.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/protractor.conf.import.export.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/protractor.conf.ip.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/protractor.conf.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/protractor.conf.lot.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/protractor.conf.metada.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/protractor.conf.metadata.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/protractor.conf.moteurs.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/protractor.conf.order.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/protractor.conf.publication.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/protractor.conf.unicite.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/protractor.conf.upload.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/protractor.conf.upload_fmw.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/protractor.conf.upload_zip.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/protractor.conf.user_existant.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/protractor.conf.users.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/protractor.conf.users_speciaux.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/protractor.conf.users_speciaux.linux.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/protractor.conf.verrouillage_projet.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/resource/DATE.gex (100%) rename {src/vitis/client => client}/javascript/test/e2e/resource/DPT.DBF (100%) rename {src/vitis/client => client}/javascript/test/e2e/resource/DPT.SHP (100%) rename {src/vitis/client => client}/javascript/test/e2e/resource/DPT.SHX (100%) rename {src/vitis/client => client}/javascript/test/e2e/resource/DPT.prj (100%) rename {src/vitis/client => client}/javascript/test/e2e/resource/DPT.zip (100%) rename {src/vitis/client => client}/javascript/test/e2e/resource/choix_multiple.fmw (100%) rename {src/vitis/client => client}/javascript/test/e2e/resource/choix_multiple.log (100%) rename {src/vitis/client => client}/javascript/test/e2e/resource/controle_quali.gex (100%) rename {src/vitis/client => client}/javascript/test/e2e/resource/dep dep.zip (100%) rename {src/vitis/client => client}/javascript/test/e2e/resource/depts.zip (100%) rename {src/vitis/client => client}/javascript/test/e2e/resource/dpt2.dbf (100%) rename {src/vitis/client => client}/javascript/test/e2e/resource/dpt2.prj (100%) rename {src/vitis/client => client}/javascript/test/e2e/resource/dpt2.shp (100%) rename {src/vitis/client => client}/javascript/test/e2e/resource/dpt2.shx (100%) rename {src/vitis/client => client}/javascript/test/e2e/resource/dpt2.zip (100%) rename "src/vitis/client/javascript/test/e2e/resource/d\303\251p.zip" => "client/javascript/test/e2e/resource/d\303\251p.zip" (100%) rename {src/vitis/client => client}/javascript/test/e2e/resource/ee aa.fmw (100%) rename {src/vitis/client => client}/javascript/test/e2e/resource/exemples.gex (100%) rename "src/vitis/client/javascript/test/e2e/resource/extraction_geofla_par_d\303\251partement.gex" => "client/javascript/test/e2e/resource/extraction_geofla_par_d\303\251partement.gex" (100%) rename {src/vitis/client => client}/javascript/test/e2e/resource/import_export.gex (100%) rename {src/vitis/client => client}/javascript/test/e2e/resource/import_export2.gex (100%) rename {src/vitis/client => client}/javascript/test/e2e/resource/it3/ARDECHE.dbf (100%) rename {src/vitis/client => client}/javascript/test/e2e/resource/it3/ARDECHE.prj (100%) rename {src/vitis/client => client}/javascript/test/e2e/resource/it3/ARDECHE.shp (100%) rename {src/vitis/client => client}/javascript/test/e2e/resource/it3/ARDECHE.shx (100%) rename {src/vitis/client => client}/javascript/test/e2e/resource/metadata.fmw (100%) rename {src/vitis/client => client}/javascript/test/e2e/resource/metadata.log (100%) rename {src/vitis/client => client}/javascript/test/e2e/resource/metadata2.fmw (100%) rename {src/vitis/client => client}/javascript/test/e2e/resource/selection_villes.gex (100%) rename {src/vitis/client => client}/javascript/test/e2e/resource/shp2mif.fmw (100%) rename {src/vitis/client => client}/javascript/test/e2e/resource/t_abonnement.fmw (100%) rename {src/vitis/client => client}/javascript/test/e2e/resource/t_formulaire.fmw (100%) rename {src/vitis/client => client}/javascript/test/e2e/resource/t_importparlot1.fmw (100%) rename {src/vitis/client => client}/javascript/test/e2e/resource/t_importparlot2.fmw (100%) rename {src/vitis/client => client}/javascript/test/e2e/resource/t_unicite.fmw (100%) rename {src/vitis/client => client}/javascript/test/e2e/resource/test_gex.gex (100%) rename {src/vitis/client => client}/javascript/test/e2e/resource/test_param_choice_villes.fmw (100%) rename {src/vitis/client => client}/javascript/test/e2e/resource/test_param_couleur.fmw (100%) rename {src/vitis/client => client}/javascript/test/e2e/resource/test_param_date_time.fmw (100%) rename {src/vitis/client => client}/javascript/test/e2e/resource/test_param_date_time.log (100%) rename {src/vitis/client => client}/javascript/test/e2e/resource/villes.zip (100%) rename {src/vitis/client => client}/javascript/test/e2e/resource/vse.jpg (100%) rename "src/vitis/client/javascript/test/e2e/resource/\303\251\303\240.fmw" => "client/javascript/test/e2e/resource/\303\251\303\240.fmw" (100%) rename {src/vitis/client => client}/javascript/test/e2e/scenario/sc_vitis_abonnement.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/scenario/sc_vitis_ad.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/scenario/sc_vitis_categorie.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/scenario/sc_vitis_depot.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/scenario/sc_vitis_fichiers_interdits.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/scenario/sc_vitis_filter.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/scenario/sc_vitis_fme_params.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/scenario/sc_vitis_formulaire.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/scenario/sc_vitis_import_export.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/scenario/sc_vitis_ip.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/scenario/sc_vitis_lot.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/scenario/sc_vitis_metadata.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/scenario/sc_vitis_moteurs.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/scenario/sc_vitis_order.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/scenario/sc_vitis_publication.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/scenario/sc_vitis_unicite.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/scenario/sc_vitis_upload.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/scenario/sc_vitis_upload_fmw.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/scenario/sc_vitis_upload_zip.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/scenario/sc_vitis_user_existant.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/scenario/sc_vitis_users.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/scenario/sc_vitis_users_linux.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/scenario/sc_vitis_users_speciaux.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/scenario/sc_vitis_users_speciaux_linux.js (100%) rename {src/vitis/client => client}/javascript/test/e2e/scenario/sc_vitis_verrouillage_projet.js (100%) rename {src/vitis/client => client}/lang/lang-en.json (100%) rename {src/vitis/client => client}/lang/lang-fr.json (100%) rename {src/vitis/client => client}/less/doubleForm.less (100%) rename {src/vitis/client => client}/less/htmlForm.less (100%) rename {src/vitis/client => client}/less/login.less (100%) rename {src/vitis/client => client}/less/main.less (100%) rename {src/vitis/client => client}/less/mobile.less (100%) rename {src/vitis/client => client}/less/sectionForm.less (100%) rename {src/vitis/client => client}/less/simpleForm.less (100%) rename {src/vitis/client => client}/less/workspaceList.less (100%) rename {src/vitis/client => client}/modules/vitis/data/proj.json (100%) rename {src/vitis/client => client}/modules/vitis/forms/configuration/configuration_vitis_configuration.json (100%) rename {src/vitis/client => client}/modules/vitis/forms/exploitation/exploitation_exploitation.json (100%) rename {src/vitis/client => client}/modules/vitis/forms/logs/logs_vitis_log.json (100%) rename {src/vitis/client => client}/modules/vitis/forms/user/user_vitis_user.js (100%) rename {src/vitis/client => client}/modules/vitis/forms/user/user_vitis_user.json (100%) rename {src/vitis/client => client}/modules/vitis/forms/users/active_directory_connection.json (100%) rename {src/vitis/client => client}/modules/vitis/forms/users/search_active_directory_group.json (100%) rename {src/vitis/client => client}/modules/vitis/forms/users/search_active_directory_person.json (100%) rename {src/vitis/client => client}/modules/vitis/forms/users/users_vitis_billinggroup.json (100%) rename {src/vitis/client => client}/modules/vitis/forms/users/users_vitis_domain.json (100%) rename {src/vitis/client => client}/modules/vitis/forms/users/users_vitis_group.json (100%) rename {src/vitis/client => client}/modules/vitis/forms/users/users_vitis_privilege.json (100%) rename {src/vitis/client => client}/modules/vitis/forms/users/users_vitis_users.json (100%) rename {src/vitis/client => client}/modules/vitis/images/administrator.png (100%) rename {src/vitis/client => client}/modules/vitis/images/button_green.gif (100%) rename {src/vitis/client => client}/modules/vitis/images/button_red.gif (100%) rename {src/vitis/client => client}/modules/vitis/images/user.png (100%) rename {src/vitis/client => client}/modules/vitis/javascript/controllers/activeDirectoryTreeCtrl.js (100%) rename {src/vitis/client => client}/modules/vitis/javascript/controllers/logsCtrl.js (100%) rename {src/vitis/client => client}/modules/vitis/javascript/controllers/versionConfigurationCtrl.js (100%) rename {src/vitis/client => client}/modules/vitis/javascript/controllers/webServiceHelpCtrl.js (100%) rename {src/vitis/client => client}/modules/vitis/javascript/controllers/websocketConfigurationCtrl.js (100%) rename {src/vitis/client => client}/modules/vitis/javascript/deps.js (100%) rename {src/vitis/client => client}/modules/vitis/javascript/directives/activeDirectoryTreeDrtv.js (100%) rename {src/vitis/client => client}/modules/vitis/javascript/directives/logsDrtv.js (100%) rename {src/vitis/client => client}/modules/vitis/javascript/directives/phpInfoConfigurationDrtv.js (100%) rename {src/vitis/client => client}/modules/vitis/javascript/directives/versionConfigurationDrtv.js (100%) rename {src/vitis/client => client}/modules/vitis/javascript/directives/webServiceHelpDrtv.js (100%) rename {src/vitis/client => client}/modules/vitis/javascript/directives/websocketConfigurationDrtv.js (100%) rename {src/vitis/client => client}/modules/vitis/javascript/script_module.js (100%) rename {src/vitis/client => client}/modules/vitis/lang/lang-en.json (100%) rename {src/vitis/client => client}/modules/vitis/lang/lang-fr.json (100%) rename {src/vitis/client => client}/modules/vitis/less/activeDirectoryTree.less (100%) rename {src/vitis/client => client}/modules/vitis/less/logs.less (100%) rename {src/vitis/client => client}/modules/vitis/less/main.less (100%) rename {src/vitis/client => client}/modules/vitis/less/phpInfoConfiguration.less (100%) rename {src/vitis/client => client}/modules/vitis/less/sharedDirectory.less (100%) rename {src/vitis/client => client}/modules/vitis/less/updateConfiguration.less (100%) rename {src/vitis/client => client}/modules/vitis/less/users.less (100%) rename {src/vitis/client => client}/modules/vitis/less/versionConfiguration.less (100%) rename {src/vitis/client => client}/modules/vitis/less/webServiceHelp.less (100%) rename {src/vitis/client => client}/modules/vitis/templates/activeDirectoryTreeLeftTpl.html (100%) rename {src/vitis/client => client}/modules/vitis/templates/activeDirectoryTreeRightTpl.html (100%) rename {src/vitis/client => client}/modules/vitis/templates/logsLeftTpl.html (100%) rename {src/vitis/client => client}/modules/vitis/templates/logsRightTpl.html (100%) rename {src/vitis/client => client}/modules/vitis/templates/phpInfoConfigurationTpl.html (100%) rename {src/vitis/client => client}/modules/vitis/templates/updateConfigurationTpl.html (100%) rename {src/vitis/client => client}/modules/vitis/templates/versionConfigurationTpl.html (100%) rename {src/vitis/client => client}/modules/vitis/templates/webServiceHelpTpl.html (100%) rename {src/vitis/client => client}/modules/vitis/templates/websocketConfigurationTpl.html (100%) rename {src/vitis/client => client}/templates/clientDocumentationTpl.html (100%) rename {src/vitis/client => client}/templates/creditsTpl.html (100%) rename {src/vitis/client => client}/templates/doubleFormTpl.html (100%) rename {src/vitis/client => client}/templates/formTpl.html (100%) rename {src/vitis/client => client}/templates/loginTpl.html (100%) rename {src/vitis/client => client}/templates/mainTpl.html (100%) rename {src/vitis/client => client}/templates/sectionFormTpl.html (100%) rename {src/vitis/client => client}/templates/simpleFormTpl.html (100%) rename {src/vitis/client => client}/templates/uiGridActionTpl.html (100%) rename {src/vitis/client => client}/templates/uiGridPaginationTpl.html (100%) rename {src/vitis/client => client}/templates/workspaceListTpl.html (100%) delete mode 100755 conf/Gruntfile.js delete mode 100755 conf/_install/apache.conf delete mode 100755 conf/_install/dependency.xml delete mode 100755 conf/_install/fileToDelete.txt delete mode 100755 conf/_install/folderToDelete.txt delete mode 100755 conf/credits.json delete mode 100755 conf/less/variables.less delete mode 100755 conf/package.json delete mode 100755 conf/requires/config.js delete mode 100755 conf/requires/requiresApp.js delete mode 100644 install.bat delete mode 100755 install.sh delete mode 100755 pull_subtrees.sh delete mode 100644 push_subtrees.sh delete mode 100644 src/closure/README.md delete mode 100755 src/closure/conf/depswriter/closurebuilder.py delete mode 100755 src/closure/conf/depswriter/depstree.py delete mode 100755 src/closure/conf/depswriter/depstree_test.py delete mode 100755 src/closure/conf/depswriter/depswriter.py delete mode 100755 src/closure/conf/depswriter/depswriter_test.py delete mode 100755 src/closure/conf/depswriter/jscompiler.py delete mode 100755 src/closure/conf/depswriter/jscompiler_test.py delete mode 100755 src/closure/conf/depswriter/source.py delete mode 100755 src/closure/conf/depswriter/source_test.py delete mode 100755 src/closure/conf/depswriter/treescan.py delete mode 100755 src/closure/conf/externs/angular-1.3.js delete mode 100755 src/closure/conf/externs/bingmaps.js delete mode 100755 src/closure/conf/externs/bootstrap.js delete mode 100755 src/closure/conf/externs/geojson.js delete mode 100755 src/closure/conf/externs/html2canvas.js delete mode 100755 src/closure/conf/externs/jquery-1.9.js delete mode 100755 src/closure/conf/externs/jspdf.js delete mode 100755 src/closure/conf/externs/vmap.js delete mode 100644 src/module_extraction/README.md delete mode 100755 src/module_extraction/_install/dependency.xml delete mode 100755 src/module_extraction/_install/fileToDelete.txt delete mode 100755 src/module_extraction/_install/folderToDelete.txt delete mode 100644 src/module_extraction/module/forms/configuration/configuration_vitis_configuration_extractionConfig.json delete mode 100755 src/module_extraction/module/forms/extraction/extraction_extraction_extraction.js delete mode 100755 src/module_extraction/module/forms/extraction/extraction_extraction_extraction.json delete mode 100755 src/module_extraction/module/forms/extraction_depot/extraction_depot_extraction_extraction_depot.js delete mode 100755 src/module_extraction/module/forms/extraction_depot/extraction_depot_extraction_extraction_depot.json delete mode 100755 src/module_extraction/module/forms/extraction_ref/extraction_ref_extraction_coordsys.json delete mode 100755 src/module_extraction/module/forms/extraction_ref/extraction_ref_extraction_format.json delete mode 100755 src/module_extraction/module/forms/extraction_ref/extraction_ref_extraction_layer.json delete mode 100755 src/module_extraction/module/forms/login/sign_up.json delete mode 100755 src/module_extraction/module/javascript/script_module.js delete mode 100755 src/module_extraction/module/lang/lang-en.json delete mode 100755 src/module_extraction/module/lang/lang-fr.json delete mode 100755 src/module_extraction/module/less/main.less delete mode 100755 src/module_extraction/module/templates/depositDirectoryTpl.html delete mode 100755 src/module_extraction/web_service/conf/properties.inc delete mode 100644 src/module_extraction/web_service/conf/properties_server.inc delete mode 100644 src/module_extraction/web_service/conf/selected_properties.inc delete mode 100755 src/module_extraction/web_service/conf/version.inc delete mode 100755 src/module_extraction/web_service/sql/sqlQueries.xml delete mode 100755 src/module_extraction/web_service/ws/Coordsys.class.inc delete mode 100755 src/module_extraction/web_service/ws/Coordsyss.class.inc delete mode 100755 src/module_extraction/web_service/ws/Extraction.class.inc delete mode 100755 src/module_extraction/web_service/ws/ExtractionExtraction.class.inc delete mode 100755 src/module_extraction/web_service/ws/ExtractionExtraction.class.sql.inc delete mode 100755 src/module_extraction/web_service/ws/Extraction_depot.class.inc delete mode 100755 src/module_extraction/web_service/ws/Extraction_depots.class.inc delete mode 100755 src/module_extraction/web_service/ws/Extractions.class.inc delete mode 100755 src/module_extraction/web_service/ws/Format.class.inc delete mode 100755 src/module_extraction/web_service/ws/Formats.class.inc delete mode 100755 src/module_extraction/web_service/ws/Layer.class.inc delete mode 100755 src/module_extraction/web_service/ws/Layers.class.inc delete mode 100755 src/module_extraction/web_service/ws/overview.phtml delete mode 100644 src/vitis/.gitignore delete mode 100644 src/vitis/README.md delete mode 100644 src/vitis/_install/client/fileToDelete.txt delete mode 100644 src/vitis/_install/client/folderToDelete.txt delete mode 100644 src/vitis/_install/client/listModuleApache.txt delete mode 100644 src/vitis/_install/vas/apache.conf delete mode 100644 src/vitis/_install/vas/listModuleApache.txt delete mode 100755 src/vitis/vas/rest/class/.htaccess delete mode 100755 src/vitis/vas/rest/class/Ldap.class.inc delete mode 100755 src/vitis/vas/rest/class/PEAR/Autoloader.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Builder.php delete mode 100755 src/vitis/vas/rest/class/PEAR/ChannelFile.php delete mode 100755 src/vitis/vas/rest/class/PEAR/ChannelFile/Parser.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Command.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Command/Auth.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Command/Auth.xml delete mode 100755 src/vitis/vas/rest/class/PEAR/Command/Build.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Command/Build.xml delete mode 100755 src/vitis/vas/rest/class/PEAR/Command/Channels.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Command/Channels.xml delete mode 100755 src/vitis/vas/rest/class/PEAR/Command/Common.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Command/Config.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Command/Config.xml delete mode 100755 src/vitis/vas/rest/class/PEAR/Command/Install.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Command/Install.xml delete mode 100755 src/vitis/vas/rest/class/PEAR/Command/Mirror.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Command/Mirror.xml delete mode 100755 src/vitis/vas/rest/class/PEAR/Command/Package.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Command/Package.xml delete mode 100755 src/vitis/vas/rest/class/PEAR/Command/Pickle.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Command/Pickle.xml delete mode 100755 src/vitis/vas/rest/class/PEAR/Command/Registry.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Command/Registry.xml delete mode 100755 src/vitis/vas/rest/class/PEAR/Command/Remote.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Command/Remote.xml delete mode 100755 src/vitis/vas/rest/class/PEAR/Command/Test.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Command/Test.xml delete mode 100755 src/vitis/vas/rest/class/PEAR/Common.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Config.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Dependency.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Dependency2.php delete mode 100755 src/vitis/vas/rest/class/PEAR/DependencyDB.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Downloader.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Downloader/Package.php delete mode 100755 src/vitis/vas/rest/class/PEAR/ErrorStack.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Exception.php delete mode 100755 src/vitis/vas/rest/class/PEAR/FixPHP5PEARWarnings.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Frontend.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Frontend/CLI.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Installer.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Installer/Role.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Installer/Role/Cfg.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Installer/Role/Cfg.xml delete mode 100755 src/vitis/vas/rest/class/PEAR/Installer/Role/Common.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Installer/Role/Data.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Installer/Role/Data.xml delete mode 100755 src/vitis/vas/rest/class/PEAR/Installer/Role/Doc.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Installer/Role/Doc.xml delete mode 100755 src/vitis/vas/rest/class/PEAR/Installer/Role/Ext.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Installer/Role/Ext.xml delete mode 100755 src/vitis/vas/rest/class/PEAR/Installer/Role/Php.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Installer/Role/Php.xml delete mode 100755 src/vitis/vas/rest/class/PEAR/Installer/Role/Script.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Installer/Role/Script.xml delete mode 100755 src/vitis/vas/rest/class/PEAR/Installer/Role/Src.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Installer/Role/Src.xml delete mode 100755 src/vitis/vas/rest/class/PEAR/Installer/Role/Test.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Installer/Role/Test.xml delete mode 100755 src/vitis/vas/rest/class/PEAR/Installer/Role/Www.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Installer/Role/Www.xml delete mode 100755 src/vitis/vas/rest/class/PEAR/Mail.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Mail/RFC822.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Mail/mail.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Mail/mime.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Mail/mimePart.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Mail/mock.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Mail/net/SMTP.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Mail/net/Socket.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Mail/net/docs/guide.txt delete mode 100755 src/vitis/vas/rest/class/PEAR/Mail/net/examples/basic.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Mail/net/tests/auth.phpt delete mode 100755 src/vitis/vas/rest/class/PEAR/Mail/net/tests/basic.phpt delete mode 100755 src/vitis/vas/rest/class/PEAR/Mail/net/tests/config.php.dist delete mode 100755 src/vitis/vas/rest/class/PEAR/Mail/net/tests/quotedata.phpt delete mode 100755 src/vitis/vas/rest/class/PEAR/Mail/null.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Mail/sendmail.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Mail/smtp.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Mail/smtpmx.php delete mode 100755 src/vitis/vas/rest/class/PEAR/PEAR.php delete mode 100755 src/vitis/vas/rest/class/PEAR/PackageFile.php delete mode 100755 src/vitis/vas/rest/class/PEAR/PackageFile/Generator/v1.php delete mode 100755 src/vitis/vas/rest/class/PEAR/PackageFile/Generator/v2.php delete mode 100755 src/vitis/vas/rest/class/PEAR/PackageFile/Parser/v1.php delete mode 100755 src/vitis/vas/rest/class/PEAR/PackageFile/Parser/v2.php delete mode 100755 src/vitis/vas/rest/class/PEAR/PackageFile/v1.php delete mode 100755 src/vitis/vas/rest/class/PEAR/PackageFile/v2.php delete mode 100755 src/vitis/vas/rest/class/PEAR/PackageFile/v2/Validator.php delete mode 100755 src/vitis/vas/rest/class/PEAR/PackageFile/v2/rw.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Packager.php delete mode 100755 src/vitis/vas/rest/class/PEAR/REST.php delete mode 100755 src/vitis/vas/rest/class/PEAR/REST/10.php delete mode 100755 src/vitis/vas/rest/class/PEAR/REST/11.php delete mode 100755 src/vitis/vas/rest/class/PEAR/REST/13.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Registry.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Remote.php delete mode 100755 src/vitis/vas/rest/class/PEAR/RunTest.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Task/Common.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Task/Postinstallscript.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Task/Postinstallscript/rw.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Task/Replace.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Task/Replace/rw.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Task/Unixeol.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Task/Unixeol/rw.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Task/Windowseol.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Task/Windowseol/rw.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Validate.php delete mode 100755 src/vitis/vas/rest/class/PEAR/Validator/PECL.php delete mode 100755 src/vitis/vas/rest/class/PEAR/XMLParser.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/extras/EasyPeasyICS.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/extras/README.md delete mode 100755 src/vitis/vas/rest/class/PHPMailer/extras/htmlfilter.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/extras/ntlm_sasl_client.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-am.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ar.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-az.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ba.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-be.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-bg.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ca.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ch.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-cs.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-da.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-de.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-el.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-eo.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-es.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-et.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-fa.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-fi.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-fo.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-fr.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-gl.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-he.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-hi.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-hr.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-hu.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-id.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-it.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ja.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ka.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ko.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-lt.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-lv.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ms.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-nb.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-nl.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-pl.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-pt.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-pt_br.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ro.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-rs.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ru.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-sk.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-sl.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-sr.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-sv.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-tr.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-uk.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-vi.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-zh.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-zh_cn.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/src/Exception.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/src/OAuth.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/src/PHPMailer.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/src/POP3.php delete mode 100755 src/vitis/vas/rest/class/PHPMailer/src/SMTP.php delete mode 100755 src/vitis/vas/rest/class/aws_lib/AWS_Notification/AWS_SMS.class.inc delete mode 100755 src/vitis/vas/rest/class/aws_lib/AWS_Notification/AWS_notification.class.inc delete mode 100644 src/vitis/vas/rest/class/aws_lib/AmazonAWS.class.inc delete mode 100755 src/vitis/vas/rest/class/aws_lib/AmazonApiGateway.class.inc delete mode 100644 src/vitis/vas/rest/class/aws_lib/AmazonS3.class.inc delete mode 100755 src/vitis/vas/rest/class/treeview/LdapTree.php delete mode 100755 src/vitis/vas/rest/class/treeview/Tree.php delete mode 100755 src/vitis/vas/rest/class/treeview/aciTree.php delete mode 100755 src/vitis/vas/rest/class/vitis_lib/Connection.class.inc delete mode 100755 src/vitis/vas/rest/class/vitis_lib/DbClass.class.inc delete mode 100755 src/vitis/vas/rest/class/vitis_lib/Form.class.inc delete mode 100644 src/vitis/vas/rest/class/vitis_lib/VitisError.class.inc delete mode 100755 src/vitis/vas/rest/class/vitis_lib/XmlAbstract.class.inc delete mode 100644 src/vitis/vas/rest/class/vmlib/BD.class.inc delete mode 100755 src/vitis/vas/rest/class/vmlib/BdDataAccess.inc delete mode 100755 src/vitis/vas/rest/class/vmlib/Email.class.inc delete mode 100755 src/vitis/vas/rest/class/vmlib/EmailTemplate.class.inc delete mode 100755 src/vitis/vas/rest/class/vmlib/EmailTemplate.class.sql.inc delete mode 100755 src/vitis/vas/rest/class/vmlib/Ldap.class.inc delete mode 100755 src/vitis/vas/rest/class/vmlib/PgsqlDataAccess.class.inc delete mode 100755 src/vitis/vas/rest/class/vmlib/PostgisUtil.class.inc delete mode 100755 src/vitis/vas/rest/class/vmlib/Vm.class.inc delete mode 100755 src/vitis/vas/rest/class/vmlib/Vm.class.sql.inc delete mode 100755 src/vitis/vas/rest/class/vmlib/class.websocket_client.php delete mode 100755 src/vitis/vas/rest/class/vmlib/coffeescript/class.jstocoffee.php delete mode 100755 src/vitis/vas/rest/class/vmlib/coffeescript/classes/errors.php delete mode 100755 src/vitis/vas/rest/class/vmlib/coffeescript/classes/helpers.php delete mode 100755 src/vitis/vas/rest/class/vmlib/coffeescript/classes/lexer.php delete mode 100755 src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes.php delete mode 100755 src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/access.php delete mode 100755 src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/arr.php delete mode 100755 src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/assign.php delete mode 100755 src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/base.php delete mode 100755 src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/block.php delete mode 100755 src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/call.php delete mode 100755 src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/class.php delete mode 100755 src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/closure.php delete mode 100755 src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/code.php delete mode 100755 src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/comment.php delete mode 100755 src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/existence.php delete mode 100755 src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/extends.php delete mode 100755 src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/for.php delete mode 100755 src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/if.php delete mode 100755 src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/in.php delete mode 100755 src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/index.php delete mode 100755 src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/literal.php delete mode 100755 src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/obj.php delete mode 100755 src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/op.php delete mode 100755 src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/param.php delete mode 100755 src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/parens.php delete mode 100755 src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/push.php delete mode 100755 src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/range.php delete mode 100755 src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/return.php delete mode 100755 src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/slice.php delete mode 100755 src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/splat.php delete mode 100755 src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/switch.php delete mode 100755 src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/throw.php delete mode 100755 src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/try.php delete mode 100755 src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/value.php delete mode 100755 src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/while.php delete mode 100755 src/vitis/vas/rest/class/vmlib/coffeescript/classes/parser.php delete mode 100755 src/vitis/vas/rest/class/vmlib/coffeescript/classes/rewriter.php delete mode 100755 src/vitis/vas/rest/class/vmlib/coffeescript/classes/scope.php delete mode 100755 src/vitis/vas/rest/class/vmlib/coffeescript/coffeescript.php delete mode 100755 src/vitis/vas/rest/class/vmlib/coffeescript/jsmaker.php delete mode 100755 src/vitis/vas/rest/class/vmlib/context/covage.inc delete mode 100755 src/vitis/vas/rest/class/vmlib/context/gtf.inc delete mode 100755 src/vitis/vas/rest/class/vmlib/context/message.inc delete mode 100755 src/vitis/vas/rest/class/vmlib/cryptUtil.inc delete mode 100755 src/vitis/vas/rest/class/vmlib/dateUtil.class.inc delete mode 100755 src/vitis/vas/rest/class/vmlib/dbUtil.inc delete mode 100644 src/vitis/vas/rest/class/vmlib/error.inc delete mode 100755 src/vitis/vas/rest/class/vmlib/lang_vmlib/en-lang.inc delete mode 100755 src/vitis/vas/rest/class/vmlib/lang_vmlib/fr-lang.inc delete mode 100644 src/vitis/vas/rest/class/vmlib/logUtil.inc delete mode 100755 src/vitis/vas/rest/class/vmlib/phpUtil.inc delete mode 100755 src/vitis/vas/rest/class/vmlib/stringUtil.inc delete mode 100755 src/vitis/vas/rest/class/wab_lib/BusinessObject.class.inc delete mode 100755 src/vitis/vas/rest/class/wab_lib/BusinessObject.class.sql.inc delete mode 100755 src/vitis/vas/rest/ws/vitis/Accounts.class.mail.inc delete mode 100644 src/vitis/vas/sql/sqlQueries.xml delete mode 100644 update.bat delete mode 100755 utils/copy_hooks.sh delete mode 100755 utils/get_deps.sh delete mode 100755 utils/githooks/post-merge delete mode 100755 utils/githooks/pre-push delete mode 100755 utils/init_subtrees.sh delete mode 100755 utils/init_symlinks.sh delete mode 100755 utils/pull_subtrees.sh delete mode 100755 utils/push_subtrees.sh delete mode 100644 utils/utils/copy_hooks.bat delete mode 100755 utils/utils/copy_hooks.sh delete mode 100755 utils/utils/get_deps.sh delete mode 100755 utils/utils/githooks/post-merge delete mode 100755 utils/utils/githooks/pre-push delete mode 100755 utils/utils/init_subtrees.sh delete mode 100755 utils/utils/init_symlinks.sh delete mode 100644 utils/utils/init_tree.bat delete mode 100755 utils/utils/pull_subtrees.sh delete mode 100755 utils/utils/push_subtrees.sh delete mode 100644 utils/utils/update_tree.bat rename {src/vitis/vas => vas}/doc/composer.json (100%) rename {src/vitis/vas => vas}/doc/composer.lock (100%) rename {src/vitis/vas => vas}/doc/css/reset.css (100%) rename {src/vitis/vas => vas}/doc/css/screen.css (100%) rename {src/vitis/vas => vas}/doc/css/style.css (100%) rename {src/vitis/vas => vas}/doc/images/gtf_ws.png (100%) rename {src/vitis/vas => vas}/doc/images/order.png (100%) rename {src/vitis/vas => vas}/doc/images/overview.png (100%) rename {src/vitis/vas => vas}/doc/images/rest.png (100%) rename {src/vitis/vas => vas}/doc/images/throbber.gif (100%) rename {src/vitis/vas => vas}/doc/images/token.png (100%) rename {src/vitis/vas => vas}/doc/images/workspace.png (100%) rename {src/vitis/vas => vas}/doc/index.phtml (100%) rename {src/vitis/vas => vas}/doc/javascript/backbone-min.js (100%) rename {src/vitis/vas => vas}/doc/javascript/handlebars-1.0.0.js (100%) rename {src/vitis/vas => vas}/doc/javascript/handlebars-2.0.0.js (100%) rename {src/vitis/vas => vas}/doc/javascript/highlight.7.3.pack.js (100%) rename {src/vitis/vas => vas}/doc/javascript/jquery-1.8.0.min.js (100%) rename {src/vitis/vas => vas}/doc/javascript/jquery.ba-bbq.min.js (100%) rename {src/vitis/vas => vas}/doc/javascript/jquery.slideto.min.js (100%) rename {src/vitis/vas => vas}/doc/javascript/jquery.wiggle.min.js (100%) rename {src/vitis/vas => vas}/doc/javascript/marked.js (100%) rename {src/vitis/vas => vas}/doc/javascript/shred.bundle.js (100%) rename {src/vitis/vas => vas}/doc/javascript/shred/content.js (100%) rename {src/vitis/vas => vas}/doc/javascript/swagger-oauth.js (100%) rename {src/vitis/vas => vas}/doc/javascript/swagger-ui.js (100%) rename {src/vitis/vas => vas}/doc/javascript/swagger-ui.min.js (100%) rename {src/vitis/vas => vas}/doc/javascript/underscore-min.js (100%) rename {src/vitis/vas => vas}/doc/javascript/underscore-min.map (100%) rename {src/vitis/vas => vas}/doc/swagger.php (100%) rename {src/vitis/vas => vas}/doc/vendor/autoload.php (100%) rename {src/vitis/vas => vas}/doc/vendor/bin/swagger (100%) rename {src/vitis/vas => vas}/doc/vendor/composer/ClassLoader.php (100%) rename {src/vitis/vas => vas}/doc/vendor/composer/LICENSE (100%) rename {src/vitis/vas => vas}/doc/vendor/composer/autoload_classmap.php (100%) rename {src/vitis/vas => vas}/doc/vendor/composer/autoload_files.php (100%) rename {src/vitis/vas => vas}/doc/vendor/composer/autoload_namespaces.php (100%) rename {src/vitis/vas => vas}/doc/vendor/composer/autoload_psr4.php (100%) rename {src/vitis/vas => vas}/doc/vendor/composer/autoload_real.php (100%) rename {src/vitis/vas => vas}/doc/vendor/composer/autoload_static.php (100%) rename {src/vitis/vas => vas}/doc/vendor/composer/installed.json (100%) rename {src/vitis/vas => vas}/doc/vendor/doctrine/annotations/LICENSE (100%) rename {src/vitis/vas => vas}/doc/vendor/doctrine/annotations/README.md (100%) rename {src/vitis/vas => vas}/doc/vendor/doctrine/annotations/composer.json (100%) rename {src/vitis/vas => vas}/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation.php (100%) rename {src/vitis/vas => vas}/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attribute.php (100%) rename {src/vitis/vas => vas}/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attributes.php (100%) rename {src/vitis/vas => vas}/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Enum.php (100%) rename {src/vitis/vas => vas}/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/IgnoreAnnotation.php (100%) rename {src/vitis/vas => vas}/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Required.php (100%) rename {src/vitis/vas => vas}/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Target.php (100%) rename {src/vitis/vas => vas}/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationException.php (100%) rename {src/vitis/vas => vas}/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationReader.php (100%) rename {src/vitis/vas => vas}/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationRegistry.php (100%) rename {src/vitis/vas => vas}/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/CachedReader.php (100%) rename {src/vitis/vas => vas}/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocLexer.php (100%) rename {src/vitis/vas => vas}/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocParser.php (100%) rename {src/vitis/vas => vas}/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/FileCacheReader.php (100%) rename {src/vitis/vas => vas}/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/IndexedReader.php (100%) rename {src/vitis/vas => vas}/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/PhpParser.php (100%) rename {src/vitis/vas => vas}/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Reader.php (100%) rename {src/vitis/vas => vas}/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/SimpleAnnotationReader.php (100%) rename {src/vitis/vas => vas}/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/TokenParser.php (100%) rename {src/vitis/vas => vas}/doc/vendor/doctrine/lexer/LICENSE (100%) rename {src/vitis/vas => vas}/doc/vendor/doctrine/lexer/README.md (100%) rename {src/vitis/vas => vas}/doc/vendor/doctrine/lexer/composer.json (100%) rename {src/vitis/vas => vas}/doc/vendor/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/.gitignore (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Adapter/AbstractAdapter.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Adapter/AbstractFindAdapter.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Adapter/AdapterInterface.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Adapter/BsdFindAdapter.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Adapter/GnuFindAdapter.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Adapter/PhpAdapter.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/CHANGELOG.md (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Comparator/Comparator.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Comparator/DateComparator.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Comparator/NumberComparator.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Exception/AccessDeniedException.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Exception/AdapterFailureException.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Exception/ExceptionInterface.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Exception/OperationNotPermitedException.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Exception/ShellCommandFailureException.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Expression/Expression.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Expression/Glob.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Expression/Regex.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Expression/ValueInterface.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Finder.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Glob.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Iterator/CustomFilterIterator.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Iterator/DateRangeFilterIterator.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Iterator/DepthRangeFilterIterator.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Iterator/FilePathsIterator.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Iterator/FileTypeFilterIterator.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Iterator/FilecontentFilterIterator.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Iterator/FilenameFilterIterator.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Iterator/FilterIterator.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Iterator/PathFilterIterator.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Iterator/SizeRangeFilterIterator.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Iterator/SortableIterator.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/LICENSE (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/README.md (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Shell/Command.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Shell/Shell.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/SplFileInfo.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Tests/BsdFinderTest.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Tests/Comparator/ComparatorTest.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Tests/Comparator/DateComparatorTest.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Tests/Comparator/NumberComparatorTest.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Tests/Expression/ExpressionTest.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Tests/Expression/GlobTest.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Tests/Expression/RegexTest.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Tests/FakeAdapter/DummyAdapter.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Tests/FakeAdapter/FailingAdapter.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Tests/FakeAdapter/NamedAdapter.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Tests/FakeAdapter/UnsupportedAdapter.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Tests/FinderTest.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Tests/Fixtures/A/B/C/abc.dat (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Tests/Fixtures/A/B/ab.dat (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Tests/Fixtures/A/a.dat (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/B/C/abc.dat.copy (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/B/ab.dat.copy (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/a.dat.copy (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Tests/Fixtures/dolor.txt (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Tests/Fixtures/ipsum.txt (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Tests/Fixtures/lorem.txt (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Tests/Fixtures/one/a (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Tests/Fixtures/one/b/c.neon (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Tests/Fixtures/one/b/d.neon (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Tests/Fixtures/r+e.gex[c]a(r)s/dir/bar.dat (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Tests/Fixtures/with space/foo.txt (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Tests/GlobTest.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Tests/GnuFinderTest.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Tests/Iterator/CustomFilterIteratorTest.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Tests/Iterator/DateRangeFilterIteratorTest.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Tests/Iterator/DepthRangeFilterIteratorTest.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Tests/Iterator/ExcludeDirectoryFilterIteratorTest.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Tests/Iterator/FilePathsIteratorTest.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Tests/Iterator/FileTypeFilterIteratorTest.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Tests/Iterator/FilecontentFilterIteratorTest.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Tests/Iterator/FilenameFilterIteratorTest.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Tests/Iterator/FilterIteratorTest.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Tests/Iterator/Iterator.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Tests/Iterator/IteratorTestCase.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Tests/Iterator/MockFileListIterator.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Tests/Iterator/MockSplFileInfo.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Tests/Iterator/MultiplePcreFilterIteratorTest.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Tests/Iterator/PathFilterIteratorTest.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Tests/Iterator/RealIteratorTestCase.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Tests/Iterator/RecursiveDirectoryIteratorTest.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Tests/Iterator/SizeRangeFilterIteratorTest.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Tests/Iterator/SortableIteratorTest.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/Tests/Shell/CommandTest.php (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/composer.json (100%) rename {src/vitis/vas => vas}/doc/vendor/symfony/finder/phpunit.xml.dist (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/.gitignore (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/.travis.yml (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/Changelog.md (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/Examples/Examples.md (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/ApiResponse.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/controllers/PetController.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/controllers/StoreController.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/controllers/UserController.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Category.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Order.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Pet.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Tag.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/User.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/security.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/swagger-v2.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/tags.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-simple/SimplePet.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-simple/SimplePetsController.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-simple/api.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/controllers/PetWithDocsController.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/docs.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/models/ErrorModel.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/models/Pet.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore/Pet.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore/PetsController.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore/api.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/LICENSE-2.0.txt (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/README.md (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/VERSION (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/bin/swagger (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/composer.json (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/docs/Advanced.md (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/docs/Getting-started.md (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/docs/Migrating-to-v2.md (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/docs/Related-projects.md (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/phpunit.xml.dist (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/src/Analyser.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/src/Analysis.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/src/Annotations/AbstractAnnotation.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/src/Annotations/Contact.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/src/Annotations/Definition.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/src/Annotations/Delete.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/src/Annotations/ExternalDocumentation.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/src/Annotations/Get.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/src/Annotations/Head.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/src/Annotations/Header.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/src/Annotations/Info.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/src/Annotations/Items.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/src/Annotations/License.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/src/Annotations/Operation.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/src/Annotations/Options.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/src/Annotations/Parameter.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/src/Annotations/Patch.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/src/Annotations/Path.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/src/Annotations/Post.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/src/Annotations/Property.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/src/Annotations/Put.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/src/Annotations/Response.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/src/Annotations/Schema.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/src/Annotations/SecurityScheme.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/src/Annotations/Swagger.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/src/Annotations/Tag.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/src/Annotations/Xml.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/src/Context.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/src/Logger.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/src/Processors/AugmentDefinitions.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/src/Processors/AugmentOperations.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/src/Processors/AugmentParameters.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/src/Processors/AugmentProperties.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/src/Processors/BuildPaths.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/src/Processors/CleanUnmerged.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/src/Processors/HandleReferences.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/src/Processors/InheritProperties.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/src/Processors/MergeIntoSwagger.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/src/Serializer.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/src/StaticAnalyser.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/src/Util.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/src/functions.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/tests/AbstractAnnotationTest.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/tests/AnalyserTest.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/tests/AnalysisTest.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/tests/AugmentDefinitionsTest.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/tests/AugmentOperationTest.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/tests/AugmentParameterTest.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/tests/AugmentPropertiesTest.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/tests/BuildPathsTest.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/tests/CleanUnmergedTest.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/tests/CommandlineInterfaceTest.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/tests/ConstantsTest.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/tests/ContextTest.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore-simple.json (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore-with-external-docs.json (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore.json (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore.swagger.io.json (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/tests/ExamplesTest.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/tests/Fixtures/Ancestor.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/tests/Fixtures/AncestorWithoutDocBlocks.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/tests/Fixtures/Child.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/tests/Fixtures/ChildWithDocBlocks.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/tests/Fixtures/Customer.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/tests/Fixtures/GrandAncestor.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/tests/Fixtures/HelloTrait.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/tests/Fixtures/NestedProperty.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/tests/Fixtures/ThirdPartyAnnotations.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/tests/Fixtures/UsingPhpDoc.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/tests/Fixtures/UsingRefs.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/tests/Fixtures/routes.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/tests/InheritPropertiesTest.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/tests/ItemsTest.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/tests/MergeIntoSwaggerTest.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/tests/NestedPropertyTest.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/tests/ResponseTest.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/tests/SerializerTest.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/tests/StaticAnalyserTest.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/tests/SwaggerTestCase.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/tests/UtilTest.php (100%) rename {src/vitis/vas => vas}/doc/vendor/zircote/swagger-php/tests/ValidateRelationsTest.php (100%) rename {src/vitis/vas => vas}/public/studio/default.js (100%) rename {src/vitis/vas => vas}/rest/.htaccess (100%) rename {src/vitis/vas => vas}/rest/conf/constants.inc (100%) rename {src/vitis/vas => vas}/rest/conf/php_conf.inc (100%) rename {src/vitis/vas => vas}/rest/conf/properties.inc (100%) rename {src/vitis/vas => vas}/rest/conf/properties_domain.inc (100%) rename {src/vitis/vas => vas}/rest/conf/properties_post.inc (100%) rename {src/vitis/vas => vas}/rest/conf/properties_server.inc (100%) rename {src/vitis/vas => vas}/rest/conf/selected_properties.inc (100%) rename {src/vitis/vas => vas}/rest/conf/version.inc (100%) rename {src/vitis/vas => vas}/rest/inc/MetadataAccess.class.inc (100%) rename {src/vitis/vas => vas}/rest/inc/MetadataAccess.sql.inc (100%) rename {src/vitis/vas => vas}/rest/index.phtml (100%) rename {src/vitis/vas => vas}/rest/index.vhtml (100%) rename {src/vitis/vas => vas}/rest/ws/vitis/Accounts.class.inc (100%) rename {src/module_extraction/storage => vas/rest/ws/vitis}/Accounts.class.mail.inc (98%) mode change 100644 => 100755 rename {src/vitis/vas => vas}/rest/ws/vitis/Accounts.class.sql.inc (100%) rename {src/vitis/vas => vas}/rest/ws/vitis/Action.class.inc (100%) rename {src/vitis/vas => vas}/rest/ws/vitis/Actions.class.inc (100%) rename {src/vitis/vas => vas}/rest/ws/vitis/ActiveDirectory.class.inc (100%) rename {src/vitis/vas => vas}/rest/ws/vitis/BillingGroup.class.inc (100%) rename {src/vitis/vas => vas}/rest/ws/vitis/BillingGroups.class.inc (100%) rename {src/vitis/vas => vas}/rest/ws/vitis/Column.class.inc (100%) rename {src/vitis/vas => vas}/rest/ws/vitis/Columns.class.inc (100%) rename {src/vitis/vas => vas}/rest/ws/vitis/Database.class.inc (100%) rename {src/vitis/vas => vas}/rest/ws/vitis/Domain.class.inc (100%) rename {src/vitis/vas => vas}/rest/ws/vitis/Domains.class.inc (100%) rename {src/vitis/vas => vas}/rest/ws/vitis/Exploitations.class.inc (100%) rename {src/vitis/vas => vas}/rest/ws/vitis/FormatDate.class.inc (100%) rename {src/vitis/vas => vas}/rest/ws/vitis/FormatDates.class.inc (100%) rename {src/vitis/vas => vas}/rest/ws/vitis/GenericQuery.class.inc (100%) rename {src/vitis/vas => vas}/rest/ws/vitis/GenericQuerys.class.inc (100%) rename {src/vitis/vas => vas}/rest/ws/vitis/GenericQuerys.class.sql.inc (100%) rename {src/vitis/vas => vas}/rest/ws/vitis/Group.class.inc (100%) rename {src/vitis/vas => vas}/rest/ws/vitis/Groups.class.inc (100%) rename {src/vitis/vas => vas}/rest/ws/vitis/Logs.class.inc (100%) rename {src/vitis/vas => vas}/rest/ws/vitis/Mode.class.inc (100%) rename {src/vitis/vas => vas}/rest/ws/vitis/Modes.class.inc (100%) rename {src/vitis/vas => vas}/rest/ws/vitis/PhpInfo.class.inc (100%) rename {src/vitis/vas => vas}/rest/ws/vitis/PrivateToken.class.inc (100%) rename {src/vitis/vas => vas}/rest/ws/vitis/Privilege.class.inc (100%) rename {src/vitis/vas => vas}/rest/ws/vitis/Privileges.class.inc (100%) rename {src/vitis/vas => vas}/rest/ws/vitis/Properties.class.inc (100%) rename {src/vitis/vas => vas}/rest/ws/vitis/PublicToken.class.inc (100%) rename {src/vitis/vas => vas}/rest/ws/vitis/Ressources.class.inc (100%) rename {src/vitis/vas => vas}/rest/ws/vitis/Schema.class.inc (100%) rename {src/vitis/vas => vas}/rest/ws/vitis/SmtpServer.class.inc (100%) rename {src/vitis/vas => vas}/rest/ws/vitis/Tab.class.inc (100%) rename {src/vitis/vas => vas}/rest/ws/vitis/Table.class.inc (100%) rename {src/vitis/vas => vas}/rest/ws/vitis/Tabs.class.inc (100%) rename {src/vitis/vas => vas}/rest/ws/vitis/TimeZone.class.inc (100%) rename {src/vitis/vas => vas}/rest/ws/vitis/TimeZones.class.inc (100%) rename {src/vitis/vas => vas}/rest/ws/vitis/User.class.inc (100%) rename {src/vitis/vas => vas}/rest/ws/vitis/Users.class.inc (100%) rename {src/vitis/vas => vas}/rest/ws/vitis/Versions.class.inc (100%) rename {src/vitis/vas => vas}/rest/ws/vitis/Vitis.class.inc (100%) rename {src/vitis/vas => vas}/rest/ws/vitis/Vitis.class.sql.inc (100%) rename {src/vitis/vas => vas}/rest/ws/vitis/VitisSection.class.inc (100%) rename {src/vitis/vas => vas}/rest/ws/vitis/VitisSections.class.inc (100%) rename {src/vitis/vas => vas}/rest/ws/vitis/WebServices.class.inc (100%) rename {src/vitis/vas => vas}/rest/ws/vitis/overview.phtml (100%) rename {src/vitis/vas => vas}/tmp/file_to_delete.txt (100%) rename {src/vitis/vas => vas}/util/coordsys.txt (100%) rename {src/vitis/vas => vas}/util/migration/anc/SplitAddress.fmx (100%) rename {src/vitis/vas => vas}/util/migration/anc/lisez-moi.txt (100%) rename {src/vitis/vas => vas}/util/migration/anc/migration_anc_veremap__vmap.fmw (100%) rename {src/vitis/vas => vas}/util/migration/migration_user_and_group.fmw (100%) rename {src/vitis/vas => vas}/util/migration/migration_veremap_layer.fmw (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/angular/LICENSE (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/angular/angular.js (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/angular/angular.min.js (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/angular/angular.min.js.map (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/angular/modules/angular-route/angular-route.js (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/angular/modules/angular-translate/LICENSE (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-partial.js (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-partial.min.js (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-static-files.js (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-static-files.min.js (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/angular/modules/angular-translate/angular-translate.js (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/angular/modules/angular-translate/angular-translate.min.js (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/angular/modules/sanitize/angular-sanitize.js (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/angular/modules/sanitize/angular-sanitize.min.js (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/angular/modules/sanitize/angular-sanitize.min.js.map (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/angular/modules/ui-codemirror/LICENSE (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/angular/modules/ui-codemirror/ui-codemirror.min.js (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/angular/modules/ui-grid/LICENSE.md (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/angular/modules/ui-grid/plugins/draggable-rows.js (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/angular/modules/ui-grid/ui-grid.js (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/angular/modules/ui-grid/ui-grid.min.js (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/angular/modules/ui-tinymce/LICENSE (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/angular/modules/ui-tinymce/tinymce.js (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/bootstrap/LICENSE (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/bootstrap/css/bootstrap-theme.css (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/bootstrap/css/bootstrap-theme.css.map (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/bootstrap/css/bootstrap-theme.min.css (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/bootstrap/css/bootstrap-theme.min.css.map (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/bootstrap/css/bootstrap.css (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/bootstrap/css/bootstrap.css.map (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/bootstrap/css/bootstrap.min.css (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/bootstrap/css/bootstrap.min.css.map (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.eot (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.svg (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.woff (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2 (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/bootstrap/js/bootstrap.js (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/bootstrap/js/bootstrap.min.js (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/bootstrap/js/npm.js (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/closure/goog/base.js (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/jquery/LICENSE.txt (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/jquery/jquery-1.11.3.js (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/jquery/jquery-1.11.3.min.js (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/jquery/jquery-1.11.3.min.map (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/mapJSON/MapJSON.js (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/ol/ol-debug.js (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/ol/ol.css (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/ol/ol.js (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/ol/ol3-ext/licence.txt (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/ol/ol3-ext/readme.txt (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/ol/ol3-ext/style/fonts/fontawesome.def.js (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/ol/ol3-ext/style/fontsymbol.js (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/ol/ol3-ext/style/shadowstyle.js (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/ol/ol3-ext/utils/ol.ordering.js (100%) rename {src/vitis/vas => vas}/util/printserver/client/lib/ol/ol3-veremes/ol.veremes.js (100%) rename {src/vitis/vas => vas}/util/printserver/client/map/index.html (100%) rename {src/vitis/vas => vas}/util/printserver/client/map/index.js (100%) rename {src/vitis/vas => vas}/util/printserver/client/map/map.js (100%) rename {src/vitis/vas => vas}/util/printserver/client/map/progress.js (100%) rename {src/vitis/vas => vas}/util/printserver/client/map/projections.js (100%) rename {src/vitis/vas => vas}/util/printserver/client/map/scale.js (100%) rename {src/vitis/vas => vas}/util/printserver/client/report/index.html (100%) rename {src/vitis/vas => vas}/util/printserver/client/report/index.js (100%) rename {src/vitis/vas => vas}/util/printserver/client/report/report.js (100%) rename {src/vitis/vas => vas}/util/printserver/client/template/index.html (100%) rename {src/vitis/vas => vas}/util/printserver/client/template/index.js (100%) rename {src/vitis/vas => vas}/util/printserver/client/template/template.js (100%) rename {src/vitis/vas => vas}/util/printserver/client/utils/http.js (100%) rename {src/vitis/vas => vas}/util/printserver/client/utils/properties.js (100%) rename {src/vitis/vas => vas}/util/printserver/client/utils/utils.js (100%) rename {src/vitis/vas => vas}/util/printserver/server/printmap.js (100%) rename {src/vitis/vas => vas}/util/printserver/server/printreport.js (100%) rename {src/vitis/vas => vas}/util/printserver/server/printtemplate.js (100%) rename {src/vitis/vas => vas}/util/printserver/server/saveimage.js (100%) rename {src/vitis/vas => vas}/util/printserver/server/targetsize.js (100%) rename {src/vitis/vas => vas}/util/proxy/proxy.php (100%) rename {src/vitis/vas => vas}/util/webSocket/server/lib/SplClassLoader.php (100%) rename {src/vitis/vas => vas}/util/webSocket/server/lib/WebSocket/Application/Application.php (100%) rename {src/vitis/vas => vas}/util/webSocket/server/lib/WebSocket/Application/DemoApplication.php (100%) rename {src/vitis/vas => vas}/util/webSocket/server/lib/WebSocket/Application/GtfEvents.php (100%) rename {src/vitis/vas => vas}/util/webSocket/server/lib/WebSocket/Application/Status.php (100%) rename {src/vitis/vas => vas}/util/webSocket/server/lib/WebSocket/Application/StatusApplication.php (100%) rename {src/vitis/vas => vas}/util/webSocket/server/lib/WebSocket/Application/VitisApplication.php (100%) rename {src/vitis/vas => vas}/util/webSocket/server/lib/WebSocket/Application/VmapEvents.php (100%) rename {src/vitis/vas => vas}/util/webSocket/server/lib/WebSocket/Connection.php (100%) rename {src/vitis/vas => vas}/util/webSocket/server/lib/WebSocket/Server.php (100%) rename {src/vitis/vas => vas}/util/webSocket/server/lib/WebSocket/Socket.php (100%) rename {src/vitis/vas => vas}/util/webSocket/server/server.pem (100%) rename {src/vitis/vas => vas}/util/webSocket/server/server.php (100%) rename {src/vitis/vas => vas}/util/writerpick.txt (100%) diff --git a/README.md b/README.md index 74f028f0..73a21c98 100644 --- a/README.md +++ b/README.md @@ -1,13 +1 @@ -# Extraction - -Application extraction - -## Install dev version (linux) - -To install the dev version of this project run the following steps: - -- Install the app via the VAI setup on var/www/[app name] -- Clone this repo on var/wwww/[app name]\_dev -- Run install.sh and give the var/www/[app name] path when asked to build your tree structure -- Now you have the correct versioned tree structure, rename var/www/[app name] as var/www/[app name]\_vai and var/www/[app name]\_dev as var/www/[app name] -- Run `git pull` and `git push` to update/post the project and his dependencies +Vitis framework \ No newline at end of file diff --git a/src/vitis/_install/dependencies/mapserver/.htaccess b/_install/dependencies/mapserver/.htaccess similarity index 100% rename from src/vitis/_install/dependencies/mapserver/.htaccess rename to _install/dependencies/mapserver/.htaccess diff --git a/src/vitis/_install/dependencies/mapserver/linux/apache.conf b/_install/dependencies/mapserver/linux/apache.conf similarity index 100% rename from src/vitis/_install/dependencies/mapserver/linux/apache.conf rename to _install/dependencies/mapserver/linux/apache.conf diff --git a/src/vitis/_install/dependencies/mapserver/windows/apache.conf b/_install/dependencies/mapserver/windows/apache.conf similarity index 100% rename from src/vitis/_install/dependencies/mapserver/windows/apache.conf rename to _install/dependencies/mapserver/windows/apache.conf diff --git a/src/vitis/_install/dependencies/php/linux/apache.conf b/_install/dependencies/php/linux/apache.conf similarity index 100% rename from src/vitis/_install/dependencies/php/linux/apache.conf rename to _install/dependencies/php/linux/apache.conf diff --git a/src/vitis/_install/dependencies/php/php.ini b/_install/dependencies/php/php.ini similarity index 100% rename from src/vitis/_install/dependencies/php/php.ini rename to _install/dependencies/php/php.ini diff --git a/src/vitis/_install/dependencies/php/windows/apache.conf b/_install/dependencies/php/windows/apache.conf similarity index 100% rename from src/vitis/_install/dependencies/php/windows/apache.conf rename to _install/dependencies/php/windows/apache.conf diff --git a/src/vitis/_install/dependencies/pycron/crontab.txt b/_install/dependencies/pycron/crontab.txt similarity index 100% rename from src/vitis/_install/dependencies/pycron/crontab.txt rename to _install/dependencies/pycron/crontab.txt diff --git a/src/vitis/_install/dependencies/websocket/apache.conf b/_install/dependencies/websocket/apache.conf similarity index 100% rename from src/vitis/_install/dependencies/websocket/apache.conf rename to _install/dependencies/websocket/apache.conf diff --git a/src/vitis/_install/dependencies/websocket/linux/websocket_vitis b/_install/dependencies/websocket/linux/websocket_vitis similarity index 100% rename from src/vitis/_install/dependencies/websocket/linux/websocket_vitis rename to _install/dependencies/websocket/linux/websocket_vitis diff --git a/src/vitis/_install/dependencies/websocket/websocket.cfg b/_install/dependencies/websocket/websocket.cfg similarity index 100% rename from src/vitis/_install/dependencies/websocket/websocket.cfg rename to _install/dependencies/websocket/websocket.cfg diff --git a/src/vitis/_install/dependency.xml b/_install/dependency.xml similarity index 100% rename from src/vitis/_install/dependency.xml rename to _install/dependency.xml diff --git a/src/vitis/client/.htaccess b/client/.htaccess similarity index 100% rename from src/vitis/client/.htaccess rename to client/.htaccess diff --git a/src/vitis/client/css/icons/fonts/veremes.eot b/client/css/icons/fonts/veremes.eot similarity index 100% rename from src/vitis/client/css/icons/fonts/veremes.eot rename to client/css/icons/fonts/veremes.eot diff --git a/src/vitis/client/css/icons/fonts/veremes.svg b/client/css/icons/fonts/veremes.svg similarity index 100% rename from src/vitis/client/css/icons/fonts/veremes.svg rename to client/css/icons/fonts/veremes.svg diff --git a/src/vitis/client/css/icons/fonts/veremes.ttf b/client/css/icons/fonts/veremes.ttf similarity index 100% rename from src/vitis/client/css/icons/fonts/veremes.ttf rename to client/css/icons/fonts/veremes.ttf diff --git a/src/vitis/client/css/icons/fonts/veremes.woff b/client/css/icons/fonts/veremes.woff similarity index 100% rename from src/vitis/client/css/icons/fonts/veremes.woff rename to client/css/icons/fonts/veremes.woff diff --git a/src/vitis/client/css/icons/selection.json b/client/css/icons/selection.json similarity index 100% rename from src/vitis/client/css/icons/selection.json rename to client/css/icons/selection.json diff --git a/src/vitis/client/css/icons/style.css b/client/css/icons/style.css similarity index 100% rename from src/vitis/client/css/icons/style.css rename to client/css/icons/style.css diff --git a/src/vitis/client/css/lib/awesome-bootstrap-checkbox.css b/client/css/lib/awesome-bootstrap-checkbox.css similarity index 100% rename from src/vitis/client/css/lib/awesome-bootstrap-checkbox.css rename to client/css/lib/awesome-bootstrap-checkbox.css diff --git a/src/vitis/client/css/lib/bootstrap-checkbox/build.css b/client/css/lib/bootstrap-checkbox/build.css similarity index 100% rename from src/vitis/client/css/lib/bootstrap-checkbox/build.css rename to client/css/lib/bootstrap-checkbox/build.css diff --git a/src/vitis/client/css/lib/bootstrap-checkbox/font-awesome.css b/client/css/lib/bootstrap-checkbox/font-awesome.css similarity index 100% rename from src/vitis/client/css/lib/bootstrap-checkbox/font-awesome.css rename to client/css/lib/bootstrap-checkbox/font-awesome.css diff --git a/src/vitis/client/css/lib/bootstrap-checkbox/font-awesome.min.css b/client/css/lib/bootstrap-checkbox/font-awesome.min.css similarity index 100% rename from src/vitis/client/css/lib/bootstrap-checkbox/font-awesome.min.css rename to client/css/lib/bootstrap-checkbox/font-awesome.min.css diff --git a/src/vitis/client/css/lib/bootstrap/css/bootstrap-theme.css b/client/css/lib/bootstrap/css/bootstrap-theme.css similarity index 100% rename from src/vitis/client/css/lib/bootstrap/css/bootstrap-theme.css rename to client/css/lib/bootstrap/css/bootstrap-theme.css diff --git a/src/vitis/client/css/lib/bootstrap/css/bootstrap-theme.css.map b/client/css/lib/bootstrap/css/bootstrap-theme.css.map similarity index 100% rename from src/vitis/client/css/lib/bootstrap/css/bootstrap-theme.css.map rename to client/css/lib/bootstrap/css/bootstrap-theme.css.map diff --git a/src/vitis/client/css/lib/bootstrap/css/bootstrap-theme.min.css b/client/css/lib/bootstrap/css/bootstrap-theme.min.css similarity index 100% rename from src/vitis/client/css/lib/bootstrap/css/bootstrap-theme.min.css rename to client/css/lib/bootstrap/css/bootstrap-theme.min.css diff --git a/src/vitis/client/css/lib/bootstrap/css/bootstrap.css b/client/css/lib/bootstrap/css/bootstrap.css similarity index 100% rename from src/vitis/client/css/lib/bootstrap/css/bootstrap.css rename to client/css/lib/bootstrap/css/bootstrap.css diff --git a/src/vitis/client/css/lib/bootstrap/css/bootstrap.css.map b/client/css/lib/bootstrap/css/bootstrap.css.map similarity index 100% rename from src/vitis/client/css/lib/bootstrap/css/bootstrap.css.map rename to client/css/lib/bootstrap/css/bootstrap.css.map diff --git a/src/vitis/client/css/lib/bootstrap/css/bootstrap.min.css b/client/css/lib/bootstrap/css/bootstrap.min.css similarity index 100% rename from src/vitis/client/css/lib/bootstrap/css/bootstrap.min.css rename to client/css/lib/bootstrap/css/bootstrap.min.css diff --git a/src/vitis/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.eot b/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.eot similarity index 100% rename from src/vitis/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.eot rename to client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.eot diff --git a/src/vitis/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.svg b/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.svg similarity index 100% rename from src/vitis/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.svg rename to client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.svg diff --git a/src/vitis/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf b/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf similarity index 100% rename from src/vitis/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf rename to client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf diff --git a/src/vitis/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.woff b/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.woff similarity index 100% rename from src/vitis/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.woff rename to client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.woff diff --git a/src/vitis/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2 b/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2 similarity index 100% rename from src/vitis/client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2 rename to client/css/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2 diff --git a/src/vitis/client/css/lib/codemirror/codemirror.css b/client/css/lib/codemirror/codemirror.css similarity index 100% rename from src/vitis/client/css/lib/codemirror/codemirror.css rename to client/css/lib/codemirror/codemirror.css diff --git a/src/vitis/client/css/lib/codemirror/codemirror_foldgutter.css b/client/css/lib/codemirror/codemirror_foldgutter.css similarity index 100% rename from src/vitis/client/css/lib/codemirror/codemirror_foldgutter.css rename to client/css/lib/codemirror/codemirror_foldgutter.css diff --git a/src/vitis/client/css/lib/codemirror/dialog.css b/client/css/lib/codemirror/dialog.css similarity index 100% rename from src/vitis/client/css/lib/codemirror/dialog.css rename to client/css/lib/codemirror/dialog.css diff --git a/src/vitis/client/css/lib/codemirror/docs.css b/client/css/lib/codemirror/docs.css similarity index 100% rename from src/vitis/client/css/lib/codemirror/docs.css rename to client/css/lib/codemirror/docs.css diff --git a/src/vitis/client/css/lib/codemirror/map.css b/client/css/lib/codemirror/map.css similarity index 100% rename from src/vitis/client/css/lib/codemirror/map.css rename to client/css/lib/codemirror/map.css diff --git a/src/vitis/client/css/lib/codemirror/show-hint.css b/client/css/lib/codemirror/show-hint.css similarity index 100% rename from src/vitis/client/css/lib/codemirror/show-hint.css rename to client/css/lib/codemirror/show-hint.css diff --git a/src/vitis/client/css/lib/codemirror/theme/3024-day.css b/client/css/lib/codemirror/theme/3024-day.css similarity index 100% rename from src/vitis/client/css/lib/codemirror/theme/3024-day.css rename to client/css/lib/codemirror/theme/3024-day.css diff --git a/src/vitis/client/css/lib/codemirror/theme/3024-night.css b/client/css/lib/codemirror/theme/3024-night.css similarity index 100% rename from src/vitis/client/css/lib/codemirror/theme/3024-night.css rename to client/css/lib/codemirror/theme/3024-night.css diff --git a/src/vitis/client/css/lib/codemirror/theme/Veremes.css b/client/css/lib/codemirror/theme/Veremes.css similarity index 100% rename from src/vitis/client/css/lib/codemirror/theme/Veremes.css rename to client/css/lib/codemirror/theme/Veremes.css diff --git a/src/vitis/client/css/lib/codemirror/theme/abcdef.css b/client/css/lib/codemirror/theme/abcdef.css similarity index 100% rename from src/vitis/client/css/lib/codemirror/theme/abcdef.css rename to client/css/lib/codemirror/theme/abcdef.css diff --git a/src/vitis/client/css/lib/codemirror/theme/ambiance-mobile.css b/client/css/lib/codemirror/theme/ambiance-mobile.css similarity index 100% rename from src/vitis/client/css/lib/codemirror/theme/ambiance-mobile.css rename to client/css/lib/codemirror/theme/ambiance-mobile.css diff --git a/src/vitis/client/css/lib/codemirror/theme/ambiance.css b/client/css/lib/codemirror/theme/ambiance.css similarity index 100% rename from src/vitis/client/css/lib/codemirror/theme/ambiance.css rename to client/css/lib/codemirror/theme/ambiance.css diff --git a/src/vitis/client/css/lib/codemirror/theme/base16-dark.css b/client/css/lib/codemirror/theme/base16-dark.css similarity index 100% rename from src/vitis/client/css/lib/codemirror/theme/base16-dark.css rename to client/css/lib/codemirror/theme/base16-dark.css diff --git a/src/vitis/client/css/lib/codemirror/theme/base16-light.css b/client/css/lib/codemirror/theme/base16-light.css similarity index 100% rename from src/vitis/client/css/lib/codemirror/theme/base16-light.css rename to client/css/lib/codemirror/theme/base16-light.css diff --git a/src/vitis/client/css/lib/codemirror/theme/bespin.css b/client/css/lib/codemirror/theme/bespin.css similarity index 100% rename from src/vitis/client/css/lib/codemirror/theme/bespin.css rename to client/css/lib/codemirror/theme/bespin.css diff --git a/src/vitis/client/css/lib/codemirror/theme/blackboard.css b/client/css/lib/codemirror/theme/blackboard.css similarity index 100% rename from src/vitis/client/css/lib/codemirror/theme/blackboard.css rename to client/css/lib/codemirror/theme/blackboard.css diff --git a/src/vitis/client/css/lib/codemirror/theme/cobalt.css b/client/css/lib/codemirror/theme/cobalt.css similarity index 100% rename from src/vitis/client/css/lib/codemirror/theme/cobalt.css rename to client/css/lib/codemirror/theme/cobalt.css diff --git a/src/vitis/client/css/lib/codemirror/theme/colorforth.css b/client/css/lib/codemirror/theme/colorforth.css similarity index 100% rename from src/vitis/client/css/lib/codemirror/theme/colorforth.css rename to client/css/lib/codemirror/theme/colorforth.css diff --git a/src/vitis/client/css/lib/codemirror/theme/dracula.css b/client/css/lib/codemirror/theme/dracula.css similarity index 100% rename from src/vitis/client/css/lib/codemirror/theme/dracula.css rename to client/css/lib/codemirror/theme/dracula.css diff --git a/src/vitis/client/css/lib/codemirror/theme/eclipse.css b/client/css/lib/codemirror/theme/eclipse.css similarity index 100% rename from src/vitis/client/css/lib/codemirror/theme/eclipse.css rename to client/css/lib/codemirror/theme/eclipse.css diff --git a/src/vitis/client/css/lib/codemirror/theme/elegant.css b/client/css/lib/codemirror/theme/elegant.css similarity index 100% rename from src/vitis/client/css/lib/codemirror/theme/elegant.css rename to client/css/lib/codemirror/theme/elegant.css diff --git a/src/vitis/client/css/lib/codemirror/theme/erlang-dark.css b/client/css/lib/codemirror/theme/erlang-dark.css similarity index 100% rename from src/vitis/client/css/lib/codemirror/theme/erlang-dark.css rename to client/css/lib/codemirror/theme/erlang-dark.css diff --git a/src/vitis/client/css/lib/codemirror/theme/hopscotch.css b/client/css/lib/codemirror/theme/hopscotch.css similarity index 100% rename from src/vitis/client/css/lib/codemirror/theme/hopscotch.css rename to client/css/lib/codemirror/theme/hopscotch.css diff --git a/src/vitis/client/css/lib/codemirror/theme/icecoder.css b/client/css/lib/codemirror/theme/icecoder.css similarity index 100% rename from src/vitis/client/css/lib/codemirror/theme/icecoder.css rename to client/css/lib/codemirror/theme/icecoder.css diff --git a/src/vitis/client/css/lib/codemirror/theme/isotope.css b/client/css/lib/codemirror/theme/isotope.css similarity index 100% rename from src/vitis/client/css/lib/codemirror/theme/isotope.css rename to client/css/lib/codemirror/theme/isotope.css diff --git a/src/vitis/client/css/lib/codemirror/theme/lesser-dark.css b/client/css/lib/codemirror/theme/lesser-dark.css similarity index 100% rename from src/vitis/client/css/lib/codemirror/theme/lesser-dark.css rename to client/css/lib/codemirror/theme/lesser-dark.css diff --git a/src/vitis/client/css/lib/codemirror/theme/liquibyte.css b/client/css/lib/codemirror/theme/liquibyte.css similarity index 100% rename from src/vitis/client/css/lib/codemirror/theme/liquibyte.css rename to client/css/lib/codemirror/theme/liquibyte.css diff --git a/src/vitis/client/css/lib/codemirror/theme/material.css b/client/css/lib/codemirror/theme/material.css similarity index 100% rename from src/vitis/client/css/lib/codemirror/theme/material.css rename to client/css/lib/codemirror/theme/material.css diff --git a/src/vitis/client/css/lib/codemirror/theme/mbo.css b/client/css/lib/codemirror/theme/mbo.css similarity index 100% rename from src/vitis/client/css/lib/codemirror/theme/mbo.css rename to client/css/lib/codemirror/theme/mbo.css diff --git a/src/vitis/client/css/lib/codemirror/theme/mdn-like.css b/client/css/lib/codemirror/theme/mdn-like.css similarity index 100% rename from src/vitis/client/css/lib/codemirror/theme/mdn-like.css rename to client/css/lib/codemirror/theme/mdn-like.css diff --git a/src/vitis/client/css/lib/codemirror/theme/midnight.css b/client/css/lib/codemirror/theme/midnight.css similarity index 100% rename from src/vitis/client/css/lib/codemirror/theme/midnight.css rename to client/css/lib/codemirror/theme/midnight.css diff --git a/src/vitis/client/css/lib/codemirror/theme/monokai.css b/client/css/lib/codemirror/theme/monokai.css similarity index 100% rename from src/vitis/client/css/lib/codemirror/theme/monokai.css rename to client/css/lib/codemirror/theme/monokai.css diff --git a/src/vitis/client/css/lib/codemirror/theme/neat.css b/client/css/lib/codemirror/theme/neat.css similarity index 100% rename from src/vitis/client/css/lib/codemirror/theme/neat.css rename to client/css/lib/codemirror/theme/neat.css diff --git a/src/vitis/client/css/lib/codemirror/theme/neo.css b/client/css/lib/codemirror/theme/neo.css similarity index 100% rename from src/vitis/client/css/lib/codemirror/theme/neo.css rename to client/css/lib/codemirror/theme/neo.css diff --git a/src/vitis/client/css/lib/codemirror/theme/night.css b/client/css/lib/codemirror/theme/night.css similarity index 100% rename from src/vitis/client/css/lib/codemirror/theme/night.css rename to client/css/lib/codemirror/theme/night.css diff --git a/src/vitis/client/css/lib/codemirror/theme/paraiso-dark.css b/client/css/lib/codemirror/theme/paraiso-dark.css similarity index 100% rename from src/vitis/client/css/lib/codemirror/theme/paraiso-dark.css rename to client/css/lib/codemirror/theme/paraiso-dark.css diff --git a/src/vitis/client/css/lib/codemirror/theme/paraiso-light.css b/client/css/lib/codemirror/theme/paraiso-light.css similarity index 100% rename from src/vitis/client/css/lib/codemirror/theme/paraiso-light.css rename to client/css/lib/codemirror/theme/paraiso-light.css diff --git a/src/vitis/client/css/lib/codemirror/theme/pastel-on-dark.css b/client/css/lib/codemirror/theme/pastel-on-dark.css similarity index 100% rename from src/vitis/client/css/lib/codemirror/theme/pastel-on-dark.css rename to client/css/lib/codemirror/theme/pastel-on-dark.css diff --git a/src/vitis/client/css/lib/codemirror/theme/railscasts.css b/client/css/lib/codemirror/theme/railscasts.css similarity index 100% rename from src/vitis/client/css/lib/codemirror/theme/railscasts.css rename to client/css/lib/codemirror/theme/railscasts.css diff --git a/src/vitis/client/css/lib/codemirror/theme/rubyblue.css b/client/css/lib/codemirror/theme/rubyblue.css similarity index 100% rename from src/vitis/client/css/lib/codemirror/theme/rubyblue.css rename to client/css/lib/codemirror/theme/rubyblue.css diff --git a/src/vitis/client/css/lib/codemirror/theme/seti.css b/client/css/lib/codemirror/theme/seti.css similarity index 100% rename from src/vitis/client/css/lib/codemirror/theme/seti.css rename to client/css/lib/codemirror/theme/seti.css diff --git a/src/vitis/client/css/lib/codemirror/theme/solarized.css b/client/css/lib/codemirror/theme/solarized.css similarity index 100% rename from src/vitis/client/css/lib/codemirror/theme/solarized.css rename to client/css/lib/codemirror/theme/solarized.css diff --git a/src/vitis/client/css/lib/codemirror/theme/the-matrix.css b/client/css/lib/codemirror/theme/the-matrix.css similarity index 100% rename from src/vitis/client/css/lib/codemirror/theme/the-matrix.css rename to client/css/lib/codemirror/theme/the-matrix.css diff --git a/src/vitis/client/css/lib/codemirror/theme/tomorrow-night-bright.css b/client/css/lib/codemirror/theme/tomorrow-night-bright.css similarity index 100% rename from src/vitis/client/css/lib/codemirror/theme/tomorrow-night-bright.css rename to client/css/lib/codemirror/theme/tomorrow-night-bright.css diff --git a/src/vitis/client/css/lib/codemirror/theme/tomorrow-night-eighties.css b/client/css/lib/codemirror/theme/tomorrow-night-eighties.css similarity index 100% rename from src/vitis/client/css/lib/codemirror/theme/tomorrow-night-eighties.css rename to client/css/lib/codemirror/theme/tomorrow-night-eighties.css diff --git a/src/vitis/client/css/lib/codemirror/theme/ttcn.css b/client/css/lib/codemirror/theme/ttcn.css similarity index 100% rename from src/vitis/client/css/lib/codemirror/theme/ttcn.css rename to client/css/lib/codemirror/theme/ttcn.css diff --git a/src/vitis/client/css/lib/codemirror/theme/twilight.css b/client/css/lib/codemirror/theme/twilight.css similarity index 100% rename from src/vitis/client/css/lib/codemirror/theme/twilight.css rename to client/css/lib/codemirror/theme/twilight.css diff --git a/src/vitis/client/css/lib/codemirror/theme/vibrant-ink.css b/client/css/lib/codemirror/theme/vibrant-ink.css similarity index 100% rename from src/vitis/client/css/lib/codemirror/theme/vibrant-ink.css rename to client/css/lib/codemirror/theme/vibrant-ink.css diff --git a/src/vitis/client/css/lib/codemirror/theme/xq-dark.css b/client/css/lib/codemirror/theme/xq-dark.css similarity index 100% rename from src/vitis/client/css/lib/codemirror/theme/xq-dark.css rename to client/css/lib/codemirror/theme/xq-dark.css diff --git a/src/vitis/client/css/lib/codemirror/theme/xq-light.css b/client/css/lib/codemirror/theme/xq-light.css similarity index 100% rename from src/vitis/client/css/lib/codemirror/theme/xq-light.css rename to client/css/lib/codemirror/theme/xq-light.css diff --git a/src/vitis/client/css/lib/codemirror/theme/yeti.css b/client/css/lib/codemirror/theme/yeti.css similarity index 100% rename from src/vitis/client/css/lib/codemirror/theme/yeti.css rename to client/css/lib/codemirror/theme/yeti.css diff --git a/src/vitis/client/css/lib/codemirror/theme/zenburn.css b/client/css/lib/codemirror/theme/zenburn.css similarity index 100% rename from src/vitis/client/css/lib/codemirror/theme/zenburn.css rename to client/css/lib/codemirror/theme/zenburn.css diff --git a/src/vitis/client/css/lib/font-awesome/HELP-US-OUT.txt b/client/css/lib/font-awesome/HELP-US-OUT.txt similarity index 100% rename from src/vitis/client/css/lib/font-awesome/HELP-US-OUT.txt rename to client/css/lib/font-awesome/HELP-US-OUT.txt diff --git a/src/vitis/client/css/lib/font-awesome/css/font-awesome.css b/client/css/lib/font-awesome/css/font-awesome.css similarity index 100% rename from src/vitis/client/css/lib/font-awesome/css/font-awesome.css rename to client/css/lib/font-awesome/css/font-awesome.css diff --git a/src/vitis/client/css/lib/font-awesome/css/font-awesome.min.css b/client/css/lib/font-awesome/css/font-awesome.min.css similarity index 100% rename from src/vitis/client/css/lib/font-awesome/css/font-awesome.min.css rename to client/css/lib/font-awesome/css/font-awesome.min.css diff --git a/src/vitis/client/css/lib/font-awesome/fonts/FontAwesome.otf b/client/css/lib/font-awesome/fonts/FontAwesome.otf similarity index 100% rename from src/vitis/client/css/lib/font-awesome/fonts/FontAwesome.otf rename to client/css/lib/font-awesome/fonts/FontAwesome.otf diff --git a/src/vitis/client/css/lib/font-awesome/fonts/fontawesome-webfont.eot b/client/css/lib/font-awesome/fonts/fontawesome-webfont.eot similarity index 100% rename from src/vitis/client/css/lib/font-awesome/fonts/fontawesome-webfont.eot rename to client/css/lib/font-awesome/fonts/fontawesome-webfont.eot diff --git a/src/vitis/client/css/lib/font-awesome/fonts/fontawesome-webfont.svg b/client/css/lib/font-awesome/fonts/fontawesome-webfont.svg similarity index 100% rename from src/vitis/client/css/lib/font-awesome/fonts/fontawesome-webfont.svg rename to client/css/lib/font-awesome/fonts/fontawesome-webfont.svg diff --git a/src/vitis/client/css/lib/font-awesome/fonts/fontawesome-webfont.ttf b/client/css/lib/font-awesome/fonts/fontawesome-webfont.ttf similarity index 100% rename from src/vitis/client/css/lib/font-awesome/fonts/fontawesome-webfont.ttf rename to client/css/lib/font-awesome/fonts/fontawesome-webfont.ttf diff --git a/src/vitis/client/css/lib/font-awesome/fonts/fontawesome-webfont.woff b/client/css/lib/font-awesome/fonts/fontawesome-webfont.woff similarity index 100% rename from src/vitis/client/css/lib/font-awesome/fonts/fontawesome-webfont.woff rename to client/css/lib/font-awesome/fonts/fontawesome-webfont.woff diff --git a/src/vitis/client/css/lib/font-awesome/fonts/fontawesome-webfont.woff2 b/client/css/lib/font-awesome/fonts/fontawesome-webfont.woff2 similarity index 100% rename from src/vitis/client/css/lib/font-awesome/fonts/fontawesome-webfont.woff2 rename to client/css/lib/font-awesome/fonts/fontawesome-webfont.woff2 diff --git a/src/vitis/client/css/lib/font-awesome/less/animated.less b/client/css/lib/font-awesome/less/animated.less similarity index 100% rename from src/vitis/client/css/lib/font-awesome/less/animated.less rename to client/css/lib/font-awesome/less/animated.less diff --git a/src/vitis/client/css/lib/font-awesome/less/bordered-pulled.less b/client/css/lib/font-awesome/less/bordered-pulled.less similarity index 100% rename from src/vitis/client/css/lib/font-awesome/less/bordered-pulled.less rename to client/css/lib/font-awesome/less/bordered-pulled.less diff --git a/src/vitis/client/css/lib/font-awesome/less/core.less b/client/css/lib/font-awesome/less/core.less similarity index 100% rename from src/vitis/client/css/lib/font-awesome/less/core.less rename to client/css/lib/font-awesome/less/core.less diff --git a/src/vitis/client/css/lib/font-awesome/less/fixed-width.less b/client/css/lib/font-awesome/less/fixed-width.less similarity index 100% rename from src/vitis/client/css/lib/font-awesome/less/fixed-width.less rename to client/css/lib/font-awesome/less/fixed-width.less diff --git a/src/vitis/client/css/lib/font-awesome/less/font-awesome.less b/client/css/lib/font-awesome/less/font-awesome.less similarity index 100% rename from src/vitis/client/css/lib/font-awesome/less/font-awesome.less rename to client/css/lib/font-awesome/less/font-awesome.less diff --git a/src/vitis/client/css/lib/font-awesome/less/icons.less b/client/css/lib/font-awesome/less/icons.less similarity index 100% rename from src/vitis/client/css/lib/font-awesome/less/icons.less rename to client/css/lib/font-awesome/less/icons.less diff --git a/src/vitis/client/css/lib/font-awesome/less/larger.less b/client/css/lib/font-awesome/less/larger.less similarity index 100% rename from src/vitis/client/css/lib/font-awesome/less/larger.less rename to client/css/lib/font-awesome/less/larger.less diff --git a/src/vitis/client/css/lib/font-awesome/less/list.less b/client/css/lib/font-awesome/less/list.less similarity index 100% rename from src/vitis/client/css/lib/font-awesome/less/list.less rename to client/css/lib/font-awesome/less/list.less diff --git a/src/vitis/client/css/lib/font-awesome/less/mixins.less b/client/css/lib/font-awesome/less/mixins.less similarity index 100% rename from src/vitis/client/css/lib/font-awesome/less/mixins.less rename to client/css/lib/font-awesome/less/mixins.less diff --git a/src/vitis/client/css/lib/font-awesome/less/path.less b/client/css/lib/font-awesome/less/path.less similarity index 100% rename from src/vitis/client/css/lib/font-awesome/less/path.less rename to client/css/lib/font-awesome/less/path.less diff --git a/src/vitis/client/css/lib/font-awesome/less/rotated-flipped.less b/client/css/lib/font-awesome/less/rotated-flipped.less similarity index 100% rename from src/vitis/client/css/lib/font-awesome/less/rotated-flipped.less rename to client/css/lib/font-awesome/less/rotated-flipped.less diff --git a/src/vitis/client/css/lib/font-awesome/less/stacked.less b/client/css/lib/font-awesome/less/stacked.less similarity index 100% rename from src/vitis/client/css/lib/font-awesome/less/stacked.less rename to client/css/lib/font-awesome/less/stacked.less diff --git a/src/vitis/client/css/lib/font-awesome/less/variables.less b/client/css/lib/font-awesome/less/variables.less similarity index 100% rename from src/vitis/client/css/lib/font-awesome/less/variables.less rename to client/css/lib/font-awesome/less/variables.less diff --git a/src/vitis/client/css/lib/font-awesome/scss/_animated.scss b/client/css/lib/font-awesome/scss/_animated.scss similarity index 100% rename from src/vitis/client/css/lib/font-awesome/scss/_animated.scss rename to client/css/lib/font-awesome/scss/_animated.scss diff --git a/src/vitis/client/css/lib/font-awesome/scss/_bordered-pulled.scss b/client/css/lib/font-awesome/scss/_bordered-pulled.scss similarity index 100% rename from src/vitis/client/css/lib/font-awesome/scss/_bordered-pulled.scss rename to client/css/lib/font-awesome/scss/_bordered-pulled.scss diff --git a/src/vitis/client/css/lib/font-awesome/scss/_core.scss b/client/css/lib/font-awesome/scss/_core.scss similarity index 100% rename from src/vitis/client/css/lib/font-awesome/scss/_core.scss rename to client/css/lib/font-awesome/scss/_core.scss diff --git a/src/vitis/client/css/lib/font-awesome/scss/_fixed-width.scss b/client/css/lib/font-awesome/scss/_fixed-width.scss similarity index 100% rename from src/vitis/client/css/lib/font-awesome/scss/_fixed-width.scss rename to client/css/lib/font-awesome/scss/_fixed-width.scss diff --git a/src/vitis/client/css/lib/font-awesome/scss/_icons.scss b/client/css/lib/font-awesome/scss/_icons.scss similarity index 100% rename from src/vitis/client/css/lib/font-awesome/scss/_icons.scss rename to client/css/lib/font-awesome/scss/_icons.scss diff --git a/src/vitis/client/css/lib/font-awesome/scss/_larger.scss b/client/css/lib/font-awesome/scss/_larger.scss similarity index 100% rename from src/vitis/client/css/lib/font-awesome/scss/_larger.scss rename to client/css/lib/font-awesome/scss/_larger.scss diff --git a/src/vitis/client/css/lib/font-awesome/scss/_list.scss b/client/css/lib/font-awesome/scss/_list.scss similarity index 100% rename from src/vitis/client/css/lib/font-awesome/scss/_list.scss rename to client/css/lib/font-awesome/scss/_list.scss diff --git a/src/vitis/client/css/lib/font-awesome/scss/_mixins.scss b/client/css/lib/font-awesome/scss/_mixins.scss similarity index 100% rename from src/vitis/client/css/lib/font-awesome/scss/_mixins.scss rename to client/css/lib/font-awesome/scss/_mixins.scss diff --git a/src/vitis/client/css/lib/font-awesome/scss/_path.scss b/client/css/lib/font-awesome/scss/_path.scss similarity index 100% rename from src/vitis/client/css/lib/font-awesome/scss/_path.scss rename to client/css/lib/font-awesome/scss/_path.scss diff --git a/src/vitis/client/css/lib/font-awesome/scss/_rotated-flipped.scss b/client/css/lib/font-awesome/scss/_rotated-flipped.scss similarity index 100% rename from src/vitis/client/css/lib/font-awesome/scss/_rotated-flipped.scss rename to client/css/lib/font-awesome/scss/_rotated-flipped.scss diff --git a/src/vitis/client/css/lib/font-awesome/scss/_stacked.scss b/client/css/lib/font-awesome/scss/_stacked.scss similarity index 100% rename from src/vitis/client/css/lib/font-awesome/scss/_stacked.scss rename to client/css/lib/font-awesome/scss/_stacked.scss diff --git a/src/vitis/client/css/lib/font-awesome/scss/_variables.scss b/client/css/lib/font-awesome/scss/_variables.scss similarity index 100% rename from src/vitis/client/css/lib/font-awesome/scss/_variables.scss rename to client/css/lib/font-awesome/scss/_variables.scss diff --git a/src/vitis/client/css/lib/font-awesome/scss/font-awesome.scss b/client/css/lib/font-awesome/scss/font-awesome.scss similarity index 100% rename from src/vitis/client/css/lib/font-awesome/scss/font-awesome.scss rename to client/css/lib/font-awesome/scss/font-awesome.scss diff --git a/src/vitis/client/css/lib/fonts/FontAwesome.otf b/client/css/lib/fonts/FontAwesome.otf similarity index 100% rename from src/vitis/client/css/lib/fonts/FontAwesome.otf rename to client/css/lib/fonts/FontAwesome.otf diff --git a/src/vitis/client/css/lib/fonts/fontawesome-webfont.eot b/client/css/lib/fonts/fontawesome-webfont.eot similarity index 100% rename from src/vitis/client/css/lib/fonts/fontawesome-webfont.eot rename to client/css/lib/fonts/fontawesome-webfont.eot diff --git a/src/vitis/client/css/lib/fonts/fontawesome-webfont.svg b/client/css/lib/fonts/fontawesome-webfont.svg similarity index 100% rename from src/vitis/client/css/lib/fonts/fontawesome-webfont.svg rename to client/css/lib/fonts/fontawesome-webfont.svg diff --git a/src/vitis/client/css/lib/fonts/fontawesome-webfont.ttf b/client/css/lib/fonts/fontawesome-webfont.ttf similarity index 100% rename from src/vitis/client/css/lib/fonts/fontawesome-webfont.ttf rename to client/css/lib/fonts/fontawesome-webfont.ttf diff --git a/src/vitis/client/css/lib/fonts/fontawesome-webfont.woff b/client/css/lib/fonts/fontawesome-webfont.woff similarity index 100% rename from src/vitis/client/css/lib/fonts/fontawesome-webfont.woff rename to client/css/lib/fonts/fontawesome-webfont.woff diff --git a/src/vitis/client/css/lib/fonts/fontawesome-webfont.woff2 b/client/css/lib/fonts/fontawesome-webfont.woff2 similarity index 100% rename from src/vitis/client/css/lib/fonts/fontawesome-webfont.woff2 rename to client/css/lib/fonts/fontawesome-webfont.woff2 diff --git a/src/vitis/client/css/lib/fonts/glyphicons-halflings-regular.eot b/client/css/lib/fonts/glyphicons-halflings-regular.eot similarity index 100% rename from src/vitis/client/css/lib/fonts/glyphicons-halflings-regular.eot rename to client/css/lib/fonts/glyphicons-halflings-regular.eot diff --git a/src/vitis/client/css/lib/fonts/glyphicons-halflings-regular.svg b/client/css/lib/fonts/glyphicons-halflings-regular.svg similarity index 100% rename from src/vitis/client/css/lib/fonts/glyphicons-halflings-regular.svg rename to client/css/lib/fonts/glyphicons-halflings-regular.svg diff --git a/src/vitis/client/css/lib/fonts/glyphicons-halflings-regular.ttf b/client/css/lib/fonts/glyphicons-halflings-regular.ttf similarity index 100% rename from src/vitis/client/css/lib/fonts/glyphicons-halflings-regular.ttf rename to client/css/lib/fonts/glyphicons-halflings-regular.ttf diff --git a/src/vitis/client/css/lib/fonts/glyphicons-halflings-regular.woff b/client/css/lib/fonts/glyphicons-halflings-regular.woff similarity index 100% rename from src/vitis/client/css/lib/fonts/glyphicons-halflings-regular.woff rename to client/css/lib/fonts/glyphicons-halflings-regular.woff diff --git a/src/vitis/client/css/lib/fonts/glyphicons-halflings-regular.woff2 b/client/css/lib/fonts/glyphicons-halflings-regular.woff2 similarity index 100% rename from src/vitis/client/css/lib/fonts/glyphicons-halflings-regular.woff2 rename to client/css/lib/fonts/glyphicons-halflings-regular.woff2 diff --git a/src/vitis/client/css/lib/jquery/plugins/bootstrap-colorpicker/css/bootstrap-colorpicker.min.css b/client/css/lib/jquery/plugins/bootstrap-colorpicker/css/bootstrap-colorpicker.min.css similarity index 100% rename from src/vitis/client/css/lib/jquery/plugins/bootstrap-colorpicker/css/bootstrap-colorpicker.min.css rename to client/css/lib/jquery/plugins/bootstrap-colorpicker/css/bootstrap-colorpicker.min.css diff --git a/src/vitis/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/alpha-horizontal.png b/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/alpha-horizontal.png similarity index 100% rename from src/vitis/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/alpha-horizontal.png rename to client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/alpha-horizontal.png diff --git a/src/vitis/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/alpha.png b/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/alpha.png similarity index 100% rename from src/vitis/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/alpha.png rename to client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/alpha.png diff --git a/src/vitis/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/hue-horizontal.png b/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/hue-horizontal.png similarity index 100% rename from src/vitis/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/hue-horizontal.png rename to client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/hue-horizontal.png diff --git a/src/vitis/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/hue.png b/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/hue.png similarity index 100% rename from src/vitis/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/hue.png rename to client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/hue.png diff --git a/src/vitis/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/saturation.png b/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/saturation.png similarity index 100% rename from src/vitis/client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/saturation.png rename to client/css/lib/jquery/plugins/bootstrap-colorpicker/img/bootstrap-colorpicker/saturation.png diff --git a/src/vitis/client/css/lib/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker3.css b/client/css/lib/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker3.css similarity index 100% rename from src/vitis/client/css/lib/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker3.css rename to client/css/lib/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker3.css diff --git a/src/vitis/client/css/lib/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker3.min.css b/client/css/lib/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker3.min.css similarity index 100% rename from src/vitis/client/css/lib/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker3.min.css rename to client/css/lib/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker3.min.css diff --git a/src/vitis/client/css/lib/jquery/plugins/bootstrap-fileinput/css/fileinput.css b/client/css/lib/jquery/plugins/bootstrap-fileinput/css/fileinput.css similarity index 100% rename from src/vitis/client/css/lib/jquery/plugins/bootstrap-fileinput/css/fileinput.css rename to client/css/lib/jquery/plugins/bootstrap-fileinput/css/fileinput.css diff --git a/src/vitis/client/css/lib/jquery/plugins/bootstrap-fileinput/css/fileinput.min.css b/client/css/lib/jquery/plugins/bootstrap-fileinput/css/fileinput.min.css similarity index 100% rename from src/vitis/client/css/lib/jquery/plugins/bootstrap-fileinput/css/fileinput.min.css rename to client/css/lib/jquery/plugins/bootstrap-fileinput/css/fileinput.min.css diff --git a/src/vitis/client/css/lib/jquery/plugins/bootstrap-fileinput/img/loading-sm.gif b/client/css/lib/jquery/plugins/bootstrap-fileinput/img/loading-sm.gif similarity index 100% rename from src/vitis/client/css/lib/jquery/plugins/bootstrap-fileinput/img/loading-sm.gif rename to client/css/lib/jquery/plugins/bootstrap-fileinput/img/loading-sm.gif diff --git a/src/vitis/client/css/lib/jquery/plugins/bootstrap-fileinput/img/loading.gif b/client/css/lib/jquery/plugins/bootstrap-fileinput/img/loading.gif similarity index 100% rename from src/vitis/client/css/lib/jquery/plugins/bootstrap-fileinput/img/loading.gif rename to client/css/lib/jquery/plugins/bootstrap-fileinput/img/loading.gif diff --git a/src/vitis/client/css/lib/jquery/plugins/bootstrap-slider/bootstrap-slider.min.css b/client/css/lib/jquery/plugins/bootstrap-slider/bootstrap-slider.min.css similarity index 100% rename from src/vitis/client/css/lib/jquery/plugins/bootstrap-slider/bootstrap-slider.min.css rename to client/css/lib/jquery/plugins/bootstrap-slider/bootstrap-slider.min.css diff --git a/src/vitis/client/css/lib/jquery/plugins/bootstrap-tagsinput/bootstrap-tagsinput.css b/client/css/lib/jquery/plugins/bootstrap-tagsinput/bootstrap-tagsinput.css similarity index 100% rename from src/vitis/client/css/lib/jquery/plugins/bootstrap-tagsinput/bootstrap-tagsinput.css rename to client/css/lib/jquery/plugins/bootstrap-tagsinput/bootstrap-tagsinput.css diff --git a/src/vitis/client/css/lib/jquery/plugins/bootstrap-treeview/bootstrap-treeview.css b/client/css/lib/jquery/plugins/bootstrap-treeview/bootstrap-treeview.css similarity index 100% rename from src/vitis/client/css/lib/jquery/plugins/bootstrap-treeview/bootstrap-treeview.css rename to client/css/lib/jquery/plugins/bootstrap-treeview/bootstrap-treeview.css diff --git a/src/vitis/client/css/lib/jquery/plugins/bootstrap-treeview/bootstrap-treeview.min.css b/client/css/lib/jquery/plugins/bootstrap-treeview/bootstrap-treeview.min.css similarity index 100% rename from src/vitis/client/css/lib/jquery/plugins/bootstrap-treeview/bootstrap-treeview.min.css rename to client/css/lib/jquery/plugins/bootstrap-treeview/bootstrap-treeview.min.css diff --git a/src/vitis/client/css/lib/jquery/plugins/malihu-custom-scrollbar/jquery.mCustomScrollbar.min.css b/client/css/lib/jquery/plugins/malihu-custom-scrollbar/jquery.mCustomScrollbar.min.css similarity index 100% rename from src/vitis/client/css/lib/jquery/plugins/malihu-custom-scrollbar/jquery.mCustomScrollbar.min.css rename to client/css/lib/jquery/plugins/malihu-custom-scrollbar/jquery.mCustomScrollbar.min.css diff --git a/src/vitis/client/css/lib/materialize/materialize.css b/client/css/lib/materialize/materialize.css similarity index 100% rename from src/vitis/client/css/lib/materialize/materialize.css rename to client/css/lib/materialize/materialize.css diff --git a/src/vitis/client/css/lib/materialize/materialize.min.css b/client/css/lib/materialize/materialize.min.css similarity index 100% rename from src/vitis/client/css/lib/materialize/materialize.min.css rename to client/css/lib/materialize/materialize.min.css diff --git a/src/vitis/client/css/lib/openlayers/ol.css b/client/css/lib/openlayers/ol.css similarity index 100% rename from src/vitis/client/css/lib/openlayers/ol.css rename to client/css/lib/openlayers/ol.css diff --git a/src/vitis/client/css/lib/ui-grid/plugins/draggable-rows.less b/client/css/lib/ui-grid/plugins/draggable-rows.less similarity index 100% rename from src/vitis/client/css/lib/ui-grid/plugins/draggable-rows.less rename to client/css/lib/ui-grid/plugins/draggable-rows.less diff --git a/src/vitis/client/css/lib/ui-grid/ui-grid.css b/client/css/lib/ui-grid/ui-grid.css similarity index 100% rename from src/vitis/client/css/lib/ui-grid/ui-grid.css rename to client/css/lib/ui-grid/ui-grid.css diff --git a/src/vitis/client/css/lib/ui-grid/ui-grid.eot b/client/css/lib/ui-grid/ui-grid.eot similarity index 100% rename from src/vitis/client/css/lib/ui-grid/ui-grid.eot rename to client/css/lib/ui-grid/ui-grid.eot diff --git a/src/vitis/client/css/lib/ui-grid/ui-grid.min.css b/client/css/lib/ui-grid/ui-grid.min.css similarity index 100% rename from src/vitis/client/css/lib/ui-grid/ui-grid.min.css rename to client/css/lib/ui-grid/ui-grid.min.css diff --git a/src/vitis/client/css/lib/ui-grid/ui-grid.svg b/client/css/lib/ui-grid/ui-grid.svg similarity index 100% rename from src/vitis/client/css/lib/ui-grid/ui-grid.svg rename to client/css/lib/ui-grid/ui-grid.svg diff --git a/src/vitis/client/css/lib/ui-grid/ui-grid.ttf b/client/css/lib/ui-grid/ui-grid.ttf similarity index 100% rename from src/vitis/client/css/lib/ui-grid/ui-grid.ttf rename to client/css/lib/ui-grid/ui-grid.ttf diff --git a/src/vitis/client/css/lib/ui-grid/ui-grid.woff b/client/css/lib/ui-grid/ui-grid.woff similarity index 100% rename from src/vitis/client/css/lib/ui-grid/ui-grid.woff rename to client/css/lib/ui-grid/ui-grid.woff diff --git a/src/vitis/client/css/lib/viewer/viewer.min.css b/client/css/lib/viewer/viewer.min.css similarity index 100% rename from src/vitis/client/css/lib/viewer/viewer.min.css rename to client/css/lib/viewer/viewer.min.css diff --git a/src/vitis/client/forms/forgotten_password.json b/client/forms/forgotten_password.json similarity index 100% rename from src/vitis/client/forms/forgotten_password.json rename to client/forms/forgotten_password.json diff --git a/src/vitis/client/forms/login.js b/client/forms/login.js similarity index 100% rename from src/vitis/client/forms/login.js rename to client/forms/login.js diff --git a/src/vitis/client/forms/login.json b/client/forms/login.json similarity index 100% rename from src/vitis/client/forms/login.json rename to client/forms/login.json diff --git a/src/vitis/client/forms/sign_up.json b/client/forms/sign_up.json similarity index 100% rename from src/vitis/client/forms/sign_up.json rename to client/forms/sign_up.json diff --git a/src/vitis/client/images/ajax-big-loader.GIF b/client/images/ajax-big-loader.GIF similarity index 100% rename from src/vitis/client/images/ajax-big-loader.GIF rename to client/images/ajax-big-loader.GIF diff --git a/src/vitis/client/images/ajax-load-big.gif b/client/images/ajax-load-big.gif similarity index 100% rename from src/vitis/client/images/ajax-load-big.gif rename to client/images/ajax-load-big.gif diff --git a/src/vitis/client/images/ajax-load.gif b/client/images/ajax-load.gif similarity index 100% rename from src/vitis/client/images/ajax-load.gif rename to client/images/ajax-load.gif diff --git a/src/vitis/client/images/bandeau.png b/client/images/bandeau.png similarity index 100% rename from src/vitis/client/images/bandeau.png rename to client/images/bandeau.png diff --git a/src/vitis/client/images/custom.png b/client/images/custom.png similarity index 100% rename from src/vitis/client/images/custom.png rename to client/images/custom.png diff --git a/src/vitis/client/images/disconnect_button.png b/client/images/disconnect_button.png similarity index 100% rename from src/vitis/client/images/disconnect_button.png rename to client/images/disconnect_button.png diff --git a/src/vitis/client/images/download.png b/client/images/download.png similarity index 100% rename from src/vitis/client/images/download.png rename to client/images/download.png diff --git a/src/vitis/client/images/editer.png b/client/images/editer.png similarity index 100% rename from src/vitis/client/images/editer.png rename to client/images/editer.png diff --git a/src/vitis/client/images/enveloppe.png b/client/images/enveloppe.png similarity index 100% rename from src/vitis/client/images/enveloppe.png rename to client/images/enveloppe.png diff --git a/src/vitis/client/images/false.png b/client/images/false.png similarity index 100% rename from src/vitis/client/images/false.png rename to client/images/false.png diff --git a/src/vitis/client/images/favicon.ico b/client/images/favicon.ico similarity index 100% rename from src/vitis/client/images/favicon.ico rename to client/images/favicon.ico diff --git a/src/vitis/client/images/i.png b/client/images/i.png similarity index 100% rename from src/vitis/client/images/i.png rename to client/images/i.png diff --git a/src/vitis/client/images/icons/geolocation_marker.png b/client/images/icons/geolocation_marker.png similarity index 100% rename from src/vitis/client/images/icons/geolocation_marker.png rename to client/images/icons/geolocation_marker.png diff --git a/src/vitis/client/images/icons/geolocation_marker_heading.png b/client/images/icons/geolocation_marker_heading.png similarity index 100% rename from src/vitis/client/images/icons/geolocation_marker_heading.png rename to client/images/icons/geolocation_marker_heading.png diff --git a/src/vitis/client/images/icons/icon-arrow-FME.png b/client/images/icons/icon-arrow-FME.png similarity index 100% rename from src/vitis/client/images/icons/icon-arrow-FME.png rename to client/images/icons/icon-arrow-FME.png diff --git a/src/vitis/client/images/icons/icon-arrow-FME2.png b/client/images/icons/icon-arrow-FME2.png similarity index 100% rename from src/vitis/client/images/icons/icon-arrow-FME2.png rename to client/images/icons/icon-arrow-FME2.png diff --git a/src/vitis/client/images/icons/icon-filtrage.png b/client/images/icons/icon-filtrage.png similarity index 100% rename from src/vitis/client/images/icons/icon-filtrage.png rename to client/images/icons/icon-filtrage.png diff --git a/src/vitis/client/images/icons/icons-down-search-arrow.png b/client/images/icons/icons-down-search-arrow.png similarity index 100% rename from src/vitis/client/images/icons/icons-down-search-arrow.png rename to client/images/icons/icons-down-search-arrow.png diff --git a/src/vitis/client/images/icons/icons-right-search-arrow.png b/client/images/icons/icons-right-search-arrow.png similarity index 100% rename from src/vitis/client/images/icons/icons-right-search-arrow.png rename to client/images/icons/icons-right-search-arrow.png diff --git a/src/vitis/client/images/logo-veremes.jpg b/client/images/logo-veremes.jpg similarity index 100% rename from src/vitis/client/images/logo-veremes.jpg rename to client/images/logo-veremes.jpg diff --git a/src/vitis/client/images/logo-veremes.png b/client/images/logo-veremes.png similarity index 100% rename from src/vitis/client/images/logo-veremes.png rename to client/images/logo-veremes.png diff --git a/src/vitis/client/images/mode/configuration.png b/client/images/mode/configuration.png similarity index 100% rename from src/vitis/client/images/mode/configuration.png rename to client/images/mode/configuration.png diff --git a/src/vitis/client/images/mode/development.png b/client/images/mode/development.png similarity index 100% rename from src/vitis/client/images/mode/development.png rename to client/images/mode/development.png diff --git a/src/vitis/client/images/mode/engine.png b/client/images/mode/engine.png similarity index 100% rename from src/vitis/client/images/mode/engine.png rename to client/images/mode/engine.png diff --git a/src/vitis/client/images/mode/help.png b/client/images/mode/help.png similarity index 100% rename from src/vitis/client/images/mode/help.png rename to client/images/mode/help.png diff --git a/src/vitis/client/images/mode/logs.png b/client/images/mode/logs.png similarity index 100% rename from src/vitis/client/images/mode/logs.png rename to client/images/mode/logs.png diff --git a/src/vitis/client/images/mode/my_work.png b/client/images/mode/my_work.png similarity index 100% rename from src/vitis/client/images/mode/my_work.png rename to client/images/mode/my_work.png diff --git a/src/vitis/client/images/mode/publication.png b/client/images/mode/publication.png similarity index 100% rename from src/vitis/client/images/mode/publication.png rename to client/images/mode/publication.png diff --git a/src/vitis/client/images/mode/statistics.png b/client/images/mode/statistics.png similarity index 100% rename from src/vitis/client/images/mode/statistics.png rename to client/images/mode/statistics.png diff --git a/src/vitis/client/images/mode/supervision.png b/client/images/mode/supervision.png similarity index 100% rename from src/vitis/client/images/mode/supervision.png rename to client/images/mode/supervision.png diff --git a/src/vitis/client/images/mode/user.png b/client/images/mode/user.png similarity index 100% rename from src/vitis/client/images/mode/user.png rename to client/images/mode/user.png diff --git a/src/vitis/client/images/mode/users.png b/client/images/mode/users.png similarity index 100% rename from src/vitis/client/images/mode/users.png rename to client/images/mode/users.png diff --git a/src/vitis/client/images/mode/vmap.png b/client/images/mode/vmap.png similarity index 100% rename from src/vitis/client/images/mode/vmap.png rename to client/images/mode/vmap.png diff --git a/src/vitis/client/images/page.png b/client/images/page.png similarity index 100% rename from src/vitis/client/images/page.png rename to client/images/page.png diff --git a/src/vitis/client/images/sql_list/st1.gif b/client/images/sql_list/st1.gif similarity index 100% rename from src/vitis/client/images/sql_list/st1.gif rename to client/images/sql_list/st1.gif diff --git a/src/vitis/client/images/sql_list/st1.png b/client/images/sql_list/st1.png similarity index 100% rename from src/vitis/client/images/sql_list/st1.png rename to client/images/sql_list/st1.png diff --git a/src/vitis/client/images/sql_list/st2.png b/client/images/sql_list/st2.png similarity index 100% rename from src/vitis/client/images/sql_list/st2.png rename to client/images/sql_list/st2.png diff --git a/src/vitis/client/images/sql_list/st3.png b/client/images/sql_list/st3.png similarity index 100% rename from src/vitis/client/images/sql_list/st3.png rename to client/images/sql_list/st3.png diff --git a/src/vitis/client/images/sql_list/st4.png b/client/images/sql_list/st4.png similarity index 100% rename from src/vitis/client/images/sql_list/st4.png rename to client/images/sql_list/st4.png diff --git a/src/vitis/client/images/sql_list/st5.gif b/client/images/sql_list/st5.gif similarity index 100% rename from src/vitis/client/images/sql_list/st5.gif rename to client/images/sql_list/st5.gif diff --git a/src/vitis/client/images/sql_list/st6.png b/client/images/sql_list/st6.png similarity index 100% rename from src/vitis/client/images/sql_list/st6.png rename to client/images/sql_list/st6.png diff --git a/src/vitis/client/images/true.png b/client/images/true.png similarity index 100% rename from src/vitis/client/images/true.png rename to client/images/true.png diff --git a/src/vitis/client/images/ui-grid/wbg.gif b/client/images/ui-grid/wbg.gif similarity index 100% rename from src/vitis/client/images/ui-grid/wbg.gif rename to client/images/ui-grid/wbg.gif diff --git a/src/vitis/client/images/visualiser.png b/client/images/visualiser.png similarity index 100% rename from src/vitis/client/images/visualiser.png rename to client/images/visualiser.png diff --git a/src/vitis/client/images/wk_params.png b/client/images/wk_params.png similarity index 100% rename from src/vitis/client/images/wk_params.png rename to client/images/wk_params.png diff --git a/src/vitis/client/index.html b/client/index.html similarity index 100% rename from src/vitis/client/index.html rename to client/index.html diff --git a/src/vitis/client/javascript/app/app.js b/client/javascript/app/app.js similarity index 100% rename from src/vitis/client/javascript/app/app.js rename to client/javascript/app/app.js diff --git a/src/vitis/client/javascript/app/config.js b/client/javascript/app/config.js similarity index 100% rename from src/vitis/client/javascript/app/config.js rename to client/javascript/app/config.js diff --git a/src/vitis/client/javascript/app/controllers/doubleFormCtrl.js b/client/javascript/app/controllers/doubleFormCtrl.js similarity index 100% rename from src/vitis/client/javascript/app/controllers/doubleFormCtrl.js rename to client/javascript/app/controllers/doubleFormCtrl.js diff --git a/src/vitis/client/javascript/app/controllers/htmlFormCtrl.js b/client/javascript/app/controllers/htmlFormCtrl.js similarity index 100% rename from src/vitis/client/javascript/app/controllers/htmlFormCtrl.js rename to client/javascript/app/controllers/htmlFormCtrl.js diff --git a/src/vitis/client/javascript/app/controllers/initCtrl.js b/client/javascript/app/controllers/initCtrl.js similarity index 100% rename from src/vitis/client/javascript/app/controllers/initCtrl.js rename to client/javascript/app/controllers/initCtrl.js diff --git a/src/vitis/client/javascript/app/controllers/loginCtrl.js b/client/javascript/app/controllers/loginCtrl.js similarity index 100% rename from src/vitis/client/javascript/app/controllers/loginCtrl.js rename to client/javascript/app/controllers/loginCtrl.js diff --git a/src/vitis/client/javascript/app/controllers/mainCtrl.js b/client/javascript/app/controllers/mainCtrl.js similarity index 100% rename from src/vitis/client/javascript/app/controllers/mainCtrl.js rename to client/javascript/app/controllers/mainCtrl.js diff --git a/src/vitis/client/javascript/app/controllers/sectionFormCtrl.js b/client/javascript/app/controllers/sectionFormCtrl.js similarity index 100% rename from src/vitis/client/javascript/app/controllers/sectionFormCtrl.js rename to client/javascript/app/controllers/sectionFormCtrl.js diff --git a/src/vitis/client/javascript/app/controllers/simpleFormCtrl.js b/client/javascript/app/controllers/simpleFormCtrl.js similarity index 100% rename from src/vitis/client/javascript/app/controllers/simpleFormCtrl.js rename to client/javascript/app/controllers/simpleFormCtrl.js diff --git a/src/vitis/client/javascript/app/controllers/workspaceListCtrl.js b/client/javascript/app/controllers/workspaceListCtrl.js similarity index 100% rename from src/vitis/client/javascript/app/controllers/workspaceListCtrl.js rename to client/javascript/app/controllers/workspaceListCtrl.js diff --git a/src/vitis/client/javascript/app/directives/doubleFormDrtv.js b/client/javascript/app/directives/doubleFormDrtv.js similarity index 100% rename from src/vitis/client/javascript/app/directives/doubleFormDrtv.js rename to client/javascript/app/directives/doubleFormDrtv.js diff --git a/src/vitis/client/javascript/app/directives/htmlFormDrtv.js b/client/javascript/app/directives/htmlFormDrtv.js similarity index 100% rename from src/vitis/client/javascript/app/directives/htmlFormDrtv.js rename to client/javascript/app/directives/htmlFormDrtv.js diff --git a/src/vitis/client/javascript/app/directives/initDrtv.js b/client/javascript/app/directives/initDrtv.js similarity index 100% rename from src/vitis/client/javascript/app/directives/initDrtv.js rename to client/javascript/app/directives/initDrtv.js diff --git a/src/vitis/client/javascript/app/directives/loginDrtv.js b/client/javascript/app/directives/loginDrtv.js similarity index 100% rename from src/vitis/client/javascript/app/directives/loginDrtv.js rename to client/javascript/app/directives/loginDrtv.js diff --git a/src/vitis/client/javascript/app/directives/mainDrtv.js b/client/javascript/app/directives/mainDrtv.js similarity index 100% rename from src/vitis/client/javascript/app/directives/mainDrtv.js rename to client/javascript/app/directives/mainDrtv.js diff --git a/src/vitis/client/javascript/app/directives/sectionFormDrtv.js b/client/javascript/app/directives/sectionFormDrtv.js similarity index 100% rename from src/vitis/client/javascript/app/directives/sectionFormDrtv.js rename to client/javascript/app/directives/sectionFormDrtv.js diff --git a/src/vitis/client/javascript/app/directives/simpleFormDrtv.js b/client/javascript/app/directives/simpleFormDrtv.js similarity index 100% rename from src/vitis/client/javascript/app/directives/simpleFormDrtv.js rename to client/javascript/app/directives/simpleFormDrtv.js diff --git a/src/vitis/client/javascript/app/directives/workspaceListDrtv.js b/client/javascript/app/directives/workspaceListDrtv.js similarity index 100% rename from src/vitis/client/javascript/app/directives/workspaceListDrtv.js rename to client/javascript/app/directives/workspaceListDrtv.js diff --git a/src/vitis/client/javascript/app/loadApp.js b/client/javascript/app/loadApp.js similarity index 100% rename from src/vitis/client/javascript/app/loadApp.js rename to client/javascript/app/loadApp.js diff --git a/src/vitis/client/javascript/app/loadExternalFiles.js b/client/javascript/app/loadExternalFiles.js similarity index 100% rename from src/vitis/client/javascript/app/loadExternalFiles.js rename to client/javascript/app/loadExternalFiles.js diff --git a/src/vitis/client/javascript/app/modules/mainMod.js b/client/javascript/app/modules/mainMod.js similarity index 100% rename from src/vitis/client/javascript/app/modules/mainMod.js rename to client/javascript/app/modules/mainMod.js diff --git a/src/vitis/client/javascript/app/script_client.js b/client/javascript/app/script_client.js similarity index 100% rename from src/vitis/client/javascript/app/script_client.js rename to client/javascript/app/script_client.js diff --git a/src/vitis/client/javascript/app/services/formSrvc.js b/client/javascript/app/services/formSrvc.js similarity index 100% rename from src/vitis/client/javascript/app/services/formSrvc.js rename to client/javascript/app/services/formSrvc.js diff --git a/src/vitis/client/javascript/app/services/mainSrvc.js b/client/javascript/app/services/mainSrvc.js similarity index 100% rename from src/vitis/client/javascript/app/services/mainSrvc.js rename to client/javascript/app/services/mainSrvc.js diff --git a/src/vitis/client/javascript/app/vitiswebsocket.js b/client/javascript/app/vitiswebsocket.js similarity index 100% rename from src/vitis/client/javascript/app/vitiswebsocket.js rename to client/javascript/app/vitiswebsocket.js diff --git a/src/vitis/client/javascript/externs/LICENSE b/client/javascript/externs/LICENSE similarity index 100% rename from src/vitis/client/javascript/externs/LICENSE rename to client/javascript/externs/LICENSE diff --git a/src/vitis/client/javascript/externs/alasql/alasql.min.js b/client/javascript/externs/alasql/alasql.min.js similarity index 100% rename from src/vitis/client/javascript/externs/alasql/alasql.min.js rename to client/javascript/externs/alasql/alasql.min.js diff --git a/src/vitis/client/javascript/externs/alasql/xlsx.core.min.js b/client/javascript/externs/alasql/xlsx.core.min.js similarity index 100% rename from src/vitis/client/javascript/externs/alasql/xlsx.core.min.js rename to client/javascript/externs/alasql/xlsx.core.min.js diff --git a/src/vitis/client/javascript/externs/angular-bind-notifier/LICENSE b/client/javascript/externs/angular-bind-notifier/LICENSE similarity index 100% rename from src/vitis/client/javascript/externs/angular-bind-notifier/LICENSE rename to client/javascript/externs/angular-bind-notifier/LICENSE diff --git a/src/vitis/client/javascript/externs/angular-bind-notifier/bindNotifier.js b/client/javascript/externs/angular-bind-notifier/bindNotifier.js similarity index 100% rename from src/vitis/client/javascript/externs/angular-bind-notifier/bindNotifier.js rename to client/javascript/externs/angular-bind-notifier/bindNotifier.js diff --git a/src/vitis/client/javascript/externs/angular-ui-codemirror/LICENSE b/client/javascript/externs/angular-ui-codemirror/LICENSE similarity index 100% rename from src/vitis/client/javascript/externs/angular-ui-codemirror/LICENSE rename to client/javascript/externs/angular-ui-codemirror/LICENSE diff --git a/src/vitis/client/javascript/externs/angular-ui-codemirror/ui-codemirror.js b/client/javascript/externs/angular-ui-codemirror/ui-codemirror.js similarity index 100% rename from src/vitis/client/javascript/externs/angular-ui-codemirror/ui-codemirror.js rename to client/javascript/externs/angular-ui-codemirror/ui-codemirror.js diff --git a/src/vitis/client/javascript/externs/angular-ui-codemirror/ui-codemirror.min.js b/client/javascript/externs/angular-ui-codemirror/ui-codemirror.min.js similarity index 100% rename from src/vitis/client/javascript/externs/angular-ui-codemirror/ui-codemirror.min.js rename to client/javascript/externs/angular-ui-codemirror/ui-codemirror.min.js diff --git a/src/vitis/client/javascript/externs/angular/LICENSE b/client/javascript/externs/angular/LICENSE similarity index 100% rename from src/vitis/client/javascript/externs/angular/LICENSE rename to client/javascript/externs/angular/LICENSE diff --git a/src/vitis/client/javascript/externs/angular/angular.js b/client/javascript/externs/angular/angular.js similarity index 100% rename from src/vitis/client/javascript/externs/angular/angular.js rename to client/javascript/externs/angular/angular.js diff --git a/src/vitis/client/javascript/externs/angular/angular.min.js b/client/javascript/externs/angular/angular.min.js similarity index 100% rename from src/vitis/client/javascript/externs/angular/angular.min.js rename to client/javascript/externs/angular/angular.min.js diff --git a/src/vitis/client/javascript/externs/angular/angular.min.js.map b/client/javascript/externs/angular/angular.min.js.map similarity index 100% rename from src/vitis/client/javascript/externs/angular/angular.min.js.map rename to client/javascript/externs/angular/angular.min.js.map diff --git a/src/vitis/client/javascript/externs/angular/modules/angular-translate/LICENSE b/client/javascript/externs/angular/modules/angular-translate/LICENSE similarity index 100% rename from src/vitis/client/javascript/externs/angular/modules/angular-translate/LICENSE rename to client/javascript/externs/angular/modules/angular-translate/LICENSE diff --git a/src/vitis/client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-partial.js b/client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-partial.js similarity index 100% rename from src/vitis/client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-partial.js rename to client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-partial.js diff --git a/src/vitis/client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-partial.min.js b/client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-partial.min.js similarity index 100% rename from src/vitis/client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-partial.min.js rename to client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-partial.min.js diff --git a/src/vitis/client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-static-files.js b/client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-static-files.js similarity index 100% rename from src/vitis/client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-static-files.js rename to client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-static-files.js diff --git a/src/vitis/client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-static-files.min.js b/client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-static-files.min.js similarity index 100% rename from src/vitis/client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-static-files.min.js rename to client/javascript/externs/angular/modules/angular-translate/angular-translate-loader-static-files.min.js diff --git a/src/vitis/client/javascript/externs/angular/modules/angular-translate/angular-translate.js b/client/javascript/externs/angular/modules/angular-translate/angular-translate.js similarity index 100% rename from src/vitis/client/javascript/externs/angular/modules/angular-translate/angular-translate.js rename to client/javascript/externs/angular/modules/angular-translate/angular-translate.js diff --git a/src/vitis/client/javascript/externs/angular/modules/angular-translate/angular-translate.min.js b/client/javascript/externs/angular/modules/angular-translate/angular-translate.min.js similarity index 100% rename from src/vitis/client/javascript/externs/angular/modules/angular-translate/angular-translate.min.js rename to client/javascript/externs/angular/modules/angular-translate/angular-translate.min.js diff --git a/src/vitis/client/javascript/externs/angular/modules/sanitize/angular-sanitize.js b/client/javascript/externs/angular/modules/sanitize/angular-sanitize.js similarity index 100% rename from src/vitis/client/javascript/externs/angular/modules/sanitize/angular-sanitize.js rename to client/javascript/externs/angular/modules/sanitize/angular-sanitize.js diff --git a/src/vitis/client/javascript/externs/angular/modules/sanitize/angular-sanitize.min.js b/client/javascript/externs/angular/modules/sanitize/angular-sanitize.min.js similarity index 100% rename from src/vitis/client/javascript/externs/angular/modules/sanitize/angular-sanitize.min.js rename to client/javascript/externs/angular/modules/sanitize/angular-sanitize.min.js diff --git a/src/vitis/client/javascript/externs/angular/modules/sanitize/angular-sanitize.min.js.map b/client/javascript/externs/angular/modules/sanitize/angular-sanitize.min.js.map similarity index 100% rename from src/vitis/client/javascript/externs/angular/modules/sanitize/angular-sanitize.min.js.map rename to client/javascript/externs/angular/modules/sanitize/angular-sanitize.min.js.map diff --git a/src/vitis/client/javascript/externs/angular/modules/ui-codemirror/LICENSE b/client/javascript/externs/angular/modules/ui-codemirror/LICENSE similarity index 100% rename from src/vitis/client/javascript/externs/angular/modules/ui-codemirror/LICENSE rename to client/javascript/externs/angular/modules/ui-codemirror/LICENSE diff --git a/src/vitis/client/javascript/externs/angular/modules/ui-codemirror/ui-codemirror.min.js b/client/javascript/externs/angular/modules/ui-codemirror/ui-codemirror.min.js similarity index 100% rename from src/vitis/client/javascript/externs/angular/modules/ui-codemirror/ui-codemirror.min.js rename to client/javascript/externs/angular/modules/ui-codemirror/ui-codemirror.min.js diff --git a/src/vitis/client/javascript/externs/angular/modules/ui-grid/LICENSE.md b/client/javascript/externs/angular/modules/ui-grid/LICENSE.md similarity index 100% rename from src/vitis/client/javascript/externs/angular/modules/ui-grid/LICENSE.md rename to client/javascript/externs/angular/modules/ui-grid/LICENSE.md diff --git a/src/vitis/client/javascript/externs/angular/modules/ui-grid/plugins/draggable-rows.js b/client/javascript/externs/angular/modules/ui-grid/plugins/draggable-rows.js similarity index 100% rename from src/vitis/client/javascript/externs/angular/modules/ui-grid/plugins/draggable-rows.js rename to client/javascript/externs/angular/modules/ui-grid/plugins/draggable-rows.js diff --git a/src/vitis/client/javascript/externs/angular/modules/ui-grid/ui-grid.js b/client/javascript/externs/angular/modules/ui-grid/ui-grid.js similarity index 100% rename from src/vitis/client/javascript/externs/angular/modules/ui-grid/ui-grid.js rename to client/javascript/externs/angular/modules/ui-grid/ui-grid.js diff --git a/src/vitis/client/javascript/externs/angular/modules/ui-grid/ui-grid.min.js b/client/javascript/externs/angular/modules/ui-grid/ui-grid.min.js similarity index 100% rename from src/vitis/client/javascript/externs/angular/modules/ui-grid/ui-grid.min.js rename to client/javascript/externs/angular/modules/ui-grid/ui-grid.min.js diff --git a/src/vitis/client/javascript/externs/angular/modules/ui-tinymce/LICENSE b/client/javascript/externs/angular/modules/ui-tinymce/LICENSE similarity index 100% rename from src/vitis/client/javascript/externs/angular/modules/ui-tinymce/LICENSE rename to client/javascript/externs/angular/modules/ui-tinymce/LICENSE diff --git a/src/vitis/client/javascript/externs/angular/modules/ui-tinymce/tinymce.js b/client/javascript/externs/angular/modules/ui-tinymce/tinymce.js similarity index 100% rename from src/vitis/client/javascript/externs/angular/modules/ui-tinymce/tinymce.js rename to client/javascript/externs/angular/modules/ui-tinymce/tinymce.js diff --git a/src/vitis/client/javascript/externs/bootbox/LICENSE.md b/client/javascript/externs/bootbox/LICENSE.md similarity index 100% rename from src/vitis/client/javascript/externs/bootbox/LICENSE.md rename to client/javascript/externs/bootbox/LICENSE.md diff --git a/src/vitis/client/javascript/externs/bootbox/bootbox.min.js b/client/javascript/externs/bootbox/bootbox.min.js similarity index 100% rename from src/vitis/client/javascript/externs/bootbox/bootbox.min.js rename to client/javascript/externs/bootbox/bootbox.min.js diff --git a/src/vitis/client/javascript/externs/bootstrap/LICENSE b/client/javascript/externs/bootstrap/LICENSE similarity index 100% rename from src/vitis/client/javascript/externs/bootstrap/LICENSE rename to client/javascript/externs/bootstrap/LICENSE diff --git a/src/vitis/client/javascript/externs/bootstrap/bootstrap.js b/client/javascript/externs/bootstrap/bootstrap.js similarity index 100% rename from src/vitis/client/javascript/externs/bootstrap/bootstrap.js rename to client/javascript/externs/bootstrap/bootstrap.js diff --git a/src/vitis/client/javascript/externs/bootstrap/bootstrap.min.js b/client/javascript/externs/bootstrap/bootstrap.min.js similarity index 100% rename from src/vitis/client/javascript/externs/bootstrap/bootstrap.min.js rename to client/javascript/externs/bootstrap/bootstrap.min.js diff --git a/src/vitis/client/javascript/externs/codemirror/LICENSE b/client/javascript/externs/codemirror/LICENSE similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/LICENSE rename to client/javascript/externs/codemirror/LICENSE diff --git a/src/vitis/client/javascript/externs/codemirror/addon/comment/comment.js b/client/javascript/externs/codemirror/addon/comment/comment.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/comment/comment.js rename to client/javascript/externs/codemirror/addon/comment/comment.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/comment/continuecomment.js b/client/javascript/externs/codemirror/addon/comment/continuecomment.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/comment/continuecomment.js rename to client/javascript/externs/codemirror/addon/comment/continuecomment.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/dialog/dialog.css b/client/javascript/externs/codemirror/addon/dialog/dialog.css similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/dialog/dialog.css rename to client/javascript/externs/codemirror/addon/dialog/dialog.css diff --git a/src/vitis/client/javascript/externs/codemirror/addon/dialog/dialog.js b/client/javascript/externs/codemirror/addon/dialog/dialog.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/dialog/dialog.js rename to client/javascript/externs/codemirror/addon/dialog/dialog.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/display/autorefresh.js b/client/javascript/externs/codemirror/addon/display/autorefresh.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/display/autorefresh.js rename to client/javascript/externs/codemirror/addon/display/autorefresh.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/display/fullscreen.css b/client/javascript/externs/codemirror/addon/display/fullscreen.css similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/display/fullscreen.css rename to client/javascript/externs/codemirror/addon/display/fullscreen.css diff --git a/src/vitis/client/javascript/externs/codemirror/addon/display/fullscreen.js b/client/javascript/externs/codemirror/addon/display/fullscreen.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/display/fullscreen.js rename to client/javascript/externs/codemirror/addon/display/fullscreen.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/display/panel.js b/client/javascript/externs/codemirror/addon/display/panel.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/display/panel.js rename to client/javascript/externs/codemirror/addon/display/panel.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/display/placeholder.js b/client/javascript/externs/codemirror/addon/display/placeholder.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/display/placeholder.js rename to client/javascript/externs/codemirror/addon/display/placeholder.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/display/rulers.js b/client/javascript/externs/codemirror/addon/display/rulers.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/display/rulers.js rename to client/javascript/externs/codemirror/addon/display/rulers.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/edit/closebrackets.js b/client/javascript/externs/codemirror/addon/edit/closebrackets.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/edit/closebrackets.js rename to client/javascript/externs/codemirror/addon/edit/closebrackets.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/edit/closetag.js b/client/javascript/externs/codemirror/addon/edit/closetag.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/edit/closetag.js rename to client/javascript/externs/codemirror/addon/edit/closetag.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/edit/continuelist.js b/client/javascript/externs/codemirror/addon/edit/continuelist.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/edit/continuelist.js rename to client/javascript/externs/codemirror/addon/edit/continuelist.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/edit/matchbrackets.js b/client/javascript/externs/codemirror/addon/edit/matchbrackets.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/edit/matchbrackets.js rename to client/javascript/externs/codemirror/addon/edit/matchbrackets.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/edit/matchtags.js b/client/javascript/externs/codemirror/addon/edit/matchtags.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/edit/matchtags.js rename to client/javascript/externs/codemirror/addon/edit/matchtags.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/edit/trailingspace.js b/client/javascript/externs/codemirror/addon/edit/trailingspace.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/edit/trailingspace.js rename to client/javascript/externs/codemirror/addon/edit/trailingspace.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/fold/brace-fold.js b/client/javascript/externs/codemirror/addon/fold/brace-fold.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/fold/brace-fold.js rename to client/javascript/externs/codemirror/addon/fold/brace-fold.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/fold/comment-fold.js b/client/javascript/externs/codemirror/addon/fold/comment-fold.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/fold/comment-fold.js rename to client/javascript/externs/codemirror/addon/fold/comment-fold.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/fold/foldcode.js b/client/javascript/externs/codemirror/addon/fold/foldcode.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/fold/foldcode.js rename to client/javascript/externs/codemirror/addon/fold/foldcode.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/fold/foldgutter.css b/client/javascript/externs/codemirror/addon/fold/foldgutter.css similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/fold/foldgutter.css rename to client/javascript/externs/codemirror/addon/fold/foldgutter.css diff --git a/src/vitis/client/javascript/externs/codemirror/addon/fold/foldgutter.js b/client/javascript/externs/codemirror/addon/fold/foldgutter.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/fold/foldgutter.js rename to client/javascript/externs/codemirror/addon/fold/foldgutter.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/fold/indent-fold.js b/client/javascript/externs/codemirror/addon/fold/indent-fold.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/fold/indent-fold.js rename to client/javascript/externs/codemirror/addon/fold/indent-fold.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/fold/markdown-fold.js b/client/javascript/externs/codemirror/addon/fold/markdown-fold.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/fold/markdown-fold.js rename to client/javascript/externs/codemirror/addon/fold/markdown-fold.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/fold/xml-fold.js b/client/javascript/externs/codemirror/addon/fold/xml-fold.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/fold/xml-fold.js rename to client/javascript/externs/codemirror/addon/fold/xml-fold.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/hint/anyword-hint.js b/client/javascript/externs/codemirror/addon/hint/anyword-hint.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/hint/anyword-hint.js rename to client/javascript/externs/codemirror/addon/hint/anyword-hint.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/hint/css-hint.js b/client/javascript/externs/codemirror/addon/hint/css-hint.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/hint/css-hint.js rename to client/javascript/externs/codemirror/addon/hint/css-hint.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/hint/html-hint.js b/client/javascript/externs/codemirror/addon/hint/html-hint.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/hint/html-hint.js rename to client/javascript/externs/codemirror/addon/hint/html-hint.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/hint/javascript-hint.js b/client/javascript/externs/codemirror/addon/hint/javascript-hint.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/hint/javascript-hint.js rename to client/javascript/externs/codemirror/addon/hint/javascript-hint.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/hint/show-hint.css b/client/javascript/externs/codemirror/addon/hint/show-hint.css similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/hint/show-hint.css rename to client/javascript/externs/codemirror/addon/hint/show-hint.css diff --git a/src/vitis/client/javascript/externs/codemirror/addon/hint/show-hint.js b/client/javascript/externs/codemirror/addon/hint/show-hint.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/hint/show-hint.js rename to client/javascript/externs/codemirror/addon/hint/show-hint.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/hint/sql-hint.js b/client/javascript/externs/codemirror/addon/hint/sql-hint.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/hint/sql-hint.js rename to client/javascript/externs/codemirror/addon/hint/sql-hint.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/hint/xml-hint.js b/client/javascript/externs/codemirror/addon/hint/xml-hint.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/hint/xml-hint.js rename to client/javascript/externs/codemirror/addon/hint/xml-hint.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/keymap/sublime.js b/client/javascript/externs/codemirror/addon/keymap/sublime.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/keymap/sublime.js rename to client/javascript/externs/codemirror/addon/keymap/sublime.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/lint/coffeescript-lint.js b/client/javascript/externs/codemirror/addon/lint/coffeescript-lint.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/lint/coffeescript-lint.js rename to client/javascript/externs/codemirror/addon/lint/coffeescript-lint.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/lint/css-lint.js b/client/javascript/externs/codemirror/addon/lint/css-lint.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/lint/css-lint.js rename to client/javascript/externs/codemirror/addon/lint/css-lint.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/lint/html-lint.js b/client/javascript/externs/codemirror/addon/lint/html-lint.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/lint/html-lint.js rename to client/javascript/externs/codemirror/addon/lint/html-lint.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/lint/javascript-lint.js b/client/javascript/externs/codemirror/addon/lint/javascript-lint.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/lint/javascript-lint.js rename to client/javascript/externs/codemirror/addon/lint/javascript-lint.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/lint/json-lint.js b/client/javascript/externs/codemirror/addon/lint/json-lint.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/lint/json-lint.js rename to client/javascript/externs/codemirror/addon/lint/json-lint.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/lint/lint.css b/client/javascript/externs/codemirror/addon/lint/lint.css similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/lint/lint.css rename to client/javascript/externs/codemirror/addon/lint/lint.css diff --git a/src/vitis/client/javascript/externs/codemirror/addon/lint/lint.js b/client/javascript/externs/codemirror/addon/lint/lint.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/lint/lint.js rename to client/javascript/externs/codemirror/addon/lint/lint.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/lint/yaml-lint.js b/client/javascript/externs/codemirror/addon/lint/yaml-lint.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/lint/yaml-lint.js rename to client/javascript/externs/codemirror/addon/lint/yaml-lint.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/merge/merge.css b/client/javascript/externs/codemirror/addon/merge/merge.css similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/merge/merge.css rename to client/javascript/externs/codemirror/addon/merge/merge.css diff --git a/src/vitis/client/javascript/externs/codemirror/addon/merge/merge.js b/client/javascript/externs/codemirror/addon/merge/merge.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/merge/merge.js rename to client/javascript/externs/codemirror/addon/merge/merge.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/mode/loadmode.js b/client/javascript/externs/codemirror/addon/mode/loadmode.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/mode/loadmode.js rename to client/javascript/externs/codemirror/addon/mode/loadmode.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/mode/multiplex.js b/client/javascript/externs/codemirror/addon/mode/multiplex.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/mode/multiplex.js rename to client/javascript/externs/codemirror/addon/mode/multiplex.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/mode/multiplex_test.js b/client/javascript/externs/codemirror/addon/mode/multiplex_test.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/mode/multiplex_test.js rename to client/javascript/externs/codemirror/addon/mode/multiplex_test.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/mode/overlay.js b/client/javascript/externs/codemirror/addon/mode/overlay.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/mode/overlay.js rename to client/javascript/externs/codemirror/addon/mode/overlay.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/mode/simple.js b/client/javascript/externs/codemirror/addon/mode/simple.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/mode/simple.js rename to client/javascript/externs/codemirror/addon/mode/simple.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/runmode/colorize.js b/client/javascript/externs/codemirror/addon/runmode/colorize.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/runmode/colorize.js rename to client/javascript/externs/codemirror/addon/runmode/colorize.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/runmode/runmode-standalone.js b/client/javascript/externs/codemirror/addon/runmode/runmode-standalone.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/runmode/runmode-standalone.js rename to client/javascript/externs/codemirror/addon/runmode/runmode-standalone.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/runmode/runmode.js b/client/javascript/externs/codemirror/addon/runmode/runmode.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/runmode/runmode.js rename to client/javascript/externs/codemirror/addon/runmode/runmode.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/runmode/runmode.node.js b/client/javascript/externs/codemirror/addon/runmode/runmode.node.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/runmode/runmode.node.js rename to client/javascript/externs/codemirror/addon/runmode/runmode.node.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/scroll/annotatescrollbar.js b/client/javascript/externs/codemirror/addon/scroll/annotatescrollbar.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/scroll/annotatescrollbar.js rename to client/javascript/externs/codemirror/addon/scroll/annotatescrollbar.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/scroll/scrollpastend.js b/client/javascript/externs/codemirror/addon/scroll/scrollpastend.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/scroll/scrollpastend.js rename to client/javascript/externs/codemirror/addon/scroll/scrollpastend.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/scroll/simplescrollbars.css b/client/javascript/externs/codemirror/addon/scroll/simplescrollbars.css similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/scroll/simplescrollbars.css rename to client/javascript/externs/codemirror/addon/scroll/simplescrollbars.css diff --git a/src/vitis/client/javascript/externs/codemirror/addon/scroll/simplescrollbars.js b/client/javascript/externs/codemirror/addon/scroll/simplescrollbars.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/scroll/simplescrollbars.js rename to client/javascript/externs/codemirror/addon/scroll/simplescrollbars.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/search/jump-to-line.js b/client/javascript/externs/codemirror/addon/search/jump-to-line.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/search/jump-to-line.js rename to client/javascript/externs/codemirror/addon/search/jump-to-line.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/search/match-highlighter.js b/client/javascript/externs/codemirror/addon/search/match-highlighter.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/search/match-highlighter.js rename to client/javascript/externs/codemirror/addon/search/match-highlighter.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/search/matchesonscrollbar.css b/client/javascript/externs/codemirror/addon/search/matchesonscrollbar.css similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/search/matchesonscrollbar.css rename to client/javascript/externs/codemirror/addon/search/matchesonscrollbar.css diff --git a/src/vitis/client/javascript/externs/codemirror/addon/search/matchesonscrollbar.js b/client/javascript/externs/codemirror/addon/search/matchesonscrollbar.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/search/matchesonscrollbar.js rename to client/javascript/externs/codemirror/addon/search/matchesonscrollbar.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/search/search.js b/client/javascript/externs/codemirror/addon/search/search.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/search/search.js rename to client/javascript/externs/codemirror/addon/search/search.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/search/searchcursor.js b/client/javascript/externs/codemirror/addon/search/searchcursor.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/search/searchcursor.js rename to client/javascript/externs/codemirror/addon/search/searchcursor.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/selection/active-line.js b/client/javascript/externs/codemirror/addon/selection/active-line.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/selection/active-line.js rename to client/javascript/externs/codemirror/addon/selection/active-line.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/selection/mark-selection.js b/client/javascript/externs/codemirror/addon/selection/mark-selection.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/selection/mark-selection.js rename to client/javascript/externs/codemirror/addon/selection/mark-selection.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/selection/selection-pointer.js b/client/javascript/externs/codemirror/addon/selection/selection-pointer.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/selection/selection-pointer.js rename to client/javascript/externs/codemirror/addon/selection/selection-pointer.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/tern/tern.css b/client/javascript/externs/codemirror/addon/tern/tern.css similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/tern/tern.css rename to client/javascript/externs/codemirror/addon/tern/tern.css diff --git a/src/vitis/client/javascript/externs/codemirror/addon/tern/tern.js b/client/javascript/externs/codemirror/addon/tern/tern.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/tern/tern.js rename to client/javascript/externs/codemirror/addon/tern/tern.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/tern/worker.js b/client/javascript/externs/codemirror/addon/tern/worker.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/tern/worker.js rename to client/javascript/externs/codemirror/addon/tern/worker.js diff --git a/src/vitis/client/javascript/externs/codemirror/addon/wrap/hardwrap.js b/client/javascript/externs/codemirror/addon/wrap/hardwrap.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/addon/wrap/hardwrap.js rename to client/javascript/externs/codemirror/addon/wrap/hardwrap.js diff --git a/src/vitis/client/javascript/externs/codemirror/clike.js b/client/javascript/externs/codemirror/clike.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/clike.js rename to client/javascript/externs/codemirror/clike.js diff --git a/src/vitis/client/javascript/externs/codemirror/codemirror.js b/client/javascript/externs/codemirror/codemirror.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/codemirror.js rename to client/javascript/externs/codemirror/codemirror.js diff --git a/src/vitis/client/javascript/externs/codemirror/codemirror.min.js b/client/javascript/externs/codemirror/codemirror.min.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/codemirror.min.js rename to client/javascript/externs/codemirror/codemirror.min.js diff --git a/src/vitis/client/javascript/externs/codemirror/css.js b/client/javascript/externs/codemirror/css.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/css.js rename to client/javascript/externs/codemirror/css.js diff --git a/src/vitis/client/javascript/externs/codemirror/htmlmixed.js b/client/javascript/externs/codemirror/htmlmixed.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/htmlmixed.js rename to client/javascript/externs/codemirror/htmlmixed.js diff --git a/src/vitis/client/javascript/externs/codemirror/javascript.js b/client/javascript/externs/codemirror/javascript.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/javascript.js rename to client/javascript/externs/codemirror/javascript.js diff --git a/src/vitis/client/javascript/externs/codemirror/map.js b/client/javascript/externs/codemirror/map.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/map.js rename to client/javascript/externs/codemirror/map.js diff --git a/src/vitis/client/javascript/externs/codemirror/php.js b/client/javascript/externs/codemirror/php.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/php.js rename to client/javascript/externs/codemirror/php.js diff --git a/src/vitis/client/javascript/externs/codemirror/show-hint.js b/client/javascript/externs/codemirror/show-hint.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/show-hint.js rename to client/javascript/externs/codemirror/show-hint.js diff --git a/src/vitis/client/javascript/externs/codemirror/sql.js b/client/javascript/externs/codemirror/sql.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/sql.js rename to client/javascript/externs/codemirror/sql.js diff --git a/src/vitis/client/javascript/externs/codemirror/xml.js b/client/javascript/externs/codemirror/xml.js similarity index 100% rename from src/vitis/client/javascript/externs/codemirror/xml.js rename to client/javascript/externs/codemirror/xml.js diff --git a/src/vitis/client/javascript/externs/formReader/component/component.js b/client/javascript/externs/formReader/component/component.js similarity index 100% rename from src/vitis/client/javascript/externs/formReader/component/component.js rename to client/javascript/externs/formReader/component/component.js diff --git a/src/vitis/client/javascript/externs/formReader/component/map.js b/client/javascript/externs/formReader/component/map.js similarity index 100% rename from src/vitis/client/javascript/externs/formReader/component/map.js rename to client/javascript/externs/formReader/component/map.js diff --git a/src/vitis/client/javascript/externs/formReader/component/map_workbench/map_workbench.html b/client/javascript/externs/formReader/component/map_workbench/map_workbench.html similarity index 100% rename from src/vitis/client/javascript/externs/formReader/component/map_workbench/map_workbench.html rename to client/javascript/externs/formReader/component/map_workbench/map_workbench.html diff --git a/src/vitis/client/javascript/externs/formReader/component/map_workbench/map_workbench.js b/client/javascript/externs/formReader/component/map_workbench/map_workbench.js similarity index 100% rename from src/vitis/client/javascript/externs/formReader/component/map_workbench/map_workbench.js rename to client/javascript/externs/formReader/component/map_workbench/map_workbench.js diff --git a/src/vitis/client/javascript/externs/formReader/formReader.html b/client/javascript/externs/formReader/formReader.html similarity index 100% rename from src/vitis/client/javascript/externs/formReader/formReader.html rename to client/javascript/externs/formReader/formReader.html diff --git a/src/vitis/client/javascript/externs/formReader/formReader.js b/client/javascript/externs/formReader/formReader.js similarity index 100% rename from src/vitis/client/javascript/externs/formReader/formReader.js rename to client/javascript/externs/formReader/formReader.js diff --git a/src/vitis/client/javascript/externs/formReader/formReaderCtrl.js b/client/javascript/externs/formReader/formReaderCtrl.js similarity index 100% rename from src/vitis/client/javascript/externs/formReader/formReaderCtrl.js rename to client/javascript/externs/formReader/formReaderCtrl.js diff --git a/src/vitis/client/javascript/externs/formReader/formReaderDrtv.js b/client/javascript/externs/formReader/formReaderDrtv.js similarity index 100% rename from src/vitis/client/javascript/externs/formReader/formReaderDrtv.js rename to client/javascript/externs/formReader/formReaderDrtv.js diff --git a/src/vitis/client/javascript/externs/formReader/formReaderSrvc.js b/client/javascript/externs/formReader/formReaderSrvc.js similarity index 100% rename from src/vitis/client/javascript/externs/formReader/formReaderSrvc.js rename to client/javascript/externs/formReader/formReaderSrvc.js diff --git a/src/vitis/client/javascript/externs/jquery/LICENSE.txt b/client/javascript/externs/jquery/LICENSE.txt similarity index 100% rename from src/vitis/client/javascript/externs/jquery/LICENSE.txt rename to client/javascript/externs/jquery/LICENSE.txt diff --git a/src/vitis/client/javascript/externs/jquery/jquery-1.11.3.js b/client/javascript/externs/jquery/jquery-1.11.3.js similarity index 100% rename from src/vitis/client/javascript/externs/jquery/jquery-1.11.3.js rename to client/javascript/externs/jquery/jquery-1.11.3.js diff --git a/src/vitis/client/javascript/externs/jquery/jquery-1.11.3.min.js b/client/javascript/externs/jquery/jquery-1.11.3.min.js similarity index 100% rename from src/vitis/client/javascript/externs/jquery/jquery-1.11.3.min.js rename to client/javascript/externs/jquery/jquery-1.11.3.min.js diff --git a/src/vitis/client/javascript/externs/jquery/jquery-1.11.3.min.map b/client/javascript/externs/jquery/jquery-1.11.3.min.map similarity index 100% rename from src/vitis/client/javascript/externs/jquery/jquery-1.11.3.min.map rename to client/javascript/externs/jquery/jquery-1.11.3.min.map diff --git a/src/vitis/client/javascript/externs/jquery/plugins/bootbox/bootbox.js b/client/javascript/externs/jquery/plugins/bootbox/bootbox.js similarity index 100% rename from src/vitis/client/javascript/externs/jquery/plugins/bootbox/bootbox.js rename to client/javascript/externs/jquery/plugins/bootbox/bootbox.js diff --git a/src/vitis/client/javascript/externs/jquery/plugins/bootbox/bootbox.min.js b/client/javascript/externs/jquery/plugins/bootbox/bootbox.min.js similarity index 100% rename from src/vitis/client/javascript/externs/jquery/plugins/bootbox/bootbox.min.js rename to client/javascript/externs/jquery/plugins/bootbox/bootbox.min.js diff --git a/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-colorpicker/bootstrap-colorpicker.min.js b/client/javascript/externs/jquery/plugins/bootstrap-colorpicker/bootstrap-colorpicker.min.js similarity index 100% rename from src/vitis/client/javascript/externs/jquery/plugins/bootstrap-colorpicker/bootstrap-colorpicker.min.js rename to client/javascript/externs/jquery/plugins/bootstrap-colorpicker/bootstrap-colorpicker.min.js diff --git a/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-colorpicker/js/bootstrap-colorpicker.js b/client/javascript/externs/jquery/plugins/bootstrap-colorpicker/js/bootstrap-colorpicker.js similarity index 100% rename from src/vitis/client/javascript/externs/jquery/plugins/bootstrap-colorpicker/js/bootstrap-colorpicker.js rename to client/javascript/externs/jquery/plugins/bootstrap-colorpicker/js/bootstrap-colorpicker.js diff --git a/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-colorpicker/js/bootstrap-colorpicker.min.js b/client/javascript/externs/jquery/plugins/bootstrap-colorpicker/js/bootstrap-colorpicker.min.js similarity index 100% rename from src/vitis/client/javascript/externs/jquery/plugins/bootstrap-colorpicker/js/bootstrap-colorpicker.min.js rename to client/javascript/externs/jquery/plugins/bootstrap-colorpicker/js/bootstrap-colorpicker.min.js diff --git a/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-confirmation/bootstrap-confirmation.min.js b/client/javascript/externs/jquery/plugins/bootstrap-confirmation/bootstrap-confirmation.min.js similarity index 100% rename from src/vitis/client/javascript/externs/jquery/plugins/bootstrap-confirmation/bootstrap-confirmation.min.js rename to client/javascript/externs/jquery/plugins/bootstrap-confirmation/bootstrap-confirmation.min.js diff --git a/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker.js b/client/javascript/externs/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker.js similarity index 100% rename from src/vitis/client/javascript/externs/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker.js rename to client/javascript/externs/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker.js diff --git a/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker.min.js b/client/javascript/externs/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker.min.js similarity index 100% rename from src/vitis/client/javascript/externs/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker.min.js rename to client/javascript/externs/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker.min.js diff --git a/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.fr.min.js b/client/javascript/externs/jquery/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.fr.min.js similarity index 100% rename from src/vitis/client/javascript/externs/jquery/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.fr.min.js rename to client/javascript/externs/jquery/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.fr.min.js diff --git a/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-datetimepicker/bootstrap-datetimepicker.min.js b/client/javascript/externs/jquery/plugins/bootstrap-datetimepicker/bootstrap-datetimepicker.min.js similarity index 100% rename from src/vitis/client/javascript/externs/jquery/plugins/bootstrap-datetimepicker/bootstrap-datetimepicker.min.js rename to client/javascript/externs/jquery/plugins/bootstrap-datetimepicker/bootstrap-datetimepicker.min.js diff --git a/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput.js b/client/javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput.js similarity index 100% rename from src/vitis/client/javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput.js rename to client/javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput.js diff --git a/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput.min.js b/client/javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput.min.js similarity index 100% rename from src/vitis/client/javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput.min.js rename to client/javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput.min.js diff --git a/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput_locale_fr.js b/client/javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput_locale_fr.js similarity index 100% rename from src/vitis/client/javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput_locale_fr.js rename to client/javascript/externs/jquery/plugins/bootstrap-fileinput/fileinput_locale_fr.js diff --git a/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-slider/bootstrap-slider.min.js b/client/javascript/externs/jquery/plugins/bootstrap-slider/bootstrap-slider.min.js similarity index 100% rename from src/vitis/client/javascript/externs/jquery/plugins/bootstrap-slider/bootstrap-slider.min.js rename to client/javascript/externs/jquery/plugins/bootstrap-slider/bootstrap-slider.min.js diff --git a/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-tagsinput/bootstrap-tagsinput.min.js b/client/javascript/externs/jquery/plugins/bootstrap-tagsinput/bootstrap-tagsinput.min.js similarity index 100% rename from src/vitis/client/javascript/externs/jquery/plugins/bootstrap-tagsinput/bootstrap-tagsinput.min.js rename to client/javascript/externs/jquery/plugins/bootstrap-tagsinput/bootstrap-tagsinput.min.js diff --git a/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-treeview/bootstrap-treeview.js b/client/javascript/externs/jquery/plugins/bootstrap-treeview/bootstrap-treeview.js similarity index 100% rename from src/vitis/client/javascript/externs/jquery/plugins/bootstrap-treeview/bootstrap-treeview.js rename to client/javascript/externs/jquery/plugins/bootstrap-treeview/bootstrap-treeview.js diff --git a/src/vitis/client/javascript/externs/jquery/plugins/bootstrap-treeview/bootstrap-treeview.min.js b/client/javascript/externs/jquery/plugins/bootstrap-treeview/bootstrap-treeview.min.js similarity index 100% rename from src/vitis/client/javascript/externs/jquery/plugins/bootstrap-treeview/bootstrap-treeview.min.js rename to client/javascript/externs/jquery/plugins/bootstrap-treeview/bootstrap-treeview.min.js diff --git a/src/vitis/client/javascript/externs/jquery/plugins/malihu-custom-scrollbar/jquery.mCustomScrollbar.concat.min.js b/client/javascript/externs/jquery/plugins/malihu-custom-scrollbar/jquery.mCustomScrollbar.concat.min.js similarity index 100% rename from src/vitis/client/javascript/externs/jquery/plugins/malihu-custom-scrollbar/jquery.mCustomScrollbar.concat.min.js rename to client/javascript/externs/jquery/plugins/malihu-custom-scrollbar/jquery.mCustomScrollbar.concat.min.js diff --git a/src/vitis/client/javascript/externs/jquery/plugins/notify/notify.js b/client/javascript/externs/jquery/plugins/notify/notify.js similarity index 100% rename from src/vitis/client/javascript/externs/jquery/plugins/notify/notify.js rename to client/javascript/externs/jquery/plugins/notify/notify.js diff --git a/src/vitis/client/javascript/externs/jquery/plugins/notify/notify.min.js b/client/javascript/externs/jquery/plugins/notify/notify.min.js similarity index 100% rename from src/vitis/client/javascript/externs/jquery/plugins/notify/notify.min.js rename to client/javascript/externs/jquery/plugins/notify/notify.min.js diff --git a/src/vitis/client/javascript/externs/less/LICENSE b/client/javascript/externs/less/LICENSE similarity index 100% rename from src/vitis/client/javascript/externs/less/LICENSE rename to client/javascript/externs/less/LICENSE diff --git a/src/vitis/client/javascript/externs/less/less.min.js b/client/javascript/externs/less/less.min.js similarity index 100% rename from src/vitis/client/javascript/externs/less/less.min.js rename to client/javascript/externs/less/less.min.js diff --git a/src/vitis/client/javascript/externs/letter-avatar/ngletteravatar.js b/client/javascript/externs/letter-avatar/ngletteravatar.js similarity index 100% rename from src/vitis/client/javascript/externs/letter-avatar/ngletteravatar.js rename to client/javascript/externs/letter-avatar/ngletteravatar.js diff --git a/src/vitis/client/javascript/externs/letter-avatar/ngletteravatar.min.js b/client/javascript/externs/letter-avatar/ngletteravatar.min.js similarity index 100% rename from src/vitis/client/javascript/externs/letter-avatar/ngletteravatar.min.js rename to client/javascript/externs/letter-avatar/ngletteravatar.min.js diff --git a/src/vitis/client/javascript/externs/mapJSON/MapJSON.js b/client/javascript/externs/mapJSON/MapJSON.js similarity index 100% rename from src/vitis/client/javascript/externs/mapJSON/MapJSON.js rename to client/javascript/externs/mapJSON/MapJSON.js diff --git a/src/vitis/client/javascript/externs/materialize/materialize.js b/client/javascript/externs/materialize/materialize.js similarity index 100% rename from src/vitis/client/javascript/externs/materialize/materialize.js rename to client/javascript/externs/materialize/materialize.js diff --git a/src/vitis/client/javascript/externs/materialize/materialize.min.js b/client/javascript/externs/materialize/materialize.min.js similarity index 100% rename from src/vitis/client/javascript/externs/materialize/materialize.min.js rename to client/javascript/externs/materialize/materialize.min.js diff --git a/src/vitis/client/javascript/externs/mobile-detect/LICENSE b/client/javascript/externs/mobile-detect/LICENSE similarity index 100% rename from src/vitis/client/javascript/externs/mobile-detect/LICENSE rename to client/javascript/externs/mobile-detect/LICENSE diff --git a/src/vitis/client/javascript/externs/mobile-detect/mobile-detect.js b/client/javascript/externs/mobile-detect/mobile-detect.js similarity index 100% rename from src/vitis/client/javascript/externs/mobile-detect/mobile-detect.js rename to client/javascript/externs/mobile-detect/mobile-detect.js diff --git a/src/vitis/client/javascript/externs/mobile-detect/mobile-detect.min.js b/client/javascript/externs/mobile-detect/mobile-detect.min.js similarity index 100% rename from src/vitis/client/javascript/externs/mobile-detect/mobile-detect.min.js rename to client/javascript/externs/mobile-detect/mobile-detect.min.js diff --git a/src/vitis/client/javascript/externs/moment/LICENSE b/client/javascript/externs/moment/LICENSE similarity index 100% rename from src/vitis/client/javascript/externs/moment/LICENSE rename to client/javascript/externs/moment/LICENSE diff --git a/src/vitis/client/javascript/externs/moment/locale/af.js b/client/javascript/externs/moment/locale/af.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/af.js rename to client/javascript/externs/moment/locale/af.js diff --git a/src/vitis/client/javascript/externs/moment/locale/ar-ma.js b/client/javascript/externs/moment/locale/ar-ma.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/ar-ma.js rename to client/javascript/externs/moment/locale/ar-ma.js diff --git a/src/vitis/client/javascript/externs/moment/locale/ar-sa.js b/client/javascript/externs/moment/locale/ar-sa.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/ar-sa.js rename to client/javascript/externs/moment/locale/ar-sa.js diff --git a/src/vitis/client/javascript/externs/moment/locale/ar-tn.js b/client/javascript/externs/moment/locale/ar-tn.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/ar-tn.js rename to client/javascript/externs/moment/locale/ar-tn.js diff --git a/src/vitis/client/javascript/externs/moment/locale/ar.js b/client/javascript/externs/moment/locale/ar.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/ar.js rename to client/javascript/externs/moment/locale/ar.js diff --git a/src/vitis/client/javascript/externs/moment/locale/az.js b/client/javascript/externs/moment/locale/az.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/az.js rename to client/javascript/externs/moment/locale/az.js diff --git a/src/vitis/client/javascript/externs/moment/locale/be.js b/client/javascript/externs/moment/locale/be.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/be.js rename to client/javascript/externs/moment/locale/be.js diff --git a/src/vitis/client/javascript/externs/moment/locale/bg.js b/client/javascript/externs/moment/locale/bg.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/bg.js rename to client/javascript/externs/moment/locale/bg.js diff --git a/src/vitis/client/javascript/externs/moment/locale/bn.js b/client/javascript/externs/moment/locale/bn.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/bn.js rename to client/javascript/externs/moment/locale/bn.js diff --git a/src/vitis/client/javascript/externs/moment/locale/bo.js b/client/javascript/externs/moment/locale/bo.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/bo.js rename to client/javascript/externs/moment/locale/bo.js diff --git a/src/vitis/client/javascript/externs/moment/locale/br.js b/client/javascript/externs/moment/locale/br.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/br.js rename to client/javascript/externs/moment/locale/br.js diff --git a/src/vitis/client/javascript/externs/moment/locale/bs.js b/client/javascript/externs/moment/locale/bs.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/bs.js rename to client/javascript/externs/moment/locale/bs.js diff --git a/src/vitis/client/javascript/externs/moment/locale/ca.js b/client/javascript/externs/moment/locale/ca.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/ca.js rename to client/javascript/externs/moment/locale/ca.js diff --git a/src/vitis/client/javascript/externs/moment/locale/cs.js b/client/javascript/externs/moment/locale/cs.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/cs.js rename to client/javascript/externs/moment/locale/cs.js diff --git a/src/vitis/client/javascript/externs/moment/locale/cv.js b/client/javascript/externs/moment/locale/cv.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/cv.js rename to client/javascript/externs/moment/locale/cv.js diff --git a/src/vitis/client/javascript/externs/moment/locale/cy.js b/client/javascript/externs/moment/locale/cy.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/cy.js rename to client/javascript/externs/moment/locale/cy.js diff --git a/src/vitis/client/javascript/externs/moment/locale/da.js b/client/javascript/externs/moment/locale/da.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/da.js rename to client/javascript/externs/moment/locale/da.js diff --git a/src/vitis/client/javascript/externs/moment/locale/de-at.js b/client/javascript/externs/moment/locale/de-at.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/de-at.js rename to client/javascript/externs/moment/locale/de-at.js diff --git a/src/vitis/client/javascript/externs/moment/locale/de.js b/client/javascript/externs/moment/locale/de.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/de.js rename to client/javascript/externs/moment/locale/de.js diff --git a/src/vitis/client/javascript/externs/moment/locale/dv.js b/client/javascript/externs/moment/locale/dv.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/dv.js rename to client/javascript/externs/moment/locale/dv.js diff --git a/src/vitis/client/javascript/externs/moment/locale/el.js b/client/javascript/externs/moment/locale/el.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/el.js rename to client/javascript/externs/moment/locale/el.js diff --git a/src/vitis/client/javascript/externs/moment/locale/en-au.js b/client/javascript/externs/moment/locale/en-au.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/en-au.js rename to client/javascript/externs/moment/locale/en-au.js diff --git a/src/vitis/client/javascript/externs/moment/locale/en-ca.js b/client/javascript/externs/moment/locale/en-ca.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/en-ca.js rename to client/javascript/externs/moment/locale/en-ca.js diff --git a/src/vitis/client/javascript/externs/moment/locale/en-gb.js b/client/javascript/externs/moment/locale/en-gb.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/en-gb.js rename to client/javascript/externs/moment/locale/en-gb.js diff --git a/src/vitis/client/javascript/externs/moment/locale/en-ie.js b/client/javascript/externs/moment/locale/en-ie.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/en-ie.js rename to client/javascript/externs/moment/locale/en-ie.js diff --git a/src/vitis/client/javascript/externs/moment/locale/en-nz.js b/client/javascript/externs/moment/locale/en-nz.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/en-nz.js rename to client/javascript/externs/moment/locale/en-nz.js diff --git a/src/vitis/client/javascript/externs/moment/locale/eo.js b/client/javascript/externs/moment/locale/eo.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/eo.js rename to client/javascript/externs/moment/locale/eo.js diff --git a/src/vitis/client/javascript/externs/moment/locale/es.js b/client/javascript/externs/moment/locale/es.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/es.js rename to client/javascript/externs/moment/locale/es.js diff --git a/src/vitis/client/javascript/externs/moment/locale/et.js b/client/javascript/externs/moment/locale/et.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/et.js rename to client/javascript/externs/moment/locale/et.js diff --git a/src/vitis/client/javascript/externs/moment/locale/eu.js b/client/javascript/externs/moment/locale/eu.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/eu.js rename to client/javascript/externs/moment/locale/eu.js diff --git a/src/vitis/client/javascript/externs/moment/locale/fa.js b/client/javascript/externs/moment/locale/fa.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/fa.js rename to client/javascript/externs/moment/locale/fa.js diff --git a/src/vitis/client/javascript/externs/moment/locale/fi.js b/client/javascript/externs/moment/locale/fi.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/fi.js rename to client/javascript/externs/moment/locale/fi.js diff --git a/src/vitis/client/javascript/externs/moment/locale/fo.js b/client/javascript/externs/moment/locale/fo.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/fo.js rename to client/javascript/externs/moment/locale/fo.js diff --git a/src/vitis/client/javascript/externs/moment/locale/fr-ca.js b/client/javascript/externs/moment/locale/fr-ca.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/fr-ca.js rename to client/javascript/externs/moment/locale/fr-ca.js diff --git a/src/vitis/client/javascript/externs/moment/locale/fr-ch.js b/client/javascript/externs/moment/locale/fr-ch.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/fr-ch.js rename to client/javascript/externs/moment/locale/fr-ch.js diff --git a/src/vitis/client/javascript/externs/moment/locale/fr.js b/client/javascript/externs/moment/locale/fr.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/fr.js rename to client/javascript/externs/moment/locale/fr.js diff --git a/src/vitis/client/javascript/externs/moment/locale/fy.js b/client/javascript/externs/moment/locale/fy.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/fy.js rename to client/javascript/externs/moment/locale/fy.js diff --git a/src/vitis/client/javascript/externs/moment/locale/gd.js b/client/javascript/externs/moment/locale/gd.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/gd.js rename to client/javascript/externs/moment/locale/gd.js diff --git a/src/vitis/client/javascript/externs/moment/locale/gl.js b/client/javascript/externs/moment/locale/gl.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/gl.js rename to client/javascript/externs/moment/locale/gl.js diff --git a/src/vitis/client/javascript/externs/moment/locale/he.js b/client/javascript/externs/moment/locale/he.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/he.js rename to client/javascript/externs/moment/locale/he.js diff --git a/src/vitis/client/javascript/externs/moment/locale/hi.js b/client/javascript/externs/moment/locale/hi.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/hi.js rename to client/javascript/externs/moment/locale/hi.js diff --git a/src/vitis/client/javascript/externs/moment/locale/hr.js b/client/javascript/externs/moment/locale/hr.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/hr.js rename to client/javascript/externs/moment/locale/hr.js diff --git a/src/vitis/client/javascript/externs/moment/locale/hu.js b/client/javascript/externs/moment/locale/hu.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/hu.js rename to client/javascript/externs/moment/locale/hu.js diff --git a/src/vitis/client/javascript/externs/moment/locale/hy-am.js b/client/javascript/externs/moment/locale/hy-am.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/hy-am.js rename to client/javascript/externs/moment/locale/hy-am.js diff --git a/src/vitis/client/javascript/externs/moment/locale/id.js b/client/javascript/externs/moment/locale/id.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/id.js rename to client/javascript/externs/moment/locale/id.js diff --git a/src/vitis/client/javascript/externs/moment/locale/is.js b/client/javascript/externs/moment/locale/is.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/is.js rename to client/javascript/externs/moment/locale/is.js diff --git a/src/vitis/client/javascript/externs/moment/locale/it.js b/client/javascript/externs/moment/locale/it.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/it.js rename to client/javascript/externs/moment/locale/it.js diff --git a/src/vitis/client/javascript/externs/moment/locale/ja.js b/client/javascript/externs/moment/locale/ja.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/ja.js rename to client/javascript/externs/moment/locale/ja.js diff --git a/src/vitis/client/javascript/externs/moment/locale/jv.js b/client/javascript/externs/moment/locale/jv.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/jv.js rename to client/javascript/externs/moment/locale/jv.js diff --git a/src/vitis/client/javascript/externs/moment/locale/ka.js b/client/javascript/externs/moment/locale/ka.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/ka.js rename to client/javascript/externs/moment/locale/ka.js diff --git a/src/vitis/client/javascript/externs/moment/locale/kk.js b/client/javascript/externs/moment/locale/kk.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/kk.js rename to client/javascript/externs/moment/locale/kk.js diff --git a/src/vitis/client/javascript/externs/moment/locale/km.js b/client/javascript/externs/moment/locale/km.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/km.js rename to client/javascript/externs/moment/locale/km.js diff --git a/src/vitis/client/javascript/externs/moment/locale/ko.js b/client/javascript/externs/moment/locale/ko.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/ko.js rename to client/javascript/externs/moment/locale/ko.js diff --git a/src/vitis/client/javascript/externs/moment/locale/lb.js b/client/javascript/externs/moment/locale/lb.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/lb.js rename to client/javascript/externs/moment/locale/lb.js diff --git a/src/vitis/client/javascript/externs/moment/locale/lo.js b/client/javascript/externs/moment/locale/lo.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/lo.js rename to client/javascript/externs/moment/locale/lo.js diff --git a/src/vitis/client/javascript/externs/moment/locale/lt.js b/client/javascript/externs/moment/locale/lt.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/lt.js rename to client/javascript/externs/moment/locale/lt.js diff --git a/src/vitis/client/javascript/externs/moment/locale/lv.js b/client/javascript/externs/moment/locale/lv.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/lv.js rename to client/javascript/externs/moment/locale/lv.js diff --git a/src/vitis/client/javascript/externs/moment/locale/me.js b/client/javascript/externs/moment/locale/me.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/me.js rename to client/javascript/externs/moment/locale/me.js diff --git a/src/vitis/client/javascript/externs/moment/locale/mk.js b/client/javascript/externs/moment/locale/mk.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/mk.js rename to client/javascript/externs/moment/locale/mk.js diff --git a/src/vitis/client/javascript/externs/moment/locale/ml.js b/client/javascript/externs/moment/locale/ml.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/ml.js rename to client/javascript/externs/moment/locale/ml.js diff --git a/src/vitis/client/javascript/externs/moment/locale/mr.js b/client/javascript/externs/moment/locale/mr.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/mr.js rename to client/javascript/externs/moment/locale/mr.js diff --git a/src/vitis/client/javascript/externs/moment/locale/ms-my.js b/client/javascript/externs/moment/locale/ms-my.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/ms-my.js rename to client/javascript/externs/moment/locale/ms-my.js diff --git a/src/vitis/client/javascript/externs/moment/locale/ms.js b/client/javascript/externs/moment/locale/ms.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/ms.js rename to client/javascript/externs/moment/locale/ms.js diff --git a/src/vitis/client/javascript/externs/moment/locale/my.js b/client/javascript/externs/moment/locale/my.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/my.js rename to client/javascript/externs/moment/locale/my.js diff --git a/src/vitis/client/javascript/externs/moment/locale/nb.js b/client/javascript/externs/moment/locale/nb.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/nb.js rename to client/javascript/externs/moment/locale/nb.js diff --git a/src/vitis/client/javascript/externs/moment/locale/ne.js b/client/javascript/externs/moment/locale/ne.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/ne.js rename to client/javascript/externs/moment/locale/ne.js diff --git a/src/vitis/client/javascript/externs/moment/locale/nl.js b/client/javascript/externs/moment/locale/nl.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/nl.js rename to client/javascript/externs/moment/locale/nl.js diff --git a/src/vitis/client/javascript/externs/moment/locale/nn.js b/client/javascript/externs/moment/locale/nn.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/nn.js rename to client/javascript/externs/moment/locale/nn.js diff --git a/src/vitis/client/javascript/externs/moment/locale/pl.js b/client/javascript/externs/moment/locale/pl.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/pl.js rename to client/javascript/externs/moment/locale/pl.js diff --git a/src/vitis/client/javascript/externs/moment/locale/pt-br.js b/client/javascript/externs/moment/locale/pt-br.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/pt-br.js rename to client/javascript/externs/moment/locale/pt-br.js diff --git a/src/vitis/client/javascript/externs/moment/locale/pt.js b/client/javascript/externs/moment/locale/pt.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/pt.js rename to client/javascript/externs/moment/locale/pt.js diff --git a/src/vitis/client/javascript/externs/moment/locale/ro.js b/client/javascript/externs/moment/locale/ro.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/ro.js rename to client/javascript/externs/moment/locale/ro.js diff --git a/src/vitis/client/javascript/externs/moment/locale/ru.js b/client/javascript/externs/moment/locale/ru.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/ru.js rename to client/javascript/externs/moment/locale/ru.js diff --git a/src/vitis/client/javascript/externs/moment/locale/se.js b/client/javascript/externs/moment/locale/se.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/se.js rename to client/javascript/externs/moment/locale/se.js diff --git a/src/vitis/client/javascript/externs/moment/locale/si.js b/client/javascript/externs/moment/locale/si.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/si.js rename to client/javascript/externs/moment/locale/si.js diff --git a/src/vitis/client/javascript/externs/moment/locale/sk.js b/client/javascript/externs/moment/locale/sk.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/sk.js rename to client/javascript/externs/moment/locale/sk.js diff --git a/src/vitis/client/javascript/externs/moment/locale/sl.js b/client/javascript/externs/moment/locale/sl.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/sl.js rename to client/javascript/externs/moment/locale/sl.js diff --git a/src/vitis/client/javascript/externs/moment/locale/sq.js b/client/javascript/externs/moment/locale/sq.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/sq.js rename to client/javascript/externs/moment/locale/sq.js diff --git a/src/vitis/client/javascript/externs/moment/locale/sr-cyrl.js b/client/javascript/externs/moment/locale/sr-cyrl.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/sr-cyrl.js rename to client/javascript/externs/moment/locale/sr-cyrl.js diff --git a/src/vitis/client/javascript/externs/moment/locale/sr.js b/client/javascript/externs/moment/locale/sr.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/sr.js rename to client/javascript/externs/moment/locale/sr.js diff --git a/src/vitis/client/javascript/externs/moment/locale/sv.js b/client/javascript/externs/moment/locale/sv.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/sv.js rename to client/javascript/externs/moment/locale/sv.js diff --git a/src/vitis/client/javascript/externs/moment/locale/sw.js b/client/javascript/externs/moment/locale/sw.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/sw.js rename to client/javascript/externs/moment/locale/sw.js diff --git a/src/vitis/client/javascript/externs/moment/locale/ta.js b/client/javascript/externs/moment/locale/ta.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/ta.js rename to client/javascript/externs/moment/locale/ta.js diff --git a/src/vitis/client/javascript/externs/moment/locale/te.js b/client/javascript/externs/moment/locale/te.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/te.js rename to client/javascript/externs/moment/locale/te.js diff --git a/src/vitis/client/javascript/externs/moment/locale/th.js b/client/javascript/externs/moment/locale/th.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/th.js rename to client/javascript/externs/moment/locale/th.js diff --git a/src/vitis/client/javascript/externs/moment/locale/tl-ph.js b/client/javascript/externs/moment/locale/tl-ph.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/tl-ph.js rename to client/javascript/externs/moment/locale/tl-ph.js diff --git a/src/vitis/client/javascript/externs/moment/locale/tlh.js b/client/javascript/externs/moment/locale/tlh.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/tlh.js rename to client/javascript/externs/moment/locale/tlh.js diff --git a/src/vitis/client/javascript/externs/moment/locale/tr.js b/client/javascript/externs/moment/locale/tr.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/tr.js rename to client/javascript/externs/moment/locale/tr.js diff --git a/src/vitis/client/javascript/externs/moment/locale/tzl.js b/client/javascript/externs/moment/locale/tzl.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/tzl.js rename to client/javascript/externs/moment/locale/tzl.js diff --git a/src/vitis/client/javascript/externs/moment/locale/tzm-latn.js b/client/javascript/externs/moment/locale/tzm-latn.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/tzm-latn.js rename to client/javascript/externs/moment/locale/tzm-latn.js diff --git a/src/vitis/client/javascript/externs/moment/locale/tzm.js b/client/javascript/externs/moment/locale/tzm.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/tzm.js rename to client/javascript/externs/moment/locale/tzm.js diff --git a/src/vitis/client/javascript/externs/moment/locale/uk.js b/client/javascript/externs/moment/locale/uk.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/uk.js rename to client/javascript/externs/moment/locale/uk.js diff --git a/src/vitis/client/javascript/externs/moment/locale/uz.js b/client/javascript/externs/moment/locale/uz.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/uz.js rename to client/javascript/externs/moment/locale/uz.js diff --git a/src/vitis/client/javascript/externs/moment/locale/vi.js b/client/javascript/externs/moment/locale/vi.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/vi.js rename to client/javascript/externs/moment/locale/vi.js diff --git a/src/vitis/client/javascript/externs/moment/locale/zh-cn.js b/client/javascript/externs/moment/locale/zh-cn.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/zh-cn.js rename to client/javascript/externs/moment/locale/zh-cn.js diff --git a/src/vitis/client/javascript/externs/moment/locale/zh-tw.js b/client/javascript/externs/moment/locale/zh-tw.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/locale/zh-tw.js rename to client/javascript/externs/moment/locale/zh-tw.js diff --git a/src/vitis/client/javascript/externs/moment/min/locales.js b/client/javascript/externs/moment/min/locales.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/min/locales.js rename to client/javascript/externs/moment/min/locales.js diff --git a/src/vitis/client/javascript/externs/moment/min/locales.min.js b/client/javascript/externs/moment/min/locales.min.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/min/locales.min.js rename to client/javascript/externs/moment/min/locales.min.js diff --git a/src/vitis/client/javascript/externs/moment/min/moment-with-locales.js b/client/javascript/externs/moment/min/moment-with-locales.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/min/moment-with-locales.js rename to client/javascript/externs/moment/min/moment-with-locales.js diff --git a/src/vitis/client/javascript/externs/moment/min/moment-with-locales.min.js b/client/javascript/externs/moment/min/moment-with-locales.min.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/min/moment-with-locales.min.js rename to client/javascript/externs/moment/min/moment-with-locales.min.js diff --git a/src/vitis/client/javascript/externs/moment/min/moment.min.js b/client/javascript/externs/moment/min/moment.min.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/min/moment.min.js rename to client/javascript/externs/moment/min/moment.min.js diff --git a/src/vitis/client/javascript/externs/moment/min/tests.js b/client/javascript/externs/moment/min/tests.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/min/tests.js rename to client/javascript/externs/moment/min/tests.js diff --git a/src/vitis/client/javascript/externs/moment/moment.min.js b/client/javascript/externs/moment/moment.min.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/moment.min.js rename to client/javascript/externs/moment/moment.min.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/create/check-overflow.js b/client/javascript/externs/moment/src/lib/create/check-overflow.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/create/check-overflow.js rename to client/javascript/externs/moment/src/lib/create/check-overflow.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/create/date-from-array.js b/client/javascript/externs/moment/src/lib/create/date-from-array.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/create/date-from-array.js rename to client/javascript/externs/moment/src/lib/create/date-from-array.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/create/from-anything.js b/client/javascript/externs/moment/src/lib/create/from-anything.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/create/from-anything.js rename to client/javascript/externs/moment/src/lib/create/from-anything.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/create/from-array.js b/client/javascript/externs/moment/src/lib/create/from-array.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/create/from-array.js rename to client/javascript/externs/moment/src/lib/create/from-array.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/create/from-object.js b/client/javascript/externs/moment/src/lib/create/from-object.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/create/from-object.js rename to client/javascript/externs/moment/src/lib/create/from-object.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/create/from-string-and-array.js b/client/javascript/externs/moment/src/lib/create/from-string-and-array.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/create/from-string-and-array.js rename to client/javascript/externs/moment/src/lib/create/from-string-and-array.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/create/from-string-and-format.js b/client/javascript/externs/moment/src/lib/create/from-string-and-format.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/create/from-string-and-format.js rename to client/javascript/externs/moment/src/lib/create/from-string-and-format.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/create/from-string.js b/client/javascript/externs/moment/src/lib/create/from-string.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/create/from-string.js rename to client/javascript/externs/moment/src/lib/create/from-string.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/create/local.js b/client/javascript/externs/moment/src/lib/create/local.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/create/local.js rename to client/javascript/externs/moment/src/lib/create/local.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/create/parsing-flags.js b/client/javascript/externs/moment/src/lib/create/parsing-flags.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/create/parsing-flags.js rename to client/javascript/externs/moment/src/lib/create/parsing-flags.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/create/utc.js b/client/javascript/externs/moment/src/lib/create/utc.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/create/utc.js rename to client/javascript/externs/moment/src/lib/create/utc.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/create/valid.js b/client/javascript/externs/moment/src/lib/create/valid.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/create/valid.js rename to client/javascript/externs/moment/src/lib/create/valid.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/duration/abs.js b/client/javascript/externs/moment/src/lib/duration/abs.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/duration/abs.js rename to client/javascript/externs/moment/src/lib/duration/abs.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/duration/add-subtract.js b/client/javascript/externs/moment/src/lib/duration/add-subtract.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/duration/add-subtract.js rename to client/javascript/externs/moment/src/lib/duration/add-subtract.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/duration/as.js b/client/javascript/externs/moment/src/lib/duration/as.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/duration/as.js rename to client/javascript/externs/moment/src/lib/duration/as.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/duration/bubble.js b/client/javascript/externs/moment/src/lib/duration/bubble.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/duration/bubble.js rename to client/javascript/externs/moment/src/lib/duration/bubble.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/duration/constructor.js b/client/javascript/externs/moment/src/lib/duration/constructor.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/duration/constructor.js rename to client/javascript/externs/moment/src/lib/duration/constructor.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/duration/create.js b/client/javascript/externs/moment/src/lib/duration/create.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/duration/create.js rename to client/javascript/externs/moment/src/lib/duration/create.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/duration/duration.js b/client/javascript/externs/moment/src/lib/duration/duration.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/duration/duration.js rename to client/javascript/externs/moment/src/lib/duration/duration.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/duration/get.js b/client/javascript/externs/moment/src/lib/duration/get.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/duration/get.js rename to client/javascript/externs/moment/src/lib/duration/get.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/duration/humanize.js b/client/javascript/externs/moment/src/lib/duration/humanize.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/duration/humanize.js rename to client/javascript/externs/moment/src/lib/duration/humanize.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/duration/iso-string.js b/client/javascript/externs/moment/src/lib/duration/iso-string.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/duration/iso-string.js rename to client/javascript/externs/moment/src/lib/duration/iso-string.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/duration/prototype.js b/client/javascript/externs/moment/src/lib/duration/prototype.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/duration/prototype.js rename to client/javascript/externs/moment/src/lib/duration/prototype.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/format/format.js b/client/javascript/externs/moment/src/lib/format/format.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/format/format.js rename to client/javascript/externs/moment/src/lib/format/format.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/locale/calendar.js b/client/javascript/externs/moment/src/lib/locale/calendar.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/locale/calendar.js rename to client/javascript/externs/moment/src/lib/locale/calendar.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/locale/constructor.js b/client/javascript/externs/moment/src/lib/locale/constructor.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/locale/constructor.js rename to client/javascript/externs/moment/src/lib/locale/constructor.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/locale/en.js b/client/javascript/externs/moment/src/lib/locale/en.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/locale/en.js rename to client/javascript/externs/moment/src/lib/locale/en.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/locale/formats.js b/client/javascript/externs/moment/src/lib/locale/formats.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/locale/formats.js rename to client/javascript/externs/moment/src/lib/locale/formats.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/locale/invalid.js b/client/javascript/externs/moment/src/lib/locale/invalid.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/locale/invalid.js rename to client/javascript/externs/moment/src/lib/locale/invalid.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/locale/lists.js b/client/javascript/externs/moment/src/lib/locale/lists.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/locale/lists.js rename to client/javascript/externs/moment/src/lib/locale/lists.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/locale/locale.js b/client/javascript/externs/moment/src/lib/locale/locale.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/locale/locale.js rename to client/javascript/externs/moment/src/lib/locale/locale.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/locale/locales.js b/client/javascript/externs/moment/src/lib/locale/locales.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/locale/locales.js rename to client/javascript/externs/moment/src/lib/locale/locales.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/locale/ordinal.js b/client/javascript/externs/moment/src/lib/locale/ordinal.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/locale/ordinal.js rename to client/javascript/externs/moment/src/lib/locale/ordinal.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/locale/pre-post-format.js b/client/javascript/externs/moment/src/lib/locale/pre-post-format.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/locale/pre-post-format.js rename to client/javascript/externs/moment/src/lib/locale/pre-post-format.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/locale/prototype.js b/client/javascript/externs/moment/src/lib/locale/prototype.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/locale/prototype.js rename to client/javascript/externs/moment/src/lib/locale/prototype.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/locale/relative.js b/client/javascript/externs/moment/src/lib/locale/relative.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/locale/relative.js rename to client/javascript/externs/moment/src/lib/locale/relative.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/locale/set.js b/client/javascript/externs/moment/src/lib/locale/set.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/locale/set.js rename to client/javascript/externs/moment/src/lib/locale/set.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/moment/add-subtract.js b/client/javascript/externs/moment/src/lib/moment/add-subtract.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/moment/add-subtract.js rename to client/javascript/externs/moment/src/lib/moment/add-subtract.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/moment/calendar.js b/client/javascript/externs/moment/src/lib/moment/calendar.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/moment/calendar.js rename to client/javascript/externs/moment/src/lib/moment/calendar.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/moment/clone.js b/client/javascript/externs/moment/src/lib/moment/clone.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/moment/clone.js rename to client/javascript/externs/moment/src/lib/moment/clone.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/moment/compare.js b/client/javascript/externs/moment/src/lib/moment/compare.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/moment/compare.js rename to client/javascript/externs/moment/src/lib/moment/compare.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/moment/constructor.js b/client/javascript/externs/moment/src/lib/moment/constructor.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/moment/constructor.js rename to client/javascript/externs/moment/src/lib/moment/constructor.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/moment/creation-data.js b/client/javascript/externs/moment/src/lib/moment/creation-data.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/moment/creation-data.js rename to client/javascript/externs/moment/src/lib/moment/creation-data.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/moment/diff.js b/client/javascript/externs/moment/src/lib/moment/diff.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/moment/diff.js rename to client/javascript/externs/moment/src/lib/moment/diff.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/moment/format.js b/client/javascript/externs/moment/src/lib/moment/format.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/moment/format.js rename to client/javascript/externs/moment/src/lib/moment/format.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/moment/from.js b/client/javascript/externs/moment/src/lib/moment/from.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/moment/from.js rename to client/javascript/externs/moment/src/lib/moment/from.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/moment/get-set.js b/client/javascript/externs/moment/src/lib/moment/get-set.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/moment/get-set.js rename to client/javascript/externs/moment/src/lib/moment/get-set.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/moment/locale.js b/client/javascript/externs/moment/src/lib/moment/locale.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/moment/locale.js rename to client/javascript/externs/moment/src/lib/moment/locale.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/moment/min-max.js b/client/javascript/externs/moment/src/lib/moment/min-max.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/moment/min-max.js rename to client/javascript/externs/moment/src/lib/moment/min-max.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/moment/moment.js b/client/javascript/externs/moment/src/lib/moment/moment.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/moment/moment.js rename to client/javascript/externs/moment/src/lib/moment/moment.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/moment/now.js b/client/javascript/externs/moment/src/lib/moment/now.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/moment/now.js rename to client/javascript/externs/moment/src/lib/moment/now.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/moment/prototype.js b/client/javascript/externs/moment/src/lib/moment/prototype.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/moment/prototype.js rename to client/javascript/externs/moment/src/lib/moment/prototype.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/moment/start-end-of.js b/client/javascript/externs/moment/src/lib/moment/start-end-of.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/moment/start-end-of.js rename to client/javascript/externs/moment/src/lib/moment/start-end-of.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/moment/to-type.js b/client/javascript/externs/moment/src/lib/moment/to-type.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/moment/to-type.js rename to client/javascript/externs/moment/src/lib/moment/to-type.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/moment/to.js b/client/javascript/externs/moment/src/lib/moment/to.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/moment/to.js rename to client/javascript/externs/moment/src/lib/moment/to.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/moment/valid.js b/client/javascript/externs/moment/src/lib/moment/valid.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/moment/valid.js rename to client/javascript/externs/moment/src/lib/moment/valid.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/parse/regex.js b/client/javascript/externs/moment/src/lib/parse/regex.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/parse/regex.js rename to client/javascript/externs/moment/src/lib/parse/regex.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/parse/token.js b/client/javascript/externs/moment/src/lib/parse/token.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/parse/token.js rename to client/javascript/externs/moment/src/lib/parse/token.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/units/aliases.js b/client/javascript/externs/moment/src/lib/units/aliases.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/units/aliases.js rename to client/javascript/externs/moment/src/lib/units/aliases.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/units/constants.js b/client/javascript/externs/moment/src/lib/units/constants.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/units/constants.js rename to client/javascript/externs/moment/src/lib/units/constants.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/units/day-of-month.js b/client/javascript/externs/moment/src/lib/units/day-of-month.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/units/day-of-month.js rename to client/javascript/externs/moment/src/lib/units/day-of-month.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/units/day-of-week.js b/client/javascript/externs/moment/src/lib/units/day-of-week.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/units/day-of-week.js rename to client/javascript/externs/moment/src/lib/units/day-of-week.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/units/day-of-year.js b/client/javascript/externs/moment/src/lib/units/day-of-year.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/units/day-of-year.js rename to client/javascript/externs/moment/src/lib/units/day-of-year.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/units/hour.js b/client/javascript/externs/moment/src/lib/units/hour.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/units/hour.js rename to client/javascript/externs/moment/src/lib/units/hour.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/units/millisecond.js b/client/javascript/externs/moment/src/lib/units/millisecond.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/units/millisecond.js rename to client/javascript/externs/moment/src/lib/units/millisecond.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/units/minute.js b/client/javascript/externs/moment/src/lib/units/minute.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/units/minute.js rename to client/javascript/externs/moment/src/lib/units/minute.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/units/month.js b/client/javascript/externs/moment/src/lib/units/month.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/units/month.js rename to client/javascript/externs/moment/src/lib/units/month.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/units/offset.js b/client/javascript/externs/moment/src/lib/units/offset.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/units/offset.js rename to client/javascript/externs/moment/src/lib/units/offset.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/units/quarter.js b/client/javascript/externs/moment/src/lib/units/quarter.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/units/quarter.js rename to client/javascript/externs/moment/src/lib/units/quarter.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/units/second.js b/client/javascript/externs/moment/src/lib/units/second.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/units/second.js rename to client/javascript/externs/moment/src/lib/units/second.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/units/timestamp.js b/client/javascript/externs/moment/src/lib/units/timestamp.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/units/timestamp.js rename to client/javascript/externs/moment/src/lib/units/timestamp.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/units/timezone.js b/client/javascript/externs/moment/src/lib/units/timezone.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/units/timezone.js rename to client/javascript/externs/moment/src/lib/units/timezone.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/units/units.js b/client/javascript/externs/moment/src/lib/units/units.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/units/units.js rename to client/javascript/externs/moment/src/lib/units/units.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/units/week-calendar-utils.js b/client/javascript/externs/moment/src/lib/units/week-calendar-utils.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/units/week-calendar-utils.js rename to client/javascript/externs/moment/src/lib/units/week-calendar-utils.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/units/week-year.js b/client/javascript/externs/moment/src/lib/units/week-year.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/units/week-year.js rename to client/javascript/externs/moment/src/lib/units/week-year.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/units/week.js b/client/javascript/externs/moment/src/lib/units/week.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/units/week.js rename to client/javascript/externs/moment/src/lib/units/week.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/units/year.js b/client/javascript/externs/moment/src/lib/units/year.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/units/year.js rename to client/javascript/externs/moment/src/lib/units/year.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/utils/abs-ceil.js b/client/javascript/externs/moment/src/lib/utils/abs-ceil.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/utils/abs-ceil.js rename to client/javascript/externs/moment/src/lib/utils/abs-ceil.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/utils/abs-floor.js b/client/javascript/externs/moment/src/lib/utils/abs-floor.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/utils/abs-floor.js rename to client/javascript/externs/moment/src/lib/utils/abs-floor.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/utils/compare-arrays.js b/client/javascript/externs/moment/src/lib/utils/compare-arrays.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/utils/compare-arrays.js rename to client/javascript/externs/moment/src/lib/utils/compare-arrays.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/utils/defaults.js b/client/javascript/externs/moment/src/lib/utils/defaults.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/utils/defaults.js rename to client/javascript/externs/moment/src/lib/utils/defaults.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/utils/deprecate.js b/client/javascript/externs/moment/src/lib/utils/deprecate.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/utils/deprecate.js rename to client/javascript/externs/moment/src/lib/utils/deprecate.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/utils/extend.js b/client/javascript/externs/moment/src/lib/utils/extend.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/utils/extend.js rename to client/javascript/externs/moment/src/lib/utils/extend.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/utils/has-own-prop.js b/client/javascript/externs/moment/src/lib/utils/has-own-prop.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/utils/has-own-prop.js rename to client/javascript/externs/moment/src/lib/utils/has-own-prop.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/utils/hooks.js b/client/javascript/externs/moment/src/lib/utils/hooks.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/utils/hooks.js rename to client/javascript/externs/moment/src/lib/utils/hooks.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/utils/is-array.js b/client/javascript/externs/moment/src/lib/utils/is-array.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/utils/is-array.js rename to client/javascript/externs/moment/src/lib/utils/is-array.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/utils/is-date.js b/client/javascript/externs/moment/src/lib/utils/is-date.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/utils/is-date.js rename to client/javascript/externs/moment/src/lib/utils/is-date.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/utils/is-function.js b/client/javascript/externs/moment/src/lib/utils/is-function.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/utils/is-function.js rename to client/javascript/externs/moment/src/lib/utils/is-function.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/utils/is-undefined.js b/client/javascript/externs/moment/src/lib/utils/is-undefined.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/utils/is-undefined.js rename to client/javascript/externs/moment/src/lib/utils/is-undefined.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/utils/map.js b/client/javascript/externs/moment/src/lib/utils/map.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/utils/map.js rename to client/javascript/externs/moment/src/lib/utils/map.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/utils/to-int.js b/client/javascript/externs/moment/src/lib/utils/to-int.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/utils/to-int.js rename to client/javascript/externs/moment/src/lib/utils/to-int.js diff --git a/src/vitis/client/javascript/externs/moment/src/lib/utils/zero-fill.js b/client/javascript/externs/moment/src/lib/utils/zero-fill.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/lib/utils/zero-fill.js rename to client/javascript/externs/moment/src/lib/utils/zero-fill.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/af.js b/client/javascript/externs/moment/src/locale/af.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/af.js rename to client/javascript/externs/moment/src/locale/af.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/ar-ma.js b/client/javascript/externs/moment/src/locale/ar-ma.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/ar-ma.js rename to client/javascript/externs/moment/src/locale/ar-ma.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/ar-sa.js b/client/javascript/externs/moment/src/locale/ar-sa.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/ar-sa.js rename to client/javascript/externs/moment/src/locale/ar-sa.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/ar-tn.js b/client/javascript/externs/moment/src/locale/ar-tn.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/ar-tn.js rename to client/javascript/externs/moment/src/locale/ar-tn.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/ar.js b/client/javascript/externs/moment/src/locale/ar.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/ar.js rename to client/javascript/externs/moment/src/locale/ar.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/az.js b/client/javascript/externs/moment/src/locale/az.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/az.js rename to client/javascript/externs/moment/src/locale/az.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/be.js b/client/javascript/externs/moment/src/locale/be.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/be.js rename to client/javascript/externs/moment/src/locale/be.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/bg.js b/client/javascript/externs/moment/src/locale/bg.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/bg.js rename to client/javascript/externs/moment/src/locale/bg.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/bn.js b/client/javascript/externs/moment/src/locale/bn.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/bn.js rename to client/javascript/externs/moment/src/locale/bn.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/bo.js b/client/javascript/externs/moment/src/locale/bo.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/bo.js rename to client/javascript/externs/moment/src/locale/bo.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/br.js b/client/javascript/externs/moment/src/locale/br.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/br.js rename to client/javascript/externs/moment/src/locale/br.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/bs.js b/client/javascript/externs/moment/src/locale/bs.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/bs.js rename to client/javascript/externs/moment/src/locale/bs.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/ca.js b/client/javascript/externs/moment/src/locale/ca.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/ca.js rename to client/javascript/externs/moment/src/locale/ca.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/cs.js b/client/javascript/externs/moment/src/locale/cs.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/cs.js rename to client/javascript/externs/moment/src/locale/cs.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/cv.js b/client/javascript/externs/moment/src/locale/cv.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/cv.js rename to client/javascript/externs/moment/src/locale/cv.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/cy.js b/client/javascript/externs/moment/src/locale/cy.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/cy.js rename to client/javascript/externs/moment/src/locale/cy.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/da.js b/client/javascript/externs/moment/src/locale/da.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/da.js rename to client/javascript/externs/moment/src/locale/da.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/de-at.js b/client/javascript/externs/moment/src/locale/de-at.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/de-at.js rename to client/javascript/externs/moment/src/locale/de-at.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/de.js b/client/javascript/externs/moment/src/locale/de.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/de.js rename to client/javascript/externs/moment/src/locale/de.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/dv.js b/client/javascript/externs/moment/src/locale/dv.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/dv.js rename to client/javascript/externs/moment/src/locale/dv.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/el.js b/client/javascript/externs/moment/src/locale/el.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/el.js rename to client/javascript/externs/moment/src/locale/el.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/en-au.js b/client/javascript/externs/moment/src/locale/en-au.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/en-au.js rename to client/javascript/externs/moment/src/locale/en-au.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/en-ca.js b/client/javascript/externs/moment/src/locale/en-ca.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/en-ca.js rename to client/javascript/externs/moment/src/locale/en-ca.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/en-gb.js b/client/javascript/externs/moment/src/locale/en-gb.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/en-gb.js rename to client/javascript/externs/moment/src/locale/en-gb.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/en-ie.js b/client/javascript/externs/moment/src/locale/en-ie.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/en-ie.js rename to client/javascript/externs/moment/src/locale/en-ie.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/en-nz.js b/client/javascript/externs/moment/src/locale/en-nz.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/en-nz.js rename to client/javascript/externs/moment/src/locale/en-nz.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/eo.js b/client/javascript/externs/moment/src/locale/eo.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/eo.js rename to client/javascript/externs/moment/src/locale/eo.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/es.js b/client/javascript/externs/moment/src/locale/es.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/es.js rename to client/javascript/externs/moment/src/locale/es.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/et.js b/client/javascript/externs/moment/src/locale/et.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/et.js rename to client/javascript/externs/moment/src/locale/et.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/eu.js b/client/javascript/externs/moment/src/locale/eu.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/eu.js rename to client/javascript/externs/moment/src/locale/eu.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/fa.js b/client/javascript/externs/moment/src/locale/fa.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/fa.js rename to client/javascript/externs/moment/src/locale/fa.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/fi.js b/client/javascript/externs/moment/src/locale/fi.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/fi.js rename to client/javascript/externs/moment/src/locale/fi.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/fo.js b/client/javascript/externs/moment/src/locale/fo.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/fo.js rename to client/javascript/externs/moment/src/locale/fo.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/fr-ca.js b/client/javascript/externs/moment/src/locale/fr-ca.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/fr-ca.js rename to client/javascript/externs/moment/src/locale/fr-ca.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/fr-ch.js b/client/javascript/externs/moment/src/locale/fr-ch.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/fr-ch.js rename to client/javascript/externs/moment/src/locale/fr-ch.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/fr.js b/client/javascript/externs/moment/src/locale/fr.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/fr.js rename to client/javascript/externs/moment/src/locale/fr.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/fy.js b/client/javascript/externs/moment/src/locale/fy.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/fy.js rename to client/javascript/externs/moment/src/locale/fy.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/gd.js b/client/javascript/externs/moment/src/locale/gd.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/gd.js rename to client/javascript/externs/moment/src/locale/gd.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/gl.js b/client/javascript/externs/moment/src/locale/gl.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/gl.js rename to client/javascript/externs/moment/src/locale/gl.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/he.js b/client/javascript/externs/moment/src/locale/he.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/he.js rename to client/javascript/externs/moment/src/locale/he.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/hi.js b/client/javascript/externs/moment/src/locale/hi.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/hi.js rename to client/javascript/externs/moment/src/locale/hi.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/hr.js b/client/javascript/externs/moment/src/locale/hr.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/hr.js rename to client/javascript/externs/moment/src/locale/hr.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/hu.js b/client/javascript/externs/moment/src/locale/hu.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/hu.js rename to client/javascript/externs/moment/src/locale/hu.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/hy-am.js b/client/javascript/externs/moment/src/locale/hy-am.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/hy-am.js rename to client/javascript/externs/moment/src/locale/hy-am.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/id.js b/client/javascript/externs/moment/src/locale/id.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/id.js rename to client/javascript/externs/moment/src/locale/id.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/is.js b/client/javascript/externs/moment/src/locale/is.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/is.js rename to client/javascript/externs/moment/src/locale/is.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/it.js b/client/javascript/externs/moment/src/locale/it.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/it.js rename to client/javascript/externs/moment/src/locale/it.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/ja.js b/client/javascript/externs/moment/src/locale/ja.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/ja.js rename to client/javascript/externs/moment/src/locale/ja.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/jv.js b/client/javascript/externs/moment/src/locale/jv.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/jv.js rename to client/javascript/externs/moment/src/locale/jv.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/ka.js b/client/javascript/externs/moment/src/locale/ka.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/ka.js rename to client/javascript/externs/moment/src/locale/ka.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/kk.js b/client/javascript/externs/moment/src/locale/kk.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/kk.js rename to client/javascript/externs/moment/src/locale/kk.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/km.js b/client/javascript/externs/moment/src/locale/km.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/km.js rename to client/javascript/externs/moment/src/locale/km.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/ko.js b/client/javascript/externs/moment/src/locale/ko.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/ko.js rename to client/javascript/externs/moment/src/locale/ko.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/lb.js b/client/javascript/externs/moment/src/locale/lb.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/lb.js rename to client/javascript/externs/moment/src/locale/lb.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/lo.js b/client/javascript/externs/moment/src/locale/lo.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/lo.js rename to client/javascript/externs/moment/src/locale/lo.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/lt.js b/client/javascript/externs/moment/src/locale/lt.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/lt.js rename to client/javascript/externs/moment/src/locale/lt.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/lv.js b/client/javascript/externs/moment/src/locale/lv.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/lv.js rename to client/javascript/externs/moment/src/locale/lv.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/me.js b/client/javascript/externs/moment/src/locale/me.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/me.js rename to client/javascript/externs/moment/src/locale/me.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/mk.js b/client/javascript/externs/moment/src/locale/mk.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/mk.js rename to client/javascript/externs/moment/src/locale/mk.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/ml.js b/client/javascript/externs/moment/src/locale/ml.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/ml.js rename to client/javascript/externs/moment/src/locale/ml.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/mr.js b/client/javascript/externs/moment/src/locale/mr.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/mr.js rename to client/javascript/externs/moment/src/locale/mr.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/ms-my.js b/client/javascript/externs/moment/src/locale/ms-my.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/ms-my.js rename to client/javascript/externs/moment/src/locale/ms-my.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/ms.js b/client/javascript/externs/moment/src/locale/ms.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/ms.js rename to client/javascript/externs/moment/src/locale/ms.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/my.js b/client/javascript/externs/moment/src/locale/my.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/my.js rename to client/javascript/externs/moment/src/locale/my.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/nb.js b/client/javascript/externs/moment/src/locale/nb.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/nb.js rename to client/javascript/externs/moment/src/locale/nb.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/ne.js b/client/javascript/externs/moment/src/locale/ne.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/ne.js rename to client/javascript/externs/moment/src/locale/ne.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/nl.js b/client/javascript/externs/moment/src/locale/nl.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/nl.js rename to client/javascript/externs/moment/src/locale/nl.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/nn.js b/client/javascript/externs/moment/src/locale/nn.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/nn.js rename to client/javascript/externs/moment/src/locale/nn.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/pl.js b/client/javascript/externs/moment/src/locale/pl.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/pl.js rename to client/javascript/externs/moment/src/locale/pl.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/pt-br.js b/client/javascript/externs/moment/src/locale/pt-br.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/pt-br.js rename to client/javascript/externs/moment/src/locale/pt-br.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/pt.js b/client/javascript/externs/moment/src/locale/pt.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/pt.js rename to client/javascript/externs/moment/src/locale/pt.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/ro.js b/client/javascript/externs/moment/src/locale/ro.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/ro.js rename to client/javascript/externs/moment/src/locale/ro.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/ru.js b/client/javascript/externs/moment/src/locale/ru.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/ru.js rename to client/javascript/externs/moment/src/locale/ru.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/se.js b/client/javascript/externs/moment/src/locale/se.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/se.js rename to client/javascript/externs/moment/src/locale/se.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/si.js b/client/javascript/externs/moment/src/locale/si.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/si.js rename to client/javascript/externs/moment/src/locale/si.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/sk.js b/client/javascript/externs/moment/src/locale/sk.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/sk.js rename to client/javascript/externs/moment/src/locale/sk.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/sl.js b/client/javascript/externs/moment/src/locale/sl.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/sl.js rename to client/javascript/externs/moment/src/locale/sl.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/sq.js b/client/javascript/externs/moment/src/locale/sq.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/sq.js rename to client/javascript/externs/moment/src/locale/sq.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/sr-cyrl.js b/client/javascript/externs/moment/src/locale/sr-cyrl.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/sr-cyrl.js rename to client/javascript/externs/moment/src/locale/sr-cyrl.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/sr.js b/client/javascript/externs/moment/src/locale/sr.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/sr.js rename to client/javascript/externs/moment/src/locale/sr.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/sv.js b/client/javascript/externs/moment/src/locale/sv.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/sv.js rename to client/javascript/externs/moment/src/locale/sv.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/sw.js b/client/javascript/externs/moment/src/locale/sw.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/sw.js rename to client/javascript/externs/moment/src/locale/sw.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/ta.js b/client/javascript/externs/moment/src/locale/ta.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/ta.js rename to client/javascript/externs/moment/src/locale/ta.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/te.js b/client/javascript/externs/moment/src/locale/te.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/te.js rename to client/javascript/externs/moment/src/locale/te.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/th.js b/client/javascript/externs/moment/src/locale/th.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/th.js rename to client/javascript/externs/moment/src/locale/th.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/tl-ph.js b/client/javascript/externs/moment/src/locale/tl-ph.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/tl-ph.js rename to client/javascript/externs/moment/src/locale/tl-ph.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/tlh.js b/client/javascript/externs/moment/src/locale/tlh.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/tlh.js rename to client/javascript/externs/moment/src/locale/tlh.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/tr.js b/client/javascript/externs/moment/src/locale/tr.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/tr.js rename to client/javascript/externs/moment/src/locale/tr.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/tzl.js b/client/javascript/externs/moment/src/locale/tzl.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/tzl.js rename to client/javascript/externs/moment/src/locale/tzl.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/tzm-latn.js b/client/javascript/externs/moment/src/locale/tzm-latn.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/tzm-latn.js rename to client/javascript/externs/moment/src/locale/tzm-latn.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/tzm.js b/client/javascript/externs/moment/src/locale/tzm.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/tzm.js rename to client/javascript/externs/moment/src/locale/tzm.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/uk.js b/client/javascript/externs/moment/src/locale/uk.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/uk.js rename to client/javascript/externs/moment/src/locale/uk.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/uz.js b/client/javascript/externs/moment/src/locale/uz.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/uz.js rename to client/javascript/externs/moment/src/locale/uz.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/vi.js b/client/javascript/externs/moment/src/locale/vi.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/vi.js rename to client/javascript/externs/moment/src/locale/vi.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/zh-cn.js b/client/javascript/externs/moment/src/locale/zh-cn.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/zh-cn.js rename to client/javascript/externs/moment/src/locale/zh-cn.js diff --git a/src/vitis/client/javascript/externs/moment/src/locale/zh-tw.js b/client/javascript/externs/moment/src/locale/zh-tw.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/locale/zh-tw.js rename to client/javascript/externs/moment/src/locale/zh-tw.js diff --git a/src/vitis/client/javascript/externs/moment/src/moment.js b/client/javascript/externs/moment/src/moment.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/src/moment.js rename to client/javascript/externs/moment/src/moment.js diff --git a/src/vitis/client/javascript/externs/moment/templates/amd-named.js b/client/javascript/externs/moment/templates/amd-named.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/templates/amd-named.js rename to client/javascript/externs/moment/templates/amd-named.js diff --git a/src/vitis/client/javascript/externs/moment/templates/amd.js b/client/javascript/externs/moment/templates/amd.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/templates/amd.js rename to client/javascript/externs/moment/templates/amd.js diff --git a/src/vitis/client/javascript/externs/moment/templates/default.js b/client/javascript/externs/moment/templates/default.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/templates/default.js rename to client/javascript/externs/moment/templates/default.js diff --git a/src/vitis/client/javascript/externs/moment/templates/globals.js b/client/javascript/externs/moment/templates/globals.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/templates/globals.js rename to client/javascript/externs/moment/templates/globals.js diff --git a/src/vitis/client/javascript/externs/moment/templates/locale-header.js b/client/javascript/externs/moment/templates/locale-header.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/templates/locale-header.js rename to client/javascript/externs/moment/templates/locale-header.js diff --git a/src/vitis/client/javascript/externs/moment/templates/test-header.js b/client/javascript/externs/moment/templates/test-header.js similarity index 100% rename from src/vitis/client/javascript/externs/moment/templates/test-header.js rename to client/javascript/externs/moment/templates/test-header.js diff --git a/src/vitis/client/javascript/externs/openLayers/licenses/APACHE-2.0.txt b/client/javascript/externs/openLayers/licenses/APACHE-2.0.txt similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/licenses/APACHE-2.0.txt rename to client/javascript/externs/openLayers/licenses/APACHE-2.0.txt diff --git a/src/vitis/client/javascript/externs/openLayers/licenses/BSD-LICENSE.txt b/client/javascript/externs/openLayers/licenses/BSD-LICENSE.txt similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/licenses/BSD-LICENSE.txt rename to client/javascript/externs/openLayers/licenses/BSD-LICENSE.txt diff --git a/src/vitis/client/javascript/externs/openLayers/licenses/MIT-LICENSE.txt b/client/javascript/externs/openLayers/licenses/MIT-LICENSE.txt similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/licenses/MIT-LICENSE.txt rename to client/javascript/externs/openLayers/licenses/MIT-LICENSE.txt diff --git a/src/vitis/client/javascript/externs/openLayers/ol.ext/pbf.js b/client/javascript/externs/openLayers/ol.ext/pbf.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol.ext/pbf.js rename to client/javascript/externs/openLayers/ol.ext/pbf.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol.ext/pixelworks.js b/client/javascript/externs/openLayers/ol.ext/pixelworks.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol.ext/pixelworks.js rename to client/javascript/externs/openLayers/ol.ext/pixelworks.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol.ext/rbush.js b/client/javascript/externs/openLayers/ol.ext/rbush.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol.ext/rbush.js rename to client/javascript/externs/openLayers/ol.ext/rbush.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol.ext/vectortile.js b/client/javascript/externs/openLayers/ol.ext/vectortile.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol.ext/vectortile.js rename to client/javascript/externs/openLayers/ol.ext/vectortile.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/array.js b/client/javascript/externs/openLayers/ol/ol/array.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/array.js rename to client/javascript/externs/openLayers/ol/ol/array.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/assertionerror.js b/client/javascript/externs/openLayers/ol/ol/assertionerror.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/assertionerror.js rename to client/javascript/externs/openLayers/ol/ol/assertionerror.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/asserts.js b/client/javascript/externs/openLayers/ol/ol/asserts.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/asserts.js rename to client/javascript/externs/openLayers/ol/ol/asserts.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/attribution.js b/client/javascript/externs/openLayers/ol/ol/attribution.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/attribution.js rename to client/javascript/externs/openLayers/ol/ol/attribution.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/canvasmap.js b/client/javascript/externs/openLayers/ol/ol/canvasmap.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/canvasmap.js rename to client/javascript/externs/openLayers/ol/ol/canvasmap.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/centerconstraint.js b/client/javascript/externs/openLayers/ol/ol/centerconstraint.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/centerconstraint.js rename to client/javascript/externs/openLayers/ol/ol/centerconstraint.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/collection.js b/client/javascript/externs/openLayers/ol/ol/collection.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/collection.js rename to client/javascript/externs/openLayers/ol/ol/collection.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/collectioneventtype.js b/client/javascript/externs/openLayers/ol/ol/collectioneventtype.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/collectioneventtype.js rename to client/javascript/externs/openLayers/ol/ol/collectioneventtype.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/color.js b/client/javascript/externs/openLayers/ol/ol/color.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/color.js rename to client/javascript/externs/openLayers/ol/ol/color.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/color.jsdoc b/client/javascript/externs/openLayers/ol/ol/color.jsdoc similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/color.jsdoc rename to client/javascript/externs/openLayers/ol/ol/color.jsdoc diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/colorlike.js b/client/javascript/externs/openLayers/ol/ol/colorlike.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/colorlike.js rename to client/javascript/externs/openLayers/ol/ol/colorlike.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/colorlike.jsdoc b/client/javascript/externs/openLayers/ol/ol/colorlike.jsdoc similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/colorlike.jsdoc rename to client/javascript/externs/openLayers/ol/ol/colorlike.jsdoc diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/control.js b/client/javascript/externs/openLayers/ol/ol/control.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/control.js rename to client/javascript/externs/openLayers/ol/ol/control.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/control/attribution.js b/client/javascript/externs/openLayers/ol/ol/control/attribution.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/control/attribution.js rename to client/javascript/externs/openLayers/ol/ol/control/attribution.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/control/control.js b/client/javascript/externs/openLayers/ol/ol/control/control.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/control/control.js rename to client/javascript/externs/openLayers/ol/ol/control/control.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/control/fullscreen.js b/client/javascript/externs/openLayers/ol/ol/control/fullscreen.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/control/fullscreen.js rename to client/javascript/externs/openLayers/ol/ol/control/fullscreen.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/control/index.jsdoc b/client/javascript/externs/openLayers/ol/ol/control/index.jsdoc similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/control/index.jsdoc rename to client/javascript/externs/openLayers/ol/ol/control/index.jsdoc diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/control/mouseposition.js b/client/javascript/externs/openLayers/ol/ol/control/mouseposition.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/control/mouseposition.js rename to client/javascript/externs/openLayers/ol/ol/control/mouseposition.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/control/overviewmap.js b/client/javascript/externs/openLayers/ol/ol/control/overviewmap.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/control/overviewmap.js rename to client/javascript/externs/openLayers/ol/ol/control/overviewmap.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/control/rotate.js b/client/javascript/externs/openLayers/ol/ol/control/rotate.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/control/rotate.js rename to client/javascript/externs/openLayers/ol/ol/control/rotate.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/control/scaleline.js b/client/javascript/externs/openLayers/ol/ol/control/scaleline.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/control/scaleline.js rename to client/javascript/externs/openLayers/ol/ol/control/scaleline.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/control/scalelineunits.js b/client/javascript/externs/openLayers/ol/ol/control/scalelineunits.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/control/scalelineunits.js rename to client/javascript/externs/openLayers/ol/ol/control/scalelineunits.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/control/zoom.js b/client/javascript/externs/openLayers/ol/ol/control/zoom.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/control/zoom.js rename to client/javascript/externs/openLayers/ol/ol/control/zoom.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/control/zoomslider.js b/client/javascript/externs/openLayers/ol/ol/control/zoomslider.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/control/zoomslider.js rename to client/javascript/externs/openLayers/ol/ol/control/zoomslider.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/control/zoomtoextent.js b/client/javascript/externs/openLayers/ol/ol/control/zoomtoextent.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/control/zoomtoextent.js rename to client/javascript/externs/openLayers/ol/ol/control/zoomtoextent.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/coordinate.js b/client/javascript/externs/openLayers/ol/ol/coordinate.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/coordinate.js rename to client/javascript/externs/openLayers/ol/ol/coordinate.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/coordinate.jsdoc b/client/javascript/externs/openLayers/ol/ol/coordinate.jsdoc similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/coordinate.jsdoc rename to client/javascript/externs/openLayers/ol/ol/coordinate.jsdoc diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/css.js b/client/javascript/externs/openLayers/ol/ol/css.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/css.js rename to client/javascript/externs/openLayers/ol/ol/css.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/deviceorientation.js b/client/javascript/externs/openLayers/ol/ol/deviceorientation.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/deviceorientation.js rename to client/javascript/externs/openLayers/ol/ol/deviceorientation.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/disposable.js b/client/javascript/externs/openLayers/ol/ol/disposable.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/disposable.js rename to client/javascript/externs/openLayers/ol/ol/disposable.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/dom.js b/client/javascript/externs/openLayers/ol/ol/dom.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/dom.js rename to client/javascript/externs/openLayers/ol/ol/dom.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/easing.js b/client/javascript/externs/openLayers/ol/ol/easing.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/easing.js rename to client/javascript/externs/openLayers/ol/ol/easing.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/easing.jsdoc b/client/javascript/externs/openLayers/ol/ol/easing.jsdoc similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/easing.jsdoc rename to client/javascript/externs/openLayers/ol/ol/easing.jsdoc diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/events.js b/client/javascript/externs/openLayers/ol/ol/events.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/events.js rename to client/javascript/externs/openLayers/ol/ol/events.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/events/condition.js b/client/javascript/externs/openLayers/ol/ol/events/condition.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/events/condition.js rename to client/javascript/externs/openLayers/ol/ol/events/condition.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/events/condition.jsdoc b/client/javascript/externs/openLayers/ol/ol/events/condition.jsdoc similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/events/condition.jsdoc rename to client/javascript/externs/openLayers/ol/ol/events/condition.jsdoc diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/events/event.js b/client/javascript/externs/openLayers/ol/ol/events/event.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/events/event.js rename to client/javascript/externs/openLayers/ol/ol/events/event.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/events/eventtarget.js b/client/javascript/externs/openLayers/ol/ol/events/eventtarget.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/events/eventtarget.js rename to client/javascript/externs/openLayers/ol/ol/events/eventtarget.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/events/eventtype.js b/client/javascript/externs/openLayers/ol/ol/events/eventtype.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/events/eventtype.js rename to client/javascript/externs/openLayers/ol/ol/events/eventtype.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/events/keycode.js b/client/javascript/externs/openLayers/ol/ol/events/keycode.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/events/keycode.js rename to client/javascript/externs/openLayers/ol/ol/events/keycode.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/extent.js b/client/javascript/externs/openLayers/ol/ol/extent.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/extent.js rename to client/javascript/externs/openLayers/ol/ol/extent.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/extent.jsdoc b/client/javascript/externs/openLayers/ol/ol/extent.jsdoc similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/extent.jsdoc rename to client/javascript/externs/openLayers/ol/ol/extent.jsdoc diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/extent/corner.js b/client/javascript/externs/openLayers/ol/ol/extent/corner.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/extent/corner.js rename to client/javascript/externs/openLayers/ol/ol/extent/corner.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/extent/relationship.js b/client/javascript/externs/openLayers/ol/ol/extent/relationship.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/extent/relationship.js rename to client/javascript/externs/openLayers/ol/ol/extent/relationship.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/feature.js b/client/javascript/externs/openLayers/ol/ol/feature.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/feature.js rename to client/javascript/externs/openLayers/ol/ol/feature.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/featureloader.js b/client/javascript/externs/openLayers/ol/ol/featureloader.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/featureloader.js rename to client/javascript/externs/openLayers/ol/ol/featureloader.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/featureloader.jsdoc b/client/javascript/externs/openLayers/ol/ol/featureloader.jsdoc similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/featureloader.jsdoc rename to client/javascript/externs/openLayers/ol/ol/featureloader.jsdoc diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/format/esrijson.js b/client/javascript/externs/openLayers/ol/ol/format/esrijson.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/format/esrijson.js rename to client/javascript/externs/openLayers/ol/ol/format/esrijson.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/format/feature.js b/client/javascript/externs/openLayers/ol/ol/format/feature.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/format/feature.js rename to client/javascript/externs/openLayers/ol/ol/format/feature.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter.js b/client/javascript/externs/openLayers/ol/ol/format/filter.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter.js rename to client/javascript/externs/openLayers/ol/ol/format/filter.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/and.js b/client/javascript/externs/openLayers/ol/ol/format/filter/and.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/and.js rename to client/javascript/externs/openLayers/ol/ol/format/filter/and.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/bbox.js b/client/javascript/externs/openLayers/ol/ol/format/filter/bbox.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/bbox.js rename to client/javascript/externs/openLayers/ol/ol/format/filter/bbox.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/comparison.js b/client/javascript/externs/openLayers/ol/ol/format/filter/comparison.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/comparison.js rename to client/javascript/externs/openLayers/ol/ol/format/filter/comparison.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/comparisonbinary.js b/client/javascript/externs/openLayers/ol/ol/format/filter/comparisonbinary.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/comparisonbinary.js rename to client/javascript/externs/openLayers/ol/ol/format/filter/comparisonbinary.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/contains.js b/client/javascript/externs/openLayers/ol/ol/format/filter/contains.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/contains.js rename to client/javascript/externs/openLayers/ol/ol/format/filter/contains.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/during.js b/client/javascript/externs/openLayers/ol/ol/format/filter/during.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/during.js rename to client/javascript/externs/openLayers/ol/ol/format/filter/during.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/equalto.js b/client/javascript/externs/openLayers/ol/ol/format/filter/equalto.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/equalto.js rename to client/javascript/externs/openLayers/ol/ol/format/filter/equalto.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/filter.js b/client/javascript/externs/openLayers/ol/ol/format/filter/filter.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/filter.js rename to client/javascript/externs/openLayers/ol/ol/format/filter/filter.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/greaterthan.js b/client/javascript/externs/openLayers/ol/ol/format/filter/greaterthan.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/greaterthan.js rename to client/javascript/externs/openLayers/ol/ol/format/filter/greaterthan.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/greaterthanorequalto.js b/client/javascript/externs/openLayers/ol/ol/format/filter/greaterthanorequalto.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/greaterthanorequalto.js rename to client/javascript/externs/openLayers/ol/ol/format/filter/greaterthanorequalto.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/index.jsdoc b/client/javascript/externs/openLayers/ol/ol/format/filter/index.jsdoc similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/index.jsdoc rename to client/javascript/externs/openLayers/ol/ol/format/filter/index.jsdoc diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/intersects.js b/client/javascript/externs/openLayers/ol/ol/format/filter/intersects.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/intersects.js rename to client/javascript/externs/openLayers/ol/ol/format/filter/intersects.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/isbetween.js b/client/javascript/externs/openLayers/ol/ol/format/filter/isbetween.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/isbetween.js rename to client/javascript/externs/openLayers/ol/ol/format/filter/isbetween.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/islike.js b/client/javascript/externs/openLayers/ol/ol/format/filter/islike.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/islike.js rename to client/javascript/externs/openLayers/ol/ol/format/filter/islike.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/isnull.js b/client/javascript/externs/openLayers/ol/ol/format/filter/isnull.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/isnull.js rename to client/javascript/externs/openLayers/ol/ol/format/filter/isnull.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/lessthan.js b/client/javascript/externs/openLayers/ol/ol/format/filter/lessthan.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/lessthan.js rename to client/javascript/externs/openLayers/ol/ol/format/filter/lessthan.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/lessthanorequalto.js b/client/javascript/externs/openLayers/ol/ol/format/filter/lessthanorequalto.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/lessthanorequalto.js rename to client/javascript/externs/openLayers/ol/ol/format/filter/lessthanorequalto.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/logicalnary.js b/client/javascript/externs/openLayers/ol/ol/format/filter/logicalnary.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/logicalnary.js rename to client/javascript/externs/openLayers/ol/ol/format/filter/logicalnary.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/not.js b/client/javascript/externs/openLayers/ol/ol/format/filter/not.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/not.js rename to client/javascript/externs/openLayers/ol/ol/format/filter/not.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/notequalto.js b/client/javascript/externs/openLayers/ol/ol/format/filter/notequalto.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/notequalto.js rename to client/javascript/externs/openLayers/ol/ol/format/filter/notequalto.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/or.js b/client/javascript/externs/openLayers/ol/ol/format/filter/or.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/or.js rename to client/javascript/externs/openLayers/ol/ol/format/filter/or.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/spatial.js b/client/javascript/externs/openLayers/ol/ol/format/filter/spatial.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/spatial.js rename to client/javascript/externs/openLayers/ol/ol/format/filter/spatial.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/within.js b/client/javascript/externs/openLayers/ol/ol/format/filter/within.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/format/filter/within.js rename to client/javascript/externs/openLayers/ol/ol/format/filter/within.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/format/formattype.js b/client/javascript/externs/openLayers/ol/ol/format/formattype.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/format/formattype.js rename to client/javascript/externs/openLayers/ol/ol/format/formattype.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/format/geojson.js b/client/javascript/externs/openLayers/ol/ol/format/geojson.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/format/geojson.js rename to client/javascript/externs/openLayers/ol/ol/format/geojson.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/format/gml.js b/client/javascript/externs/openLayers/ol/ol/format/gml.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/format/gml.js rename to client/javascript/externs/openLayers/ol/ol/format/gml.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/format/gml2.js b/client/javascript/externs/openLayers/ol/ol/format/gml2.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/format/gml2.js rename to client/javascript/externs/openLayers/ol/ol/format/gml2.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/format/gml3.js b/client/javascript/externs/openLayers/ol/ol/format/gml3.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/format/gml3.js rename to client/javascript/externs/openLayers/ol/ol/format/gml3.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/format/gmlbase.js b/client/javascript/externs/openLayers/ol/ol/format/gmlbase.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/format/gmlbase.js rename to client/javascript/externs/openLayers/ol/ol/format/gmlbase.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/format/gpx.js b/client/javascript/externs/openLayers/ol/ol/format/gpx.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/format/gpx.js rename to client/javascript/externs/openLayers/ol/ol/format/gpx.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/format/igc.js b/client/javascript/externs/openLayers/ol/ol/format/igc.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/format/igc.js rename to client/javascript/externs/openLayers/ol/ol/format/igc.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/format/igcz.js b/client/javascript/externs/openLayers/ol/ol/format/igcz.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/format/igcz.js rename to client/javascript/externs/openLayers/ol/ol/format/igcz.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/format/index.jsdoc b/client/javascript/externs/openLayers/ol/ol/format/index.jsdoc similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/format/index.jsdoc rename to client/javascript/externs/openLayers/ol/ol/format/index.jsdoc diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/format/jsonfeature.js b/client/javascript/externs/openLayers/ol/ol/format/jsonfeature.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/format/jsonfeature.js rename to client/javascript/externs/openLayers/ol/ol/format/jsonfeature.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/format/kml.js b/client/javascript/externs/openLayers/ol/ol/format/kml.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/format/kml.js rename to client/javascript/externs/openLayers/ol/ol/format/kml.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/format/mvt.js b/client/javascript/externs/openLayers/ol/ol/format/mvt.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/format/mvt.js rename to client/javascript/externs/openLayers/ol/ol/format/mvt.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/format/osmxml.js b/client/javascript/externs/openLayers/ol/ol/format/osmxml.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/format/osmxml.js rename to client/javascript/externs/openLayers/ol/ol/format/osmxml.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/format/ows.js b/client/javascript/externs/openLayers/ol/ol/format/ows.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/format/ows.js rename to client/javascript/externs/openLayers/ol/ol/format/ows.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/format/polyline.js b/client/javascript/externs/openLayers/ol/ol/format/polyline.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/format/polyline.js rename to client/javascript/externs/openLayers/ol/ol/format/polyline.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/format/readme.md b/client/javascript/externs/openLayers/ol/ol/format/readme.md similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/format/readme.md rename to client/javascript/externs/openLayers/ol/ol/format/readme.md diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/format/textfeature.js b/client/javascript/externs/openLayers/ol/ol/format/textfeature.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/format/textfeature.js rename to client/javascript/externs/openLayers/ol/ol/format/textfeature.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/format/topojson.js b/client/javascript/externs/openLayers/ol/ol/format/topojson.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/format/topojson.js rename to client/javascript/externs/openLayers/ol/ol/format/topojson.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/format/wfs.js b/client/javascript/externs/openLayers/ol/ol/format/wfs.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/format/wfs.js rename to client/javascript/externs/openLayers/ol/ol/format/wfs.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/format/wkt.js b/client/javascript/externs/openLayers/ol/ol/format/wkt.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/format/wkt.js rename to client/javascript/externs/openLayers/ol/ol/format/wkt.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/format/wmscapabilities.js b/client/javascript/externs/openLayers/ol/ol/format/wmscapabilities.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/format/wmscapabilities.js rename to client/javascript/externs/openLayers/ol/ol/format/wmscapabilities.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/format/wmsgetfeatureinfo.js b/client/javascript/externs/openLayers/ol/ol/format/wmsgetfeatureinfo.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/format/wmsgetfeatureinfo.js rename to client/javascript/externs/openLayers/ol/ol/format/wmsgetfeatureinfo.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/format/wmtscapabilities.js b/client/javascript/externs/openLayers/ol/ol/format/wmtscapabilities.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/format/wmtscapabilities.js rename to client/javascript/externs/openLayers/ol/ol/format/wmtscapabilities.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/format/xlink.js b/client/javascript/externs/openLayers/ol/ol/format/xlink.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/format/xlink.js rename to client/javascript/externs/openLayers/ol/ol/format/xlink.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/format/xml.js b/client/javascript/externs/openLayers/ol/ol/format/xml.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/format/xml.js rename to client/javascript/externs/openLayers/ol/ol/format/xml.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/format/xmlfeature.js b/client/javascript/externs/openLayers/ol/ol/format/xmlfeature.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/format/xmlfeature.js rename to client/javascript/externs/openLayers/ol/ol/format/xmlfeature.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/format/xsd.js b/client/javascript/externs/openLayers/ol/ol/format/xsd.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/format/xsd.js rename to client/javascript/externs/openLayers/ol/ol/format/xsd.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/functions.js b/client/javascript/externs/openLayers/ol/ol/functions.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/functions.js rename to client/javascript/externs/openLayers/ol/ol/functions.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/geolocation.js b/client/javascript/externs/openLayers/ol/ol/geolocation.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/geolocation.js rename to client/javascript/externs/openLayers/ol/ol/geolocation.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/geolocationproperty.js b/client/javascript/externs/openLayers/ol/ol/geolocationproperty.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/geolocationproperty.js rename to client/javascript/externs/openLayers/ol/ol/geolocationproperty.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/circle.js b/client/javascript/externs/openLayers/ol/ol/geom/circle.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/geom/circle.js rename to client/javascript/externs/openLayers/ol/ol/geom/circle.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/area.js b/client/javascript/externs/openLayers/ol/ol/geom/flat/area.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/area.js rename to client/javascript/externs/openLayers/ol/ol/geom/flat/area.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/center.js b/client/javascript/externs/openLayers/ol/ol/geom/flat/center.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/center.js rename to client/javascript/externs/openLayers/ol/ol/geom/flat/center.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/closest.js b/client/javascript/externs/openLayers/ol/ol/geom/flat/closest.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/closest.js rename to client/javascript/externs/openLayers/ol/ol/geom/flat/closest.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/contains.js b/client/javascript/externs/openLayers/ol/ol/geom/flat/contains.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/contains.js rename to client/javascript/externs/openLayers/ol/ol/geom/flat/contains.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/deflate.js b/client/javascript/externs/openLayers/ol/ol/geom/flat/deflate.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/deflate.js rename to client/javascript/externs/openLayers/ol/ol/geom/flat/deflate.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/flip.js b/client/javascript/externs/openLayers/ol/ol/geom/flat/flip.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/flip.js rename to client/javascript/externs/openLayers/ol/ol/geom/flat/flip.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/geodesic.js b/client/javascript/externs/openLayers/ol/ol/geom/flat/geodesic.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/geodesic.js rename to client/javascript/externs/openLayers/ol/ol/geom/flat/geodesic.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/inflate.js b/client/javascript/externs/openLayers/ol/ol/geom/flat/inflate.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/inflate.js rename to client/javascript/externs/openLayers/ol/ol/geom/flat/inflate.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/interiorpoint.js b/client/javascript/externs/openLayers/ol/ol/geom/flat/interiorpoint.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/interiorpoint.js rename to client/javascript/externs/openLayers/ol/ol/geom/flat/interiorpoint.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/interpolate.js b/client/javascript/externs/openLayers/ol/ol/geom/flat/interpolate.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/interpolate.js rename to client/javascript/externs/openLayers/ol/ol/geom/flat/interpolate.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/intersectsextent.js b/client/javascript/externs/openLayers/ol/ol/geom/flat/intersectsextent.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/intersectsextent.js rename to client/javascript/externs/openLayers/ol/ol/geom/flat/intersectsextent.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/length.js b/client/javascript/externs/openLayers/ol/ol/geom/flat/length.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/length.js rename to client/javascript/externs/openLayers/ol/ol/geom/flat/length.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/orient.js b/client/javascript/externs/openLayers/ol/ol/geom/flat/orient.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/orient.js rename to client/javascript/externs/openLayers/ol/ol/geom/flat/orient.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/reverse.js b/client/javascript/externs/openLayers/ol/ol/geom/flat/reverse.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/reverse.js rename to client/javascript/externs/openLayers/ol/ol/geom/flat/reverse.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/segments.js b/client/javascript/externs/openLayers/ol/ol/geom/flat/segments.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/segments.js rename to client/javascript/externs/openLayers/ol/ol/geom/flat/segments.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/simplify.js b/client/javascript/externs/openLayers/ol/ol/geom/flat/simplify.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/simplify.js rename to client/javascript/externs/openLayers/ol/ol/geom/flat/simplify.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/straightchunk.js b/client/javascript/externs/openLayers/ol/ol/geom/flat/straightchunk.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/straightchunk.js rename to client/javascript/externs/openLayers/ol/ol/geom/flat/straightchunk.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/textpath.js b/client/javascript/externs/openLayers/ol/ol/geom/flat/textpath.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/textpath.js rename to client/javascript/externs/openLayers/ol/ol/geom/flat/textpath.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/topology.js b/client/javascript/externs/openLayers/ol/ol/geom/flat/topology.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/topology.js rename to client/javascript/externs/openLayers/ol/ol/geom/flat/topology.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/transform.js b/client/javascript/externs/openLayers/ol/ol/geom/flat/transform.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/geom/flat/transform.js rename to client/javascript/externs/openLayers/ol/ol/geom/flat/transform.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/geom.jsdoc b/client/javascript/externs/openLayers/ol/ol/geom/geom.jsdoc similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/geom/geom.jsdoc rename to client/javascript/externs/openLayers/ol/ol/geom/geom.jsdoc diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/geometry.js b/client/javascript/externs/openLayers/ol/ol/geom/geometry.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/geom/geometry.js rename to client/javascript/externs/openLayers/ol/ol/geom/geometry.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/geometrycollection.js b/client/javascript/externs/openLayers/ol/ol/geom/geometrycollection.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/geom/geometrycollection.js rename to client/javascript/externs/openLayers/ol/ol/geom/geometrycollection.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/geometrylayout.js b/client/javascript/externs/openLayers/ol/ol/geom/geometrylayout.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/geom/geometrylayout.js rename to client/javascript/externs/openLayers/ol/ol/geom/geometrylayout.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/geometrytype.js b/client/javascript/externs/openLayers/ol/ol/geom/geometrytype.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/geom/geometrytype.js rename to client/javascript/externs/openLayers/ol/ol/geom/geometrytype.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/linearring.js b/client/javascript/externs/openLayers/ol/ol/geom/linearring.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/geom/linearring.js rename to client/javascript/externs/openLayers/ol/ol/geom/linearring.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/linestring.js b/client/javascript/externs/openLayers/ol/ol/geom/linestring.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/geom/linestring.js rename to client/javascript/externs/openLayers/ol/ol/geom/linestring.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/multilinestring.js b/client/javascript/externs/openLayers/ol/ol/geom/multilinestring.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/geom/multilinestring.js rename to client/javascript/externs/openLayers/ol/ol/geom/multilinestring.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/multipoint.js b/client/javascript/externs/openLayers/ol/ol/geom/multipoint.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/geom/multipoint.js rename to client/javascript/externs/openLayers/ol/ol/geom/multipoint.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/multipolygon.js b/client/javascript/externs/openLayers/ol/ol/geom/multipolygon.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/geom/multipolygon.js rename to client/javascript/externs/openLayers/ol/ol/geom/multipolygon.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/point.js b/client/javascript/externs/openLayers/ol/ol/geom/point.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/geom/point.js rename to client/javascript/externs/openLayers/ol/ol/geom/point.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/polygon.js b/client/javascript/externs/openLayers/ol/ol/geom/polygon.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/geom/polygon.js rename to client/javascript/externs/openLayers/ol/ol/geom/polygon.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/geom/simplegeometry.js b/client/javascript/externs/openLayers/ol/ol/geom/simplegeometry.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/geom/simplegeometry.js rename to client/javascript/externs/openLayers/ol/ol/geom/simplegeometry.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/graticule.js b/client/javascript/externs/openLayers/ol/ol/graticule.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/graticule.js rename to client/javascript/externs/openLayers/ol/ol/graticule.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/has.js b/client/javascript/externs/openLayers/ol/ol/has.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/has.js rename to client/javascript/externs/openLayers/ol/ol/has.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/has.jsdoc b/client/javascript/externs/openLayers/ol/ol/has.jsdoc similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/has.jsdoc rename to client/javascript/externs/openLayers/ol/ol/has.jsdoc diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/image.js b/client/javascript/externs/openLayers/ol/ol/image.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/image.js rename to client/javascript/externs/openLayers/ol/ol/image.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/imagebase.js b/client/javascript/externs/openLayers/ol/ol/imagebase.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/imagebase.js rename to client/javascript/externs/openLayers/ol/ol/imagebase.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/imagecanvas.js b/client/javascript/externs/openLayers/ol/ol/imagecanvas.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/imagecanvas.js rename to client/javascript/externs/openLayers/ol/ol/imagecanvas.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/imagestate.js b/client/javascript/externs/openLayers/ol/ol/imagestate.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/imagestate.js rename to client/javascript/externs/openLayers/ol/ol/imagestate.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/imagetile.js b/client/javascript/externs/openLayers/ol/ol/imagetile.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/imagetile.js rename to client/javascript/externs/openLayers/ol/ol/imagetile.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/index.js b/client/javascript/externs/openLayers/ol/ol/index.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/index.js rename to client/javascript/externs/openLayers/ol/ol/index.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction.js b/client/javascript/externs/openLayers/ol/ol/interaction.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/interaction.js rename to client/javascript/externs/openLayers/ol/ol/interaction.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/doubleclickzoom.js b/client/javascript/externs/openLayers/ol/ol/interaction/doubleclickzoom.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/doubleclickzoom.js rename to client/javascript/externs/openLayers/ol/ol/interaction/doubleclickzoom.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/draganddrop.js b/client/javascript/externs/openLayers/ol/ol/interaction/draganddrop.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/draganddrop.js rename to client/javascript/externs/openLayers/ol/ol/interaction/draganddrop.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/dragbox.js b/client/javascript/externs/openLayers/ol/ol/interaction/dragbox.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/dragbox.js rename to client/javascript/externs/openLayers/ol/ol/interaction/dragbox.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/dragpan.js b/client/javascript/externs/openLayers/ol/ol/interaction/dragpan.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/dragpan.js rename to client/javascript/externs/openLayers/ol/ol/interaction/dragpan.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/dragrotate.js b/client/javascript/externs/openLayers/ol/ol/interaction/dragrotate.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/dragrotate.js rename to client/javascript/externs/openLayers/ol/ol/interaction/dragrotate.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/dragrotateandzoom.js b/client/javascript/externs/openLayers/ol/ol/interaction/dragrotateandzoom.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/dragrotateandzoom.js rename to client/javascript/externs/openLayers/ol/ol/interaction/dragrotateandzoom.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/dragzoom.js b/client/javascript/externs/openLayers/ol/ol/interaction/dragzoom.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/dragzoom.js rename to client/javascript/externs/openLayers/ol/ol/interaction/dragzoom.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/draw.js b/client/javascript/externs/openLayers/ol/ol/interaction/draw.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/draw.js rename to client/javascript/externs/openLayers/ol/ol/interaction/draw.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/draweventtype.js b/client/javascript/externs/openLayers/ol/ol/interaction/draweventtype.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/draweventtype.js rename to client/javascript/externs/openLayers/ol/ol/interaction/draweventtype.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/extent.js b/client/javascript/externs/openLayers/ol/ol/interaction/extent.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/extent.js rename to client/javascript/externs/openLayers/ol/ol/interaction/extent.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/extenteventtype.js b/client/javascript/externs/openLayers/ol/ol/interaction/extenteventtype.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/extenteventtype.js rename to client/javascript/externs/openLayers/ol/ol/interaction/extenteventtype.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/interaction.js b/client/javascript/externs/openLayers/ol/ol/interaction/interaction.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/interaction.js rename to client/javascript/externs/openLayers/ol/ol/interaction/interaction.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/interaction.jsdoc b/client/javascript/externs/openLayers/ol/ol/interaction/interaction.jsdoc similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/interaction.jsdoc rename to client/javascript/externs/openLayers/ol/ol/interaction/interaction.jsdoc diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/keyboardpan.js b/client/javascript/externs/openLayers/ol/ol/interaction/keyboardpan.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/keyboardpan.js rename to client/javascript/externs/openLayers/ol/ol/interaction/keyboardpan.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/keyboardzoom.js b/client/javascript/externs/openLayers/ol/ol/interaction/keyboardzoom.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/keyboardzoom.js rename to client/javascript/externs/openLayers/ol/ol/interaction/keyboardzoom.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/modify.js b/client/javascript/externs/openLayers/ol/ol/interaction/modify.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/modify.js rename to client/javascript/externs/openLayers/ol/ol/interaction/modify.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/modifyeventtype.js b/client/javascript/externs/openLayers/ol/ol/interaction/modifyeventtype.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/modifyeventtype.js rename to client/javascript/externs/openLayers/ol/ol/interaction/modifyeventtype.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/mousewheelzoom.js b/client/javascript/externs/openLayers/ol/ol/interaction/mousewheelzoom.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/mousewheelzoom.js rename to client/javascript/externs/openLayers/ol/ol/interaction/mousewheelzoom.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/pinchrotate.js b/client/javascript/externs/openLayers/ol/ol/interaction/pinchrotate.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/pinchrotate.js rename to client/javascript/externs/openLayers/ol/ol/interaction/pinchrotate.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/pinchzoom.js b/client/javascript/externs/openLayers/ol/ol/interaction/pinchzoom.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/pinchzoom.js rename to client/javascript/externs/openLayers/ol/ol/interaction/pinchzoom.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/pointer.js b/client/javascript/externs/openLayers/ol/ol/interaction/pointer.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/pointer.js rename to client/javascript/externs/openLayers/ol/ol/interaction/pointer.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/property.js b/client/javascript/externs/openLayers/ol/ol/interaction/property.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/property.js rename to client/javascript/externs/openLayers/ol/ol/interaction/property.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/select.js b/client/javascript/externs/openLayers/ol/ol/interaction/select.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/select.js rename to client/javascript/externs/openLayers/ol/ol/interaction/select.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/snap.js b/client/javascript/externs/openLayers/ol/ol/interaction/snap.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/snap.js rename to client/javascript/externs/openLayers/ol/ol/interaction/snap.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/translate.js b/client/javascript/externs/openLayers/ol/ol/interaction/translate.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/translate.js rename to client/javascript/externs/openLayers/ol/ol/interaction/translate.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/translateeventtype.js b/client/javascript/externs/openLayers/ol/ol/interaction/translateeventtype.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/interaction/translateeventtype.js rename to client/javascript/externs/openLayers/ol/ol/interaction/translateeventtype.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/kinetic.js b/client/javascript/externs/openLayers/ol/ol/kinetic.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/kinetic.js rename to client/javascript/externs/openLayers/ol/ol/kinetic.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/layer/base.js b/client/javascript/externs/openLayers/ol/ol/layer/base.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/layer/base.js rename to client/javascript/externs/openLayers/ol/ol/layer/base.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/layer/group.js b/client/javascript/externs/openLayers/ol/ol/layer/group.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/layer/group.js rename to client/javascript/externs/openLayers/ol/ol/layer/group.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/layer/heatmap.js b/client/javascript/externs/openLayers/ol/ol/layer/heatmap.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/layer/heatmap.js rename to client/javascript/externs/openLayers/ol/ol/layer/heatmap.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/layer/image.js b/client/javascript/externs/openLayers/ol/ol/layer/image.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/layer/image.js rename to client/javascript/externs/openLayers/ol/ol/layer/image.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/layer/layer.js b/client/javascript/externs/openLayers/ol/ol/layer/layer.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/layer/layer.js rename to client/javascript/externs/openLayers/ol/ol/layer/layer.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/layer/layer.jsdoc b/client/javascript/externs/openLayers/ol/ol/layer/layer.jsdoc similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/layer/layer.jsdoc rename to client/javascript/externs/openLayers/ol/ol/layer/layer.jsdoc diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/layer/property.js b/client/javascript/externs/openLayers/ol/ol/layer/property.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/layer/property.js rename to client/javascript/externs/openLayers/ol/ol/layer/property.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/layer/tile.js b/client/javascript/externs/openLayers/ol/ol/layer/tile.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/layer/tile.js rename to client/javascript/externs/openLayers/ol/ol/layer/tile.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/layer/tileproperty.js b/client/javascript/externs/openLayers/ol/ol/layer/tileproperty.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/layer/tileproperty.js rename to client/javascript/externs/openLayers/ol/ol/layer/tileproperty.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/layer/vector.js b/client/javascript/externs/openLayers/ol/ol/layer/vector.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/layer/vector.js rename to client/javascript/externs/openLayers/ol/ol/layer/vector.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/layer/vectorrendertype.js b/client/javascript/externs/openLayers/ol/ol/layer/vectorrendertype.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/layer/vectorrendertype.js rename to client/javascript/externs/openLayers/ol/ol/layer/vectorrendertype.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/layer/vectortile.js b/client/javascript/externs/openLayers/ol/ol/layer/vectortile.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/layer/vectortile.js rename to client/javascript/externs/openLayers/ol/ol/layer/vectortile.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/layer/vectortilerendertype.js b/client/javascript/externs/openLayers/ol/ol/layer/vectortilerendertype.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/layer/vectortilerendertype.js rename to client/javascript/externs/openLayers/ol/ol/layer/vectortilerendertype.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/layertype.js b/client/javascript/externs/openLayers/ol/ol/layertype.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/layertype.js rename to client/javascript/externs/openLayers/ol/ol/layertype.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/loadingstrategy.js b/client/javascript/externs/openLayers/ol/ol/loadingstrategy.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/loadingstrategy.js rename to client/javascript/externs/openLayers/ol/ol/loadingstrategy.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/loadingstrategy.jsdoc b/client/javascript/externs/openLayers/ol/ol/loadingstrategy.jsdoc similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/loadingstrategy.jsdoc rename to client/javascript/externs/openLayers/ol/ol/loadingstrategy.jsdoc diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/map.js b/client/javascript/externs/openLayers/ol/ol/map.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/map.js rename to client/javascript/externs/openLayers/ol/ol/map.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/mapbrowserevent.js b/client/javascript/externs/openLayers/ol/ol/mapbrowserevent.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/mapbrowserevent.js rename to client/javascript/externs/openLayers/ol/ol/mapbrowserevent.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/mapbrowsereventhandler.js b/client/javascript/externs/openLayers/ol/ol/mapbrowsereventhandler.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/mapbrowsereventhandler.js rename to client/javascript/externs/openLayers/ol/ol/mapbrowsereventhandler.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/mapbrowsereventtype.js b/client/javascript/externs/openLayers/ol/ol/mapbrowsereventtype.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/mapbrowsereventtype.js rename to client/javascript/externs/openLayers/ol/ol/mapbrowsereventtype.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/mapbrowserpointerevent.js b/client/javascript/externs/openLayers/ol/ol/mapbrowserpointerevent.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/mapbrowserpointerevent.js rename to client/javascript/externs/openLayers/ol/ol/mapbrowserpointerevent.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/mapevent.js b/client/javascript/externs/openLayers/ol/ol/mapevent.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/mapevent.js rename to client/javascript/externs/openLayers/ol/ol/mapevent.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/mapeventtype.js b/client/javascript/externs/openLayers/ol/ol/mapeventtype.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/mapeventtype.js rename to client/javascript/externs/openLayers/ol/ol/mapeventtype.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/mapproperty.js b/client/javascript/externs/openLayers/ol/ol/mapproperty.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/mapproperty.js rename to client/javascript/externs/openLayers/ol/ol/mapproperty.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/math.js b/client/javascript/externs/openLayers/ol/ol/math.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/math.js rename to client/javascript/externs/openLayers/ol/ol/math.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/net.js b/client/javascript/externs/openLayers/ol/ol/net.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/net.js rename to client/javascript/externs/openLayers/ol/ol/net.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/obj.js b/client/javascript/externs/openLayers/ol/ol/obj.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/obj.js rename to client/javascript/externs/openLayers/ol/ol/obj.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/object.js b/client/javascript/externs/openLayers/ol/ol/object.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/object.js rename to client/javascript/externs/openLayers/ol/ol/object.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/objecteventtype.js b/client/javascript/externs/openLayers/ol/ol/objecteventtype.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/objecteventtype.js rename to client/javascript/externs/openLayers/ol/ol/objecteventtype.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/observable.js b/client/javascript/externs/openLayers/ol/ol/observable.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/observable.js rename to client/javascript/externs/openLayers/ol/ol/observable.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/overlay.js b/client/javascript/externs/openLayers/ol/ol/overlay.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/overlay.js rename to client/javascript/externs/openLayers/ol/ol/overlay.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/overlaypositioning.js b/client/javascript/externs/openLayers/ol/ol/overlaypositioning.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/overlaypositioning.js rename to client/javascript/externs/openLayers/ol/ol/overlaypositioning.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/pluggablemap.js b/client/javascript/externs/openLayers/ol/ol/pluggablemap.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/pluggablemap.js rename to client/javascript/externs/openLayers/ol/ol/pluggablemap.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/plugins.js b/client/javascript/externs/openLayers/ol/ol/plugins.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/plugins.js rename to client/javascript/externs/openLayers/ol/ol/plugins.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/plugintype.js b/client/javascript/externs/openLayers/ol/ol/plugintype.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/plugintype.js rename to client/javascript/externs/openLayers/ol/ol/plugintype.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/eventsource.js b/client/javascript/externs/openLayers/ol/ol/pointer/eventsource.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/eventsource.js rename to client/javascript/externs/openLayers/ol/ol/pointer/eventsource.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/eventtype.js b/client/javascript/externs/openLayers/ol/ol/pointer/eventtype.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/eventtype.js rename to client/javascript/externs/openLayers/ol/ol/pointer/eventtype.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/mousesource.js b/client/javascript/externs/openLayers/ol/ol/pointer/mousesource.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/mousesource.js rename to client/javascript/externs/openLayers/ol/ol/pointer/mousesource.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/mssource.js b/client/javascript/externs/openLayers/ol/ol/pointer/mssource.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/mssource.js rename to client/javascript/externs/openLayers/ol/ol/pointer/mssource.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/nativesource.js b/client/javascript/externs/openLayers/ol/ol/pointer/nativesource.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/nativesource.js rename to client/javascript/externs/openLayers/ol/ol/pointer/nativesource.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/pointerevent.js b/client/javascript/externs/openLayers/ol/ol/pointer/pointerevent.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/pointerevent.js rename to client/javascript/externs/openLayers/ol/ol/pointer/pointerevent.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/pointereventhandler.js b/client/javascript/externs/openLayers/ol/ol/pointer/pointereventhandler.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/pointereventhandler.js rename to client/javascript/externs/openLayers/ol/ol/pointer/pointereventhandler.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/touchsource.js b/client/javascript/externs/openLayers/ol/ol/pointer/touchsource.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/pointer/touchsource.js rename to client/javascript/externs/openLayers/ol/ol/pointer/touchsource.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/proj.js b/client/javascript/externs/openLayers/ol/ol/proj.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/proj.js rename to client/javascript/externs/openLayers/ol/ol/proj.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/proj/common.js b/client/javascript/externs/openLayers/ol/ol/proj/common.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/proj/common.js rename to client/javascript/externs/openLayers/ol/ol/proj/common.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/proj/epsg3857.js b/client/javascript/externs/openLayers/ol/ol/proj/epsg3857.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/proj/epsg3857.js rename to client/javascript/externs/openLayers/ol/ol/proj/epsg3857.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/proj/epsg4326.js b/client/javascript/externs/openLayers/ol/ol/proj/epsg4326.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/proj/epsg4326.js rename to client/javascript/externs/openLayers/ol/ol/proj/epsg4326.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/proj/index.jsdoc b/client/javascript/externs/openLayers/ol/ol/proj/index.jsdoc similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/proj/index.jsdoc rename to client/javascript/externs/openLayers/ol/ol/proj/index.jsdoc diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/proj/proj4.js b/client/javascript/externs/openLayers/ol/ol/proj/proj4.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/proj/proj4.js rename to client/javascript/externs/openLayers/ol/ol/proj/proj4.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/proj/projection.js b/client/javascript/externs/openLayers/ol/ol/proj/projection.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/proj/projection.js rename to client/javascript/externs/openLayers/ol/ol/proj/projection.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/proj/projections.js b/client/javascript/externs/openLayers/ol/ol/proj/projections.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/proj/projections.js rename to client/javascript/externs/openLayers/ol/ol/proj/projections.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/proj/transforms.js b/client/javascript/externs/openLayers/ol/ol/proj/transforms.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/proj/transforms.js rename to client/javascript/externs/openLayers/ol/ol/proj/transforms.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/proj/units.js b/client/javascript/externs/openLayers/ol/ol/proj/units.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/proj/units.js rename to client/javascript/externs/openLayers/ol/ol/proj/units.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/render.js b/client/javascript/externs/openLayers/ol/ol/render.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/render.js rename to client/javascript/externs/openLayers/ol/ol/render.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/render.jsdoc b/client/javascript/externs/openLayers/ol/ol/render.jsdoc similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/render.jsdoc rename to client/javascript/externs/openLayers/ol/ol/render.jsdoc diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/render/box.js b/client/javascript/externs/openLayers/ol/ol/render/box.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/render/box.js rename to client/javascript/externs/openLayers/ol/ol/render/box.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas.js b/client/javascript/externs/openLayers/ol/ol/render/canvas.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas.js rename to client/javascript/externs/openLayers/ol/ol/render/canvas.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/imagereplay.js b/client/javascript/externs/openLayers/ol/ol/render/canvas/imagereplay.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/imagereplay.js rename to client/javascript/externs/openLayers/ol/ol/render/canvas/imagereplay.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/immediate.js b/client/javascript/externs/openLayers/ol/ol/render/canvas/immediate.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/immediate.js rename to client/javascript/externs/openLayers/ol/ol/render/canvas/immediate.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/index.jsdoc b/client/javascript/externs/openLayers/ol/ol/render/canvas/index.jsdoc similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/index.jsdoc rename to client/javascript/externs/openLayers/ol/ol/render/canvas/index.jsdoc diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/instruction.js b/client/javascript/externs/openLayers/ol/ol/render/canvas/instruction.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/instruction.js rename to client/javascript/externs/openLayers/ol/ol/render/canvas/instruction.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/linestringreplay.js b/client/javascript/externs/openLayers/ol/ol/render/canvas/linestringreplay.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/linestringreplay.js rename to client/javascript/externs/openLayers/ol/ol/render/canvas/linestringreplay.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/polygonreplay.js b/client/javascript/externs/openLayers/ol/ol/render/canvas/polygonreplay.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/polygonreplay.js rename to client/javascript/externs/openLayers/ol/ol/render/canvas/polygonreplay.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/replay.js b/client/javascript/externs/openLayers/ol/ol/render/canvas/replay.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/replay.js rename to client/javascript/externs/openLayers/ol/ol/render/canvas/replay.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/replaygroup.js b/client/javascript/externs/openLayers/ol/ol/render/canvas/replaygroup.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/replaygroup.js rename to client/javascript/externs/openLayers/ol/ol/render/canvas/replaygroup.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/textreplay.js b/client/javascript/externs/openLayers/ol/ol/render/canvas/textreplay.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/render/canvas/textreplay.js rename to client/javascript/externs/openLayers/ol/ol/render/canvas/textreplay.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/render/event.js b/client/javascript/externs/openLayers/ol/ol/render/event.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/render/event.js rename to client/javascript/externs/openLayers/ol/ol/render/event.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/render/eventtype.js b/client/javascript/externs/openLayers/ol/ol/render/eventtype.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/render/eventtype.js rename to client/javascript/externs/openLayers/ol/ol/render/eventtype.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/render/feature.js b/client/javascript/externs/openLayers/ol/ol/render/feature.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/render/feature.js rename to client/javascript/externs/openLayers/ol/ol/render/feature.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/render/replay.js b/client/javascript/externs/openLayers/ol/ol/render/replay.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/render/replay.js rename to client/javascript/externs/openLayers/ol/ol/render/replay.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/render/replaygroup.js b/client/javascript/externs/openLayers/ol/ol/render/replaygroup.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/render/replaygroup.js rename to client/javascript/externs/openLayers/ol/ol/render/replaygroup.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/render/replaytype.js b/client/javascript/externs/openLayers/ol/ol/render/replaytype.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/render/replaytype.js rename to client/javascript/externs/openLayers/ol/ol/render/replaytype.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/render/vectorcontext.js b/client/javascript/externs/openLayers/ol/ol/render/vectorcontext.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/render/vectorcontext.js rename to client/javascript/externs/openLayers/ol/ol/render/vectorcontext.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl.js b/client/javascript/externs/openLayers/ol/ol/render/webgl.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl.js rename to client/javascript/externs/openLayers/ol/ol/render/webgl.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay.js b/client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay.js rename to client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay/defaultshader.glsl b/client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay/defaultshader.glsl similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay/defaultshader.glsl rename to client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay/defaultshader.glsl diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay/defaultshader.js b/client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay/defaultshader.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay/defaultshader.js rename to client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay/defaultshader.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay/defaultshader/locations.js b/client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay/defaultshader/locations.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay/defaultshader/locations.js rename to client/javascript/externs/openLayers/ol/ol/render/webgl/circlereplay/defaultshader/locations.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/imagereplay.js b/client/javascript/externs/openLayers/ol/ol/render/webgl/imagereplay.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/imagereplay.js rename to client/javascript/externs/openLayers/ol/ol/render/webgl/imagereplay.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/immediate.js b/client/javascript/externs/openLayers/ol/ol/render/webgl/immediate.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/immediate.js rename to client/javascript/externs/openLayers/ol/ol/render/webgl/immediate.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/index.jsdoc b/client/javascript/externs/openLayers/ol/ol/render/webgl/index.jsdoc similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/index.jsdoc rename to client/javascript/externs/openLayers/ol/ol/render/webgl/index.jsdoc diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay.js b/client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay.js rename to client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay/defaultshader.glsl b/client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay/defaultshader.glsl similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay/defaultshader.glsl rename to client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay/defaultshader.glsl diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay/defaultshader.js b/client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay/defaultshader.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay/defaultshader.js rename to client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay/defaultshader.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay/defaultshader/locations.js b/client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay/defaultshader/locations.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay/defaultshader/locations.js rename to client/javascript/externs/openLayers/ol/ol/render/webgl/linestringreplay/defaultshader/locations.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay.js b/client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay.js rename to client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay/defaultshader.glsl b/client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay/defaultshader.glsl similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay/defaultshader.glsl rename to client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay/defaultshader.glsl diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay/defaultshader.js b/client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay/defaultshader.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay/defaultshader.js rename to client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay/defaultshader.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay/defaultshader/locations.js b/client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay/defaultshader/locations.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay/defaultshader/locations.js rename to client/javascript/externs/openLayers/ol/ol/render/webgl/polygonreplay/defaultshader/locations.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/replay.js b/client/javascript/externs/openLayers/ol/ol/render/webgl/replay.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/replay.js rename to client/javascript/externs/openLayers/ol/ol/render/webgl/replay.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/replaygroup.js b/client/javascript/externs/openLayers/ol/ol/render/webgl/replaygroup.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/replaygroup.js rename to client/javascript/externs/openLayers/ol/ol/render/webgl/replaygroup.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/textreplay.js b/client/javascript/externs/openLayers/ol/ol/render/webgl/textreplay.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/textreplay.js rename to client/javascript/externs/openLayers/ol/ol/render/webgl/textreplay.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay.js b/client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay.js rename to client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay/defaultshader.glsl b/client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay/defaultshader.glsl similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay/defaultshader.glsl rename to client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay/defaultshader.glsl diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay/defaultshader.js b/client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay/defaultshader.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay/defaultshader.js rename to client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay/defaultshader.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay/defaultshader/locations.js b/client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay/defaultshader/locations.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay/defaultshader/locations.js rename to client/javascript/externs/openLayers/ol/ol/render/webgl/texturereplay/defaultshader/locations.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/imagelayer.js b/client/javascript/externs/openLayers/ol/ol/renderer/canvas/imagelayer.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/imagelayer.js rename to client/javascript/externs/openLayers/ol/ol/renderer/canvas/imagelayer.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/intermediatecanvas.js b/client/javascript/externs/openLayers/ol/ol/renderer/canvas/intermediatecanvas.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/intermediatecanvas.js rename to client/javascript/externs/openLayers/ol/ol/renderer/canvas/intermediatecanvas.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/layer.js b/client/javascript/externs/openLayers/ol/ol/renderer/canvas/layer.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/layer.js rename to client/javascript/externs/openLayers/ol/ol/renderer/canvas/layer.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/map.js b/client/javascript/externs/openLayers/ol/ol/renderer/canvas/map.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/map.js rename to client/javascript/externs/openLayers/ol/ol/renderer/canvas/map.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/tilelayer.js b/client/javascript/externs/openLayers/ol/ol/renderer/canvas/tilelayer.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/tilelayer.js rename to client/javascript/externs/openLayers/ol/ol/renderer/canvas/tilelayer.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/vectorlayer.js b/client/javascript/externs/openLayers/ol/ol/renderer/canvas/vectorlayer.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/vectorlayer.js rename to client/javascript/externs/openLayers/ol/ol/renderer/canvas/vectorlayer.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/vectortilelayer.js b/client/javascript/externs/openLayers/ol/ol/renderer/canvas/vectortilelayer.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/canvas/vectortilelayer.js rename to client/javascript/externs/openLayers/ol/ol/renderer/canvas/vectortilelayer.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/index.jsdoc b/client/javascript/externs/openLayers/ol/ol/renderer/index.jsdoc similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/index.jsdoc rename to client/javascript/externs/openLayers/ol/ol/renderer/index.jsdoc diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/layer.js b/client/javascript/externs/openLayers/ol/ol/renderer/layer.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/layer.js rename to client/javascript/externs/openLayers/ol/ol/renderer/layer.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/map.js b/client/javascript/externs/openLayers/ol/ol/renderer/map.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/map.js rename to client/javascript/externs/openLayers/ol/ol/renderer/map.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/type.js b/client/javascript/externs/openLayers/ol/ol/renderer/type.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/type.js rename to client/javascript/externs/openLayers/ol/ol/renderer/type.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/vector.js b/client/javascript/externs/openLayers/ol/ol/renderer/vector.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/vector.js rename to client/javascript/externs/openLayers/ol/ol/renderer/vector.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/defaultmapshader.glsl b/client/javascript/externs/openLayers/ol/ol/renderer/webgl/defaultmapshader.glsl similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/defaultmapshader.glsl rename to client/javascript/externs/openLayers/ol/ol/renderer/webgl/defaultmapshader.glsl diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/defaultmapshader.js b/client/javascript/externs/openLayers/ol/ol/renderer/webgl/defaultmapshader.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/defaultmapshader.js rename to client/javascript/externs/openLayers/ol/ol/renderer/webgl/defaultmapshader.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/defaultmapshader/locations.js b/client/javascript/externs/openLayers/ol/ol/renderer/webgl/defaultmapshader/locations.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/defaultmapshader/locations.js rename to client/javascript/externs/openLayers/ol/ol/renderer/webgl/defaultmapshader/locations.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/imagelayer.js b/client/javascript/externs/openLayers/ol/ol/renderer/webgl/imagelayer.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/imagelayer.js rename to client/javascript/externs/openLayers/ol/ol/renderer/webgl/imagelayer.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/layer.js b/client/javascript/externs/openLayers/ol/ol/renderer/webgl/layer.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/layer.js rename to client/javascript/externs/openLayers/ol/ol/renderer/webgl/layer.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/map.js b/client/javascript/externs/openLayers/ol/ol/renderer/webgl/map.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/map.js rename to client/javascript/externs/openLayers/ol/ol/renderer/webgl/map.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayer.js b/client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayer.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayer.js rename to client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayer.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayershader.glsl b/client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayershader.glsl similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayershader.glsl rename to client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayershader.glsl diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayershader.js b/client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayershader.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayershader.js rename to client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayershader.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayershader/locations.js b/client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayershader/locations.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayershader/locations.js rename to client/javascript/externs/openLayers/ol/ol/renderer/webgl/tilelayershader/locations.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/vectorlayer.js b/client/javascript/externs/openLayers/ol/ol/renderer/webgl/vectorlayer.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/renderer/webgl/vectorlayer.js rename to client/javascript/externs/openLayers/ol/ol/renderer/webgl/vectorlayer.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/reproj.js b/client/javascript/externs/openLayers/ol/ol/reproj.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/reproj.js rename to client/javascript/externs/openLayers/ol/ol/reproj.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/reproj/image.js b/client/javascript/externs/openLayers/ol/ol/reproj/image.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/reproj/image.js rename to client/javascript/externs/openLayers/ol/ol/reproj/image.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/reproj/tile.js b/client/javascript/externs/openLayers/ol/ol/reproj/tile.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/reproj/tile.js rename to client/javascript/externs/openLayers/ol/ol/reproj/tile.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/reproj/triangulation.js b/client/javascript/externs/openLayers/ol/ol/reproj/triangulation.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/reproj/triangulation.js rename to client/javascript/externs/openLayers/ol/ol/reproj/triangulation.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/resolutionconstraint.js b/client/javascript/externs/openLayers/ol/ol/resolutionconstraint.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/resolutionconstraint.js rename to client/javascript/externs/openLayers/ol/ol/resolutionconstraint.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/rotationconstraint.js b/client/javascript/externs/openLayers/ol/ol/rotationconstraint.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/rotationconstraint.js rename to client/javascript/externs/openLayers/ol/ol/rotationconstraint.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/size.js b/client/javascript/externs/openLayers/ol/ol/size.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/size.js rename to client/javascript/externs/openLayers/ol/ol/size.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/source.jsdoc b/client/javascript/externs/openLayers/ol/ol/source.jsdoc similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/source.jsdoc rename to client/javascript/externs/openLayers/ol/ol/source.jsdoc diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/source/bingmaps.js b/client/javascript/externs/openLayers/ol/ol/source/bingmaps.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/source/bingmaps.js rename to client/javascript/externs/openLayers/ol/ol/source/bingmaps.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/source/cartodb.js b/client/javascript/externs/openLayers/ol/ol/source/cartodb.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/source/cartodb.js rename to client/javascript/externs/openLayers/ol/ol/source/cartodb.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/source/cluster.js b/client/javascript/externs/openLayers/ol/ol/source/cluster.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/source/cluster.js rename to client/javascript/externs/openLayers/ol/ol/source/cluster.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/source/image.js b/client/javascript/externs/openLayers/ol/ol/source/image.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/source/image.js rename to client/javascript/externs/openLayers/ol/ol/source/image.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/source/imagearcgisrest.js b/client/javascript/externs/openLayers/ol/ol/source/imagearcgisrest.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/source/imagearcgisrest.js rename to client/javascript/externs/openLayers/ol/ol/source/imagearcgisrest.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/source/imagecanvas.js b/client/javascript/externs/openLayers/ol/ol/source/imagecanvas.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/source/imagecanvas.js rename to client/javascript/externs/openLayers/ol/ol/source/imagecanvas.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/source/imagemapguide.js b/client/javascript/externs/openLayers/ol/ol/source/imagemapguide.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/source/imagemapguide.js rename to client/javascript/externs/openLayers/ol/ol/source/imagemapguide.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/source/imagestatic.js b/client/javascript/externs/openLayers/ol/ol/source/imagestatic.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/source/imagestatic.js rename to client/javascript/externs/openLayers/ol/ol/source/imagestatic.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/source/imagevector.js b/client/javascript/externs/openLayers/ol/ol/source/imagevector.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/source/imagevector.js rename to client/javascript/externs/openLayers/ol/ol/source/imagevector.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/source/imagewms.js b/client/javascript/externs/openLayers/ol/ol/source/imagewms.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/source/imagewms.js rename to client/javascript/externs/openLayers/ol/ol/source/imagewms.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/source/osm.js b/client/javascript/externs/openLayers/ol/ol/source/osm.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/source/osm.js rename to client/javascript/externs/openLayers/ol/ol/source/osm.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/source/raster.js b/client/javascript/externs/openLayers/ol/ol/source/raster.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/source/raster.js rename to client/javascript/externs/openLayers/ol/ol/source/raster.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/source/rasteroperationtype.js b/client/javascript/externs/openLayers/ol/ol/source/rasteroperationtype.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/source/rasteroperationtype.js rename to client/javascript/externs/openLayers/ol/ol/source/rasteroperationtype.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/source/source.js b/client/javascript/externs/openLayers/ol/ol/source/source.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/source/source.js rename to client/javascript/externs/openLayers/ol/ol/source/source.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/source/stamen.js b/client/javascript/externs/openLayers/ol/ol/source/stamen.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/source/stamen.js rename to client/javascript/externs/openLayers/ol/ol/source/stamen.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/source/state.js b/client/javascript/externs/openLayers/ol/ol/source/state.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/source/state.js rename to client/javascript/externs/openLayers/ol/ol/source/state.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/source/tile.js b/client/javascript/externs/openLayers/ol/ol/source/tile.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/source/tile.js rename to client/javascript/externs/openLayers/ol/ol/source/tile.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/source/tilearcgisrest.js b/client/javascript/externs/openLayers/ol/ol/source/tilearcgisrest.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/source/tilearcgisrest.js rename to client/javascript/externs/openLayers/ol/ol/source/tilearcgisrest.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/source/tiledebug.js b/client/javascript/externs/openLayers/ol/ol/source/tiledebug.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/source/tiledebug.js rename to client/javascript/externs/openLayers/ol/ol/source/tiledebug.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/source/tileeventtype.js b/client/javascript/externs/openLayers/ol/ol/source/tileeventtype.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/source/tileeventtype.js rename to client/javascript/externs/openLayers/ol/ol/source/tileeventtype.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/source/tileimage.js b/client/javascript/externs/openLayers/ol/ol/source/tileimage.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/source/tileimage.js rename to client/javascript/externs/openLayers/ol/ol/source/tileimage.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/source/tilejson.js b/client/javascript/externs/openLayers/ol/ol/source/tilejson.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/source/tilejson.js rename to client/javascript/externs/openLayers/ol/ol/source/tilejson.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/source/tileutfgrid.js b/client/javascript/externs/openLayers/ol/ol/source/tileutfgrid.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/source/tileutfgrid.js rename to client/javascript/externs/openLayers/ol/ol/source/tileutfgrid.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/source/tilewms.js b/client/javascript/externs/openLayers/ol/ol/source/tilewms.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/source/tilewms.js rename to client/javascript/externs/openLayers/ol/ol/source/tilewms.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/source/urltile.js b/client/javascript/externs/openLayers/ol/ol/source/urltile.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/source/urltile.js rename to client/javascript/externs/openLayers/ol/ol/source/urltile.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/source/vector.js b/client/javascript/externs/openLayers/ol/ol/source/vector.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/source/vector.js rename to client/javascript/externs/openLayers/ol/ol/source/vector.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/source/vectoreventtype.js b/client/javascript/externs/openLayers/ol/ol/source/vectoreventtype.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/source/vectoreventtype.js rename to client/javascript/externs/openLayers/ol/ol/source/vectoreventtype.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/source/vectortile.js b/client/javascript/externs/openLayers/ol/ol/source/vectortile.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/source/vectortile.js rename to client/javascript/externs/openLayers/ol/ol/source/vectortile.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/source/wmsservertype.js b/client/javascript/externs/openLayers/ol/ol/source/wmsservertype.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/source/wmsservertype.js rename to client/javascript/externs/openLayers/ol/ol/source/wmsservertype.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/source/wmts.js b/client/javascript/externs/openLayers/ol/ol/source/wmts.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/source/wmts.js rename to client/javascript/externs/openLayers/ol/ol/source/wmts.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/source/wmtsrequestencoding.js b/client/javascript/externs/openLayers/ol/ol/source/wmtsrequestencoding.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/source/wmtsrequestencoding.js rename to client/javascript/externs/openLayers/ol/ol/source/wmtsrequestencoding.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/source/xyz.js b/client/javascript/externs/openLayers/ol/ol/source/xyz.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/source/xyz.js rename to client/javascript/externs/openLayers/ol/ol/source/xyz.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/source/zoomify.js b/client/javascript/externs/openLayers/ol/ol/source/zoomify.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/source/zoomify.js rename to client/javascript/externs/openLayers/ol/ol/source/zoomify.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/sphere.js b/client/javascript/externs/openLayers/ol/ol/sphere.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/sphere.js rename to client/javascript/externs/openLayers/ol/ol/sphere.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/string.js b/client/javascript/externs/openLayers/ol/ol/string.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/string.js rename to client/javascript/externs/openLayers/ol/ol/string.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/structs/linkedlist.js b/client/javascript/externs/openLayers/ol/ol/structs/linkedlist.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/structs/linkedlist.js rename to client/javascript/externs/openLayers/ol/ol/structs/linkedlist.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/structs/lrucache.js b/client/javascript/externs/openLayers/ol/ol/structs/lrucache.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/structs/lrucache.js rename to client/javascript/externs/openLayers/ol/ol/structs/lrucache.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/structs/priorityqueue.js b/client/javascript/externs/openLayers/ol/ol/structs/priorityqueue.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/structs/priorityqueue.js rename to client/javascript/externs/openLayers/ol/ol/structs/priorityqueue.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/structs/rbush.js b/client/javascript/externs/openLayers/ol/ol/structs/rbush.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/structs/rbush.js rename to client/javascript/externs/openLayers/ol/ol/structs/rbush.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/style.js b/client/javascript/externs/openLayers/ol/ol/style.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/style.js rename to client/javascript/externs/openLayers/ol/ol/style.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/style/atlas.js b/client/javascript/externs/openLayers/ol/ol/style/atlas.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/style/atlas.js rename to client/javascript/externs/openLayers/ol/ol/style/atlas.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/style/atlasmanager.js b/client/javascript/externs/openLayers/ol/ol/style/atlasmanager.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/style/atlasmanager.js rename to client/javascript/externs/openLayers/ol/ol/style/atlasmanager.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/style/circle.js b/client/javascript/externs/openLayers/ol/ol/style/circle.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/style/circle.js rename to client/javascript/externs/openLayers/ol/ol/style/circle.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/style/fill.js b/client/javascript/externs/openLayers/ol/ol/style/fill.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/style/fill.js rename to client/javascript/externs/openLayers/ol/ol/style/fill.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/style/icon.js b/client/javascript/externs/openLayers/ol/ol/style/icon.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/style/icon.js rename to client/javascript/externs/openLayers/ol/ol/style/icon.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/style/iconanchorunits.js b/client/javascript/externs/openLayers/ol/ol/style/iconanchorunits.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/style/iconanchorunits.js rename to client/javascript/externs/openLayers/ol/ol/style/iconanchorunits.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/style/iconimage.js b/client/javascript/externs/openLayers/ol/ol/style/iconimage.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/style/iconimage.js rename to client/javascript/externs/openLayers/ol/ol/style/iconimage.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/style/iconimagecache.js b/client/javascript/externs/openLayers/ol/ol/style/iconimagecache.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/style/iconimagecache.js rename to client/javascript/externs/openLayers/ol/ol/style/iconimagecache.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/style/iconorigin.js b/client/javascript/externs/openLayers/ol/ol/style/iconorigin.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/style/iconorigin.js rename to client/javascript/externs/openLayers/ol/ol/style/iconorigin.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/style/image.js b/client/javascript/externs/openLayers/ol/ol/style/image.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/style/image.js rename to client/javascript/externs/openLayers/ol/ol/style/image.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/style/index.jsdoc b/client/javascript/externs/openLayers/ol/ol/style/index.jsdoc similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/style/index.jsdoc rename to client/javascript/externs/openLayers/ol/ol/style/index.jsdoc diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/style/regularshape.js b/client/javascript/externs/openLayers/ol/ol/style/regularshape.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/style/regularshape.js rename to client/javascript/externs/openLayers/ol/ol/style/regularshape.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/style/stroke.js b/client/javascript/externs/openLayers/ol/ol/style/stroke.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/style/stroke.js rename to client/javascript/externs/openLayers/ol/ol/style/stroke.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/style/style.js b/client/javascript/externs/openLayers/ol/ol/style/style.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/style/style.js rename to client/javascript/externs/openLayers/ol/ol/style/style.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/style/text.js b/client/javascript/externs/openLayers/ol/ol/style/text.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/style/text.js rename to client/javascript/externs/openLayers/ol/ol/style/text.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/style/textplacement.js b/client/javascript/externs/openLayers/ol/ol/style/textplacement.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/style/textplacement.js rename to client/javascript/externs/openLayers/ol/ol/style/textplacement.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/tile.js b/client/javascript/externs/openLayers/ol/ol/tile.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/tile.js rename to client/javascript/externs/openLayers/ol/ol/tile.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/tilecache.js b/client/javascript/externs/openLayers/ol/ol/tilecache.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/tilecache.js rename to client/javascript/externs/openLayers/ol/ol/tilecache.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/tilecoord.js b/client/javascript/externs/openLayers/ol/ol/tilecoord.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/tilecoord.js rename to client/javascript/externs/openLayers/ol/ol/tilecoord.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/tilegrid.js b/client/javascript/externs/openLayers/ol/ol/tilegrid.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/tilegrid.js rename to client/javascript/externs/openLayers/ol/ol/tilegrid.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/tilegrid/index.jsdoc b/client/javascript/externs/openLayers/ol/ol/tilegrid/index.jsdoc similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/tilegrid/index.jsdoc rename to client/javascript/externs/openLayers/ol/ol/tilegrid/index.jsdoc diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/tilegrid/tilegrid.js b/client/javascript/externs/openLayers/ol/ol/tilegrid/tilegrid.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/tilegrid/tilegrid.js rename to client/javascript/externs/openLayers/ol/ol/tilegrid/tilegrid.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/tilegrid/wmts.js b/client/javascript/externs/openLayers/ol/ol/tilegrid/wmts.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/tilegrid/wmts.js rename to client/javascript/externs/openLayers/ol/ol/tilegrid/wmts.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/tilequeue.js b/client/javascript/externs/openLayers/ol/ol/tilequeue.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/tilequeue.js rename to client/javascript/externs/openLayers/ol/ol/tilequeue.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/tilerange.js b/client/javascript/externs/openLayers/ol/ol/tilerange.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/tilerange.js rename to client/javascript/externs/openLayers/ol/ol/tilerange.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/tilestate.js b/client/javascript/externs/openLayers/ol/ol/tilestate.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/tilestate.js rename to client/javascript/externs/openLayers/ol/ol/tilestate.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/tileurlfunction.js b/client/javascript/externs/openLayers/ol/ol/tileurlfunction.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/tileurlfunction.js rename to client/javascript/externs/openLayers/ol/ol/tileurlfunction.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/transform.js b/client/javascript/externs/openLayers/ol/ol/transform.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/transform.js rename to client/javascript/externs/openLayers/ol/ol/transform.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/typedefs.js b/client/javascript/externs/openLayers/ol/ol/typedefs.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/typedefs.js rename to client/javascript/externs/openLayers/ol/ol/typedefs.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/uri.js b/client/javascript/externs/openLayers/ol/ol/uri.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/uri.js rename to client/javascript/externs/openLayers/ol/ol/uri.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/vec/mat4.js b/client/javascript/externs/openLayers/ol/ol/vec/mat4.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/vec/mat4.js rename to client/javascript/externs/openLayers/ol/ol/vec/mat4.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/vectorimagetile.js b/client/javascript/externs/openLayers/ol/ol/vectorimagetile.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/vectorimagetile.js rename to client/javascript/externs/openLayers/ol/ol/vectorimagetile.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/vectortile.js b/client/javascript/externs/openLayers/ol/ol/vectortile.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/vectortile.js rename to client/javascript/externs/openLayers/ol/ol/vectortile.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/view.js b/client/javascript/externs/openLayers/ol/ol/view.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/view.js rename to client/javascript/externs/openLayers/ol/ol/view.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/viewhint.js b/client/javascript/externs/openLayers/ol/ol/viewhint.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/viewhint.js rename to client/javascript/externs/openLayers/ol/ol/viewhint.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/viewproperty.js b/client/javascript/externs/openLayers/ol/ol/viewproperty.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/viewproperty.js rename to client/javascript/externs/openLayers/ol/ol/viewproperty.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/webgl.js b/client/javascript/externs/openLayers/ol/ol/webgl.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/webgl.js rename to client/javascript/externs/openLayers/ol/ol/webgl.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/buffer.js b/client/javascript/externs/openLayers/ol/ol/webgl/buffer.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/buffer.js rename to client/javascript/externs/openLayers/ol/ol/webgl/buffer.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/context.js b/client/javascript/externs/openLayers/ol/ol/webgl/context.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/context.js rename to client/javascript/externs/openLayers/ol/ol/webgl/context.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/contexteventtype.js b/client/javascript/externs/openLayers/ol/ol/webgl/contexteventtype.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/contexteventtype.js rename to client/javascript/externs/openLayers/ol/ol/webgl/contexteventtype.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/fragment.js b/client/javascript/externs/openLayers/ol/ol/webgl/fragment.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/fragment.js rename to client/javascript/externs/openLayers/ol/ol/webgl/fragment.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/shader.js b/client/javascript/externs/openLayers/ol/ol/webgl/shader.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/shader.js rename to client/javascript/externs/openLayers/ol/ol/webgl/shader.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/shader.mustache b/client/javascript/externs/openLayers/ol/ol/webgl/shader.mustache similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/shader.mustache rename to client/javascript/externs/openLayers/ol/ol/webgl/shader.mustache diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/shaderlocations.mustache b/client/javascript/externs/openLayers/ol/ol/webgl/shaderlocations.mustache similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/shaderlocations.mustache rename to client/javascript/externs/openLayers/ol/ol/webgl/shaderlocations.mustache diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/vertex.js b/client/javascript/externs/openLayers/ol/ol/webgl/vertex.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/webgl/vertex.js rename to client/javascript/externs/openLayers/ol/ol/webgl/vertex.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol/ol/xml.js b/client/javascript/externs/openLayers/ol/ol/xml.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol/ol/xml.js rename to client/javascript/externs/openLayers/ol/ol/xml.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol3-ext/licence.txt b/client/javascript/externs/openLayers/ol3-ext/licence.txt similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol3-ext/licence.txt rename to client/javascript/externs/openLayers/ol3-ext/licence.txt diff --git a/src/vitis/client/javascript/externs/openLayers/ol3-ext/readme.txt b/client/javascript/externs/openLayers/ol3-ext/readme.txt similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol3-ext/readme.txt rename to client/javascript/externs/openLayers/ol3-ext/readme.txt diff --git a/src/vitis/client/javascript/externs/openLayers/ol3-ext/style/fonts/fontanc.def.js b/client/javascript/externs/openLayers/ol3-ext/style/fonts/fontanc.def.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol3-ext/style/fonts/fontanc.def.js rename to client/javascript/externs/openLayers/ol3-ext/style/fonts/fontanc.def.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol3-ext/style/fonts/fontawesome.def.js b/client/javascript/externs/openLayers/ol3-ext/style/fonts/fontawesome.def.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol3-ext/style/fonts/fontawesome.def.js rename to client/javascript/externs/openLayers/ol3-ext/style/fonts/fontawesome.def.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol3-ext/style/fonts/fontveremes.def.js b/client/javascript/externs/openLayers/ol3-ext/style/fonts/fontveremes.def.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol3-ext/style/fonts/fontveremes.def.js rename to client/javascript/externs/openLayers/ol3-ext/style/fonts/fontveremes.def.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol3-ext/style/fontsymbol.js b/client/javascript/externs/openLayers/ol3-ext/style/fontsymbol.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol3-ext/style/fontsymbol.js rename to client/javascript/externs/openLayers/ol3-ext/style/fontsymbol.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol3-ext/style/shadowstyle.js b/client/javascript/externs/openLayers/ol3-ext/style/shadowstyle.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol3-ext/style/shadowstyle.js rename to client/javascript/externs/openLayers/ol3-ext/style/shadowstyle.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol3-ext/utils/ol.ordering.js b/client/javascript/externs/openLayers/ol3-ext/utils/ol.ordering.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol3-ext/utils/ol.ordering.js rename to client/javascript/externs/openLayers/ol3-ext/utils/ol.ordering.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol3-veremes/mobilemodify.js b/client/javascript/externs/openLayers/ol3-veremes/mobilemodify.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol3-veremes/mobilemodify.js rename to client/javascript/externs/openLayers/ol3-veremes/mobilemodify.js diff --git a/src/vitis/client/javascript/externs/openLayers/ol3-veremes/ol.veremes.js b/client/javascript/externs/openLayers/ol3-veremes/ol.veremes.js similarity index 100% rename from src/vitis/client/javascript/externs/openLayers/ol3-veremes/ol.veremes.js rename to client/javascript/externs/openLayers/ol3-veremes/ol.veremes.js diff --git a/src/vitis/client/javascript/externs/rgraph/RGraph.bar_min.js b/client/javascript/externs/rgraph/RGraph.bar_min.js similarity index 100% rename from src/vitis/client/javascript/externs/rgraph/RGraph.bar_min.js rename to client/javascript/externs/rgraph/RGraph.bar_min.js diff --git a/src/vitis/client/javascript/externs/rgraph/RGraph.common.context_min.js b/client/javascript/externs/rgraph/RGraph.common.context_min.js similarity index 100% rename from src/vitis/client/javascript/externs/rgraph/RGraph.common.context_min.js rename to client/javascript/externs/rgraph/RGraph.common.context_min.js diff --git a/src/vitis/client/javascript/externs/rgraph/RGraph.common.core_min.js b/client/javascript/externs/rgraph/RGraph.common.core_min.js similarity index 100% rename from src/vitis/client/javascript/externs/rgraph/RGraph.common.core_min.js rename to client/javascript/externs/rgraph/RGraph.common.core_min.js diff --git a/src/vitis/client/javascript/externs/rgraph/RGraph.common.dynamic_min.js b/client/javascript/externs/rgraph/RGraph.common.dynamic_min.js similarity index 100% rename from src/vitis/client/javascript/externs/rgraph/RGraph.common.dynamic_min.js rename to client/javascript/externs/rgraph/RGraph.common.dynamic_min.js diff --git a/src/vitis/client/javascript/externs/rgraph/RGraph.common.effects_min.js b/client/javascript/externs/rgraph/RGraph.common.effects_min.js similarity index 100% rename from src/vitis/client/javascript/externs/rgraph/RGraph.common.effects_min.js rename to client/javascript/externs/rgraph/RGraph.common.effects_min.js diff --git a/src/vitis/client/javascript/externs/rgraph/RGraph.common.key_min.js b/client/javascript/externs/rgraph/RGraph.common.key_min.js similarity index 100% rename from src/vitis/client/javascript/externs/rgraph/RGraph.common.key_min.js rename to client/javascript/externs/rgraph/RGraph.common.key_min.js diff --git a/src/vitis/client/javascript/externs/rgraph/RGraph.common.tooltips_min.js b/client/javascript/externs/rgraph/RGraph.common.tooltips_min.js similarity index 100% rename from src/vitis/client/javascript/externs/rgraph/RGraph.common.tooltips_min.js rename to client/javascript/externs/rgraph/RGraph.common.tooltips_min.js diff --git a/src/vitis/client/javascript/externs/rgraph/RGraph.drawing.rect_min.js b/client/javascript/externs/rgraph/RGraph.drawing.rect_min.js similarity index 100% rename from src/vitis/client/javascript/externs/rgraph/RGraph.drawing.rect_min.js rename to client/javascript/externs/rgraph/RGraph.drawing.rect_min.js diff --git a/src/vitis/client/javascript/externs/rgraph/RGraph.drawing.text_min.js b/client/javascript/externs/rgraph/RGraph.drawing.text_min.js similarity index 100% rename from src/vitis/client/javascript/externs/rgraph/RGraph.drawing.text_min.js rename to client/javascript/externs/rgraph/RGraph.drawing.text_min.js diff --git a/src/vitis/client/javascript/externs/rgraph/RGraph.pie_min.js b/client/javascript/externs/rgraph/RGraph.pie_min.js similarity index 100% rename from src/vitis/client/javascript/externs/rgraph/RGraph.pie_min.js rename to client/javascript/externs/rgraph/RGraph.pie_min.js diff --git a/src/vitis/client/javascript/externs/rgraph/RGraph.scatter_min.js b/client/javascript/externs/rgraph/RGraph.scatter_min.js similarity index 100% rename from src/vitis/client/javascript/externs/rgraph/RGraph.scatter_min.js rename to client/javascript/externs/rgraph/RGraph.scatter_min.js diff --git a/src/vitis/client/javascript/externs/scripts_cryptage.js b/client/javascript/externs/scripts_cryptage.js similarity index 100% rename from src/vitis/client/javascript/externs/scripts_cryptage.js rename to client/javascript/externs/scripts_cryptage.js diff --git a/src/vitis/client/javascript/externs/showdown/showdown.js b/client/javascript/externs/showdown/showdown.js similarity index 100% rename from src/vitis/client/javascript/externs/showdown/showdown.js rename to client/javascript/externs/showdown/showdown.js diff --git a/src/vitis/client/javascript/externs/showdown/showdown.js.map b/client/javascript/externs/showdown/showdown.js.map similarity index 100% rename from src/vitis/client/javascript/externs/showdown/showdown.js.map rename to client/javascript/externs/showdown/showdown.js.map diff --git a/src/vitis/client/javascript/externs/showdown/showdown.min.js b/client/javascript/externs/showdown/showdown.min.js similarity index 100% rename from src/vitis/client/javascript/externs/showdown/showdown.min.js rename to client/javascript/externs/showdown/showdown.min.js diff --git a/src/vitis/client/javascript/externs/showdown/showdown.min.js.map b/client/javascript/externs/showdown/showdown.min.js.map similarity index 100% rename from src/vitis/client/javascript/externs/showdown/showdown.min.js.map rename to client/javascript/externs/showdown/showdown.min.js.map diff --git a/src/vitis/client/javascript/externs/studio/javascript/app/ElementForm.js b/client/javascript/externs/studio/javascript/app/ElementForm.js similarity index 100% rename from src/vitis/client/javascript/externs/studio/javascript/app/ElementForm.js rename to client/javascript/externs/studio/javascript/app/ElementForm.js diff --git a/src/vitis/client/javascript/externs/studio/javascript/app/FormBuilder.js b/client/javascript/externs/studio/javascript/app/FormBuilder.js similarity index 100% rename from src/vitis/client/javascript/externs/studio/javascript/app/FormBuilder.js rename to client/javascript/externs/studio/javascript/app/FormBuilder.js diff --git a/src/vitis/client/javascript/externs/studio/javascript/app/FormTools.js b/client/javascript/externs/studio/javascript/app/FormTools.js similarity index 100% rename from src/vitis/client/javascript/externs/studio/javascript/app/FormTools.js rename to client/javascript/externs/studio/javascript/app/FormTools.js diff --git a/src/vitis/client/javascript/externs/studio/javascript/app/JsonLoader.js b/client/javascript/externs/studio/javascript/app/JsonLoader.js similarity index 100% rename from src/vitis/client/javascript/externs/studio/javascript/app/JsonLoader.js rename to client/javascript/externs/studio/javascript/app/JsonLoader.js diff --git a/src/vitis/client/javascript/externs/studio/javascript/app/Utils.js b/client/javascript/externs/studio/javascript/app/Utils.js similarity index 100% rename from src/vitis/client/javascript/externs/studio/javascript/app/Utils.js rename to client/javascript/externs/studio/javascript/app/Utils.js diff --git a/src/vitis/client/javascript/externs/studio/javascript/app/Visualizer.js b/client/javascript/externs/studio/javascript/app/Visualizer.js similarity index 100% rename from src/vitis/client/javascript/externs/studio/javascript/app/Visualizer.js rename to client/javascript/externs/studio/javascript/app/Visualizer.js diff --git a/src/vitis/client/javascript/externs/studio/javascript/app/VisualizerMode/CssMode.js b/client/javascript/externs/studio/javascript/app/VisualizerMode/CssMode.js similarity index 100% rename from src/vitis/client/javascript/externs/studio/javascript/app/VisualizerMode/CssMode.js rename to client/javascript/externs/studio/javascript/app/VisualizerMode/CssMode.js diff --git a/src/vitis/client/javascript/externs/studio/javascript/app/VisualizerMode/FormMode.js b/client/javascript/externs/studio/javascript/app/VisualizerMode/FormMode.js similarity index 100% rename from src/vitis/client/javascript/externs/studio/javascript/app/VisualizerMode/FormMode.js rename to client/javascript/externs/studio/javascript/app/VisualizerMode/FormMode.js diff --git a/src/vitis/client/javascript/externs/studio/javascript/app/VisualizerMode/JsMode.js b/client/javascript/externs/studio/javascript/app/VisualizerMode/JsMode.js similarity index 100% rename from src/vitis/client/javascript/externs/studio/javascript/app/VisualizerMode/JsMode.js rename to client/javascript/externs/studio/javascript/app/VisualizerMode/JsMode.js diff --git a/src/vitis/client/javascript/externs/studio/javascript/app/VisualizerMode/JsonMode.js b/client/javascript/externs/studio/javascript/app/VisualizerMode/JsonMode.js similarity index 100% rename from src/vitis/client/javascript/externs/studio/javascript/app/VisualizerMode/JsonMode.js rename to client/javascript/externs/studio/javascript/app/VisualizerMode/JsonMode.js diff --git a/src/vitis/client/javascript/externs/studio/lang/lang-en.json b/client/javascript/externs/studio/lang/lang-en.json similarity index 100% rename from src/vitis/client/javascript/externs/studio/lang/lang-en.json rename to client/javascript/externs/studio/lang/lang-en.json diff --git a/src/vitis/client/javascript/externs/studio/lang/lang-fr.json b/client/javascript/externs/studio/lang/lang-fr.json similarity index 100% rename from src/vitis/client/javascript/externs/studio/lang/lang-fr.json rename to client/javascript/externs/studio/lang/lang-fr.json diff --git a/src/vitis/client/javascript/externs/studio/less/CodeMirror.less b/client/javascript/externs/studio/less/CodeMirror.less similarity index 100% rename from src/vitis/client/javascript/externs/studio/less/CodeMirror.less rename to client/javascript/externs/studio/less/CodeMirror.less diff --git a/src/vitis/client/javascript/externs/studio/less/studio.less b/client/javascript/externs/studio/less/studio.less similarity index 100% rename from src/vitis/client/javascript/externs/studio/less/studio.less rename to client/javascript/externs/studio/less/studio.less diff --git a/src/vitis/client/javascript/externs/studio/properties/properties.js b/client/javascript/externs/studio/properties/properties.js similarity index 100% rename from src/vitis/client/javascript/externs/studio/properties/properties.js rename to client/javascript/externs/studio/properties/properties.js diff --git a/src/vitis/client/javascript/externs/studio/templates/Componant/Map.html b/client/javascript/externs/studio/templates/Componant/Map.html similarity index 100% rename from src/vitis/client/javascript/externs/studio/templates/Componant/Map.html rename to client/javascript/externs/studio/templates/Componant/Map.html diff --git a/src/vitis/client/javascript/externs/studio/templates/ElementForm.html b/client/javascript/externs/studio/templates/ElementForm.html similarity index 100% rename from src/vitis/client/javascript/externs/studio/templates/ElementForm.html rename to client/javascript/externs/studio/templates/ElementForm.html diff --git a/src/vitis/client/javascript/externs/studio/templates/FormTools.html b/client/javascript/externs/studio/templates/FormTools.html similarity index 100% rename from src/vitis/client/javascript/externs/studio/templates/FormTools.html rename to client/javascript/externs/studio/templates/FormTools.html diff --git a/src/vitis/client/javascript/externs/studio/templates/JsonLoader.html b/client/javascript/externs/studio/templates/JsonLoader.html similarity index 100% rename from src/vitis/client/javascript/externs/studio/templates/JsonLoader.html rename to client/javascript/externs/studio/templates/JsonLoader.html diff --git a/src/vitis/client/javascript/externs/studio/templates/MainTemplate.html b/client/javascript/externs/studio/templates/MainTemplate.html similarity index 100% rename from src/vitis/client/javascript/externs/studio/templates/MainTemplate.html rename to client/javascript/externs/studio/templates/MainTemplate.html diff --git a/src/vitis/client/javascript/externs/studio/templates/Visualizer.html b/client/javascript/externs/studio/templates/Visualizer.html similarity index 100% rename from src/vitis/client/javascript/externs/studio/templates/Visualizer.html rename to client/javascript/externs/studio/templates/Visualizer.html diff --git a/src/vitis/client/javascript/externs/studio/templates/VisualizerMode/CssMode.html b/client/javascript/externs/studio/templates/VisualizerMode/CssMode.html similarity index 100% rename from src/vitis/client/javascript/externs/studio/templates/VisualizerMode/CssMode.html rename to client/javascript/externs/studio/templates/VisualizerMode/CssMode.html diff --git a/src/vitis/client/javascript/externs/studio/templates/VisualizerMode/FormMode.html b/client/javascript/externs/studio/templates/VisualizerMode/FormMode.html similarity index 100% rename from src/vitis/client/javascript/externs/studio/templates/VisualizerMode/FormMode.html rename to client/javascript/externs/studio/templates/VisualizerMode/FormMode.html diff --git a/src/vitis/client/javascript/externs/studio/templates/VisualizerMode/JsMode.html b/client/javascript/externs/studio/templates/VisualizerMode/JsMode.html similarity index 100% rename from src/vitis/client/javascript/externs/studio/templates/VisualizerMode/JsMode.html rename to client/javascript/externs/studio/templates/VisualizerMode/JsMode.html diff --git a/src/vitis/client/javascript/externs/studio/templates/VisualizerMode/JsonMode.html b/client/javascript/externs/studio/templates/VisualizerMode/JsonMode.html similarity index 100% rename from src/vitis/client/javascript/externs/studio/templates/VisualizerMode/JsonMode.html rename to client/javascript/externs/studio/templates/VisualizerMode/JsonMode.html diff --git a/src/vitis/client/javascript/externs/tinymce/LICENSE.TXT b/client/javascript/externs/tinymce/LICENSE.TXT similarity index 100% rename from src/vitis/client/javascript/externs/tinymce/LICENSE.TXT rename to client/javascript/externs/tinymce/LICENSE.TXT diff --git a/src/vitis/client/javascript/externs/tinymce/langs/fr_FR.js b/client/javascript/externs/tinymce/langs/fr_FR.js similarity index 100% rename from src/vitis/client/javascript/externs/tinymce/langs/fr_FR.js rename to client/javascript/externs/tinymce/langs/fr_FR.js diff --git a/src/vitis/client/javascript/externs/tinymce/plugins/image/plugin.min.js b/client/javascript/externs/tinymce/plugins/image/plugin.min.js similarity index 100% rename from src/vitis/client/javascript/externs/tinymce/plugins/image/plugin.min.js rename to client/javascript/externs/tinymce/plugins/image/plugin.min.js diff --git a/src/vitis/client/javascript/externs/tinymce/skins/lightgray/content.inline.min.css b/client/javascript/externs/tinymce/skins/lightgray/content.inline.min.css similarity index 100% rename from src/vitis/client/javascript/externs/tinymce/skins/lightgray/content.inline.min.css rename to client/javascript/externs/tinymce/skins/lightgray/content.inline.min.css diff --git a/src/vitis/client/javascript/externs/tinymce/skins/lightgray/content.min.css b/client/javascript/externs/tinymce/skins/lightgray/content.min.css similarity index 100% rename from src/vitis/client/javascript/externs/tinymce/skins/lightgray/content.min.css rename to client/javascript/externs/tinymce/skins/lightgray/content.min.css diff --git a/src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.eot b/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.eot similarity index 100% rename from src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.eot rename to client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.eot diff --git a/src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.svg b/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.svg similarity index 100% rename from src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.svg rename to client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.svg diff --git a/src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.ttf b/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.ttf similarity index 100% rename from src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.ttf rename to client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.ttf diff --git a/src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.woff b/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.woff similarity index 100% rename from src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.woff rename to client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce-small.woff diff --git a/src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.eot b/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.eot similarity index 100% rename from src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.eot rename to client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.eot diff --git a/src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.svg b/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.svg similarity index 100% rename from src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.svg rename to client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.svg diff --git a/src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.ttf b/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.ttf similarity index 100% rename from src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.ttf rename to client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.ttf diff --git a/src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.woff b/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.woff similarity index 100% rename from src/vitis/client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.woff rename to client/javascript/externs/tinymce/skins/lightgray/fonts/tinymce.woff diff --git a/src/vitis/client/javascript/externs/tinymce/skins/lightgray/img/anchor.gif b/client/javascript/externs/tinymce/skins/lightgray/img/anchor.gif similarity index 100% rename from src/vitis/client/javascript/externs/tinymce/skins/lightgray/img/anchor.gif rename to client/javascript/externs/tinymce/skins/lightgray/img/anchor.gif diff --git a/src/vitis/client/javascript/externs/tinymce/skins/lightgray/img/loader.gif b/client/javascript/externs/tinymce/skins/lightgray/img/loader.gif similarity index 100% rename from src/vitis/client/javascript/externs/tinymce/skins/lightgray/img/loader.gif rename to client/javascript/externs/tinymce/skins/lightgray/img/loader.gif diff --git a/src/vitis/client/javascript/externs/tinymce/skins/lightgray/img/object.gif b/client/javascript/externs/tinymce/skins/lightgray/img/object.gif similarity index 100% rename from src/vitis/client/javascript/externs/tinymce/skins/lightgray/img/object.gif rename to client/javascript/externs/tinymce/skins/lightgray/img/object.gif diff --git a/src/vitis/client/javascript/externs/tinymce/skins/lightgray/img/trans.gif b/client/javascript/externs/tinymce/skins/lightgray/img/trans.gif similarity index 100% rename from src/vitis/client/javascript/externs/tinymce/skins/lightgray/img/trans.gif rename to client/javascript/externs/tinymce/skins/lightgray/img/trans.gif diff --git a/src/vitis/client/javascript/externs/tinymce/skins/lightgray/skin.ie7.min.css b/client/javascript/externs/tinymce/skins/lightgray/skin.ie7.min.css similarity index 100% rename from src/vitis/client/javascript/externs/tinymce/skins/lightgray/skin.ie7.min.css rename to client/javascript/externs/tinymce/skins/lightgray/skin.ie7.min.css diff --git a/src/vitis/client/javascript/externs/tinymce/skins/lightgray/skin.min.css b/client/javascript/externs/tinymce/skins/lightgray/skin.min.css similarity index 100% rename from src/vitis/client/javascript/externs/tinymce/skins/lightgray/skin.min.css rename to client/javascript/externs/tinymce/skins/lightgray/skin.min.css diff --git a/src/vitis/client/javascript/externs/tinymce/themes/modern/theme.min.js b/client/javascript/externs/tinymce/themes/modern/theme.min.js similarity index 100% rename from src/vitis/client/javascript/externs/tinymce/themes/modern/theme.min.js rename to client/javascript/externs/tinymce/themes/modern/theme.min.js diff --git a/src/vitis/client/javascript/externs/tinymce/tinymce.min.js b/client/javascript/externs/tinymce/tinymce.min.js similarity index 100% rename from src/vitis/client/javascript/externs/tinymce/tinymce.min.js rename to client/javascript/externs/tinymce/tinymce.min.js diff --git a/src/vitis/client/javascript/externs/underscore-min.js b/client/javascript/externs/underscore-min.js similarity index 100% rename from src/vitis/client/javascript/externs/underscore-min.js rename to client/javascript/externs/underscore-min.js diff --git a/src/vitis/client/javascript/externs/underscore.js b/client/javascript/externs/underscore.js similarity index 100% rename from src/vitis/client/javascript/externs/underscore.js rename to client/javascript/externs/underscore.js diff --git a/src/vitis/client/javascript/externs/viewer/Apache-License-2.0.txt b/client/javascript/externs/viewer/Apache-License-2.0.txt similarity index 100% rename from src/vitis/client/javascript/externs/viewer/Apache-License-2.0.txt rename to client/javascript/externs/viewer/Apache-License-2.0.txt diff --git a/src/vitis/client/javascript/externs/viewer/viewer.min.js b/client/javascript/externs/viewer/viewer.min.js similarity index 100% rename from src/vitis/client/javascript/externs/viewer/viewer.min.js rename to client/javascript/externs/viewer/viewer.min.js diff --git a/src/vitis/client/javascript/require/requireVitis.js b/client/javascript/require/requireVitis.js similarity index 100% rename from src/vitis/client/javascript/require/requireVitis.js rename to client/javascript/require/requireVitis.js diff --git a/src/vitis/client/javascript/test/e2e/Output/order/htmlReport.html b/client/javascript/test/e2e/Output/order/htmlReport.html similarity index 100% rename from src/vitis/client/javascript/test/e2e/Output/order/htmlReport.html rename to client/javascript/test/e2e/Output/order/htmlReport.html diff --git a/src/vitis/client/javascript/test/e2e/Output/order/images/1fe7143891469e980d1fcca05a66b3a2.png b/client/javascript/test/e2e/Output/order/images/1fe7143891469e980d1fcca05a66b3a2.png similarity index 100% rename from src/vitis/client/javascript/test/e2e/Output/order/images/1fe7143891469e980d1fcca05a66b3a2.png rename to client/javascript/test/e2e/Output/order/images/1fe7143891469e980d1fcca05a66b3a2.png diff --git a/src/vitis/client/javascript/test/e2e/Output/order/images/22a14751fa17bd62335ee88ba6c6f9e6.png b/client/javascript/test/e2e/Output/order/images/22a14751fa17bd62335ee88ba6c6f9e6.png similarity index 100% rename from src/vitis/client/javascript/test/e2e/Output/order/images/22a14751fa17bd62335ee88ba6c6f9e6.png rename to client/javascript/test/e2e/Output/order/images/22a14751fa17bd62335ee88ba6c6f9e6.png diff --git a/src/vitis/client/javascript/test/e2e/Output/order/images/286dc054fdb1ed4e3c1a14730da91fe3.png b/client/javascript/test/e2e/Output/order/images/286dc054fdb1ed4e3c1a14730da91fe3.png similarity index 100% rename from src/vitis/client/javascript/test/e2e/Output/order/images/286dc054fdb1ed4e3c1a14730da91fe3.png rename to client/javascript/test/e2e/Output/order/images/286dc054fdb1ed4e3c1a14730da91fe3.png diff --git a/src/vitis/client/javascript/test/e2e/Output/order/images/446e6e12b1a4a349745acaa42b1fd65d.png b/client/javascript/test/e2e/Output/order/images/446e6e12b1a4a349745acaa42b1fd65d.png similarity index 100% rename from src/vitis/client/javascript/test/e2e/Output/order/images/446e6e12b1a4a349745acaa42b1fd65d.png rename to client/javascript/test/e2e/Output/order/images/446e6e12b1a4a349745acaa42b1fd65d.png diff --git a/src/vitis/client/javascript/test/e2e/Output/order/images/4e6851a1377af65074210820d5903ea4.png b/client/javascript/test/e2e/Output/order/images/4e6851a1377af65074210820d5903ea4.png similarity index 100% rename from src/vitis/client/javascript/test/e2e/Output/order/images/4e6851a1377af65074210820d5903ea4.png rename to client/javascript/test/e2e/Output/order/images/4e6851a1377af65074210820d5903ea4.png diff --git a/src/vitis/client/javascript/test/e2e/Output/order/images/52280521fa920cd916802fa7bf0752c1.png b/client/javascript/test/e2e/Output/order/images/52280521fa920cd916802fa7bf0752c1.png similarity index 100% rename from src/vitis/client/javascript/test/e2e/Output/order/images/52280521fa920cd916802fa7bf0752c1.png rename to client/javascript/test/e2e/Output/order/images/52280521fa920cd916802fa7bf0752c1.png diff --git a/src/vitis/client/javascript/test/e2e/Output/order/images/565819f55fb9493820b1f462eb1469af.png b/client/javascript/test/e2e/Output/order/images/565819f55fb9493820b1f462eb1469af.png similarity index 100% rename from src/vitis/client/javascript/test/e2e/Output/order/images/565819f55fb9493820b1f462eb1469af.png rename to client/javascript/test/e2e/Output/order/images/565819f55fb9493820b1f462eb1469af.png diff --git a/src/vitis/client/javascript/test/e2e/Output/order/images/5ef9ed38ebad6379a04897ec6f383aeb.png b/client/javascript/test/e2e/Output/order/images/5ef9ed38ebad6379a04897ec6f383aeb.png similarity index 100% rename from src/vitis/client/javascript/test/e2e/Output/order/images/5ef9ed38ebad6379a04897ec6f383aeb.png rename to client/javascript/test/e2e/Output/order/images/5ef9ed38ebad6379a04897ec6f383aeb.png diff --git a/src/vitis/client/javascript/test/e2e/Output/order/images/6c0be7e24610a0144c94df2e1c691718.png b/client/javascript/test/e2e/Output/order/images/6c0be7e24610a0144c94df2e1c691718.png similarity index 100% rename from src/vitis/client/javascript/test/e2e/Output/order/images/6c0be7e24610a0144c94df2e1c691718.png rename to client/javascript/test/e2e/Output/order/images/6c0be7e24610a0144c94df2e1c691718.png diff --git a/src/vitis/client/javascript/test/e2e/Output/order/images/85bd21280813079f2797df7a66b953ec.png b/client/javascript/test/e2e/Output/order/images/85bd21280813079f2797df7a66b953ec.png similarity index 100% rename from src/vitis/client/javascript/test/e2e/Output/order/images/85bd21280813079f2797df7a66b953ec.png rename to client/javascript/test/e2e/Output/order/images/85bd21280813079f2797df7a66b953ec.png diff --git a/src/vitis/client/javascript/test/e2e/Output/order/images/9d224f9d204337458fa46ab0f4b4a3f9.png b/client/javascript/test/e2e/Output/order/images/9d224f9d204337458fa46ab0f4b4a3f9.png similarity index 100% rename from src/vitis/client/javascript/test/e2e/Output/order/images/9d224f9d204337458fa46ab0f4b4a3f9.png rename to client/javascript/test/e2e/Output/order/images/9d224f9d204337458fa46ab0f4b4a3f9.png diff --git a/src/vitis/client/javascript/test/e2e/Output/order/images/a971981cadcc1dafd26000f39ea8a68a.png b/client/javascript/test/e2e/Output/order/images/a971981cadcc1dafd26000f39ea8a68a.png similarity index 100% rename from src/vitis/client/javascript/test/e2e/Output/order/images/a971981cadcc1dafd26000f39ea8a68a.png rename to client/javascript/test/e2e/Output/order/images/a971981cadcc1dafd26000f39ea8a68a.png diff --git a/src/vitis/client/javascript/test/e2e/Output/order/images/aa05ad4c25af482047fb6ea3951a4ed9.png b/client/javascript/test/e2e/Output/order/images/aa05ad4c25af482047fb6ea3951a4ed9.png similarity index 100% rename from src/vitis/client/javascript/test/e2e/Output/order/images/aa05ad4c25af482047fb6ea3951a4ed9.png rename to client/javascript/test/e2e/Output/order/images/aa05ad4c25af482047fb6ea3951a4ed9.png diff --git a/src/vitis/client/javascript/test/e2e/Output/order/images/cb30486ebf3bd7f9aaa687cc51e07134.png b/client/javascript/test/e2e/Output/order/images/cb30486ebf3bd7f9aaa687cc51e07134.png similarity index 100% rename from src/vitis/client/javascript/test/e2e/Output/order/images/cb30486ebf3bd7f9aaa687cc51e07134.png rename to client/javascript/test/e2e/Output/order/images/cb30486ebf3bd7f9aaa687cc51e07134.png diff --git a/src/vitis/client/javascript/test/e2e/Output/order/images/d236806b20deffd8ce0f6393acda549e.png b/client/javascript/test/e2e/Output/order/images/d236806b20deffd8ce0f6393acda549e.png similarity index 100% rename from src/vitis/client/javascript/test/e2e/Output/order/images/d236806b20deffd8ce0f6393acda549e.png rename to client/javascript/test/e2e/Output/order/images/d236806b20deffd8ce0f6393acda549e.png diff --git a/src/vitis/client/javascript/test/e2e/Output/order/images/e11cf5a8b029208fb74fb66c82acc314.png b/client/javascript/test/e2e/Output/order/images/e11cf5a8b029208fb74fb66c82acc314.png similarity index 100% rename from src/vitis/client/javascript/test/e2e/Output/order/images/e11cf5a8b029208fb74fb66c82acc314.png rename to client/javascript/test/e2e/Output/order/images/e11cf5a8b029208fb74fb66c82acc314.png diff --git a/src/vitis/client/javascript/test/e2e/Output/order/images/fd3ebf7f15da963e0243b0763ccf4888.png b/client/javascript/test/e2e/Output/order/images/fd3ebf7f15da963e0243b0763ccf4888.png similarity index 100% rename from src/vitis/client/javascript/test/e2e/Output/order/images/fd3ebf7f15da963e0243b0763ccf4888.png rename to client/javascript/test/e2e/Output/order/images/fd3ebf7f15da963e0243b0763ccf4888.png diff --git a/src/vitis/client/javascript/test/e2e/Output/publication/htmlReport.html b/client/javascript/test/e2e/Output/publication/htmlReport.html similarity index 100% rename from src/vitis/client/javascript/test/e2e/Output/publication/htmlReport.html rename to client/javascript/test/e2e/Output/publication/htmlReport.html diff --git a/src/vitis/client/javascript/test/e2e/Output/publication/images/1a593987e7ca4240d8dfa7d6611b79e7.png b/client/javascript/test/e2e/Output/publication/images/1a593987e7ca4240d8dfa7d6611b79e7.png similarity index 100% rename from src/vitis/client/javascript/test/e2e/Output/publication/images/1a593987e7ca4240d8dfa7d6611b79e7.png rename to client/javascript/test/e2e/Output/publication/images/1a593987e7ca4240d8dfa7d6611b79e7.png diff --git a/src/vitis/client/javascript/test/e2e/Output/publication/images/29ff6bceadd409d2da0d4e1ffe3146ec.png b/client/javascript/test/e2e/Output/publication/images/29ff6bceadd409d2da0d4e1ffe3146ec.png similarity index 100% rename from src/vitis/client/javascript/test/e2e/Output/publication/images/29ff6bceadd409d2da0d4e1ffe3146ec.png rename to client/javascript/test/e2e/Output/publication/images/29ff6bceadd409d2da0d4e1ffe3146ec.png diff --git a/src/vitis/client/javascript/test/e2e/Output/publication/images/31d7ecf9dd49ad85104ef4b491582c27.png b/client/javascript/test/e2e/Output/publication/images/31d7ecf9dd49ad85104ef4b491582c27.png similarity index 100% rename from src/vitis/client/javascript/test/e2e/Output/publication/images/31d7ecf9dd49ad85104ef4b491582c27.png rename to client/javascript/test/e2e/Output/publication/images/31d7ecf9dd49ad85104ef4b491582c27.png diff --git a/src/vitis/client/javascript/test/e2e/Output/publication/images/3d588c2cc178ebbc6085fdbac873049b.png b/client/javascript/test/e2e/Output/publication/images/3d588c2cc178ebbc6085fdbac873049b.png similarity index 100% rename from src/vitis/client/javascript/test/e2e/Output/publication/images/3d588c2cc178ebbc6085fdbac873049b.png rename to client/javascript/test/e2e/Output/publication/images/3d588c2cc178ebbc6085fdbac873049b.png diff --git a/src/vitis/client/javascript/test/e2e/Output/publication/images/66864911363c5dfa802360f4cd169d15.png b/client/javascript/test/e2e/Output/publication/images/66864911363c5dfa802360f4cd169d15.png similarity index 100% rename from src/vitis/client/javascript/test/e2e/Output/publication/images/66864911363c5dfa802360f4cd169d15.png rename to client/javascript/test/e2e/Output/publication/images/66864911363c5dfa802360f4cd169d15.png diff --git a/src/vitis/client/javascript/test/e2e/Output/publication/images/71acb5849026bc31c2e1a3efaf750c8c.png b/client/javascript/test/e2e/Output/publication/images/71acb5849026bc31c2e1a3efaf750c8c.png similarity index 100% rename from src/vitis/client/javascript/test/e2e/Output/publication/images/71acb5849026bc31c2e1a3efaf750c8c.png rename to client/javascript/test/e2e/Output/publication/images/71acb5849026bc31c2e1a3efaf750c8c.png diff --git a/src/vitis/client/javascript/test/e2e/Output/publication/images/859d507231ab559be0caa350c33361b0.png b/client/javascript/test/e2e/Output/publication/images/859d507231ab559be0caa350c33361b0.png similarity index 100% rename from src/vitis/client/javascript/test/e2e/Output/publication/images/859d507231ab559be0caa350c33361b0.png rename to client/javascript/test/e2e/Output/publication/images/859d507231ab559be0caa350c33361b0.png diff --git a/src/vitis/client/javascript/test/e2e/Output/publication/images/9bbbcfee24b1eeadfe4cbebce3d68f37.png b/client/javascript/test/e2e/Output/publication/images/9bbbcfee24b1eeadfe4cbebce3d68f37.png similarity index 100% rename from src/vitis/client/javascript/test/e2e/Output/publication/images/9bbbcfee24b1eeadfe4cbebce3d68f37.png rename to client/javascript/test/e2e/Output/publication/images/9bbbcfee24b1eeadfe4cbebce3d68f37.png diff --git a/src/vitis/client/javascript/test/e2e/Output/publication/images/ac9d916cef66cf3b0c6dc04361fc8c7a.png b/client/javascript/test/e2e/Output/publication/images/ac9d916cef66cf3b0c6dc04361fc8c7a.png similarity index 100% rename from src/vitis/client/javascript/test/e2e/Output/publication/images/ac9d916cef66cf3b0c6dc04361fc8c7a.png rename to client/javascript/test/e2e/Output/publication/images/ac9d916cef66cf3b0c6dc04361fc8c7a.png diff --git a/src/vitis/client/javascript/test/e2e/Output/publication/images/b9c0bafaae0a695509eb679f32d7bbc4.png b/client/javascript/test/e2e/Output/publication/images/b9c0bafaae0a695509eb679f32d7bbc4.png similarity index 100% rename from src/vitis/client/javascript/test/e2e/Output/publication/images/b9c0bafaae0a695509eb679f32d7bbc4.png rename to client/javascript/test/e2e/Output/publication/images/b9c0bafaae0a695509eb679f32d7bbc4.png diff --git a/src/vitis/client/javascript/test/e2e/Output/publication/images/b9ddfa35957bf67b37ae22b31d8d2467.png b/client/javascript/test/e2e/Output/publication/images/b9ddfa35957bf67b37ae22b31d8d2467.png similarity index 100% rename from src/vitis/client/javascript/test/e2e/Output/publication/images/b9ddfa35957bf67b37ae22b31d8d2467.png rename to client/javascript/test/e2e/Output/publication/images/b9ddfa35957bf67b37ae22b31d8d2467.png diff --git a/src/vitis/client/javascript/test/e2e/Output/publication/images/c4beb465fd449624d359f3471d6ee4c1.png b/client/javascript/test/e2e/Output/publication/images/c4beb465fd449624d359f3471d6ee4c1.png similarity index 100% rename from src/vitis/client/javascript/test/e2e/Output/publication/images/c4beb465fd449624d359f3471d6ee4c1.png rename to client/javascript/test/e2e/Output/publication/images/c4beb465fd449624d359f3471d6ee4c1.png diff --git a/src/vitis/client/javascript/test/e2e/Output/publication/images/d044896b4c0e135963e4cc03d2381d56.png b/client/javascript/test/e2e/Output/publication/images/d044896b4c0e135963e4cc03d2381d56.png similarity index 100% rename from src/vitis/client/javascript/test/e2e/Output/publication/images/d044896b4c0e135963e4cc03d2381d56.png rename to client/javascript/test/e2e/Output/publication/images/d044896b4c0e135963e4cc03d2381d56.png diff --git a/src/vitis/client/javascript/test/e2e/Output/publication/images/e0eec7bfffe9f6b747cb85db357889a0.png b/client/javascript/test/e2e/Output/publication/images/e0eec7bfffe9f6b747cb85db357889a0.png similarity index 100% rename from src/vitis/client/javascript/test/e2e/Output/publication/images/e0eec7bfffe9f6b747cb85db357889a0.png rename to client/javascript/test/e2e/Output/publication/images/e0eec7bfffe9f6b747cb85db357889a0.png diff --git a/src/vitis/client/javascript/test/e2e/Output/publication/images/e589e1728c06bfa8de1a8a9ce5a24b4d.png b/client/javascript/test/e2e/Output/publication/images/e589e1728c06bfa8de1a8a9ce5a24b4d.png similarity index 100% rename from src/vitis/client/javascript/test/e2e/Output/publication/images/e589e1728c06bfa8de1a8a9ce5a24b4d.png rename to client/javascript/test/e2e/Output/publication/images/e589e1728c06bfa8de1a8a9ce5a24b4d.png diff --git a/src/vitis/client/javascript/test/e2e/Output/publication/images/e630b1b432c5ec391a0625040a7b7ba8.png b/client/javascript/test/e2e/Output/publication/images/e630b1b432c5ec391a0625040a7b7ba8.png similarity index 100% rename from src/vitis/client/javascript/test/e2e/Output/publication/images/e630b1b432c5ec391a0625040a7b7ba8.png rename to client/javascript/test/e2e/Output/publication/images/e630b1b432c5ec391a0625040a7b7ba8.png diff --git a/src/vitis/client/javascript/test/e2e/Output/publication/images/ff2cdf03ef3a270449425608d47b23a0.png b/client/javascript/test/e2e/Output/publication/images/ff2cdf03ef3a270449425608d47b23a0.png similarity index 100% rename from src/vitis/client/javascript/test/e2e/Output/publication/images/ff2cdf03ef3a270449425608d47b23a0.png rename to client/javascript/test/e2e/Output/publication/images/ff2cdf03ef3a270449425608d47b23a0.png diff --git a/src/vitis/client/javascript/test/e2e/VeremesTest.js b/client/javascript/test/e2e/VeremesTest.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/VeremesTest.js rename to client/javascript/test/e2e/VeremesTest.js diff --git a/src/vitis/client/javascript/test/e2e/cu_vitis_abonnement.bat b/client/javascript/test/e2e/cu_vitis_abonnement.bat similarity index 100% rename from src/vitis/client/javascript/test/e2e/cu_vitis_abonnement.bat rename to client/javascript/test/e2e/cu_vitis_abonnement.bat diff --git a/src/vitis/client/javascript/test/e2e/cu_vitis_ad.bat b/client/javascript/test/e2e/cu_vitis_ad.bat similarity index 100% rename from src/vitis/client/javascript/test/e2e/cu_vitis_ad.bat rename to client/javascript/test/e2e/cu_vitis_ad.bat diff --git a/src/vitis/client/javascript/test/e2e/cu_vitis_categorie.bat b/client/javascript/test/e2e/cu_vitis_categorie.bat similarity index 100% rename from src/vitis/client/javascript/test/e2e/cu_vitis_categorie.bat rename to client/javascript/test/e2e/cu_vitis_categorie.bat diff --git a/src/vitis/client/javascript/test/e2e/cu_vitis_depot.bat b/client/javascript/test/e2e/cu_vitis_depot.bat similarity index 100% rename from src/vitis/client/javascript/test/e2e/cu_vitis_depot.bat rename to client/javascript/test/e2e/cu_vitis_depot.bat diff --git a/src/vitis/client/javascript/test/e2e/cu_vitis_fichiers_interdits.bat b/client/javascript/test/e2e/cu_vitis_fichiers_interdits.bat similarity index 100% rename from src/vitis/client/javascript/test/e2e/cu_vitis_fichiers_interdits.bat rename to client/javascript/test/e2e/cu_vitis_fichiers_interdits.bat diff --git a/src/vitis/client/javascript/test/e2e/cu_vitis_filter.bat b/client/javascript/test/e2e/cu_vitis_filter.bat similarity index 100% rename from src/vitis/client/javascript/test/e2e/cu_vitis_filter.bat rename to client/javascript/test/e2e/cu_vitis_filter.bat diff --git a/src/vitis/client/javascript/test/e2e/cu_vitis_formulaire.bat b/client/javascript/test/e2e/cu_vitis_formulaire.bat similarity index 100% rename from src/vitis/client/javascript/test/e2e/cu_vitis_formulaire.bat rename to client/javascript/test/e2e/cu_vitis_formulaire.bat diff --git a/src/vitis/client/javascript/test/e2e/cu_vitis_import_export.bat b/client/javascript/test/e2e/cu_vitis_import_export.bat similarity index 100% rename from src/vitis/client/javascript/test/e2e/cu_vitis_import_export.bat rename to client/javascript/test/e2e/cu_vitis_import_export.bat diff --git a/src/vitis/client/javascript/test/e2e/cu_vitis_ip.bat b/client/javascript/test/e2e/cu_vitis_ip.bat similarity index 100% rename from src/vitis/client/javascript/test/e2e/cu_vitis_ip.bat rename to client/javascript/test/e2e/cu_vitis_ip.bat diff --git a/src/vitis/client/javascript/test/e2e/cu_vitis_lot.bat b/client/javascript/test/e2e/cu_vitis_lot.bat similarity index 100% rename from src/vitis/client/javascript/test/e2e/cu_vitis_lot.bat rename to client/javascript/test/e2e/cu_vitis_lot.bat diff --git a/src/vitis/client/javascript/test/e2e/cu_vitis_metadata.bat b/client/javascript/test/e2e/cu_vitis_metadata.bat similarity index 100% rename from src/vitis/client/javascript/test/e2e/cu_vitis_metadata.bat rename to client/javascript/test/e2e/cu_vitis_metadata.bat diff --git a/src/vitis/client/javascript/test/e2e/cu_vitis_moteurs.bat b/client/javascript/test/e2e/cu_vitis_moteurs.bat similarity index 100% rename from src/vitis/client/javascript/test/e2e/cu_vitis_moteurs.bat rename to client/javascript/test/e2e/cu_vitis_moteurs.bat diff --git a/src/vitis/client/javascript/test/e2e/cu_vitis_order.bat b/client/javascript/test/e2e/cu_vitis_order.bat similarity index 100% rename from src/vitis/client/javascript/test/e2e/cu_vitis_order.bat rename to client/javascript/test/e2e/cu_vitis_order.bat diff --git a/src/vitis/client/javascript/test/e2e/cu_vitis_publication.bat b/client/javascript/test/e2e/cu_vitis_publication.bat similarity index 100% rename from src/vitis/client/javascript/test/e2e/cu_vitis_publication.bat rename to client/javascript/test/e2e/cu_vitis_publication.bat diff --git a/src/vitis/client/javascript/test/e2e/cu_vitis_unicite.bat b/client/javascript/test/e2e/cu_vitis_unicite.bat similarity index 100% rename from src/vitis/client/javascript/test/e2e/cu_vitis_unicite.bat rename to client/javascript/test/e2e/cu_vitis_unicite.bat diff --git a/src/vitis/client/javascript/test/e2e/cu_vitis_upload.bat b/client/javascript/test/e2e/cu_vitis_upload.bat similarity index 100% rename from src/vitis/client/javascript/test/e2e/cu_vitis_upload.bat rename to client/javascript/test/e2e/cu_vitis_upload.bat diff --git a/src/vitis/client/javascript/test/e2e/cu_vitis_upload_fmw.bat b/client/javascript/test/e2e/cu_vitis_upload_fmw.bat similarity index 100% rename from src/vitis/client/javascript/test/e2e/cu_vitis_upload_fmw.bat rename to client/javascript/test/e2e/cu_vitis_upload_fmw.bat diff --git a/src/vitis/client/javascript/test/e2e/cu_vitis_upload_zip.bat b/client/javascript/test/e2e/cu_vitis_upload_zip.bat similarity index 100% rename from src/vitis/client/javascript/test/e2e/cu_vitis_upload_zip.bat rename to client/javascript/test/e2e/cu_vitis_upload_zip.bat diff --git a/src/vitis/client/javascript/test/e2e/cu_vitis_user_existant.bat b/client/javascript/test/e2e/cu_vitis_user_existant.bat similarity index 100% rename from src/vitis/client/javascript/test/e2e/cu_vitis_user_existant.bat rename to client/javascript/test/e2e/cu_vitis_user_existant.bat diff --git a/src/vitis/client/javascript/test/e2e/cu_vitis_users.bat b/client/javascript/test/e2e/cu_vitis_users.bat similarity index 100% rename from src/vitis/client/javascript/test/e2e/cu_vitis_users.bat rename to client/javascript/test/e2e/cu_vitis_users.bat diff --git a/src/vitis/client/javascript/test/e2e/cu_vitis_users_linux.bat b/client/javascript/test/e2e/cu_vitis_users_linux.bat similarity index 100% rename from src/vitis/client/javascript/test/e2e/cu_vitis_users_linux.bat rename to client/javascript/test/e2e/cu_vitis_users_linux.bat diff --git a/src/vitis/client/javascript/test/e2e/cu_vitis_users_speciaux.bat b/client/javascript/test/e2e/cu_vitis_users_speciaux.bat similarity index 100% rename from src/vitis/client/javascript/test/e2e/cu_vitis_users_speciaux.bat rename to client/javascript/test/e2e/cu_vitis_users_speciaux.bat diff --git a/src/vitis/client/javascript/test/e2e/cu_vitis_verrouillage_projet.bat b/client/javascript/test/e2e/cu_vitis_verrouillage_projet.bat similarity index 100% rename from src/vitis/client/javascript/test/e2e/cu_vitis_verrouillage_projet.bat rename to client/javascript/test/e2e/cu_vitis_verrouillage_projet.bat diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/.npmignore b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/.npmignore similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/.npmignore rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/.npmignore diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/README.md b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/README.md similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/README.md rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/README.md diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/index.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/index.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/index.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/index.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/.bin/mkdirp b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/.bin/mkdirp similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/.bin/mkdirp rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/.bin/mkdirp diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/.bin/mkdirp.cmd b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/.bin/mkdirp.cmd similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/.bin/mkdirp.cmd rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/.bin/mkdirp.cmd diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/README.markdown b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/README.markdown similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/README.markdown rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/README.markdown diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/example/hat.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/example/hat.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/example/hat.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/example/hat.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/example/rack.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/example/rack.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/example/rack.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/example/rack.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/index.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/index.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/index.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/index.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/package.json b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/package.json similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/package.json rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/package.json diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/test/id.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/test/id.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/test/id.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/test/id.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/test/rack.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/test/rack.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/test/rack.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/hat/test/rack.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/LICENSE b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/LICENSE similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/LICENSE rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/LICENSE diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/README.md b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/README.md similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/README.md rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/README.md diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/chunk.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/chunk.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/chunk.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/chunk.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/compact.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/compact.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/compact.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/compact.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/difference.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/difference.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/difference.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/difference.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/drop.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/drop.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/drop.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/drop.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/dropRight.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/dropRight.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/dropRight.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/dropRight.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/dropRightWhile.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/dropRightWhile.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/dropRightWhile.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/dropRightWhile.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/dropWhile.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/dropWhile.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/dropWhile.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/dropWhile.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/fill.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/fill.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/fill.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/fill.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/findIndex.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/findIndex.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/findIndex.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/findIndex.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/findLastIndex.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/findLastIndex.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/findLastIndex.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/findLastIndex.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/first.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/first.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/first.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/first.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/flatten.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/flatten.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/flatten.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/flatten.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/flattenDeep.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/flattenDeep.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/flattenDeep.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/flattenDeep.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/head.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/head.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/head.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/head.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/indexOf.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/indexOf.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/indexOf.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/indexOf.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/initial.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/initial.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/initial.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/initial.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/intersection.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/intersection.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/intersection.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/intersection.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/last.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/last.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/last.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/last.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/lastIndexOf.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/lastIndexOf.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/lastIndexOf.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/lastIndexOf.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/object.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/object.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/object.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/object.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/pull.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/pull.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/pull.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/pull.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/pullAt.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/pullAt.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/pullAt.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/pullAt.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/remove.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/remove.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/remove.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/remove.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/rest.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/rest.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/rest.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/rest.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/slice.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/slice.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/slice.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/slice.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/sortedIndex.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/sortedIndex.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/sortedIndex.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/sortedIndex.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/sortedLastIndex.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/sortedLastIndex.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/sortedLastIndex.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/sortedLastIndex.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/tail.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/tail.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/tail.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/tail.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/take.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/take.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/take.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/take.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/takeRight.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/takeRight.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/takeRight.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/takeRight.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/takeRightWhile.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/takeRightWhile.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/takeRightWhile.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/takeRightWhile.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/takeWhile.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/takeWhile.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/takeWhile.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/takeWhile.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/union.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/union.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/union.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/union.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/uniq.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/uniq.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/uniq.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/uniq.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/unique.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/unique.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/unique.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/unique.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/unzip.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/unzip.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/unzip.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/unzip.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/unzipWith.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/unzipWith.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/unzipWith.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/unzipWith.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/without.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/without.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/without.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/without.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/xor.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/xor.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/xor.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/xor.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/zip.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/zip.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/zip.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/zip.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/zipObject.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/zipObject.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/zipObject.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/zipObject.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/zipWith.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/zipWith.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/zipWith.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/array/zipWith.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/chain.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/chain.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/chain.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/chain.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/commit.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/commit.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/commit.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/commit.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/concat.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/concat.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/concat.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/concat.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/lodash.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/lodash.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/lodash.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/lodash.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/plant.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/plant.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/plant.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/plant.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/reverse.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/reverse.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/reverse.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/reverse.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/run.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/run.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/run.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/run.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/tap.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/tap.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/tap.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/tap.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/thru.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/thru.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/thru.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/thru.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/toJSON.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/toJSON.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/toJSON.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/toJSON.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/toString.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/toString.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/toString.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/toString.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/value.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/value.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/value.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/value.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/valueOf.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/valueOf.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/valueOf.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/valueOf.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperChain.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperChain.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperChain.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperChain.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperCommit.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperCommit.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperCommit.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperCommit.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperConcat.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperConcat.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperConcat.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperConcat.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperPlant.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperPlant.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperPlant.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperPlant.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperReverse.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperReverse.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperReverse.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperReverse.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperToString.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperToString.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperToString.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperToString.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperValue.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperValue.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperValue.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/chain/wrapperValue.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/all.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/all.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/all.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/all.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/any.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/any.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/any.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/any.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/at.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/at.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/at.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/at.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/collect.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/collect.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/collect.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/collect.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/contains.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/contains.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/contains.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/contains.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/countBy.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/countBy.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/countBy.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/countBy.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/detect.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/detect.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/detect.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/detect.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/each.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/each.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/each.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/each.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/eachRight.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/eachRight.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/eachRight.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/eachRight.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/every.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/every.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/every.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/every.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/filter.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/filter.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/filter.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/filter.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/find.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/find.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/find.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/find.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/findLast.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/findLast.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/findLast.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/findLast.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/findWhere.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/findWhere.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/findWhere.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/findWhere.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/foldl.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/foldl.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/foldl.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/foldl.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/foldr.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/foldr.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/foldr.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/foldr.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/forEach.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/forEach.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/forEach.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/forEach.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/forEachRight.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/forEachRight.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/forEachRight.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/forEachRight.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/groupBy.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/groupBy.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/groupBy.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/groupBy.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/include.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/include.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/include.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/include.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/includes.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/includes.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/includes.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/includes.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/indexBy.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/indexBy.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/indexBy.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/indexBy.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/inject.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/inject.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/inject.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/inject.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/invoke.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/invoke.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/invoke.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/invoke.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/map.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/map.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/map.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/map.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/max.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/max.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/max.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/max.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/min.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/min.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/min.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/min.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/partition.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/partition.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/partition.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/partition.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/pluck.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/pluck.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/pluck.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/pluck.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/reduce.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/reduce.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/reduce.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/reduce.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/reduceRight.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/reduceRight.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/reduceRight.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/reduceRight.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/reject.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/reject.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/reject.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/reject.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sample.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sample.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sample.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sample.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/select.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/select.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/select.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/select.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/shuffle.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/shuffle.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/shuffle.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/shuffle.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/size.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/size.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/size.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/size.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/some.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/some.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/some.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/some.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sortBy.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sortBy.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sortBy.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sortBy.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sortByAll.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sortByAll.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sortByAll.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sortByAll.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sortByOrder.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sortByOrder.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sortByOrder.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sortByOrder.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sum.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sum.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sum.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/sum.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/where.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/where.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/where.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/collection/where.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/date.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/date.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/date.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/date.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/date/now.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/date/now.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/date/now.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/date/now.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/after.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/after.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/after.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/after.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/ary.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/ary.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/ary.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/ary.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/backflow.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/backflow.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/backflow.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/backflow.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/before.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/before.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/before.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/before.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/bind.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/bind.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/bind.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/bind.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/bindAll.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/bindAll.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/bindAll.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/bindAll.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/bindKey.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/bindKey.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/bindKey.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/bindKey.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/compose.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/compose.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/compose.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/compose.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/curry.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/curry.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/curry.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/curry.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/curryRight.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/curryRight.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/curryRight.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/curryRight.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/debounce.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/debounce.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/debounce.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/debounce.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/defer.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/defer.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/defer.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/defer.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/delay.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/delay.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/delay.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/delay.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/flow.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/flow.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/flow.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/flow.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/flowRight.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/flowRight.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/flowRight.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/flowRight.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/memoize.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/memoize.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/memoize.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/memoize.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/modArgs.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/modArgs.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/modArgs.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/modArgs.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/negate.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/negate.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/negate.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/negate.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/once.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/once.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/once.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/once.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/partial.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/partial.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/partial.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/partial.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/partialRight.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/partialRight.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/partialRight.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/partialRight.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/rearg.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/rearg.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/rearg.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/rearg.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/restParam.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/restParam.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/restParam.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/restParam.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/spread.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/spread.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/spread.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/spread.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/throttle.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/throttle.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/throttle.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/throttle.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/wrap.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/wrap.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/wrap.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/function/wrap.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/index.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/index.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/index.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/index.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/LazyWrapper.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/LazyWrapper.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/LazyWrapper.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/LazyWrapper.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/LodashWrapper.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/LodashWrapper.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/LodashWrapper.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/LodashWrapper.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/MapCache.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/MapCache.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/MapCache.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/MapCache.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/SetCache.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/SetCache.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/SetCache.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/SetCache.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayConcat.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayConcat.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayConcat.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayConcat.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayCopy.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayCopy.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayCopy.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayCopy.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayEach.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayEach.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayEach.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayEach.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayEachRight.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayEachRight.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayEachRight.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayEachRight.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayEvery.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayEvery.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayEvery.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayEvery.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayExtremum.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayExtremum.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayExtremum.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayExtremum.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayFilter.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayFilter.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayFilter.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayFilter.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayMap.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayMap.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayMap.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayMap.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayPush.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayPush.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayPush.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayPush.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayReduce.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayReduce.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayReduce.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayReduce.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayReduceRight.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayReduceRight.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayReduceRight.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arrayReduceRight.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arraySome.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arraySome.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arraySome.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arraySome.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arraySum.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arraySum.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arraySum.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/arraySum.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/assignDefaults.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/assignDefaults.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/assignDefaults.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/assignDefaults.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/assignOwnDefaults.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/assignOwnDefaults.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/assignOwnDefaults.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/assignOwnDefaults.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/assignWith.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/assignWith.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/assignWith.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/assignWith.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseAssign.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseAssign.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseAssign.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseAssign.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseAt.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseAt.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseAt.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseAt.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCallback.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCallback.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCallback.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCallback.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseClone.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseClone.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseClone.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseClone.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCompareAscending.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCompareAscending.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCompareAscending.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCompareAscending.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCopy.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCopy.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCopy.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCopy.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCreate.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCreate.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCreate.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseCreate.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseDelay.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseDelay.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseDelay.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseDelay.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseDifference.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseDifference.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseDifference.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseDifference.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseEach.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseEach.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseEach.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseEach.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseEachRight.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseEachRight.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseEachRight.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseEachRight.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseEvery.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseEvery.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseEvery.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseEvery.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseExtremum.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseExtremum.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseExtremum.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseExtremum.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFill.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFill.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFill.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFill.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFilter.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFilter.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFilter.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFilter.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFind.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFind.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFind.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFind.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFindIndex.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFindIndex.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFindIndex.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFindIndex.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFlatten.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFlatten.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFlatten.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFlatten.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFor.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFor.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFor.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFor.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForIn.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForIn.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForIn.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForIn.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForOwn.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForOwn.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForOwn.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForOwn.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForOwnRight.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForOwnRight.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForOwnRight.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForOwnRight.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForRight.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForRight.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForRight.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseForRight.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFunctions.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFunctions.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFunctions.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseFunctions.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseGet.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseGet.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseGet.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseGet.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIndexOf.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIndexOf.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIndexOf.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIndexOf.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsEqual.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsEqual.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsEqual.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsEqual.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsEqualDeep.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsEqualDeep.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsEqualDeep.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsEqualDeep.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsFunction.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsFunction.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsFunction.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsFunction.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsMatch.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsMatch.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsMatch.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseIsMatch.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseLodash.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseLodash.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseLodash.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseLodash.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMap.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMap.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMap.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMap.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMatches.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMatches.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMatches.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMatches.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMatchesProperty.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMatchesProperty.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMatchesProperty.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMatchesProperty.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMerge.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMerge.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMerge.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMerge.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMergeDeep.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMergeDeep.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMergeDeep.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseMergeDeep.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseProperty.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseProperty.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseProperty.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseProperty.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/basePropertyDeep.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/basePropertyDeep.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/basePropertyDeep.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/basePropertyDeep.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/basePullAt.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/basePullAt.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/basePullAt.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/basePullAt.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseRandom.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseRandom.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseRandom.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseRandom.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseReduce.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseReduce.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseReduce.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseReduce.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSetData.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSetData.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSetData.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSetData.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSlice.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSlice.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSlice.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSlice.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSome.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSome.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSome.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSome.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSortBy.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSortBy.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSortBy.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSortBy.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSortByOrder.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSortByOrder.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSortByOrder.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSortByOrder.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSum.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSum.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSum.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseSum.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseToString.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseToString.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseToString.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseToString.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseUniq.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseUniq.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseUniq.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseUniq.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseValues.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseValues.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseValues.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseValues.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseWhile.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseWhile.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseWhile.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseWhile.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseWrapperValue.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseWrapperValue.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseWrapperValue.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/baseWrapperValue.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/binaryIndex.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/binaryIndex.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/binaryIndex.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/binaryIndex.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/binaryIndexBy.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/binaryIndexBy.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/binaryIndexBy.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/binaryIndexBy.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/bindCallback.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/bindCallback.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/bindCallback.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/bindCallback.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/bufferClone.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/bufferClone.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/bufferClone.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/bufferClone.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/cacheIndexOf.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/cacheIndexOf.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/cacheIndexOf.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/cacheIndexOf.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/cachePush.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/cachePush.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/cachePush.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/cachePush.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/charsLeftIndex.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/charsLeftIndex.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/charsLeftIndex.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/charsLeftIndex.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/charsRightIndex.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/charsRightIndex.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/charsRightIndex.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/charsRightIndex.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/compareAscending.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/compareAscending.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/compareAscending.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/compareAscending.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/compareMultiple.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/compareMultiple.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/compareMultiple.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/compareMultiple.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/composeArgs.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/composeArgs.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/composeArgs.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/composeArgs.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/composeArgsRight.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/composeArgsRight.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/composeArgsRight.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/composeArgsRight.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createAggregator.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createAggregator.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createAggregator.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createAggregator.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createAssigner.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createAssigner.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createAssigner.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createAssigner.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createBaseEach.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createBaseEach.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createBaseEach.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createBaseEach.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createBaseFor.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createBaseFor.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createBaseFor.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createBaseFor.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createBindWrapper.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createBindWrapper.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createBindWrapper.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createBindWrapper.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCache.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCache.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCache.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCache.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCompounder.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCompounder.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCompounder.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCompounder.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCtorWrapper.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCtorWrapper.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCtorWrapper.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCtorWrapper.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCurry.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCurry.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCurry.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createCurry.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createDefaults.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createDefaults.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createDefaults.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createDefaults.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createExtremum.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createExtremum.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createExtremum.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createExtremum.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFind.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFind.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFind.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFind.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFindIndex.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFindIndex.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFindIndex.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFindIndex.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFindKey.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFindKey.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFindKey.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFindKey.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFlow.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFlow.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFlow.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createFlow.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createForEach.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createForEach.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createForEach.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createForEach.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createForIn.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createForIn.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createForIn.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createForIn.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createForOwn.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createForOwn.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createForOwn.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createForOwn.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createHybridWrapper.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createHybridWrapper.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createHybridWrapper.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createHybridWrapper.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createObjectMapper.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createObjectMapper.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createObjectMapper.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createObjectMapper.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPadDir.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPadDir.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPadDir.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPadDir.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPadding.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPadding.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPadding.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPadding.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPartial.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPartial.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPartial.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPartial.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPartialWrapper.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPartialWrapper.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPartialWrapper.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createPartialWrapper.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createReduce.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createReduce.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createReduce.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createReduce.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createRound.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createRound.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createRound.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createRound.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createSortedIndex.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createSortedIndex.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createSortedIndex.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createSortedIndex.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createWrapper.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createWrapper.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createWrapper.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/createWrapper.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/deburrLetter.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/deburrLetter.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/deburrLetter.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/deburrLetter.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/equalArrays.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/equalArrays.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/equalArrays.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/equalArrays.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/equalByTag.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/equalByTag.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/equalByTag.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/equalByTag.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/equalObjects.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/equalObjects.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/equalObjects.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/equalObjects.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/escapeHtmlChar.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/escapeHtmlChar.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/escapeHtmlChar.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/escapeHtmlChar.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/escapeRegExpChar.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/escapeRegExpChar.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/escapeRegExpChar.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/escapeRegExpChar.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/escapeStringChar.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/escapeStringChar.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/escapeStringChar.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/escapeStringChar.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getData.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getData.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getData.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getData.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getFuncName.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getFuncName.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getFuncName.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getFuncName.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getLength.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getLength.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getLength.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getLength.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getMatchData.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getMatchData.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getMatchData.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getMatchData.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getNative.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getNative.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getNative.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getNative.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getView.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getView.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getView.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/getView.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/indexOfNaN.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/indexOfNaN.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/indexOfNaN.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/indexOfNaN.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/initCloneArray.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/initCloneArray.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/initCloneArray.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/initCloneArray.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/initCloneByTag.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/initCloneByTag.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/initCloneByTag.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/initCloneByTag.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/initCloneObject.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/initCloneObject.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/initCloneObject.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/initCloneObject.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/invokePath.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/invokePath.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/invokePath.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/invokePath.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isArrayLike.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isArrayLike.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isArrayLike.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isArrayLike.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isIndex.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isIndex.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isIndex.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isIndex.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isIterateeCall.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isIterateeCall.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isIterateeCall.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isIterateeCall.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isKey.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isKey.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isKey.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isKey.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isLaziable.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isLaziable.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isLaziable.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isLaziable.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isLength.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isLength.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isLength.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isLength.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isObjectLike.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isObjectLike.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isObjectLike.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isObjectLike.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isSpace.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isSpace.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isSpace.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isSpace.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isStrictComparable.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isStrictComparable.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isStrictComparable.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/isStrictComparable.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/lazyClone.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/lazyClone.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/lazyClone.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/lazyClone.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/lazyReverse.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/lazyReverse.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/lazyReverse.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/lazyReverse.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/lazyValue.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/lazyValue.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/lazyValue.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/lazyValue.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapDelete.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapDelete.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapDelete.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapDelete.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapGet.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapGet.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapGet.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapGet.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapHas.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapHas.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapHas.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapHas.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapSet.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapSet.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapSet.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mapSet.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mergeData.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mergeData.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mergeData.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mergeData.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mergeDefaults.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mergeDefaults.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mergeDefaults.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/mergeDefaults.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/metaMap.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/metaMap.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/metaMap.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/metaMap.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/pickByArray.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/pickByArray.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/pickByArray.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/pickByArray.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/pickByCallback.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/pickByCallback.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/pickByCallback.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/pickByCallback.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reEscape.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reEscape.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reEscape.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reEscape.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reEvaluate.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reEvaluate.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reEvaluate.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reEvaluate.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reInterpolate.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reInterpolate.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reInterpolate.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reInterpolate.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/realNames.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/realNames.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/realNames.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/realNames.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reorder.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reorder.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reorder.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/reorder.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/replaceHolders.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/replaceHolders.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/replaceHolders.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/replaceHolders.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/setData.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/setData.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/setData.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/setData.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/shimKeys.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/shimKeys.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/shimKeys.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/shimKeys.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/sortedUniq.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/sortedUniq.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/sortedUniq.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/sortedUniq.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/toIterable.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/toIterable.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/toIterable.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/toIterable.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/toObject.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/toObject.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/toObject.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/toObject.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/toPath.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/toPath.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/toPath.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/toPath.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/trimmedLeftIndex.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/trimmedLeftIndex.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/trimmedLeftIndex.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/trimmedLeftIndex.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/trimmedRightIndex.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/trimmedRightIndex.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/trimmedRightIndex.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/trimmedRightIndex.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/unescapeHtmlChar.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/unescapeHtmlChar.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/unescapeHtmlChar.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/unescapeHtmlChar.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/wrapperClone.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/wrapperClone.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/wrapperClone.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/internal/wrapperClone.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/clone.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/clone.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/clone.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/clone.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/cloneDeep.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/cloneDeep.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/cloneDeep.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/cloneDeep.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/eq.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/eq.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/eq.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/eq.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/gt.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/gt.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/gt.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/gt.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/gte.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/gte.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/gte.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/gte.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isArguments.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isArguments.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isArguments.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isArguments.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isArray.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isArray.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isArray.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isArray.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isBoolean.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isBoolean.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isBoolean.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isBoolean.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isDate.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isDate.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isDate.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isDate.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isElement.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isElement.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isElement.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isElement.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isEmpty.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isEmpty.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isEmpty.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isEmpty.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isEqual.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isEqual.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isEqual.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isEqual.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isError.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isError.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isError.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isError.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isFinite.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isFinite.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isFinite.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isFinite.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isFunction.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isFunction.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isFunction.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isFunction.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isMatch.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isMatch.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isMatch.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isMatch.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNaN.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNaN.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNaN.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNaN.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNative.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNative.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNative.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNative.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNull.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNull.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNull.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNull.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNumber.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNumber.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNumber.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isNumber.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isObject.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isObject.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isObject.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isObject.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isPlainObject.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isPlainObject.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isPlainObject.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isPlainObject.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isRegExp.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isRegExp.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isRegExp.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isRegExp.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isString.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isString.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isString.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isString.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isTypedArray.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isTypedArray.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isTypedArray.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isTypedArray.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isUndefined.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isUndefined.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isUndefined.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/isUndefined.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/lt.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/lt.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/lt.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/lt.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/lte.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/lte.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/lte.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/lte.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/toArray.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/toArray.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/toArray.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/toArray.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/toPlainObject.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/toPlainObject.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/toPlainObject.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/lang/toPlainObject.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/add.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/add.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/add.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/add.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/ceil.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/ceil.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/ceil.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/ceil.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/floor.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/floor.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/floor.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/floor.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/max.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/max.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/max.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/max.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/min.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/min.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/min.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/min.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/round.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/round.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/round.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/round.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/sum.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/sum.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/sum.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/math/sum.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/number.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/number.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/number.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/number.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/number/inRange.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/number/inRange.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/number/inRange.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/number/inRange.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/number/random.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/number/random.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/number/random.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/number/random.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/assign.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/assign.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/assign.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/assign.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/create.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/create.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/create.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/create.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/defaults.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/defaults.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/defaults.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/defaults.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/defaultsDeep.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/defaultsDeep.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/defaultsDeep.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/defaultsDeep.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/extend.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/extend.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/extend.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/extend.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/findKey.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/findKey.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/findKey.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/findKey.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/findLastKey.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/findLastKey.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/findLastKey.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/findLastKey.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forIn.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forIn.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forIn.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forIn.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forInRight.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forInRight.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forInRight.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forInRight.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forOwn.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forOwn.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forOwn.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forOwn.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forOwnRight.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forOwnRight.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forOwnRight.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/forOwnRight.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/functions.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/functions.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/functions.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/functions.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/get.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/get.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/get.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/get.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/has.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/has.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/has.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/has.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/invert.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/invert.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/invert.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/invert.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/keys.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/keys.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/keys.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/keys.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/keysIn.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/keysIn.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/keysIn.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/keysIn.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/mapKeys.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/mapKeys.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/mapKeys.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/mapKeys.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/mapValues.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/mapValues.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/mapValues.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/mapValues.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/merge.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/merge.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/merge.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/merge.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/methods.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/methods.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/methods.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/methods.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/omit.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/omit.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/omit.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/omit.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/pairs.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/pairs.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/pairs.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/pairs.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/pick.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/pick.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/pick.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/pick.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/result.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/result.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/result.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/result.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/set.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/set.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/set.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/set.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/transform.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/transform.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/transform.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/transform.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/values.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/values.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/values.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/values.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/valuesIn.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/valuesIn.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/valuesIn.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/object/valuesIn.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/package.json b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/package.json similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/package.json rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/package.json diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/camelCase.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/camelCase.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/camelCase.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/camelCase.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/capitalize.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/capitalize.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/capitalize.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/capitalize.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/deburr.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/deburr.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/deburr.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/deburr.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/endsWith.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/endsWith.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/endsWith.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/endsWith.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/escape.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/escape.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/escape.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/escape.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/escapeRegExp.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/escapeRegExp.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/escapeRegExp.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/escapeRegExp.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/kebabCase.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/kebabCase.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/kebabCase.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/kebabCase.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/pad.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/pad.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/pad.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/pad.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/padLeft.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/padLeft.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/padLeft.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/padLeft.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/padRight.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/padRight.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/padRight.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/padRight.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/parseInt.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/parseInt.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/parseInt.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/parseInt.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/repeat.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/repeat.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/repeat.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/repeat.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/snakeCase.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/snakeCase.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/snakeCase.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/snakeCase.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/startCase.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/startCase.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/startCase.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/startCase.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/startsWith.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/startsWith.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/startsWith.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/startsWith.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/template.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/template.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/template.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/template.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/templateSettings.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/templateSettings.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/templateSettings.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/templateSettings.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trim.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trim.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trim.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trim.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trimLeft.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trimLeft.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trimLeft.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trimLeft.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trimRight.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trimRight.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trimRight.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trimRight.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trunc.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trunc.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trunc.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/trunc.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/unescape.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/unescape.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/unescape.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/unescape.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/words.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/words.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/words.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/string/words.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/support.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/support.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/support.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/support.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/attempt.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/attempt.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/attempt.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/attempt.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/callback.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/callback.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/callback.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/callback.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/constant.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/constant.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/constant.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/constant.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/identity.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/identity.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/identity.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/identity.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/iteratee.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/iteratee.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/iteratee.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/iteratee.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/matches.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/matches.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/matches.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/matches.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/matchesProperty.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/matchesProperty.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/matchesProperty.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/matchesProperty.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/method.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/method.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/method.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/method.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/methodOf.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/methodOf.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/methodOf.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/methodOf.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/mixin.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/mixin.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/mixin.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/mixin.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/noop.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/noop.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/noop.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/noop.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/property.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/property.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/property.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/property.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/propertyOf.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/propertyOf.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/propertyOf.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/propertyOf.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/range.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/range.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/range.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/range.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/times.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/times.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/times.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/times.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/uniqueId.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/uniqueId.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/uniqueId.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/lodash/utility/uniqueId.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/.travis.yml b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/.travis.yml similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/.travis.yml rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/.travis.yml diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/LICENSE b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/LICENSE similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/LICENSE rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/LICENSE diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/bin/cmd.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/bin/cmd.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/bin/cmd.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/bin/cmd.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/bin/usage.txt b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/bin/usage.txt similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/bin/usage.txt rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/bin/usage.txt diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/examples/pow.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/examples/pow.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/examples/pow.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/examples/pow.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/index.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/index.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/index.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/index.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/.travis.yml b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/.travis.yml similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/.travis.yml rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/.travis.yml diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/LICENSE b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/LICENSE similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/LICENSE rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/LICENSE diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/example/parse.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/example/parse.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/example/parse.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/example/parse.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/index.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/index.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/index.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/index.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/package.json b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/package.json similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/package.json rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/package.json diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/readme.markdown b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/readme.markdown similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/readme.markdown rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/readme.markdown diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/dash.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/dash.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/dash.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/dash.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/default_bool.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/default_bool.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/default_bool.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/default_bool.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/dotted.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/dotted.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/dotted.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/dotted.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/long.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/long.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/long.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/long.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/parse.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/parse.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/parse.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/parse.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/parse_modified.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/parse_modified.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/parse_modified.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/parse_modified.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/short.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/short.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/short.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/short.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/whitespace.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/whitespace.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/whitespace.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/node_modules/minimist/test/whitespace.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/package.json b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/package.json similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/package.json rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/package.json diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/readme.markdown b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/readme.markdown similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/readme.markdown rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/readme.markdown diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/chmod.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/chmod.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/chmod.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/chmod.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/clobber.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/clobber.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/clobber.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/clobber.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/mkdirp.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/mkdirp.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/mkdirp.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/mkdirp.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/opts_fs.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/opts_fs.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/opts_fs.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/opts_fs.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/opts_fs_sync.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/opts_fs_sync.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/opts_fs_sync.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/opts_fs_sync.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/perm.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/perm.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/perm.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/perm.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/perm_sync.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/perm_sync.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/perm_sync.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/perm_sync.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/race.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/race.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/race.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/race.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/rel.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/rel.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/rel.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/rel.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/return.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/return.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/return.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/return.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/return_sync.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/return_sync.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/return_sync.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/return_sync.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/root.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/root.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/root.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/root.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/sync.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/sync.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/sync.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/sync.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/umask.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/umask.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/umask.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/umask.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/umask_sync.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/umask_sync.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/umask_sync.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/mkdirp/test/umask_sync.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/LICENSE-MIT.txt b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/LICENSE-MIT.txt similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/LICENSE-MIT.txt rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/LICENSE-MIT.txt diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/README.md b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/README.md similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/README.md rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/README.md diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/package.json b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/package.json similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/package.json rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/package.json diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/startswith.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/startswith.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/startswith.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/node_modules/string.prototype.startswith/startswith.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/package.json b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/package.json similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/package.json rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/package.json diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/protractor.config.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/protractor.config.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/protractor.config.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/protractor.config.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/template.html b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/template.html similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/template.html rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/template.html diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/test/test2Spec.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/test/test2Spec.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/test/test2Spec.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/test/test2Spec.js diff --git a/src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/test/testSpec.js b/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/test/testSpec.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/test/testSpec.js rename to client/javascript/test/e2e/node_module/protractor-jasmine2-html-reporter/test/testSpec.js diff --git a/src/vitis/client/javascript/test/e2e/protractor.conf.abonnement.js b/client/javascript/test/e2e/protractor.conf.abonnement.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/protractor.conf.abonnement.js rename to client/javascript/test/e2e/protractor.conf.abonnement.js diff --git a/src/vitis/client/javascript/test/e2e/protractor.conf.ad.js b/client/javascript/test/e2e/protractor.conf.ad.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/protractor.conf.ad.js rename to client/javascript/test/e2e/protractor.conf.ad.js diff --git a/src/vitis/client/javascript/test/e2e/protractor.conf.categorie.js b/client/javascript/test/e2e/protractor.conf.categorie.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/protractor.conf.categorie.js rename to client/javascript/test/e2e/protractor.conf.categorie.js diff --git a/src/vitis/client/javascript/test/e2e/protractor.conf.depot.js b/client/javascript/test/e2e/protractor.conf.depot.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/protractor.conf.depot.js rename to client/javascript/test/e2e/protractor.conf.depot.js diff --git a/src/vitis/client/javascript/test/e2e/protractor.conf.fichiers_interdits.js b/client/javascript/test/e2e/protractor.conf.fichiers_interdits.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/protractor.conf.fichiers_interdits.js rename to client/javascript/test/e2e/protractor.conf.fichiers_interdits.js diff --git a/src/vitis/client/javascript/test/e2e/protractor.conf.filter.js b/client/javascript/test/e2e/protractor.conf.filter.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/protractor.conf.filter.js rename to client/javascript/test/e2e/protractor.conf.filter.js diff --git a/src/vitis/client/javascript/test/e2e/protractor.conf.formulaire.js b/client/javascript/test/e2e/protractor.conf.formulaire.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/protractor.conf.formulaire.js rename to client/javascript/test/e2e/protractor.conf.formulaire.js diff --git a/src/vitis/client/javascript/test/e2e/protractor.conf.import.export.js b/client/javascript/test/e2e/protractor.conf.import.export.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/protractor.conf.import.export.js rename to client/javascript/test/e2e/protractor.conf.import.export.js diff --git a/src/vitis/client/javascript/test/e2e/protractor.conf.ip.js b/client/javascript/test/e2e/protractor.conf.ip.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/protractor.conf.ip.js rename to client/javascript/test/e2e/protractor.conf.ip.js diff --git a/src/vitis/client/javascript/test/e2e/protractor.conf.js b/client/javascript/test/e2e/protractor.conf.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/protractor.conf.js rename to client/javascript/test/e2e/protractor.conf.js diff --git a/src/vitis/client/javascript/test/e2e/protractor.conf.lot.js b/client/javascript/test/e2e/protractor.conf.lot.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/protractor.conf.lot.js rename to client/javascript/test/e2e/protractor.conf.lot.js diff --git a/src/vitis/client/javascript/test/e2e/protractor.conf.metada.js b/client/javascript/test/e2e/protractor.conf.metada.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/protractor.conf.metada.js rename to client/javascript/test/e2e/protractor.conf.metada.js diff --git a/src/vitis/client/javascript/test/e2e/protractor.conf.metadata.js b/client/javascript/test/e2e/protractor.conf.metadata.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/protractor.conf.metadata.js rename to client/javascript/test/e2e/protractor.conf.metadata.js diff --git a/src/vitis/client/javascript/test/e2e/protractor.conf.moteurs.js b/client/javascript/test/e2e/protractor.conf.moteurs.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/protractor.conf.moteurs.js rename to client/javascript/test/e2e/protractor.conf.moteurs.js diff --git a/src/vitis/client/javascript/test/e2e/protractor.conf.order.js b/client/javascript/test/e2e/protractor.conf.order.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/protractor.conf.order.js rename to client/javascript/test/e2e/protractor.conf.order.js diff --git a/src/vitis/client/javascript/test/e2e/protractor.conf.publication.js b/client/javascript/test/e2e/protractor.conf.publication.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/protractor.conf.publication.js rename to client/javascript/test/e2e/protractor.conf.publication.js diff --git a/src/vitis/client/javascript/test/e2e/protractor.conf.unicite.js b/client/javascript/test/e2e/protractor.conf.unicite.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/protractor.conf.unicite.js rename to client/javascript/test/e2e/protractor.conf.unicite.js diff --git a/src/vitis/client/javascript/test/e2e/protractor.conf.upload.js b/client/javascript/test/e2e/protractor.conf.upload.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/protractor.conf.upload.js rename to client/javascript/test/e2e/protractor.conf.upload.js diff --git a/src/vitis/client/javascript/test/e2e/protractor.conf.upload_fmw.js b/client/javascript/test/e2e/protractor.conf.upload_fmw.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/protractor.conf.upload_fmw.js rename to client/javascript/test/e2e/protractor.conf.upload_fmw.js diff --git a/src/vitis/client/javascript/test/e2e/protractor.conf.upload_zip.js b/client/javascript/test/e2e/protractor.conf.upload_zip.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/protractor.conf.upload_zip.js rename to client/javascript/test/e2e/protractor.conf.upload_zip.js diff --git a/src/vitis/client/javascript/test/e2e/protractor.conf.user_existant.js b/client/javascript/test/e2e/protractor.conf.user_existant.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/protractor.conf.user_existant.js rename to client/javascript/test/e2e/protractor.conf.user_existant.js diff --git a/src/vitis/client/javascript/test/e2e/protractor.conf.users.js b/client/javascript/test/e2e/protractor.conf.users.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/protractor.conf.users.js rename to client/javascript/test/e2e/protractor.conf.users.js diff --git a/src/vitis/client/javascript/test/e2e/protractor.conf.users_speciaux.js b/client/javascript/test/e2e/protractor.conf.users_speciaux.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/protractor.conf.users_speciaux.js rename to client/javascript/test/e2e/protractor.conf.users_speciaux.js diff --git a/src/vitis/client/javascript/test/e2e/protractor.conf.users_speciaux.linux.js b/client/javascript/test/e2e/protractor.conf.users_speciaux.linux.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/protractor.conf.users_speciaux.linux.js rename to client/javascript/test/e2e/protractor.conf.users_speciaux.linux.js diff --git a/src/vitis/client/javascript/test/e2e/protractor.conf.verrouillage_projet.js b/client/javascript/test/e2e/protractor.conf.verrouillage_projet.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/protractor.conf.verrouillage_projet.js rename to client/javascript/test/e2e/protractor.conf.verrouillage_projet.js diff --git a/src/vitis/client/javascript/test/e2e/resource/DATE.gex b/client/javascript/test/e2e/resource/DATE.gex similarity index 100% rename from src/vitis/client/javascript/test/e2e/resource/DATE.gex rename to client/javascript/test/e2e/resource/DATE.gex diff --git a/src/vitis/client/javascript/test/e2e/resource/DPT.DBF b/client/javascript/test/e2e/resource/DPT.DBF similarity index 100% rename from src/vitis/client/javascript/test/e2e/resource/DPT.DBF rename to client/javascript/test/e2e/resource/DPT.DBF diff --git a/src/vitis/client/javascript/test/e2e/resource/DPT.SHP b/client/javascript/test/e2e/resource/DPT.SHP similarity index 100% rename from src/vitis/client/javascript/test/e2e/resource/DPT.SHP rename to client/javascript/test/e2e/resource/DPT.SHP diff --git a/src/vitis/client/javascript/test/e2e/resource/DPT.SHX b/client/javascript/test/e2e/resource/DPT.SHX similarity index 100% rename from src/vitis/client/javascript/test/e2e/resource/DPT.SHX rename to client/javascript/test/e2e/resource/DPT.SHX diff --git a/src/vitis/client/javascript/test/e2e/resource/DPT.prj b/client/javascript/test/e2e/resource/DPT.prj similarity index 100% rename from src/vitis/client/javascript/test/e2e/resource/DPT.prj rename to client/javascript/test/e2e/resource/DPT.prj diff --git a/src/vitis/client/javascript/test/e2e/resource/DPT.zip b/client/javascript/test/e2e/resource/DPT.zip similarity index 100% rename from src/vitis/client/javascript/test/e2e/resource/DPT.zip rename to client/javascript/test/e2e/resource/DPT.zip diff --git a/src/vitis/client/javascript/test/e2e/resource/choix_multiple.fmw b/client/javascript/test/e2e/resource/choix_multiple.fmw similarity index 100% rename from src/vitis/client/javascript/test/e2e/resource/choix_multiple.fmw rename to client/javascript/test/e2e/resource/choix_multiple.fmw diff --git a/src/vitis/client/javascript/test/e2e/resource/choix_multiple.log b/client/javascript/test/e2e/resource/choix_multiple.log similarity index 100% rename from src/vitis/client/javascript/test/e2e/resource/choix_multiple.log rename to client/javascript/test/e2e/resource/choix_multiple.log diff --git a/src/vitis/client/javascript/test/e2e/resource/controle_quali.gex b/client/javascript/test/e2e/resource/controle_quali.gex similarity index 100% rename from src/vitis/client/javascript/test/e2e/resource/controle_quali.gex rename to client/javascript/test/e2e/resource/controle_quali.gex diff --git a/src/vitis/client/javascript/test/e2e/resource/dep dep.zip b/client/javascript/test/e2e/resource/dep dep.zip similarity index 100% rename from src/vitis/client/javascript/test/e2e/resource/dep dep.zip rename to client/javascript/test/e2e/resource/dep dep.zip diff --git a/src/vitis/client/javascript/test/e2e/resource/depts.zip b/client/javascript/test/e2e/resource/depts.zip similarity index 100% rename from src/vitis/client/javascript/test/e2e/resource/depts.zip rename to client/javascript/test/e2e/resource/depts.zip diff --git a/src/vitis/client/javascript/test/e2e/resource/dpt2.dbf b/client/javascript/test/e2e/resource/dpt2.dbf similarity index 100% rename from src/vitis/client/javascript/test/e2e/resource/dpt2.dbf rename to client/javascript/test/e2e/resource/dpt2.dbf diff --git a/src/vitis/client/javascript/test/e2e/resource/dpt2.prj b/client/javascript/test/e2e/resource/dpt2.prj similarity index 100% rename from src/vitis/client/javascript/test/e2e/resource/dpt2.prj rename to client/javascript/test/e2e/resource/dpt2.prj diff --git a/src/vitis/client/javascript/test/e2e/resource/dpt2.shp b/client/javascript/test/e2e/resource/dpt2.shp similarity index 100% rename from src/vitis/client/javascript/test/e2e/resource/dpt2.shp rename to client/javascript/test/e2e/resource/dpt2.shp diff --git a/src/vitis/client/javascript/test/e2e/resource/dpt2.shx b/client/javascript/test/e2e/resource/dpt2.shx similarity index 100% rename from src/vitis/client/javascript/test/e2e/resource/dpt2.shx rename to client/javascript/test/e2e/resource/dpt2.shx diff --git a/src/vitis/client/javascript/test/e2e/resource/dpt2.zip b/client/javascript/test/e2e/resource/dpt2.zip similarity index 100% rename from src/vitis/client/javascript/test/e2e/resource/dpt2.zip rename to client/javascript/test/e2e/resource/dpt2.zip diff --git "a/src/vitis/client/javascript/test/e2e/resource/d\303\251p.zip" "b/client/javascript/test/e2e/resource/d\303\251p.zip" similarity index 100% rename from "src/vitis/client/javascript/test/e2e/resource/d\303\251p.zip" rename to "client/javascript/test/e2e/resource/d\303\251p.zip" diff --git a/src/vitis/client/javascript/test/e2e/resource/ee aa.fmw b/client/javascript/test/e2e/resource/ee aa.fmw similarity index 100% rename from src/vitis/client/javascript/test/e2e/resource/ee aa.fmw rename to client/javascript/test/e2e/resource/ee aa.fmw diff --git a/src/vitis/client/javascript/test/e2e/resource/exemples.gex b/client/javascript/test/e2e/resource/exemples.gex similarity index 100% rename from src/vitis/client/javascript/test/e2e/resource/exemples.gex rename to client/javascript/test/e2e/resource/exemples.gex diff --git "a/src/vitis/client/javascript/test/e2e/resource/extraction_geofla_par_d\303\251partement.gex" "b/client/javascript/test/e2e/resource/extraction_geofla_par_d\303\251partement.gex" similarity index 100% rename from "src/vitis/client/javascript/test/e2e/resource/extraction_geofla_par_d\303\251partement.gex" rename to "client/javascript/test/e2e/resource/extraction_geofla_par_d\303\251partement.gex" diff --git a/src/vitis/client/javascript/test/e2e/resource/import_export.gex b/client/javascript/test/e2e/resource/import_export.gex similarity index 100% rename from src/vitis/client/javascript/test/e2e/resource/import_export.gex rename to client/javascript/test/e2e/resource/import_export.gex diff --git a/src/vitis/client/javascript/test/e2e/resource/import_export2.gex b/client/javascript/test/e2e/resource/import_export2.gex similarity index 100% rename from src/vitis/client/javascript/test/e2e/resource/import_export2.gex rename to client/javascript/test/e2e/resource/import_export2.gex diff --git a/src/vitis/client/javascript/test/e2e/resource/it3/ARDECHE.dbf b/client/javascript/test/e2e/resource/it3/ARDECHE.dbf similarity index 100% rename from src/vitis/client/javascript/test/e2e/resource/it3/ARDECHE.dbf rename to client/javascript/test/e2e/resource/it3/ARDECHE.dbf diff --git a/src/vitis/client/javascript/test/e2e/resource/it3/ARDECHE.prj b/client/javascript/test/e2e/resource/it3/ARDECHE.prj similarity index 100% rename from src/vitis/client/javascript/test/e2e/resource/it3/ARDECHE.prj rename to client/javascript/test/e2e/resource/it3/ARDECHE.prj diff --git a/src/vitis/client/javascript/test/e2e/resource/it3/ARDECHE.shp b/client/javascript/test/e2e/resource/it3/ARDECHE.shp similarity index 100% rename from src/vitis/client/javascript/test/e2e/resource/it3/ARDECHE.shp rename to client/javascript/test/e2e/resource/it3/ARDECHE.shp diff --git a/src/vitis/client/javascript/test/e2e/resource/it3/ARDECHE.shx b/client/javascript/test/e2e/resource/it3/ARDECHE.shx similarity index 100% rename from src/vitis/client/javascript/test/e2e/resource/it3/ARDECHE.shx rename to client/javascript/test/e2e/resource/it3/ARDECHE.shx diff --git a/src/vitis/client/javascript/test/e2e/resource/metadata.fmw b/client/javascript/test/e2e/resource/metadata.fmw similarity index 100% rename from src/vitis/client/javascript/test/e2e/resource/metadata.fmw rename to client/javascript/test/e2e/resource/metadata.fmw diff --git a/src/vitis/client/javascript/test/e2e/resource/metadata.log b/client/javascript/test/e2e/resource/metadata.log similarity index 100% rename from src/vitis/client/javascript/test/e2e/resource/metadata.log rename to client/javascript/test/e2e/resource/metadata.log diff --git a/src/vitis/client/javascript/test/e2e/resource/metadata2.fmw b/client/javascript/test/e2e/resource/metadata2.fmw similarity index 100% rename from src/vitis/client/javascript/test/e2e/resource/metadata2.fmw rename to client/javascript/test/e2e/resource/metadata2.fmw diff --git a/src/vitis/client/javascript/test/e2e/resource/selection_villes.gex b/client/javascript/test/e2e/resource/selection_villes.gex similarity index 100% rename from src/vitis/client/javascript/test/e2e/resource/selection_villes.gex rename to client/javascript/test/e2e/resource/selection_villes.gex diff --git a/src/vitis/client/javascript/test/e2e/resource/shp2mif.fmw b/client/javascript/test/e2e/resource/shp2mif.fmw similarity index 100% rename from src/vitis/client/javascript/test/e2e/resource/shp2mif.fmw rename to client/javascript/test/e2e/resource/shp2mif.fmw diff --git a/src/vitis/client/javascript/test/e2e/resource/t_abonnement.fmw b/client/javascript/test/e2e/resource/t_abonnement.fmw similarity index 100% rename from src/vitis/client/javascript/test/e2e/resource/t_abonnement.fmw rename to client/javascript/test/e2e/resource/t_abonnement.fmw diff --git a/src/vitis/client/javascript/test/e2e/resource/t_formulaire.fmw b/client/javascript/test/e2e/resource/t_formulaire.fmw similarity index 100% rename from src/vitis/client/javascript/test/e2e/resource/t_formulaire.fmw rename to client/javascript/test/e2e/resource/t_formulaire.fmw diff --git a/src/vitis/client/javascript/test/e2e/resource/t_importparlot1.fmw b/client/javascript/test/e2e/resource/t_importparlot1.fmw similarity index 100% rename from src/vitis/client/javascript/test/e2e/resource/t_importparlot1.fmw rename to client/javascript/test/e2e/resource/t_importparlot1.fmw diff --git a/src/vitis/client/javascript/test/e2e/resource/t_importparlot2.fmw b/client/javascript/test/e2e/resource/t_importparlot2.fmw similarity index 100% rename from src/vitis/client/javascript/test/e2e/resource/t_importparlot2.fmw rename to client/javascript/test/e2e/resource/t_importparlot2.fmw diff --git a/src/vitis/client/javascript/test/e2e/resource/t_unicite.fmw b/client/javascript/test/e2e/resource/t_unicite.fmw similarity index 100% rename from src/vitis/client/javascript/test/e2e/resource/t_unicite.fmw rename to client/javascript/test/e2e/resource/t_unicite.fmw diff --git a/src/vitis/client/javascript/test/e2e/resource/test_gex.gex b/client/javascript/test/e2e/resource/test_gex.gex similarity index 100% rename from src/vitis/client/javascript/test/e2e/resource/test_gex.gex rename to client/javascript/test/e2e/resource/test_gex.gex diff --git a/src/vitis/client/javascript/test/e2e/resource/test_param_choice_villes.fmw b/client/javascript/test/e2e/resource/test_param_choice_villes.fmw similarity index 100% rename from src/vitis/client/javascript/test/e2e/resource/test_param_choice_villes.fmw rename to client/javascript/test/e2e/resource/test_param_choice_villes.fmw diff --git a/src/vitis/client/javascript/test/e2e/resource/test_param_couleur.fmw b/client/javascript/test/e2e/resource/test_param_couleur.fmw similarity index 100% rename from src/vitis/client/javascript/test/e2e/resource/test_param_couleur.fmw rename to client/javascript/test/e2e/resource/test_param_couleur.fmw diff --git a/src/vitis/client/javascript/test/e2e/resource/test_param_date_time.fmw b/client/javascript/test/e2e/resource/test_param_date_time.fmw similarity index 100% rename from src/vitis/client/javascript/test/e2e/resource/test_param_date_time.fmw rename to client/javascript/test/e2e/resource/test_param_date_time.fmw diff --git a/src/vitis/client/javascript/test/e2e/resource/test_param_date_time.log b/client/javascript/test/e2e/resource/test_param_date_time.log similarity index 100% rename from src/vitis/client/javascript/test/e2e/resource/test_param_date_time.log rename to client/javascript/test/e2e/resource/test_param_date_time.log diff --git a/src/vitis/client/javascript/test/e2e/resource/villes.zip b/client/javascript/test/e2e/resource/villes.zip similarity index 100% rename from src/vitis/client/javascript/test/e2e/resource/villes.zip rename to client/javascript/test/e2e/resource/villes.zip diff --git a/src/vitis/client/javascript/test/e2e/resource/vse.jpg b/client/javascript/test/e2e/resource/vse.jpg similarity index 100% rename from src/vitis/client/javascript/test/e2e/resource/vse.jpg rename to client/javascript/test/e2e/resource/vse.jpg diff --git "a/src/vitis/client/javascript/test/e2e/resource/\303\251\303\240.fmw" "b/client/javascript/test/e2e/resource/\303\251\303\240.fmw" similarity index 100% rename from "src/vitis/client/javascript/test/e2e/resource/\303\251\303\240.fmw" rename to "client/javascript/test/e2e/resource/\303\251\303\240.fmw" diff --git a/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_abonnement.js b/client/javascript/test/e2e/scenario/sc_vitis_abonnement.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/scenario/sc_vitis_abonnement.js rename to client/javascript/test/e2e/scenario/sc_vitis_abonnement.js diff --git a/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_ad.js b/client/javascript/test/e2e/scenario/sc_vitis_ad.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/scenario/sc_vitis_ad.js rename to client/javascript/test/e2e/scenario/sc_vitis_ad.js diff --git a/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_categorie.js b/client/javascript/test/e2e/scenario/sc_vitis_categorie.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/scenario/sc_vitis_categorie.js rename to client/javascript/test/e2e/scenario/sc_vitis_categorie.js diff --git a/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_depot.js b/client/javascript/test/e2e/scenario/sc_vitis_depot.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/scenario/sc_vitis_depot.js rename to client/javascript/test/e2e/scenario/sc_vitis_depot.js diff --git a/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_fichiers_interdits.js b/client/javascript/test/e2e/scenario/sc_vitis_fichiers_interdits.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/scenario/sc_vitis_fichiers_interdits.js rename to client/javascript/test/e2e/scenario/sc_vitis_fichiers_interdits.js diff --git a/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_filter.js b/client/javascript/test/e2e/scenario/sc_vitis_filter.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/scenario/sc_vitis_filter.js rename to client/javascript/test/e2e/scenario/sc_vitis_filter.js diff --git a/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_fme_params.js b/client/javascript/test/e2e/scenario/sc_vitis_fme_params.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/scenario/sc_vitis_fme_params.js rename to client/javascript/test/e2e/scenario/sc_vitis_fme_params.js diff --git a/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_formulaire.js b/client/javascript/test/e2e/scenario/sc_vitis_formulaire.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/scenario/sc_vitis_formulaire.js rename to client/javascript/test/e2e/scenario/sc_vitis_formulaire.js diff --git a/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_import_export.js b/client/javascript/test/e2e/scenario/sc_vitis_import_export.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/scenario/sc_vitis_import_export.js rename to client/javascript/test/e2e/scenario/sc_vitis_import_export.js diff --git a/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_ip.js b/client/javascript/test/e2e/scenario/sc_vitis_ip.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/scenario/sc_vitis_ip.js rename to client/javascript/test/e2e/scenario/sc_vitis_ip.js diff --git a/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_lot.js b/client/javascript/test/e2e/scenario/sc_vitis_lot.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/scenario/sc_vitis_lot.js rename to client/javascript/test/e2e/scenario/sc_vitis_lot.js diff --git a/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_metadata.js b/client/javascript/test/e2e/scenario/sc_vitis_metadata.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/scenario/sc_vitis_metadata.js rename to client/javascript/test/e2e/scenario/sc_vitis_metadata.js diff --git a/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_moteurs.js b/client/javascript/test/e2e/scenario/sc_vitis_moteurs.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/scenario/sc_vitis_moteurs.js rename to client/javascript/test/e2e/scenario/sc_vitis_moteurs.js diff --git a/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_order.js b/client/javascript/test/e2e/scenario/sc_vitis_order.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/scenario/sc_vitis_order.js rename to client/javascript/test/e2e/scenario/sc_vitis_order.js diff --git a/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_publication.js b/client/javascript/test/e2e/scenario/sc_vitis_publication.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/scenario/sc_vitis_publication.js rename to client/javascript/test/e2e/scenario/sc_vitis_publication.js diff --git a/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_unicite.js b/client/javascript/test/e2e/scenario/sc_vitis_unicite.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/scenario/sc_vitis_unicite.js rename to client/javascript/test/e2e/scenario/sc_vitis_unicite.js diff --git a/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_upload.js b/client/javascript/test/e2e/scenario/sc_vitis_upload.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/scenario/sc_vitis_upload.js rename to client/javascript/test/e2e/scenario/sc_vitis_upload.js diff --git a/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_upload_fmw.js b/client/javascript/test/e2e/scenario/sc_vitis_upload_fmw.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/scenario/sc_vitis_upload_fmw.js rename to client/javascript/test/e2e/scenario/sc_vitis_upload_fmw.js diff --git a/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_upload_zip.js b/client/javascript/test/e2e/scenario/sc_vitis_upload_zip.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/scenario/sc_vitis_upload_zip.js rename to client/javascript/test/e2e/scenario/sc_vitis_upload_zip.js diff --git a/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_user_existant.js b/client/javascript/test/e2e/scenario/sc_vitis_user_existant.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/scenario/sc_vitis_user_existant.js rename to client/javascript/test/e2e/scenario/sc_vitis_user_existant.js diff --git a/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_users.js b/client/javascript/test/e2e/scenario/sc_vitis_users.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/scenario/sc_vitis_users.js rename to client/javascript/test/e2e/scenario/sc_vitis_users.js diff --git a/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_users_linux.js b/client/javascript/test/e2e/scenario/sc_vitis_users_linux.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/scenario/sc_vitis_users_linux.js rename to client/javascript/test/e2e/scenario/sc_vitis_users_linux.js diff --git a/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_users_speciaux.js b/client/javascript/test/e2e/scenario/sc_vitis_users_speciaux.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/scenario/sc_vitis_users_speciaux.js rename to client/javascript/test/e2e/scenario/sc_vitis_users_speciaux.js diff --git a/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_users_speciaux_linux.js b/client/javascript/test/e2e/scenario/sc_vitis_users_speciaux_linux.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/scenario/sc_vitis_users_speciaux_linux.js rename to client/javascript/test/e2e/scenario/sc_vitis_users_speciaux_linux.js diff --git a/src/vitis/client/javascript/test/e2e/scenario/sc_vitis_verrouillage_projet.js b/client/javascript/test/e2e/scenario/sc_vitis_verrouillage_projet.js similarity index 100% rename from src/vitis/client/javascript/test/e2e/scenario/sc_vitis_verrouillage_projet.js rename to client/javascript/test/e2e/scenario/sc_vitis_verrouillage_projet.js diff --git a/src/vitis/client/lang/lang-en.json b/client/lang/lang-en.json similarity index 100% rename from src/vitis/client/lang/lang-en.json rename to client/lang/lang-en.json diff --git a/src/vitis/client/lang/lang-fr.json b/client/lang/lang-fr.json similarity index 100% rename from src/vitis/client/lang/lang-fr.json rename to client/lang/lang-fr.json diff --git a/src/vitis/client/less/doubleForm.less b/client/less/doubleForm.less similarity index 100% rename from src/vitis/client/less/doubleForm.less rename to client/less/doubleForm.less diff --git a/src/vitis/client/less/htmlForm.less b/client/less/htmlForm.less similarity index 100% rename from src/vitis/client/less/htmlForm.less rename to client/less/htmlForm.less diff --git a/src/vitis/client/less/login.less b/client/less/login.less similarity index 100% rename from src/vitis/client/less/login.less rename to client/less/login.less diff --git a/src/vitis/client/less/main.less b/client/less/main.less similarity index 100% rename from src/vitis/client/less/main.less rename to client/less/main.less diff --git a/src/vitis/client/less/mobile.less b/client/less/mobile.less similarity index 100% rename from src/vitis/client/less/mobile.less rename to client/less/mobile.less diff --git a/src/vitis/client/less/sectionForm.less b/client/less/sectionForm.less similarity index 100% rename from src/vitis/client/less/sectionForm.less rename to client/less/sectionForm.less diff --git a/src/vitis/client/less/simpleForm.less b/client/less/simpleForm.less similarity index 100% rename from src/vitis/client/less/simpleForm.less rename to client/less/simpleForm.less diff --git a/src/vitis/client/less/workspaceList.less b/client/less/workspaceList.less similarity index 100% rename from src/vitis/client/less/workspaceList.less rename to client/less/workspaceList.less diff --git a/src/vitis/client/modules/vitis/data/proj.json b/client/modules/vitis/data/proj.json similarity index 100% rename from src/vitis/client/modules/vitis/data/proj.json rename to client/modules/vitis/data/proj.json diff --git a/src/vitis/client/modules/vitis/forms/configuration/configuration_vitis_configuration.json b/client/modules/vitis/forms/configuration/configuration_vitis_configuration.json similarity index 100% rename from src/vitis/client/modules/vitis/forms/configuration/configuration_vitis_configuration.json rename to client/modules/vitis/forms/configuration/configuration_vitis_configuration.json diff --git a/src/vitis/client/modules/vitis/forms/exploitation/exploitation_exploitation.json b/client/modules/vitis/forms/exploitation/exploitation_exploitation.json similarity index 100% rename from src/vitis/client/modules/vitis/forms/exploitation/exploitation_exploitation.json rename to client/modules/vitis/forms/exploitation/exploitation_exploitation.json diff --git a/src/vitis/client/modules/vitis/forms/logs/logs_vitis_log.json b/client/modules/vitis/forms/logs/logs_vitis_log.json similarity index 100% rename from src/vitis/client/modules/vitis/forms/logs/logs_vitis_log.json rename to client/modules/vitis/forms/logs/logs_vitis_log.json diff --git a/src/vitis/client/modules/vitis/forms/user/user_vitis_user.js b/client/modules/vitis/forms/user/user_vitis_user.js similarity index 100% rename from src/vitis/client/modules/vitis/forms/user/user_vitis_user.js rename to client/modules/vitis/forms/user/user_vitis_user.js diff --git a/src/vitis/client/modules/vitis/forms/user/user_vitis_user.json b/client/modules/vitis/forms/user/user_vitis_user.json similarity index 100% rename from src/vitis/client/modules/vitis/forms/user/user_vitis_user.json rename to client/modules/vitis/forms/user/user_vitis_user.json diff --git a/src/vitis/client/modules/vitis/forms/users/active_directory_connection.json b/client/modules/vitis/forms/users/active_directory_connection.json similarity index 100% rename from src/vitis/client/modules/vitis/forms/users/active_directory_connection.json rename to client/modules/vitis/forms/users/active_directory_connection.json diff --git a/src/vitis/client/modules/vitis/forms/users/search_active_directory_group.json b/client/modules/vitis/forms/users/search_active_directory_group.json similarity index 100% rename from src/vitis/client/modules/vitis/forms/users/search_active_directory_group.json rename to client/modules/vitis/forms/users/search_active_directory_group.json diff --git a/src/vitis/client/modules/vitis/forms/users/search_active_directory_person.json b/client/modules/vitis/forms/users/search_active_directory_person.json similarity index 100% rename from src/vitis/client/modules/vitis/forms/users/search_active_directory_person.json rename to client/modules/vitis/forms/users/search_active_directory_person.json diff --git a/src/vitis/client/modules/vitis/forms/users/users_vitis_billinggroup.json b/client/modules/vitis/forms/users/users_vitis_billinggroup.json similarity index 100% rename from src/vitis/client/modules/vitis/forms/users/users_vitis_billinggroup.json rename to client/modules/vitis/forms/users/users_vitis_billinggroup.json diff --git a/src/vitis/client/modules/vitis/forms/users/users_vitis_domain.json b/client/modules/vitis/forms/users/users_vitis_domain.json similarity index 100% rename from src/vitis/client/modules/vitis/forms/users/users_vitis_domain.json rename to client/modules/vitis/forms/users/users_vitis_domain.json diff --git a/src/vitis/client/modules/vitis/forms/users/users_vitis_group.json b/client/modules/vitis/forms/users/users_vitis_group.json similarity index 100% rename from src/vitis/client/modules/vitis/forms/users/users_vitis_group.json rename to client/modules/vitis/forms/users/users_vitis_group.json diff --git a/src/vitis/client/modules/vitis/forms/users/users_vitis_privilege.json b/client/modules/vitis/forms/users/users_vitis_privilege.json similarity index 100% rename from src/vitis/client/modules/vitis/forms/users/users_vitis_privilege.json rename to client/modules/vitis/forms/users/users_vitis_privilege.json diff --git a/src/vitis/client/modules/vitis/forms/users/users_vitis_users.json b/client/modules/vitis/forms/users/users_vitis_users.json similarity index 100% rename from src/vitis/client/modules/vitis/forms/users/users_vitis_users.json rename to client/modules/vitis/forms/users/users_vitis_users.json diff --git a/src/vitis/client/modules/vitis/images/administrator.png b/client/modules/vitis/images/administrator.png similarity index 100% rename from src/vitis/client/modules/vitis/images/administrator.png rename to client/modules/vitis/images/administrator.png diff --git a/src/vitis/client/modules/vitis/images/button_green.gif b/client/modules/vitis/images/button_green.gif similarity index 100% rename from src/vitis/client/modules/vitis/images/button_green.gif rename to client/modules/vitis/images/button_green.gif diff --git a/src/vitis/client/modules/vitis/images/button_red.gif b/client/modules/vitis/images/button_red.gif similarity index 100% rename from src/vitis/client/modules/vitis/images/button_red.gif rename to client/modules/vitis/images/button_red.gif diff --git a/src/vitis/client/modules/vitis/images/user.png b/client/modules/vitis/images/user.png similarity index 100% rename from src/vitis/client/modules/vitis/images/user.png rename to client/modules/vitis/images/user.png diff --git a/src/vitis/client/modules/vitis/javascript/controllers/activeDirectoryTreeCtrl.js b/client/modules/vitis/javascript/controllers/activeDirectoryTreeCtrl.js similarity index 100% rename from src/vitis/client/modules/vitis/javascript/controllers/activeDirectoryTreeCtrl.js rename to client/modules/vitis/javascript/controllers/activeDirectoryTreeCtrl.js diff --git a/src/vitis/client/modules/vitis/javascript/controllers/logsCtrl.js b/client/modules/vitis/javascript/controllers/logsCtrl.js similarity index 100% rename from src/vitis/client/modules/vitis/javascript/controllers/logsCtrl.js rename to client/modules/vitis/javascript/controllers/logsCtrl.js diff --git a/src/vitis/client/modules/vitis/javascript/controllers/versionConfigurationCtrl.js b/client/modules/vitis/javascript/controllers/versionConfigurationCtrl.js similarity index 100% rename from src/vitis/client/modules/vitis/javascript/controllers/versionConfigurationCtrl.js rename to client/modules/vitis/javascript/controllers/versionConfigurationCtrl.js diff --git a/src/vitis/client/modules/vitis/javascript/controllers/webServiceHelpCtrl.js b/client/modules/vitis/javascript/controllers/webServiceHelpCtrl.js similarity index 100% rename from src/vitis/client/modules/vitis/javascript/controllers/webServiceHelpCtrl.js rename to client/modules/vitis/javascript/controllers/webServiceHelpCtrl.js diff --git a/src/vitis/client/modules/vitis/javascript/controllers/websocketConfigurationCtrl.js b/client/modules/vitis/javascript/controllers/websocketConfigurationCtrl.js similarity index 100% rename from src/vitis/client/modules/vitis/javascript/controllers/websocketConfigurationCtrl.js rename to client/modules/vitis/javascript/controllers/websocketConfigurationCtrl.js diff --git a/src/vitis/client/modules/vitis/javascript/deps.js b/client/modules/vitis/javascript/deps.js similarity index 100% rename from src/vitis/client/modules/vitis/javascript/deps.js rename to client/modules/vitis/javascript/deps.js diff --git a/src/vitis/client/modules/vitis/javascript/directives/activeDirectoryTreeDrtv.js b/client/modules/vitis/javascript/directives/activeDirectoryTreeDrtv.js similarity index 100% rename from src/vitis/client/modules/vitis/javascript/directives/activeDirectoryTreeDrtv.js rename to client/modules/vitis/javascript/directives/activeDirectoryTreeDrtv.js diff --git a/src/vitis/client/modules/vitis/javascript/directives/logsDrtv.js b/client/modules/vitis/javascript/directives/logsDrtv.js similarity index 100% rename from src/vitis/client/modules/vitis/javascript/directives/logsDrtv.js rename to client/modules/vitis/javascript/directives/logsDrtv.js diff --git a/src/vitis/client/modules/vitis/javascript/directives/phpInfoConfigurationDrtv.js b/client/modules/vitis/javascript/directives/phpInfoConfigurationDrtv.js similarity index 100% rename from src/vitis/client/modules/vitis/javascript/directives/phpInfoConfigurationDrtv.js rename to client/modules/vitis/javascript/directives/phpInfoConfigurationDrtv.js diff --git a/src/vitis/client/modules/vitis/javascript/directives/versionConfigurationDrtv.js b/client/modules/vitis/javascript/directives/versionConfigurationDrtv.js similarity index 100% rename from src/vitis/client/modules/vitis/javascript/directives/versionConfigurationDrtv.js rename to client/modules/vitis/javascript/directives/versionConfigurationDrtv.js diff --git a/src/vitis/client/modules/vitis/javascript/directives/webServiceHelpDrtv.js b/client/modules/vitis/javascript/directives/webServiceHelpDrtv.js similarity index 100% rename from src/vitis/client/modules/vitis/javascript/directives/webServiceHelpDrtv.js rename to client/modules/vitis/javascript/directives/webServiceHelpDrtv.js diff --git a/src/vitis/client/modules/vitis/javascript/directives/websocketConfigurationDrtv.js b/client/modules/vitis/javascript/directives/websocketConfigurationDrtv.js similarity index 100% rename from src/vitis/client/modules/vitis/javascript/directives/websocketConfigurationDrtv.js rename to client/modules/vitis/javascript/directives/websocketConfigurationDrtv.js diff --git a/src/vitis/client/modules/vitis/javascript/script_module.js b/client/modules/vitis/javascript/script_module.js similarity index 100% rename from src/vitis/client/modules/vitis/javascript/script_module.js rename to client/modules/vitis/javascript/script_module.js diff --git a/src/vitis/client/modules/vitis/lang/lang-en.json b/client/modules/vitis/lang/lang-en.json similarity index 100% rename from src/vitis/client/modules/vitis/lang/lang-en.json rename to client/modules/vitis/lang/lang-en.json diff --git a/src/vitis/client/modules/vitis/lang/lang-fr.json b/client/modules/vitis/lang/lang-fr.json similarity index 100% rename from src/vitis/client/modules/vitis/lang/lang-fr.json rename to client/modules/vitis/lang/lang-fr.json diff --git a/src/vitis/client/modules/vitis/less/activeDirectoryTree.less b/client/modules/vitis/less/activeDirectoryTree.less similarity index 100% rename from src/vitis/client/modules/vitis/less/activeDirectoryTree.less rename to client/modules/vitis/less/activeDirectoryTree.less diff --git a/src/vitis/client/modules/vitis/less/logs.less b/client/modules/vitis/less/logs.less similarity index 100% rename from src/vitis/client/modules/vitis/less/logs.less rename to client/modules/vitis/less/logs.less diff --git a/src/vitis/client/modules/vitis/less/main.less b/client/modules/vitis/less/main.less similarity index 100% rename from src/vitis/client/modules/vitis/less/main.less rename to client/modules/vitis/less/main.less diff --git a/src/vitis/client/modules/vitis/less/phpInfoConfiguration.less b/client/modules/vitis/less/phpInfoConfiguration.less similarity index 100% rename from src/vitis/client/modules/vitis/less/phpInfoConfiguration.less rename to client/modules/vitis/less/phpInfoConfiguration.less diff --git a/src/vitis/client/modules/vitis/less/sharedDirectory.less b/client/modules/vitis/less/sharedDirectory.less similarity index 100% rename from src/vitis/client/modules/vitis/less/sharedDirectory.less rename to client/modules/vitis/less/sharedDirectory.less diff --git a/src/vitis/client/modules/vitis/less/updateConfiguration.less b/client/modules/vitis/less/updateConfiguration.less similarity index 100% rename from src/vitis/client/modules/vitis/less/updateConfiguration.less rename to client/modules/vitis/less/updateConfiguration.less diff --git a/src/vitis/client/modules/vitis/less/users.less b/client/modules/vitis/less/users.less similarity index 100% rename from src/vitis/client/modules/vitis/less/users.less rename to client/modules/vitis/less/users.less diff --git a/src/vitis/client/modules/vitis/less/versionConfiguration.less b/client/modules/vitis/less/versionConfiguration.less similarity index 100% rename from src/vitis/client/modules/vitis/less/versionConfiguration.less rename to client/modules/vitis/less/versionConfiguration.less diff --git a/src/vitis/client/modules/vitis/less/webServiceHelp.less b/client/modules/vitis/less/webServiceHelp.less similarity index 100% rename from src/vitis/client/modules/vitis/less/webServiceHelp.less rename to client/modules/vitis/less/webServiceHelp.less diff --git a/src/vitis/client/modules/vitis/templates/activeDirectoryTreeLeftTpl.html b/client/modules/vitis/templates/activeDirectoryTreeLeftTpl.html similarity index 100% rename from src/vitis/client/modules/vitis/templates/activeDirectoryTreeLeftTpl.html rename to client/modules/vitis/templates/activeDirectoryTreeLeftTpl.html diff --git a/src/vitis/client/modules/vitis/templates/activeDirectoryTreeRightTpl.html b/client/modules/vitis/templates/activeDirectoryTreeRightTpl.html similarity index 100% rename from src/vitis/client/modules/vitis/templates/activeDirectoryTreeRightTpl.html rename to client/modules/vitis/templates/activeDirectoryTreeRightTpl.html diff --git a/src/vitis/client/modules/vitis/templates/logsLeftTpl.html b/client/modules/vitis/templates/logsLeftTpl.html similarity index 100% rename from src/vitis/client/modules/vitis/templates/logsLeftTpl.html rename to client/modules/vitis/templates/logsLeftTpl.html diff --git a/src/vitis/client/modules/vitis/templates/logsRightTpl.html b/client/modules/vitis/templates/logsRightTpl.html similarity index 100% rename from src/vitis/client/modules/vitis/templates/logsRightTpl.html rename to client/modules/vitis/templates/logsRightTpl.html diff --git a/src/vitis/client/modules/vitis/templates/phpInfoConfigurationTpl.html b/client/modules/vitis/templates/phpInfoConfigurationTpl.html similarity index 100% rename from src/vitis/client/modules/vitis/templates/phpInfoConfigurationTpl.html rename to client/modules/vitis/templates/phpInfoConfigurationTpl.html diff --git a/src/vitis/client/modules/vitis/templates/updateConfigurationTpl.html b/client/modules/vitis/templates/updateConfigurationTpl.html similarity index 100% rename from src/vitis/client/modules/vitis/templates/updateConfigurationTpl.html rename to client/modules/vitis/templates/updateConfigurationTpl.html diff --git a/src/vitis/client/modules/vitis/templates/versionConfigurationTpl.html b/client/modules/vitis/templates/versionConfigurationTpl.html similarity index 100% rename from src/vitis/client/modules/vitis/templates/versionConfigurationTpl.html rename to client/modules/vitis/templates/versionConfigurationTpl.html diff --git a/src/vitis/client/modules/vitis/templates/webServiceHelpTpl.html b/client/modules/vitis/templates/webServiceHelpTpl.html similarity index 100% rename from src/vitis/client/modules/vitis/templates/webServiceHelpTpl.html rename to client/modules/vitis/templates/webServiceHelpTpl.html diff --git a/src/vitis/client/modules/vitis/templates/websocketConfigurationTpl.html b/client/modules/vitis/templates/websocketConfigurationTpl.html similarity index 100% rename from src/vitis/client/modules/vitis/templates/websocketConfigurationTpl.html rename to client/modules/vitis/templates/websocketConfigurationTpl.html diff --git a/src/vitis/client/templates/clientDocumentationTpl.html b/client/templates/clientDocumentationTpl.html similarity index 100% rename from src/vitis/client/templates/clientDocumentationTpl.html rename to client/templates/clientDocumentationTpl.html diff --git a/src/vitis/client/templates/creditsTpl.html b/client/templates/creditsTpl.html similarity index 100% rename from src/vitis/client/templates/creditsTpl.html rename to client/templates/creditsTpl.html diff --git a/src/vitis/client/templates/doubleFormTpl.html b/client/templates/doubleFormTpl.html similarity index 100% rename from src/vitis/client/templates/doubleFormTpl.html rename to client/templates/doubleFormTpl.html diff --git a/src/vitis/client/templates/formTpl.html b/client/templates/formTpl.html similarity index 100% rename from src/vitis/client/templates/formTpl.html rename to client/templates/formTpl.html diff --git a/src/vitis/client/templates/loginTpl.html b/client/templates/loginTpl.html similarity index 100% rename from src/vitis/client/templates/loginTpl.html rename to client/templates/loginTpl.html diff --git a/src/vitis/client/templates/mainTpl.html b/client/templates/mainTpl.html similarity index 100% rename from src/vitis/client/templates/mainTpl.html rename to client/templates/mainTpl.html diff --git a/src/vitis/client/templates/sectionFormTpl.html b/client/templates/sectionFormTpl.html similarity index 100% rename from src/vitis/client/templates/sectionFormTpl.html rename to client/templates/sectionFormTpl.html diff --git a/src/vitis/client/templates/simpleFormTpl.html b/client/templates/simpleFormTpl.html similarity index 100% rename from src/vitis/client/templates/simpleFormTpl.html rename to client/templates/simpleFormTpl.html diff --git a/src/vitis/client/templates/uiGridActionTpl.html b/client/templates/uiGridActionTpl.html similarity index 100% rename from src/vitis/client/templates/uiGridActionTpl.html rename to client/templates/uiGridActionTpl.html diff --git a/src/vitis/client/templates/uiGridPaginationTpl.html b/client/templates/uiGridPaginationTpl.html similarity index 100% rename from src/vitis/client/templates/uiGridPaginationTpl.html rename to client/templates/uiGridPaginationTpl.html diff --git a/src/vitis/client/templates/workspaceListTpl.html b/client/templates/workspaceListTpl.html similarity index 100% rename from src/vitis/client/templates/workspaceListTpl.html rename to client/templates/workspaceListTpl.html diff --git a/conf/Gruntfile.js b/conf/Gruntfile.js deleted file mode 100755 index 28e9144e..00000000 --- a/conf/Gruntfile.js +++ /dev/null @@ -1,112 +0,0 @@ -module.exports = function (grunt) { - - var compilerPackage = require('google-closure-compiler'); - compilerPackage.grunt(grunt); - - var devMode = grunt.option('dev'); - - var sHome = '../'; - if (devMode) { - sHome = '../client/'; - } - - var sClosureDepsHome = '../../../../../'; - - // Project configuration. - grunt.initConfig({ - 'closure-compiler': { - Extraction: { - files: { - [sHome + '/javascript/extraction.min.js']: [ - // Fichiers Vitis - sHome + 'javascript/require/*.js', - sHome + 'javascript/app/**/*.js', - sHome + 'javascript/externs/formReader/**/*.js', - sHome + 'javascript/externs/mapJSON/**/*.js', - sHome + 'modules/vitis/javascript/**/*.js', - // OpenLayers - sHome + 'javascript/externs/openLayers/**/*.js', - // Fichiers Extraction - sHome + 'conf/requires/*.js', - sHome + 'modules/extraction/javascript/**/*.js' - ] - }, - options: { - js: [ - 'node_modules/google-closure-library/closure/goog/**.js', - '!node_modules/google-closure-library/closure/goog/**_test.js' - ], - externs: [ - 'closure/externs/angular-1.3.js', - 'closure/externs/bingmaps.js', - 'closure/externs/jquery-1.9.js', - 'closure/externs/bootstrap.js', - 'closure/externs/geojson.js', - 'closure/externs/jspdf.js', - 'closure/externs/html2canvas.js' - ], - compilation_level: 'ADVANCED', - manage_closure_dependencies: true, - generate_exports: true, - angular_pass: true, - debug: false, - language_in: 'ECMASCRIPT5', - language_out: 'ECMASCRIPT5', - closure_entry_point: ['vitis'], - create_source_map: sHome + '/javascript/extraction.min.js.map', - output_wrapper: '(function(){\n%output%\n}).call(this)\n//# sourceMappingURL=../javascript/extraction.min.js.map' - } - }, - formReader: { - files: { - [sHome + '/javascript/externs/formReader/formReader.min.js']: [ - // Fichiers FormReader - sHome + 'javascript/externs/formReader/**/*.js' - ] - }, - options: { - compilation_level: 'WHITESPACE_ONLY', - angular_pass: true, - language_in: 'ECMASCRIPT5', - language_out: 'ECMASCRIPT5' - } - } - }, - 'closureDepsWriter': { - options: { - depswriter: 'closure/depswriter/depswriter.py', - root_with_prefix: [ - // Fichiers Vitis - '"' + sHome + 'javascript/app ' + sClosureDepsHome + 'javascript/app"', - '"' + sHome + 'modules/vitis/javascript ' + sClosureDepsHome + 'modules/vitis/javascript"', - '"' + sHome + 'javascript/externs/formReader ' + sClosureDepsHome + 'javascript/externs/formReader"', - '"' + sHome + 'javascript/externs/mapJSON ' + sClosureDepsHome + 'javascript/externs/mapJSON"', - '"' + sHome + 'conf/requires ' + sClosureDepsHome + 'conf/requires"', - // OpenLayers - '"' + sHome + 'javascript/externs/openLayers ' + sClosureDepsHome + 'javascript/externs/openLayers"', - // Fichiers Extraction - '"' + sHome + 'modules/extraction/javascript ' + sClosureDepsHome + 'modules/extraction/javascript"', - // Closure library - '"' + sHome + 'conf/node_modules/google-closure-library/closure/goog ' + sClosureDepsHome + 'conf/node_modules/google-closure-library/closure/goog"' - ] - }, - targetName: { - dest: sHome + '/javascript/extraction.deps.js' - } - } - }); - - grunt.loadNpmTasks('grunt-closure-tools'); - - // Tache par défaut - // cmd: grunt - grunt.registerTask('default', ['closureDepsWriter', 'closure-compiler:Extraction']); - // cmd: grunt generate-deps - grunt.registerTask('generate-deps', ['closureDepsWriter']); - // cmd: grunt formReader minify - grunt.registerTask('minify-formReader', ['closure-compiler:formReader']); - // cmd: grunt formReader and studio minify - grunt.registerTask('minify-libs', ['closure-compiler:formReader']); - // cmd: grunt compile - grunt.registerTask('compile', ['closure-compiler:Extraction']); -}; diff --git a/conf/_install/apache.conf b/conf/_install/apache.conf deleted file mode 100755 index a57db001..00000000 --- a/conf/_install/apache.conf +++ /dev/null @@ -1,6 +0,0 @@ -Alias /extraction[ENV] "[APPDIRECTORY]" - <Directory "[APPDIRECTORY]"> - AllowOverride FileInfo - Options FollowSymLinks - Require all granted - </Directory> diff --git a/conf/_install/dependency.xml b/conf/_install/dependency.xml deleted file mode 100755 index 11848b0b..00000000 --- a/conf/_install/dependency.xml +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Application --> -<installer> - <dependenciesCollection> - <dependency> - <nature>framework</nature> - <name>vitis</name> - <version>next_version</version> - </dependency> - <dependency> - <nature>modules</nature> - <name>module_extraction</name> - <version>next_version</version> - </dependency> - </dependenciesCollection> -</installer> diff --git a/conf/_install/fileToDelete.txt b/conf/_install/fileToDelete.txt deleted file mode 100755 index 5b05a50a..00000000 --- a/conf/_install/fileToDelete.txt +++ /dev/null @@ -1,2 +0,0 @@ -package.json -Gruntfile.js \ No newline at end of file diff --git a/conf/_install/folderToDelete.txt b/conf/_install/folderToDelete.txt deleted file mode 100755 index 3ff9591f..00000000 --- a/conf/_install/folderToDelete.txt +++ /dev/null @@ -1 +0,0 @@ -requires \ No newline at end of file diff --git a/conf/credits.json b/conf/credits.json deleted file mode 100755 index 6e2a596b..00000000 --- a/conf/credits.json +++ /dev/null @@ -1,156 +0,0 @@ -[ - { - "label": "CREDITS_SOFTWARE", - "rows": [ - { - "type": "text", - "value": "vMap" - } - ] - }, - { - "label": "CREDITS_VERSION", - "rows": [ - { - "type": "text", - "value": "CREDITS_VERSION_CONTENT" - } - ] - }, - { - "label": "CREDITS_DATE", - "rows": [ - { - "type": "text", - "value": "CREDITS_DATE_CONTENT" - } - ] - }, - { - "label": "CREDITS_EDITOR", - "rows": [ - { - "type": "link", - "value": "Veremes", - "url": "http://www.veremes.com" - } - ] - }, - { - "label": "CREDITS_AUTHOR", - "rows": [ - { - "type": "text", - "value": "Armand Bahi" - }, - { - "type": "text", - "value": "Alexandre Bizien" - }, - { - "type": "text", - "value": "Anthony Borghi" - }, - { - "type": "text", - "value": "Frédéric Carretero" - }, - { - "type": "text", - "value": "Olivier Gayte" - }, - { - "type": "text", - "value": "Sébastien Legrand" - }, - { - "type": "text", - "value": "Laurent Panabieres" - }, - { - "type": "text", - "value": "Yoann Perollet" - } - ] - }, - { - "label": "CREDITS_GRAPHICS", - "rows": [ - { - "type": "link", - "value": "Nematis", - "url": "http://www.nematis.com" - } - ] - }, - { - "label": "CREDITS_LIBRARIES", - "rows": [ - { - "type": "link", - "value": "Bootstrap", - "url": "http://getbootstrap.com" - }, - { - "type": "link", - "value": "AngularJS", - "url": "https://angularjs.org" - }, - { - "type": "link", - "value": "Google Closure", - "url": "https://developers.google.com/closure" - }, - { - "type": "link", - "value": "jQuery", - "url": "http://jquery.com" - }, - { - "type": "link", - "value": "Rgraph", - "url": "http://www.rgraph.net" - }, - { - "type": "link", - "value": "CodeMirror", - "url": "http://codemirror.net" - }, - { - "type": "link", - "value": "OpenLayers", - "url": "http://openlayers.org" - }, - { - "type": "link", - "value": "TinyMCE", - "url": "https://www.tinymce.com" - } - ] - }, - { - "label": "CREDITS_CONTACT", - "rows": [ - { - "type": "link", - "value": "www.veremes.com", - "url": "http://www.veremes.com" - }, - { - "type": "link", - "value": "www.veremes.com/nous-contacter#1", - "url": "http://www.veremes.com/nous-contacter#1" - } - ] - }, - { - "label": "CREDITS_LICENSE", - "rows": [ - { - "type": "link", - "value": "Cecill-B", - "url": "http://www.cecill.info/licences/Licence_CeCILL-B_V1-fr.html" - } - ] - } -] diff --git a/conf/less/variables.less b/conf/less/variables.less deleted file mode 100755 index 9636cd03..00000000 --- a/conf/less/variables.less +++ /dev/null @@ -1,35 +0,0 @@ - -// user colors -@user-color-theme-1: #23282D; -@user-color-theme-2: #6F8456; - - -// Veremes colors -@veremes-gtf-color: #39468A; -@veremes-majic-color: #CF461F; -@veremes-qualigeo-color: #832C7A; -@veremes-wab-color: #198D9F; -/*@veremes-vmap-color: #CB0650;*/ -@veremes-vmap-color: #198D9F; - -@veremes-map-backgroud-color: #020237; -@veremes-gray-backgroud-color: #3A3A3A; -@veremes-light-gray-backgroud-color: #9A9A9A; - - -// Application colors -@application-color-theme: @veremes-vmap-color; // <- Change this color - -@application-lighen-color-theme: lighten(@application-color-theme, 20%); -@application-darken-color-theme: darken(@application-color-theme, 10%); - -@application-action-1-color: #337ab7; // blue bootstrap -@application-action-2-color: #5cb85c; // green bootstrap - -// Other variables -@ui-grid-bg-image: "../images/ui-grid/wbg.gif"; -@font-color-purple: #020237; - -// Dimension des vignettes dans les listes. -@ui-grid-thumbnail-width: 100px; -@ui-grid-thumbnail-heigth: 60px; \ No newline at end of file diff --git a/conf/package.json b/conf/package.json deleted file mode 100755 index 5b5091d4..00000000 --- a/conf/package.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "Vitis", - "version": "0.1.0" -} diff --git a/conf/requires/config.js b/conf/requires/config.js deleted file mode 100755 index 6d0f540f..00000000 --- a/conf/requires/config.js +++ /dev/null @@ -1,66 +0,0 @@ -'use strict'; - -goog.provide('vitis.application.config'); - -// Fichiers js et css à charger pour l'application Extraction. -var oApplicationFiles = { - 'css': [ - // Vitis - 'css/lib/bootstrap/css/bootstrap.min.css', - 'css/lib/jquery/plugins/bootstrap-datepicker/bootstrap-datepicker3.min.css', - 'css/lib/jquery/plugins/bootstrap-fileinput/css/fileinput.min.css', - 'css/lib/ui-grid/ui-grid.min.css', - 'css/lib/jquery/plugins/bootstrap-colorpicker/css/bootstrap-colorpicker.min.css', - 'css/lib/bootstrap-checkbox/build.css', - 'css/lib/bootstrap-checkbox/font-awesome.css', - 'css/lib/jquery/plugins/bootstrap-slider/bootstrap-slider.min.css', - 'css/lib/jquery/plugins/malihu-custom-scrollbar/jquery.mCustomScrollbar.min.css', - 'css/lib/ui-grid/plugins/draggable-rows.less', - 'less/main.less', - // App - 'modules/vitis/less/main.less', - 'modules/extraction/less/main.less', - 'css/lib/codemirror/codemirror.css', - 'css/lib/codemirror/codemirror_foldgutter.css', - 'css/lib/codemirror/map.css', - 'css/lib/codemirror/show-hint.css', - 'css/lib/jquery/plugins/bootstrap-treeview/bootstrap-treeview.min.css', - 'css/lib/jquery/plugins/bootstrap-tagsinput/bootstrap-tagsinput.css', - 'css/lib/jquery/plugins/bootstrap-colorpicker/css/bootstrap-colorpicker.min.css', - 'css/lib/viewer/viewer.min.css' - ], - 'js': { - 'externs': [ - // Studio - 'javascript/externs/bootbox/bootbox.min.js', - 'javascript/externs/codemirror/codemirror.min.js', - 'javascript/externs/codemirror/htmlmixed.js', - 'javascript/externs/codemirror/css.js', - 'javascript/externs/codemirror/javascript.js', - 'javascript/externs/codemirror/clike.js', - 'javascript/externs/codemirror/php.js', - 'javascript/externs/codemirror/xml.js', - 'javascript/externs/codemirror/sql.js', - 'javascript/externs/codemirror/map.js', - 'javascript/externs/codemirror/show-hint.js', - 'javascript/externs/codemirror/addon/fold/foldcode.js', - 'javascript/externs/codemirror/addon/fold/foldgutter.js', - 'javascript/externs/codemirror/addon/fold/brace-fold.js', - 'javascript/externs/codemirror/addon/fold/xml-fold.js', - 'javascript/externs/angular/modules/ui-codemirror/ui-codemirror.min.js', - 'javascript/externs/tinymce/tinymce.min.js', - 'javascript/externs/angular/modules/ui-tinymce/tinymce.js', - 'javascript/externs/jquery/plugins/bootstrap-treeview/bootstrap-treeview.js', - 'javascript/externs/jquery/plugins/bootstrap-tagsinput/bootstrap-tagsinput.min.js', - 'javascript/externs/scripts_cryptage.js', - 'javascript/externs/moment/moment.min.js', - 'javascript/externs/moment/min/moment-with-locales.min.js', - 'javascript/externs/jquery/plugins/notify/notify.js', - 'javascript/externs/jquery/plugins/bootstrap-colorpicker/bootstrap-colorpicker.min.js', - 'javascript/externs/jquery/plugins/bootstrap-confirmation/bootstrap-confirmation.min.js', - 'javascript/externs/jquery/plugins/bootstrap-datetimepicker/bootstrap-datetimepicker.min.js', - 'javascript/externs/viewer/viewer.min.js' - ] - }, - 'vitisModuleDependencies': ['ui.codemirror', 'ui.tinymce', 'ui.grid.draggable-rows'] -}; \ No newline at end of file diff --git a/conf/requires/requiresApp.js b/conf/requires/requiresApp.js deleted file mode 100755 index 3417eb6f..00000000 --- a/conf/requires/requiresApp.js +++ /dev/null @@ -1,11 +0,0 @@ -/* global goog */ - -/** - * Ce fichier permet de charger les fichiers de l'applicaiton - * de façon non compilée - * @author: Armand Bahi - */ - -goog.provide('vitis.application.requires'); -//goog.require('vmap.script_module'); -goog.require('extraction.script_module'); \ No newline at end of file diff --git a/install.bat b/install.bat deleted file mode 100644 index d3123bf3..00000000 --- a/install.bat +++ /dev/null @@ -1,18 +0,0 @@ -@echo off -title Install Vitis App -echo Install Vitis App - -cd utils -call init_tree.bat -call copy_hooks.bat - -cd ../client/conf -call npm install grunt --save -call npm install grunt-cli -call npm install grunt-closure-tools --save -call npm install google-closure-compiler@20160911.0.0 --save -call npm install google-closure-library@20160911.0.0 --save -call grunt - -cd .. -pause diff --git a/install.sh b/install.sh deleted file mode 100755 index c67e3975..00000000 --- a/install.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash -# -# -# Script d'initialisation d'un dépot vMap versionné sous git -# Initislise l'ensemble des dépendances sous forme de subtrees -# Crée des symlinks pour re-créer l'arborescence de l'application -# -# - -if [ `whoami` == "root" ]; then - echo "Please, do not run this script as sudo" -else - cd utils/ - ./init_symlinks.sh - ./pull_subtrees.sh - ./copy_hooks.sh - - cd ../conf - npm install grunt --save - npm install grunt-cli - npm install grunt-closure-tools --save - npm install google-closure-compiler@20160911.0.0 --save - npm install google-closure-library@20160911.0.0 --save - grunt -dev -fi diff --git a/pull_subtrees.sh b/pull_subtrees.sh deleted file mode 100755 index d9bc20cf..00000000 --- a/pull_subtrees.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash -# -# -# Récupère les modifications des modules sur l'application -# -# - -if [ `whoami` == "root" ]; then - echo "Please, do not run this script as sudo" -else - cd utils/ - ./pull_subtrees.sh -fi diff --git a/push_subtrees.sh b/push_subtrees.sh deleted file mode 100644 index 09891131..00000000 --- a/push_subtrees.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash -# -# -# Envoie les modifications de l'application sur les modules -# -# - -if [ `whoami` == "root" ]; then - echo "Please, do not run this script as sudo" -else - cd utils/ - ./push_subtrees.sh -fi diff --git a/src/closure/README.md b/src/closure/README.md deleted file mode 100644 index d28619bf..00000000 --- a/src/closure/README.md +++ /dev/null @@ -1 +0,0 @@ -Google closure exceptions \ No newline at end of file diff --git a/src/closure/conf/depswriter/closurebuilder.py b/src/closure/conf/depswriter/closurebuilder.py deleted file mode 100755 index 7be7661f..00000000 --- a/src/closure/conf/depswriter/closurebuilder.py +++ /dev/null @@ -1,293 +0,0 @@ -#!/usr/bin/env python -# -# Copyright 2009 The Closure Library Authors. All Rights Reserved. -# -# 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. -"""Utility for Closure Library dependency calculation. - -ClosureBuilder scans source files to build dependency info. From the -dependencies, the script can produce a manifest in dependency order, -a concatenated script, or compiled output from the Closure Compiler. - -Paths to files can be expressed as individual arguments to the tool (intended -for use with find and xargs). As a convenience, --root can be used to specify -all JS files below a directory. - -usage: %prog [options] [file1.js file2.js ...] -""" - -__author__ = 'nnaze@google.com (Nathan Naze)' - - -import io -import logging -import optparse -import os -import sys - -import depstree -import jscompiler -import source -import treescan - - -def _GetOptionsParser(): - """Get the options parser.""" - - parser = optparse.OptionParser(__doc__) - parser.add_option('-i', - '--input', - dest='inputs', - action='append', - default=[], - help='One or more input files to calculate dependencies ' - 'for. The namespaces in this file will be combined with ' - 'those given with the -n flag to form the set of ' - 'namespaces to find dependencies for.') - parser.add_option('-n', - '--namespace', - dest='namespaces', - action='append', - default=[], - help='One or more namespaces to calculate dependencies ' - 'for. These namespaces will be combined with those given ' - 'with the -i flag to form the set of namespaces to find ' - 'dependencies for. A Closure namespace is a ' - 'dot-delimited path expression declared with a call to ' - 'goog.provide() (e.g. "goog.array" or "foo.bar").') - parser.add_option('--root', - dest='roots', - action='append', - default=[], - help='The paths that should be traversed to build the ' - 'dependencies.') - parser.add_option('-o', - '--output_mode', - dest='output_mode', - type='choice', - action='store', - choices=['list', 'script', 'compiled'], - default='list', - help='The type of output to generate from this script. ' - 'Options are "list" for a list of filenames, "script" ' - 'for a single script containing the contents of all the ' - 'files, or "compiled" to produce compiled output with ' - 'the Closure Compiler. Default is "list".') - parser.add_option('-c', - '--compiler_jar', - dest='compiler_jar', - action='store', - help='The location of the Closure compiler .jar file.') - parser.add_option('-f', - '--compiler_flags', - dest='compiler_flags', - default=[], - action='append', - help='Additional flags to pass to the Closure compiler. ' - 'To pass multiple flags, --compiler_flags has to be ' - 'specified multiple times.') - parser.add_option('-j', - '--jvm_flags', - dest='jvm_flags', - default=[], - action='append', - help='Additional flags to pass to the JVM compiler. ' - 'To pass multiple flags, --jvm_flags has to be ' - 'specified multiple times.') - parser.add_option('--output_file', - dest='output_file', - action='store', - help=('If specified, write output to this path instead of ' - 'writing to standard output.')) - - return parser - - -def _GetInputByPath(path, sources): - """Get the source identified by a path. - - Args: - path: str, A path to a file that identifies a source. - sources: An iterable collection of source objects. - - Returns: - The source from sources identified by path, if found. Converts to - real paths for comparison. - """ - for js_source in sources: - # Convert both to real paths for comparison. - if os.path.realpath(path) == os.path.realpath(js_source.GetPath()): - return js_source - - -def _GetClosureBaseFile(sources): - """Given a set of sources, returns the one base.js file. - - Note that if zero or two or more base.js files are found, an error message - will be written and the program will be exited. - - Args: - sources: An iterable of _PathSource objects. - - Returns: - The _PathSource representing the base Closure file. - """ - base_files = [ - js_source for js_source in sources if _IsClosureBaseFile(js_source) - ] - - if not base_files: - logging.error('No Closure base.js file found.') - sys.exit(1) - if len(base_files) > 1: - logging.error('More than one Closure base.js files found at these paths:') - for base_file in base_files: - logging.error(base_file.GetPath()) - sys.exit(1) - return base_files[0] - - -def _IsClosureBaseFile(js_source): - """Returns true if the given _PathSource is the Closure base.js source.""" - return (os.path.basename(js_source.GetPath()) == 'base.js' and - js_source.provides == set(['goog'])) - - -class _PathSource(source.Source): - """Source file subclass that remembers its file path.""" - - def __init__(self, path): - """Initialize a source. - - Args: - path: str, Path to a JavaScript file. The source string will be read - from this file. - """ - super(_PathSource, self).__init__(source.GetFileContents(path)) - - self._path = path - - def __str__(self): - return 'PathSource %s' % self._path - - def GetPath(self): - """Returns the path.""" - return self._path - - -def _WrapGoogModuleSource(src): - return ('goog.loadModule(function(exports) {{' - '"use strict";' - '{0}' - '\n' # terminate any trailing single line comment. - ';return exports' - '}});\n').format(src) - - -def main(): - logging.basicConfig(format=(sys.argv[0] + ': %(message)s'), - level=logging.INFO) - options, args = _GetOptionsParser().parse_args() - - # Make our output pipe. - if options.output_file: - out = io.open(options.output_file, 'wb') - else: - version = sys.version_info[:2] - if version >= (3, 0): - # Write bytes to stdout - out = sys.stdout.buffer - else: - out = sys.stdout - - sources = set() - - logging.info('Scanning paths...') - for path in options.roots: - for js_path in treescan.ScanTreeForJsFiles(path): - sources.add(_PathSource(js_path)) - - # Add scripts specified on the command line. - for js_path in args: - sources.add(_PathSource(js_path)) - - logging.info('%s sources scanned.', len(sources)) - - # Though deps output doesn't need to query the tree, we still build it - # to validate dependencies. - logging.info('Building dependency tree..') - tree = depstree.DepsTree(sources) - - input_namespaces = set() - inputs = options.inputs or [] - for input_path in inputs: - js_input = _GetInputByPath(input_path, sources) - if not js_input: - logging.error('No source matched input %s', input_path) - sys.exit(1) - input_namespaces.update(js_input.provides) - - input_namespaces.update(options.namespaces) - - if not input_namespaces: - logging.error('No namespaces found. At least one namespace must be ' - 'specified with the --namespace or --input flags.') - sys.exit(2) - - # The Closure Library base file must go first. - base = _GetClosureBaseFile(sources) - deps = [base] + tree.GetDependencies(input_namespaces) - - output_mode = options.output_mode - if output_mode == 'list': - out.writelines([js_source.GetPath() + '\n' for js_source in deps]) - elif output_mode == 'script': - for js_source in deps: - src = js_source.GetSource() - if js_source.is_goog_module: - src = _WrapGoogModuleSource(src) - out.write(src.encode('utf-8') + b'\n') - elif output_mode == 'compiled': - logging.warning("""\ -Closure Compiler now natively understands and orders Closure dependencies and -is prefererred over using this script for performing JavaScript compilation. - -Please migrate your codebase. - -See: -https://github.com/google/closure-compiler/wiki/Managing-Dependencies -""") - - # Make sure a .jar is specified. - if not options.compiler_jar: - logging.error('--compiler_jar flag must be specified if --output is ' - '"compiled"') - sys.exit(2) - - # Will throw an error if the compilation fails. - compiled_source = jscompiler.Compile(options.compiler_jar, - [js_source.GetPath() - for js_source in deps], - jvm_flags=options.jvm_flags, - compiler_flags=options.compiler_flags) - - logging.info('JavaScript compilation succeeded.') - out.write(compiled_source.encode('utf-8')) - - else: - logging.error('Invalid value for --output flag.') - sys.exit(2) - - -if __name__ == '__main__': - main() diff --git a/src/closure/conf/depswriter/depstree.py b/src/closure/conf/depswriter/depstree.py deleted file mode 100755 index f288dd3a..00000000 --- a/src/closure/conf/depswriter/depstree.py +++ /dev/null @@ -1,189 +0,0 @@ -# Copyright 2009 The Closure Library Authors. All Rights Reserved. -# -# 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. - - -"""Class to represent a full Closure Library dependency tree. - -Offers a queryable tree of dependencies of a given set of sources. The tree -will also do logical validation to prevent duplicate provides and circular -dependencies. -""" - -__author__ = 'nnaze@google.com (Nathan Naze)' - - -class DepsTree(object): - """Represents the set of dependencies between source files.""" - - def __init__(self, sources): - """Initializes the tree with a set of sources. - - Args: - sources: A set of JavaScript sources. - - Raises: - MultipleProvideError: A namespace is provided by muplitple sources. - NamespaceNotFoundError: A namespace is required but never provided. - """ - - self._sources = sources - self._provides_map = dict() - - # Ensure nothing was provided twice. - for source in sources: - for provide in source.provides: - if provide in self._provides_map: - raise MultipleProvideError( - provide, [self._provides_map[provide], source]) - - self._provides_map[provide] = source - - # Check that all required namespaces are provided. - for source in sources: - for require in source.requires: - if require not in self._provides_map: - raise NamespaceNotFoundError(require, source) - - def GetDependencies(self, required_namespaces): - """Get source dependencies, in order, for the given namespaces. - - Args: - required_namespaces: A string (for one) or list (for one or more) of - namespaces. - - Returns: - A list of source objects that provide those namespaces and all - requirements, in dependency order. - - Raises: - NamespaceNotFoundError: A namespace is requested but doesn't exist. - CircularDependencyError: A cycle is detected in the dependency tree. - """ - if isinstance(required_namespaces, str): - required_namespaces = [required_namespaces] - - deps_sources = [] - - for namespace in required_namespaces: - for source in DepsTree._ResolveDependencies( - namespace, [], self._provides_map, []): - if source not in deps_sources: - deps_sources.append(source) - - return deps_sources - - @staticmethod - def _ResolveDependencies(required_namespace, deps_list, provides_map, - traversal_path): - """Resolve dependencies for Closure source files. - - Follows the dependency tree down and builds a list of sources in dependency - order. This function will recursively call itself to fill all dependencies - below the requested namespaces, and then append its sources at the end of - the list. - - Args: - required_namespace: String of required namespace. - deps_list: List of sources in dependency order. This function will append - the required source once all of its dependencies are satisfied. - provides_map: Map from namespace to source that provides it. - traversal_path: List of namespaces of our path from the root down the - dependency/recursion tree. Used to identify cyclical dependencies. - This is a list used as a stack -- when the function is entered, the - current namespace is pushed and popped right before returning. - Each recursive call will check that the current namespace does not - appear in the list, throwing a CircularDependencyError if it does. - - Returns: - The given deps_list object filled with sources in dependency order. - - Raises: - NamespaceNotFoundError: A namespace is requested but doesn't exist. - CircularDependencyError: A cycle is detected in the dependency tree. - """ - - source = provides_map.get(required_namespace) - if not source: - raise NamespaceNotFoundError(required_namespace) - - if required_namespace in traversal_path: - traversal_path.append(required_namespace) # do this *after* the test - - # This must be a cycle. - raise CircularDependencyError(traversal_path) - - # If we don't have the source yet, we'll have to visit this namespace and - # add the required dependencies to deps_list. - if source not in deps_list: - traversal_path.append(required_namespace) - - for require in source.requires: - - # Append all other dependencies before we append our own. - DepsTree._ResolveDependencies(require, deps_list, provides_map, - traversal_path) - deps_list.append(source) - - traversal_path.pop() - - return deps_list - - -class BaseDepsTreeError(Exception): - """Base DepsTree error.""" - - def __init__(self): - Exception.__init__(self) - - -class CircularDependencyError(BaseDepsTreeError): - """Raised when a dependency cycle is encountered.""" - - def __init__(self, dependency_list): - BaseDepsTreeError.__init__(self) - self._dependency_list = dependency_list - - def __str__(self): - return ('Encountered circular dependency:\n%s\n' % - '\n'.join(self._dependency_list)) - - -class MultipleProvideError(BaseDepsTreeError): - """Raised when a namespace is provided more than once.""" - - def __init__(self, namespace, sources): - BaseDepsTreeError.__init__(self) - self._namespace = namespace - self._sources = sources - - def __str__(self): - source_strs = map(str, self._sources) - - return ('Namespace "%s" provided more than once in sources:\n%s\n' % - (self._namespace, '\n'.join(source_strs))) - - -class NamespaceNotFoundError(BaseDepsTreeError): - """Raised when a namespace is requested but not provided.""" - - def __init__(self, namespace, source=None): - BaseDepsTreeError.__init__(self) - self._namespace = namespace - self._source = source - - def __str__(self): - msg = 'Namespace "%s" never provided.' % self._namespace - if self._source: - msg += ' Required in %s' % self._source - return msg diff --git a/src/closure/conf/depswriter/depstree_test.py b/src/closure/conf/depswriter/depstree_test.py deleted file mode 100755 index eb4c9995..00000000 --- a/src/closure/conf/depswriter/depstree_test.py +++ /dev/null @@ -1,127 +0,0 @@ -#!/usr/bin/env python -# -# Copyright 2009 The Closure Library Authors. All Rights Reserved. -# -# 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. - - -"""Unit test for depstree.""" - -__author__ = 'nnaze@google.com (Nathan Naze)' - - -import unittest - -import depstree - - -def _GetProvides(sources): - """Get all namespaces provided by a collection of sources.""" - - provides = set() - for source in sources: - provides.update(source.provides) - return provides - - -class MockSource(object): - """Mock Source file.""" - - def __init__(self, provides, requires): - self.provides = set(provides) - self.requires = set(requires) - - def __repr__(self): - return 'MockSource %s' % self.provides - - -class DepsTreeTestCase(unittest.TestCase): - """Unit test for DepsTree. Tests several common situations and errors.""" - - def AssertValidDependencies(self, deps_list): - """Validates a dependency list. - - Asserts that a dependency list is valid: For every source in the list, - ensure that every require is provided by a source earlier in the list. - - Args: - deps_list: A list of sources that should be in dependency order. - """ - - for i in range(len(deps_list)): - source = deps_list[i] - previous_provides = _GetProvides(deps_list[:i]) - for require in source.requires: - self.assertTrue( - require in previous_provides, - 'Namespace "%s" not provided before required by %s' % ( - require, source)) - - def testSimpleDepsTree(self): - a = MockSource(['A'], ['B', 'C']) - b = MockSource(['B'], []) - c = MockSource(['C'], ['D']) - d = MockSource(['D'], ['E']) - e = MockSource(['E'], []) - - tree = depstree.DepsTree([a, b, c, d, e]) - - self.AssertValidDependencies(tree.GetDependencies('A')) - self.AssertValidDependencies(tree.GetDependencies('B')) - self.AssertValidDependencies(tree.GetDependencies('C')) - self.AssertValidDependencies(tree.GetDependencies('D')) - self.AssertValidDependencies(tree.GetDependencies('E')) - - def testCircularDependency(self): - # Circular deps - a = MockSource(['A'], ['B']) - b = MockSource(['B'], ['C']) - c = MockSource(['C'], ['A']) - - tree = depstree.DepsTree([a, b, c]) - - self.assertRaises(depstree.CircularDependencyError, - tree.GetDependencies, 'A') - - def testRequiresUndefinedNamespace(self): - a = MockSource(['A'], ['B']) - b = MockSource(['B'], ['C']) - c = MockSource(['C'], ['D']) # But there is no D. - - def MakeDepsTree(): - return depstree.DepsTree([a, b, c]) - - self.assertRaises(depstree.NamespaceNotFoundError, MakeDepsTree) - - def testDepsForMissingNamespace(self): - a = MockSource(['A'], ['B']) - b = MockSource(['B'], []) - - tree = depstree.DepsTree([a, b]) - - # There is no C. - self.assertRaises(depstree.NamespaceNotFoundError, - tree.GetDependencies, 'C') - - def testMultipleRequires(self): - a = MockSource(['A'], ['B']) - b = MockSource(['B'], ['C']) - c = MockSource(['C'], []) - d = MockSource(['D'], ['B']) - - tree = depstree.DepsTree([a, b, c, d]) - self.AssertValidDependencies(tree.GetDependencies(['D', 'A'])) - - -if __name__ == '__main__': - unittest.main() diff --git a/src/closure/conf/depswriter/depswriter.py b/src/closure/conf/depswriter/depswriter.py deleted file mode 100755 index a78e0f83..00000000 --- a/src/closure/conf/depswriter/depswriter.py +++ /dev/null @@ -1,212 +0,0 @@ -#!/usr/bin/env python -# -# Copyright 2009 The Closure Library Authors. All Rights Reserved. -# -# 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. - - -"""Generates out a Closure deps.js file given a list of JavaScript sources. - -Paths can be specified as arguments or (more commonly) specifying trees -with the flags (call with --help for descriptions). - -Usage: depswriter.py [path/to/js1.js [path/to/js2.js] ...] -""" - -import json -import logging -import optparse -import os -import posixpath -import shlex -import sys - -import source -import treescan - - -__author__ = 'nnaze@google.com (Nathan Naze)' - - -def MakeDepsFile(source_map): - """Make a generated deps file. - - Args: - source_map: A dict map of the source path to source.Source object. - - Returns: - str, A generated deps file source. - """ - - # Write in path alphabetical order - paths = sorted(source_map.keys()) - - lines = [] - - for path in paths: - js_source = source_map[path] - - # We don't need to add entries that don't provide anything. - if js_source.provides: - lines.append(_GetDepsLine(path, js_source)) - - return ''.join(lines) - - -def _GetDepsLine(path, js_source): - """Get a deps.js file string for a source.""" - - provides = _ToJsSrc(sorted(js_source.provides)) - requires = _ToJsSrc(sorted(js_source.requires)) - module = 'true' if js_source.is_goog_module else 'false' - - return 'goog.addDependency(\'%s?_\' + sessionStorage[\'build\'], %s, %s, %s);\n' % ( - path, provides, requires, module) - - -def _ToJsSrc(arr): - """Convert a python arr to a js source string.""" - - return json.dumps(arr).replace('"', '\'') - - -def _GetOptionsParser(): - """Get the options parser.""" - - parser = optparse.OptionParser(__doc__) - - parser.add_option('--output_file', - dest='output_file', - action='store', - help=('If specified, write output to this path instead of ' - 'writing to standard output.')) - parser.add_option('--root', - dest='roots', - default=[], - action='append', - help='A root directory to scan for JS source files. ' - 'Paths of JS files in generated deps file will be ' - 'relative to this path. This flag may be specified ' - 'multiple times.') - parser.add_option('--root_with_prefix', - dest='roots_with_prefix', - default=[], - action='append', - help='A root directory to scan for JS source files, plus ' - 'a prefix (if either contains a space, surround with ' - 'quotes). Paths in generated deps file will be relative ' - 'to the root, but preceded by the prefix. This flag ' - 'may be specified multiple times.') - parser.add_option('--path_with_depspath', - dest='paths_with_depspath', - default=[], - action='append', - help='A path to a source file and an alternate path to ' - 'the file in the generated deps file (if either contains ' - 'a space, surround with whitespace). This flag may be ' - 'specified multiple times.') - return parser - - -def _NormalizePathSeparators(path): - """Replaces OS-specific path separators with POSIX-style slashes. - - Args: - path: str, A file path. - - Returns: - str, The path with any OS-specific path separators (such as backslash on - Windows) replaced with URL-compatible forward slashes. A no-op on systems - that use POSIX paths. - """ - return path.replace(os.sep, posixpath.sep) - - -def _GetRelativePathToSourceDict(root, prefix=''): - """Scans a top root directory for .js sources. - - Args: - root: str, Root directory. - prefix: str, Prefix for returned paths. - - Returns: - dict, A map of relative paths (with prefix, if given), to source.Source - objects. - """ - # Remember and restore the cwd when we're done. We work from the root so - # that paths are relative from the root. - start_wd = os.getcwd() - os.chdir(root) - - path_to_source = {} - for path in treescan.ScanTreeForJsFiles('.'): - prefixed_path = _NormalizePathSeparators(os.path.join(prefix, path)) - path_to_source[prefixed_path] = source.Source(source.GetFileContents(path)) - - os.chdir(start_wd) - - return path_to_source - - -def _GetPair(s): - """Return a string as a shell-parsed tuple. Two values expected.""" - try: - # shlex uses '\' as an escape character, so they must be escaped. - s = s.replace('\\', '\\\\') - first, second = shlex.split(s) - return (first, second) - except: - raise Exception('Unable to parse input line as a pair: %s' % s) - - -def main(): - """CLI frontend to MakeDepsFile.""" - logging.basicConfig(format=(sys.argv[0] + ': %(message)s'), - level=logging.INFO) - options, args = _GetOptionsParser().parse_args() - - path_to_source = {} - - # Roots without prefixes - for root in options.roots: - path_to_source.update(_GetRelativePathToSourceDict(root)) - - # Roots with prefixes - for root_and_prefix in options.roots_with_prefix: - root, prefix = _GetPair(root_and_prefix) - path_to_source.update(_GetRelativePathToSourceDict(root, prefix=prefix)) - - # Source paths - for path in args: - path_to_source[path] = source.Source(source.GetFileContents(path)) - - # Source paths with alternate deps paths - for path_with_depspath in options.paths_with_depspath: - srcpath, depspath = _GetPair(path_with_depspath) - path_to_source[depspath] = source.Source(source.GetFileContents(srcpath)) - - # Make our output pipe. - if options.output_file: - out = open(options.output_file, 'w') - else: - out = sys.stdout - - out.write(('// This file was autogenerated by %s.\n' % - os.path.basename(__file__))) - out.write('// Please do not edit.\n') - - out.write(MakeDepsFile(path_to_source)) - - -if __name__ == '__main__': - main() diff --git a/src/closure/conf/depswriter/depswriter_test.py b/src/closure/conf/depswriter/depswriter_test.py deleted file mode 100755 index 8d9bf3b2..00000000 --- a/src/closure/conf/depswriter/depswriter_test.py +++ /dev/null @@ -1,62 +0,0 @@ -#!/usr/bin/env python -# -# Copyright 2010 The Closure Library Authors. All Rights Reserved. -# -# 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. - - -"""Unit test for depswriter.""" - -__author__ = 'johnlenz@google.com (John Lenz)' - - -import unittest - -import depswriter - - -class MockSource(object): - """Mock Source file.""" - - def __init__(self, provides, requires): - self.provides = set(provides) - self.requires = set(requires) - self.is_goog_module = False - - def __repr__(self): - return 'MockSource %s' % self.provides - - -class DepsWriterTestCase(unittest.TestCase): - """Unit test for depswriter.""" - - def testMakeDepsFile(self): - sources = {} - sources['test.js'] = MockSource(['A'], ['B', 'C']) - deps = depswriter.MakeDepsFile(sources) - - self.assertEqual( - 'goog.addDependency(\'test.js\', [\'A\'], [\'B\', \'C\'], false);\n', - deps) - - def testMakeDepsFileUnicode(self): - sources = {} - sources['test.js'] = MockSource([u'A'], [u'B', u'C']) - deps = depswriter.MakeDepsFile(sources) - - self.assertEqual( - 'goog.addDependency(\'test.js\', [\'A\'], [\'B\', \'C\'], false);\n', - deps) - -if __name__ == '__main__': - unittest.main() diff --git a/src/closure/conf/depswriter/jscompiler.py b/src/closure/conf/depswriter/jscompiler.py deleted file mode 100755 index 76b02537..00000000 --- a/src/closure/conf/depswriter/jscompiler.py +++ /dev/null @@ -1,162 +0,0 @@ -# Copyright 2010 The Closure Library Authors. All Rights Reserved. -# -# 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. -"""Utility to use the Closure Compiler CLI from Python.""" - -import logging -import os -import re -import subprocess -import tempfile - -# Pulls just the major and minor version numbers from the first line of -# 'java -version'. Versions are in the format of [0-9]+\.[0-9]+\..* See: -# http://www.oracle.com/technetwork/java/javase/versioning-naming-139433.html -_VERSION_REGEX = re.compile(r'"([0-9]+)\.([0-9]+)') - - -class JsCompilerError(Exception): - """Raised if there's an error in calling the compiler.""" - pass - - -def _GetJavaVersionString(): - """Get the version string from the Java VM.""" - return subprocess.check_output(['java', '-version'], stderr=subprocess.STDOUT) - - -def _ParseJavaVersion(version_string): - """Returns a 2-tuple for the current version of Java installed. - - Args: - version_string: String of the Java version (e.g. '1.7.2-ea'). - - Returns: - The major and minor versions, as a 2-tuple (e.g. (1, 7)). - """ - match = _VERSION_REGEX.search(version_string) - if match: - version = tuple(int(x, 10) for x in match.groups()) - assert len(version) == 2 - return version - - -def _JavaSupports32BitMode(): - """Determines whether the JVM supports 32-bit mode on the platform.""" - # Suppresses process output to stderr and stdout from showing up in the - # console as we're only trying to determine 32-bit JVM support. - supported = False - try: - devnull = open(os.devnull, 'wb') - return subprocess.call(['java', '-d32', '-version'], - stdout=devnull, - stderr=devnull) == 0 - except IOError: - pass - else: - devnull.close() - return supported - - -def _GetJsCompilerArgs(compiler_jar_path, java_version, jvm_flags): - """Assembles arguments for call to JsCompiler.""" - - if java_version < (1, 7): - raise JsCompilerError('Closure Compiler requires Java 1.7 or higher. ' - 'Please visit http://www.java.com/getjava') - - args = ['java'] - - # Add JVM flags we believe will produce the best performance. See - # https://groups.google.com/forum/#!topic/closure-library-discuss/7w_O9-vzlj4 - - # Attempt 32-bit mode if available (Java 7 on Mac OS X does not support 32-bit - # mode, for example). - if _JavaSupports32BitMode(): - args += ['-d32'] - - # Prefer the "client" VM. - args += ['-client'] - - # Add JVM flags, if any - if jvm_flags: - args += jvm_flags - - # Add the application JAR. - args += ['-jar', compiler_jar_path] - - return args - - -def _GetFlagFile(source_paths, compiler_flags): - """Writes given source paths and compiler flags to a --flagfile. - - The given source_paths will be written as '--js' flags and the compiler_flags - are written as-is. - - Args: - source_paths: List of string js source paths. - compiler_flags: List of string compiler flags. - - Returns: - The file to which the flags were written. - """ - args = [] - for path in source_paths: - args += ['--js', path] - - # Add compiler flags, if any. - if compiler_flags: - args += compiler_flags - - flags_file = tempfile.NamedTemporaryFile(delete=False) - flags_file.write(' '.join(args)) - flags_file.close() - - return flags_file - - -def Compile(compiler_jar_path, - source_paths, - jvm_flags=None, - compiler_flags=None): - """Prepares command-line call to Closure Compiler. - - Args: - compiler_jar_path: Path to the Closure compiler .jar file. - source_paths: Source paths to build, in order. - jvm_flags: A list of additional flags to pass on to JVM. - compiler_flags: A list of additional flags to pass on to Closure Compiler. - - Returns: - The compiled source, as a string, or None if compilation failed. - """ - - java_version = _ParseJavaVersion(str(_GetJavaVersionString())) - - args = _GetJsCompilerArgs(compiler_jar_path, java_version, jvm_flags) - - # Write source path arguments to flag file for avoiding "The filename or - # extension is too long" error in big projects. See - # https://github.com/google/closure-library/pull/678 - flags_file = _GetFlagFile(source_paths, compiler_flags) - args += ['--flagfile', flags_file.name] - - logging.info('Compiling with the following command: %s', ' '.join(args)) - - try: - return subprocess.check_output(args) - except subprocess.CalledProcessError: - raise JsCompilerError('JavaScript compilation failed.') - finally: - os.remove(flags_file.name) diff --git a/src/closure/conf/depswriter/jscompiler_test.py b/src/closure/conf/depswriter/jscompiler_test.py deleted file mode 100755 index 6f63e414..00000000 --- a/src/closure/conf/depswriter/jscompiler_test.py +++ /dev/null @@ -1,114 +0,0 @@ -#!/usr/bin/env python -# -# Copyright 2013 The Closure Library Authors. All Rights Reserved. -# -# 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. -"""Unit test for depstree.""" - -__author__ = 'nnaze@google.com (Nathan Naze)' - -import os -import unittest - -import jscompiler - - -class JsCompilerTestCase(unittest.TestCase): - """Unit tests for jscompiler module.""" - - def testGetFlagFile(self): - flags_file = jscompiler._GetFlagFile( - ['path/to/src1.js', 'path/to/src2.js'], ['--test_compiler_flag']) - - def file_get_contents(filename): - with open(filename) as f: - content = f.read() - f.close() - return content - - flags_file_content = file_get_contents(flags_file.name) - os.remove(flags_file.name) - - self.assertEqual( - '--js path/to/src1.js --js path/to/src2.js --test_compiler_flag', - flags_file_content) - - def testGetJsCompilerArgs(self): - - original_check = jscompiler._JavaSupports32BitMode - jscompiler._JavaSupports32BitMode = lambda: False - args = jscompiler._GetJsCompilerArgs('path/to/jscompiler.jar', (1, 7), - ['--test_jvm_flag']) - - self.assertEqual( - ['java', '-client', '--test_jvm_flag', '-jar', - 'path/to/jscompiler.jar'], args) - - def CheckJava15RaisesError(): - jscompiler._GetJsCompilerArgs('path/to/jscompiler.jar', (1, 5), - ['--test_jvm_flag']) - - self.assertRaises(jscompiler.JsCompilerError, CheckJava15RaisesError) - jscompiler._JavaSupports32BitMode = original_check - - def testGetJsCompilerArgs32BitJava(self): - - original_check = jscompiler._JavaSupports32BitMode - - # Should include the -d32 flag only if 32-bit Java is supported by the - # system. - jscompiler._JavaSupports32BitMode = lambda: True - args = jscompiler._GetJsCompilerArgs('path/to/jscompiler.jar', (1, 7), - ['--test_jvm_flag']) - - self.assertEqual( - ['java', '-d32', '-client', '--test_jvm_flag', '-jar', - 'path/to/jscompiler.jar'], args) - - # Should exclude the -d32 flag if 32-bit Java is not supported by the - # system. - jscompiler._JavaSupports32BitMode = lambda: False - args = jscompiler._GetJsCompilerArgs('path/to/jscompiler.jar', (1, 7), - ['--test_jvm_flag']) - - self.assertEqual( - ['java', '-client', '--test_jvm_flag', '-jar', - 'path/to/jscompiler.jar'], args) - - jscompiler._JavaSupports32BitMode = original_check - - def testGetJavaVersion(self): - - def assertVersion(expected, version_string): - self.assertEquals(expected, jscompiler._ParseJavaVersion(version_string)) - - assertVersion((1, 7), _TEST_JAVA_VERSION_STRING) - assertVersion((1, 6), _TEST_JAVA_NESTED_VERSION_STRING) - assertVersion((1, 4), 'java version "1.4.0_03-ea"') - - -_TEST_JAVA_VERSION_STRING = """\ -openjdk version "1.7.0-google-v5" -OpenJDK Runtime Environment (build 1.7.0-google-v5-64327-39803485) -OpenJDK Server VM (build 22.0-b10, mixed mode) -""" - -_TEST_JAVA_NESTED_VERSION_STRING = """\ -Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8 -java version "1.6.0_35" -Java(TM) SE Runtime Environment (build 1.6.0_35-b10-428-11M3811) -Java HotSpot(TM) Client VM (build 20.10-b01-428, mixed mode) -""" - -if __name__ == '__main__': - unittest.main() diff --git a/src/closure/conf/depswriter/source.py b/src/closure/conf/depswriter/source.py deleted file mode 100755 index 0610e6b6..00000000 --- a/src/closure/conf/depswriter/source.py +++ /dev/null @@ -1,132 +0,0 @@ -# Copyright 2009 The Closure Library Authors. All Rights Reserved. -# -# 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. - - -"""Scans a source JS file for its provided and required namespaces. - -Simple class to scan a JavaScript file and express its dependencies. -""" - -__author__ = 'nnaze@google.com' - - -import codecs -import re - -_BASE_REGEX_STRING = r'^\s*goog\.%s\(\s*[\'"](.+)[\'"]\s*\)' -_MODULE_REGEX = re.compile(_BASE_REGEX_STRING % 'module') -_PROVIDE_REGEX = re.compile(_BASE_REGEX_STRING % 'provide') - -_REQUIRE_REGEX_STRING = (r'^\s*(?:(?:var|let|const)\s+[a-zA-Z_$][a-zA-Z0-9$_]*' - r'\s*=\s*)?goog\.require\(\s*[\'"](.+)[\'"]\s*\)') -_REQUIRES_REGEX = re.compile(_REQUIRE_REGEX_STRING) - -class Source(object): - """Scans a JavaScript source for its provided and required namespaces.""" - - # Matches a "/* ... */" comment. - # Note: We can't definitively distinguish a "/*" in a string literal without a - # state machine tokenizer. We'll assume that a line starting with whitespace - # and "/*" is a comment. - _COMMENT_REGEX = re.compile( - r""" - ^\s* # Start of a new line and whitespace - /\* # Opening "/*" - .*? # Non greedy match of any characters (including newlines) - \*/ # Closing "*/""", - re.MULTILINE | re.DOTALL | re.VERBOSE) - - def __init__(self, source): - """Initialize a source. - - Args: - source: str, The JavaScript source. - """ - - self.provides = set() - self.requires = set() - self.is_goog_module = False - - self._source = source - self._ScanSource() - - def GetSource(self): - """Get the source as a string.""" - return self._source - - @classmethod - def _StripComments(cls, source): - return cls._COMMENT_REGEX.sub('', source) - - @classmethod - def _HasProvideGoogFlag(cls, source): - """Determines whether the @provideGoog flag is in a comment.""" - for comment_content in cls._COMMENT_REGEX.findall(source): - if '@provideGoog' in comment_content: - return True - - return False - - def _ScanSource(self): - """Fill in provides and requires by scanning the source.""" - - stripped_source = self._StripComments(self.GetSource()) - - source_lines = stripped_source.splitlines() - for line in source_lines: - match = _PROVIDE_REGEX.match(line) - if match: - self.provides.add(match.group(1)) - match = _MODULE_REGEX.match(line) - if match: - self.provides.add(match.group(1)) - self.is_goog_module = True - match = _REQUIRES_REGEX.match(line) - if match: - self.requires.add(match.group(1)) - - # Closure's base file implicitly provides 'goog'. - # This is indicated with the @provideGoog flag. - if self._HasProvideGoogFlag(self.GetSource()): - - if len(self.provides) or len(self.requires): - raise Exception( - 'Base file should not provide or require namespaces.') - - self.provides.add('goog') - - -def GetFileContents(path): - """Get a file's contents as a string. - - Args: - path: str, Path to file. - - Returns: - str, Contents of file. - - Raises: - IOError: An error occurred opening or reading the file. - - """ - fileobj = None - try: - fileobj = codecs.open(path, encoding='utf-8-sig') - return fileobj.read() - except IOError as error: - raise IOError('An error occurred opening or reading the file: %s. %s' - % (path, error)) - finally: - if fileobj is not None: - fileobj.close() diff --git a/src/closure/conf/depswriter/source_test.py b/src/closure/conf/depswriter/source_test.py deleted file mode 100755 index eb1591b4..00000000 --- a/src/closure/conf/depswriter/source_test.py +++ /dev/null @@ -1,152 +0,0 @@ -#!/usr/bin/env python -# -# Copyright 2010 The Closure Library Authors. All Rights Reserved. -# -# 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. - - -"""Unit test for source.""" - -__author__ = 'nnaze@google.com (Nathan Naze)' - - -import unittest - -import source - - -class SourceTestCase(unittest.TestCase): - """Unit test for source. Tests the parser on a known source input.""" - - def testSourceScan(self): - test_source = source.Source(_TEST_SOURCE) - - self.assertEqual(set(['foo', 'foo.test']), - test_source.provides) - self.assertEqual(set(['goog.dom', 'goog.events.EventType']), - test_source.requires) - self.assertFalse(test_source.is_goog_module) - - def testSourceScanBase(self): - test_source = source.Source(_TEST_BASE_SOURCE) - - self.assertEqual(set(['goog']), - test_source.provides) - self.assertEqual(test_source.requires, set()) - self.assertFalse(test_source.is_goog_module) - - def testSourceScanBadBase(self): - - def MakeSource(): - source.Source(_TEST_BAD_BASE_SOURCE) - - self.assertRaises(Exception, MakeSource) - - def testSourceScanGoogModule(self): - test_source = source.Source(_TEST_MODULE_SOURCE) - - self.assertEqual(set(['foo']), - test_source.provides) - self.assertEqual(set(['bar']), - test_source.requires) - self.assertTrue(test_source.is_goog_module) - - def testStripComments(self): - self.assertEquals( - '\nvar foo = function() {}', - source.Source._StripComments(( - '/* This is\n' - ' a comment split\n' - ' over multiple lines\n' - '*/\n' - 'var foo = function() {}'))) - - def testGoogStatementsInComments(self): - test_source = source.Source(_TEST_COMMENT_SOURCE) - - self.assertEqual(set(['foo']), - test_source.provides) - self.assertEqual(set(['goog.events.EventType']), - test_source.requires) - self.assertFalse(test_source.is_goog_module) - - def testHasProvideGoog(self): - self.assertTrue(source.Source._HasProvideGoogFlag(_TEST_BASE_SOURCE)) - self.assertTrue(source.Source._HasProvideGoogFlag(_TEST_BAD_BASE_SOURCE)) - self.assertFalse(source.Source._HasProvideGoogFlag(_TEST_COMMENT_SOURCE)) - - -_TEST_MODULE_SOURCE = """ -goog.module('foo'); -var b = goog.require('bar'); -""" - - -_TEST_SOURCE = """// Fake copyright notice - -/** Very important comment. */ - -goog.provide('foo'); -goog.provide('foo.test'); - -goog.require('goog.dom'); -goog.require('goog.events.EventType'); - -function foo() { - // Set bar to seventeen to increase performance. - this.bar = 17; -} -""" - -_TEST_COMMENT_SOURCE = """// Fake copyright notice - -goog.provide('foo'); - -/* -goog.provide('foo.test'); - */ - -/* -goog.require('goog.dom'); -*/ - -// goog.require('goog.dom'); - -goog.require('goog.events.EventType'); - -function bar() { - this.baz = 55; -} -""" - -_TEST_BASE_SOURCE = """ -/** - * @fileoverview The base file. - * @provideGoog - */ - -var goog = goog || {}; -""" - -_TEST_BAD_BASE_SOURCE = """ -/** - * @fileoverview The base file. - * @provideGoog - */ - -goog.provide('goog'); -""" - - -if __name__ == '__main__': - unittest.main() diff --git a/src/closure/conf/depswriter/treescan.py b/src/closure/conf/depswriter/treescan.py deleted file mode 100755 index 6694593a..00000000 --- a/src/closure/conf/depswriter/treescan.py +++ /dev/null @@ -1,78 +0,0 @@ -#!/usr/bin/env python -# -# Copyright 2010 The Closure Library Authors. All Rights Reserved. -# -# 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. - - -"""Shared utility functions for scanning directory trees.""" - -import os -import re - - -__author__ = 'nnaze@google.com (Nathan Naze)' - - -# Matches a .js file path. -_JS_FILE_REGEX = re.compile(r'^.+\.js$') - - -def ScanTreeForJsFiles(root): - """Scans a directory tree for JavaScript files. - - Args: - root: str, Path to a root directory. - - Returns: - An iterable of paths to JS files, relative to cwd. - """ - return ScanTree(root, path_filter=_JS_FILE_REGEX) - - -def ScanTree(root, path_filter=None, ignore_hidden=True): - """Scans a directory tree for files. - - Args: - root: str, Path to a root directory. - path_filter: A regular expression filter. If set, only paths matching - the path_filter are returned. - ignore_hidden: If True, do not follow or return hidden directories or files - (those starting with a '.' character). - - Yields: - A string path to files, relative to cwd. - """ - - def OnError(os_error): - raise os_error - - for dirpath, dirnames, filenames in os.walk(root, onerror=OnError): - # os.walk allows us to modify dirnames to prevent decent into particular - # directories. Avoid hidden directories. - for dirname in dirnames: - if ignore_hidden and dirname.startswith('.'): - dirnames.remove(dirname) - - for filename in filenames: - - # nothing that starts with '.' - if ignore_hidden and filename.startswith('.'): - continue - - fullpath = os.path.join(dirpath, filename) - - if path_filter and not path_filter.match(fullpath): - continue - - yield os.path.normpath(fullpath) diff --git a/src/closure/conf/externs/angular-1.3.js b/src/closure/conf/externs/angular-1.3.js deleted file mode 100755 index c3795d29..00000000 --- a/src/closure/conf/externs/angular-1.3.js +++ /dev/null @@ -1,2392 +0,0 @@ -/* - * Copyright 2012 The Closure Compiler Authors. - * - * 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. - */ - -/** - * @fileoverview Externs for Angular 1. - * - * TODO: Mocks. - * TODO: Remaining Services: - * $compileProvider - * $cookies - * $cookieStore - * $document - * $httpBackend - * $interpolate - * $locale - * $resource - * $rootElement - * $rootScope - * $rootScopeProvider - * - * TODO: Resolve two issues with angular.$http - * 1) angular.$http isn't declared as a - * callable type. It should be declared as a function, and properties - * added following the technique used by $timeout, $parse and - * $interval. - * 2) angular.$http.delete cannot be added as an extern - * as it is a reserved keyword. - * Its use is potentially not supported in IE. - * It may be aliased as 'remove' in a future version. - * - * @see http://angularjs.org/ - * @externs - */ - -/** - * @typedef {(Window|Document|Element|Array.<Element>|string|!angular.JQLite| - * NodeList|{length: number})} - */ -var JQLiteSelector; - -/** - * @type {Object} - * @const - */ -var angular = {}; - -/** - * @param {T} self Specifies the object which this should point to when the - * function is run. - * @param {?function(this:T, ...)} fn A function to partially apply. - * @return {!Function} A partially-applied form of the function bind() was - * invoked as a method of. - * @param {...*} args Additional arguments that are partially applied to the - * function. - * @template T - */ -angular.bind = function(self, fn, args) {}; - -/** @typedef {{strictDi: (boolean|undefined)}} */ -angular.BootstrapOptions; - -/** - * @param {Element|HTMLDocument} element - * @param {Array.<string|Function>=} opt_modules - * @param {angular.BootstrapOptions=} opt_config - * @return {!angular.$injector} - */ -angular.bootstrap = function(element, opt_modules, opt_config) {}; - -/** - * @param {T} source - * @param {(Object|Array)=} opt_dest - * @return {T} - * @template T - */ -angular.copy = function(source, opt_dest) {}; - -/** - * @param {(JQLiteSelector|Object)} element - * @param {(JQLiteSelector|Object)=} opt_context - * @return {!angular.JQLite} - */ -angular.element = function(element, opt_context) {}; - -/** - * @param {*} o1 - * @param {*} o2 - * @return {boolean} - */ -angular.equals = function(o1, o2) {}; - -/** - * @param {Object} dest - * @param {...Object} srcs - */ -angular.extend = function(dest, srcs) {}; - -/** - * @param {Object|Array} obj - * @param {Function} iterator - * @param {Object=} opt_context - * @return {Object|Array} - */ -angular.forEach = function(obj, iterator, opt_context) {}; - -/** - * @param {string|T} json - * @return {Object|Array|Date|T} - * @template T - */ -angular.fromJson = function(json) {}; - -/** - * @param {*} arg - * @return {*} - */ -angular.identity = function(arg) {}; - -/** - * @param {Array.<string|Function>} modules - * @return {!angular.$injector} - */ -angular.injector = function(modules) {}; - -/** - * @param {*} value - * @return {boolean} - */ -angular.isArray = function(value) {}; - -/** - * @param {*} value - * @return {boolean} - */ -angular.isDate = function(value) {}; - -/** - * @param {*} value - * @return {boolean} - */ -angular.isDefined = function(value) {}; - -/** - * @param {*} value - * @return {boolean} - */ -angular.isElement = function(value) {}; - -/** - * @param {*} value - * @return {boolean} - */ -angular.isFunction = function(value) {}; - -/** - * @param {*} value - * @return {boolean} - */ -angular.isNumber = function(value) {}; - -/** - * @param {*} value - * @return {boolean} - */ -angular.isObject = function(value) {}; - -/** - * @param {*} value - * @return {boolean} - */ -angular.isString = function(value) {}; - -/** - * @param {*} value - * @return {boolean} - */ -angular.isUndefined = function(value) {}; - -/** - * @param {string} s - * @return {string} - */ -angular.lowercase = function(s) {}; - -angular.mock = {}; - -/** - * @param {string} name - * @param {Array.<string>=} opt_requires - * @param {(Function|Array.<string|Function>)=} opt_configFn - * @return {!angular.Module} - */ -angular.module = function(name, opt_requires, opt_configFn) {}; - -angular.noop = function() {}; - -/** - * @param {Object|Array|Date|string|number} obj - * @param {boolean=} opt_pretty - * @return {string} - */ -angular.toJson = function(obj, opt_pretty) {}; - -/** - * @param {string} s - * @return {string} - */ -angular.uppercase = function(s) {}; - -/** - * @typedef {{ - * enter: (function(!angular.JQLite, !Function): (!Function|undefined)| - * undefined), - * leave: (function(!angular.JQLite, !Function): (!Function|undefined)| - * undefined), - * move: (function(!angular.JQLite, !Function): (!Function|undefined)| - * undefined), - * addClass: (function(!angular.JQLite, !Function): (!Function|undefined)| - * undefined), - * removeClass: (function(!angular.JQLite, !Function): (!Function|undefined)| - * undefined) - * }} - */ -angular.Animation; - -/** - * @param {!angular.JQLite} element - * @param {!Function} done - * @return {(!Function|undefined)} - */ -angular.Animation.enter = function(element, done) {}; - -/** - * @param {!angular.JQLite} element - * @param {!Function} done - * @return {(!Function|undefined)} - */ -angular.Animation.leave = function(element, done) {}; - -/** - * @param {!angular.JQLite} element - * @param {!Function} done - * @return {(!Function|undefined)} - */ -angular.Animation.move = function(element, done) {}; - -/** - * @param {!angular.JQLite} element - * @param {!Function} done - * @return {(!Function|undefined)} - */ -angular.Animation.addClass = function(element, done) {}; - -/** - * @param {!angular.JQLite} element - * @param {!Function} done - * @return {(!Function|undefined)} - */ -angular.Animation.removeClass = function(element, done) {}; - -/** - * @typedef {{ - * $attr: Object.<string,string>, - * $normalize: function(string): string, - * $observe: function(string, function(*)): function(), - * $set: function(string, ?(string|boolean), boolean=, string=) - * }} - */ -angular.Attributes; - -/** - * @type {Object.<string, string>} - */ -angular.Attributes.$attr; - -/** - * @param {string} classVal - */ -angular.Attributes.$addClass = function(classVal) {}; - -/** - * @param {string} classVal - */ -angular.Attributes.$removeClass = function(classVal) {}; - -/** - * @param {string} newClasses - * @param {string} oldClasses - */ -angular.Attributes.$updateClass = function(newClasses, oldClasses) {}; - -/** - * @param {string} name - * @return {string} - */ -angular.Attributes.$normalize = function(name) {}; - -/** - * @param {string} key - * @param {function(*)} fn - * @return {function()} - */ -angular.Attributes.$observe = function(key, fn) {}; - -/** - * @param {string} key - * @param {?(string|boolean)} value - * @param {boolean=} opt_writeAttr - * @param {string=} opt_attrName - */ -angular.Attributes.$set = function(key, value, opt_writeAttr, opt_attrName) {}; - -/** - * @typedef {{ - * pre: (function( - * !angular.Scope=, - * !angular.JQLite=, - * !angular.Attributes=, - * (!Object|!Array.<!Object>)=)| - * undefined), - * post: (function( - * !angular.Scope=, - * !angular.JQLite=, - * !angular.Attributes=, - * (!Object|Array.<!Object>)=)| - * undefined) - * }} - */ -angular.LinkingFunctions; - -/** - * @param {!angular.Scope=} scope - * @param {!angular.JQLite=} iElement - * @param {!angular.Attributes=} iAttrs - * @param {(!Object|!Array.<!Object>)=} controller - */ -angular.LinkingFunctions.pre = function(scope, iElement, iAttrs, controller) {}; - -/** - * @param {!angular.Scope=} scope - * @param {!angular.JQLite=} iElement - * @param {!angular.Attributes=} iAttrs - * @param {(!Object|!Array.<!Object>)=} controller - */ -angular.LinkingFunctions.post = function(scope, iElement, iAttrs, controller) { -}; - -/** - * @typedef {{ - * bindToController: (boolean|undefined), - * compile: (function( - * !angular.JQLite=, !angular.Attributes=, Function=)|undefined), - * controller: (Function|Array.<string|Function>|string|undefined), - * controllerAs: (string|undefined), - * link: (function( - * !angular.Scope=, !angular.JQLite=, !angular.Attributes=, - * (!Object|!Array.<!Object>)=)| - * !angular.LinkingFunctions| - * undefined), - * name: (string|undefined), - * priority: (number|undefined), - * replace: (boolean|undefined), - * require: (string|Array.<string>|undefined), - * restrict: (string|undefined), - * scope: (boolean|Object.<string, string>|undefined), - * template: (string| - * function(!angular.JQLite=,!angular.Attributes=): string| - * undefined), - * templateNamespace: (string|undefined), - * templateUrl: (string| - * function(!angular.JQLite=,!angular.Attributes=)| - * undefined), - * terminal: (boolean|undefined), - * transclude: (boolean|string|undefined) - * }} - */ -angular.Directive; - -/** - * @param {!angular.JQLite=} tElement - * @param {!angular.Attributes=} tAttrs - * @param {Function=} transclude - * @return {Function|angular.LinkingFunctions|undefined} - */ -angular.Directive.compile = function(tElement, tAttrs, transclude) {}; - -angular.Directive.controller = function() {}; - -/** - * @type {string|undefined} - */ -angular.Directive.controllerAs; - -/** - * @type {( - * function(!angular.Scope=, !angular.JQLite=, !angular.Attributes=, - * (!Object|!Array.<!Object>)=)| - * !angular.LinkingFunctions| - * undefined - * )} - */ -angular.Directive.link; - -/** - * @type {(string|undefined)} - */ -angular.Directive.name; - -/** - * @type {(number|undefined)} - */ -angular.Directive.priority; - -/** - * @type {(boolean|undefined)} - */ -angular.Directive.replace; - -/** - * @type {(string|Array.<string>|undefined)} - */ -angular.Directive.require; - -/** - * @type {(string|undefined)} - */ -angular.Directive.restrict; - -/** - * @type {(boolean|Object.<string, string>|undefined)} - */ -angular.Directive.scope; - -/** - * @type {( - * string| - * function(!angular.JQLite=,!angular.Attributes=): string| - * undefined - * )} - */ -angular.Directive.template; - -/** - * @type {(string|function(!angular.JQLite=, !angular.Attributes=)|undefined)} - */ -angular.Directive.templateUrl; - -/** - * @type {(boolean|undefined)} - */ -angular.Directive.terminal; - -/** - * @type {(boolean|string|undefined)} - */ -angular.Directive.transclude; - -/** - * @typedef {{ - * addClass: function(string): !angular.JQLite, - * after: function(JQLiteSelector): !angular.JQLite, - * append: function(JQLiteSelector): !angular.JQLite, - * attr: function(string, (string|boolean)=): - * (!angular.JQLite|string|boolean), - * bind: function(string, Function): !angular.JQLite, - * children: function(): !angular.JQLite, - * clone: function(): !angular.JQLite, - * contents: function(): !angular.JQLite, - * controller: function(string=): Object, - * css: function((string|!Object), string=): (!angular.JQLite|string), - * data: function(string=, *=): *, - * detach: function(): !angular.JQLite, - * empty: function(): !angular.JQLite, - * eq: function(number): !angular.JQLite, - * find: function(string): !angular.JQLite, - * hasClass: function(string): boolean, - * html: function(string=): (!angular.JQLite|string), - * inheritedData: function(string=, *=): *, - * injector: function(): !angular.$injector, - * isolateScope: function(): (!angular.Scope|undefined), - * length: number, - * next: function(): !angular.JQLite, - * on: function(string, Function): !angular.JQLite, - * off: function(string=, Function=): !angular.JQLite, - * one: function(string, Function): !angular.JQLite, - * parent: function(): !angular.JQLite, - * prepend: function(JQLiteSelector): !angular.JQLite, - * prop: function(string, *=): *, - * ready: function(Function): !angular.JQLite, - * remove: function(): !angular.JQLite, - * removeAttr: function(string): !angular.JQLite, - * removeClass: function(string): !angular.JQLite, - * removeData: function(string=): !angular.JQLite, - * replaceWith: function(JQLiteSelector): !angular.JQLite, - * scope: function(): !angular.Scope, - * text: function(string=): (!angular.JQLite|string), - * toggleClass: function(string, boolean=): !angular.JQLite, - * triggerHandler: function(string, *=): !angular.JQLite, - * unbind: function(string=, Function=): !angular.JQLite, - * val: function(string=): (!angular.JQLite|string), - * wrap: function(JQLiteSelector): !angular.JQLite - * }} - */ -angular.JQLite; - -/** - * @param {string} name - * @return {!angular.JQLite} - */ -angular.JQLite.addClass = function(name) {}; - -/** - * @param {JQLiteSelector} element - * @return {!angular.JQLite} - */ -angular.JQLite.after = function(element) {}; - -/** - * @param {JQLiteSelector} element - * @return {!angular.JQLite} - */ -angular.JQLite.append = function(element) {}; - -/** - * @param {string} name - * @param {(string|boolean)=} opt_value - * @return {!angular.JQLite|string|boolean} - */ -angular.JQLite.attr = function(name, opt_value) {}; - -/** - * @param {string} type - * @param {Function} fn - * @return {!angular.JQLite} - */ -angular.JQLite.bind = function(type, fn) {}; - -/** - * @return {!angular.JQLite} - */ -angular.JQLite.children = function() {}; - -/** - * @return {!angular.JQLite} - */ -angular.JQLite.clone = function() {}; - -/** - * @return {!angular.JQLite} - */ -angular.JQLite.contents = function() {}; - -/** - * @param {string=} opt_name - * @return {Object} - */ -angular.JQLite.controller = function(opt_name) {}; - -/** - * @param {(string|!Object)} nameOrObject - * @param {string=} opt_value - * @return {!angular.JQLite|string} - */ -angular.JQLite.css = function(nameOrObject, opt_value) {}; - -/** - * @param {string=} opt_key - * @param {*=} opt_value - * @return {*} - */ -angular.JQLite.data = function(opt_key, opt_value) {}; - -/** - * @param {number} index - * @return {!angular.JQLite} - */ -angular.JQLite.eq = function(index) {}; - -/** - * @param {string} selector - * @return {!angular.JQLite} - */ -angular.JQLite.find = function(selector) {}; - -/** - * @param {string} name - * @return {boolean} - */ -angular.JQLite.hasClass = function(name) {}; - -/** - * @param {string=} opt_value - * @return {!angular.JQLite|string} - */ -angular.JQLite.html = function(opt_value) {}; - -/** - * @param {string=} opt_key - * @param {*=} opt_value - * @return {*} - */ -angular.JQLite.inheritedData = function(opt_key, opt_value) {}; - -/** - * @return {!angular.$injector} - */ -angular.JQLite.injector = function() {}; - -/** @type {number} */ -angular.JQLite.length; - -/** - * @return {!angular.JQLite} - */ -angular.JQLite.next = function() {}; - -/** - * @param {string} type - * @param {Function} fn - * @return {!angular.JQLite} - */ -angular.JQLite.on = function(type, fn) {}; - -/** - * @param {string=} opt_type - * @param {Function=} opt_fn - * @return {!angular.JQLite} - */ -angular.JQLite.off = function(opt_type, opt_fn) {}; - -/** - * @return {!angular.JQLite} - */ -angular.JQLite.parent = function() {}; - -/** - * @param {JQLiteSelector} element - * @return {!angular.JQLite} - */ -angular.JQLite.prepend = function(element) {}; - -/** - * @param {string} name - * @param {*=} opt_value - * @return {*} - */ -angular.JQLite.prop = function(name, opt_value) {}; - -/** - * @param {Function} fn - * @return {!angular.JQLite} - */ -angular.JQLite.ready = function(fn) {}; - -/** - * @return {!angular.JQLite} - */ -angular.JQLite.remove = function() {}; - -/** - * @param {string} name - * @return {!angular.JQLite} - */ -angular.JQLite.removeAttr = function(name) {}; - -/** - * @param {string} name - * @return {!angular.JQLite} - */ -angular.JQLite.removeClass = function(name) {}; - -/** - * @param {string=} opt_name - * @return {!angular.JQLite} - */ -angular.JQLite.removeData = function(opt_name) {}; - -/** - * @param {JQLiteSelector} element - * @return {!angular.JQLite} - */ -angular.JQLite.replaceWith = function(element) {}; - -/** - * @return {!angular.Scope} - */ -angular.JQLite.scope = function() {}; - -/** - * @param {string=} opt_value - * @return {!angular.JQLite|string} - */ -angular.JQLite.text = function(opt_value) {}; - -/** - * @param {string} name - * @param {boolean=} opt_condition - * @return {!angular.JQLite} - */ -angular.JQLite.toggleClass = function(name, opt_condition) {}; - -/** - * @param {string} type - * @param {*=} opt_value - * @return {!angular.JQLite} - */ -angular.JQLite.triggerHandler = function(type, opt_value) {}; - -/** - * @param {string=} opt_type - * @param {Function=} opt_fn - * @return {!angular.JQLite} - */ -angular.JQLite.unbind = function(opt_type, opt_fn) {}; - -/** - * @param {string=} opt_value - * @return {!angular.JQLite|string} - */ -angular.JQLite.val = function(opt_value) {}; - -/** - * @param {JQLiteSelector} element - * @return {!angular.JQLite} - */ -angular.JQLite.wrap = function(element) {}; - -/** - * @typedef {{ - * animation: - * function(string, function(...*):angular.Animation):!angular.Module, - * config: function((Function|Array.<string|Function>)):!angular.Module, - * constant: function(string, *):angular.Module, - * controller: - * (function(string, (Function|Array.<string|Function>)):!angular.Module| - * function(!Object.<(Function|Array.<string|Function>)>): - * !angular.Module), - * directive: - * (function(string, (Function|Array.<string|Function>)):!angular.Module| - * function(!Object.<(Function|Array.<string|Function>)>): - * !angular.Module), - * factory: - * function(string, (Function|Array.<string|Function>)):!angular.Module, - * filter: - * function(string, (Function|Array.<string|Function>)):!angular.Module, - * name: string, - * provider: function(string, - * (Object|Function|Array.<string|Function>)):!angular.Module, - * requires: !Array.<string>, - * run: function((Function|Array.<string|Function>)):!angular.Module, - * service: - * function(string, (Function|Array.<string|Function>)):!angular.Module, - * value: function(string, *):!angular.Module - * }} - */ -angular.Module; - -/** - * @param {string} name - * @param {function(...*):angular.Animation} animationFactory - */ -angular.Module.animation = function(name, animationFactory) {}; - -/** - * @param {Function|Array.<string|Function>} configFn - * @return {!angular.Module} - */ -angular.Module.config = function(configFn) {}; - -/** - * @param {string} name - * @param {*} object - * @return {!angular.Module} - */ -angular.Module.constant = function(name, object) {}; - -/** - * @param {string} name - * @param {Function|Array.<string|Function>} constructor - * @return {!angular.Module} - */ -angular.Module.controller = function(name, constructor) {}; - -/** - * @param {string} name - * @param {Function|Array.<string|Function>} directiveFactory - * @return {!angular.Module} - */ -angular.Module.directive = function(name, directiveFactory) {}; - -/** - * @param {string} name - * @param {Function|Array.<string|Function>} providerFunction - * @return {!angular.Module} - */ -angular.Module.factory = function(name, providerFunction) {}; - -/** - * @param {string} name - * @param {Function|Array.<string|Function>} filterFactory - * @return {!angular.Module} - */ -angular.Module.filter = function(name, filterFactory) {}; - -/** - * @param {string} name - * @param {Function|Array.<string|Function>} providerType - * @return {!angular.Module} - */ -angular.Module.provider = function(name, providerType) {}; - -/** - * @param {Function|Array.<string|Function>} initializationFn - * @return {!angular.Module} - */ -angular.Module.run = function(initializationFn) {}; - -/** - * @param {string} name - * @param {Function|Array.<string|Function>} constructor - * @return {!angular.Module} - */ -angular.Module.service = function(name, constructor) {}; - -/** - * @param {string} name - * @param {*} object - * @return {!angular.Module} - */ -angular.Module.value = function(name, object) {}; - -/** - * @type {string} - */ -angular.Module.name = ''; - -/** - * @type {Array.<string>} - */ -angular.Module.requires; - -/** - * @typedef {{ - * $$phase: string, - * $apply: function((string|function(!angular.Scope))=):*, - * $applyAsync: function((string|function(!angular.Scope))=), - * $broadcast: function(string, ...*), - * $destroy: function(), - * $digest: function(), - * $emit: function(string, ...*), - * $eval: function((string|function(!angular.Scope))=, Object=):*, - * $evalAsync: function((string|function())=), - * $id: string, - * $new: function(boolean=):!angular.Scope, - * $on: function(string, function(!angular.Scope.Event, ...?)):function(), - * $parent: !angular.Scope, - * $root: !angular.Scope, - * $watch: function( - * (string|Function), (string|Function)=, boolean=):function(), - * $watchCollection: function( - * (string|Function), (string|Function)=):function(), - * $watchGroup: function( - * Array.<string|Function>, (string|Function)=):function() - * }} - */ -angular.Scope; - -/** @type {string} */ -angular.Scope.$$phase; - -/** - * @param {(string|function(!angular.Scope))=} opt_exp - * @return {*} - */ -angular.Scope.$apply = function(opt_exp) {}; - -/** - * @param {string} name - * @param {...*} args - */ -angular.Scope.$broadcast = function(name, args) {}; - -angular.Scope.$destroy = function() {}; - -angular.Scope.$digest = function() {}; - -/** - * @param {string} name - * @param {...*} args - */ -angular.Scope.$emit = function(name, args) {}; - -/** - * @param {(string|function())=} opt_exp - * @param {Object=} opt_locals - * @return {*} - */ -angular.Scope.$eval = function(opt_exp, opt_locals) {}; - -/** - * @param {(string|function())=} opt_exp - */ -angular.Scope.$evalAsync = function(opt_exp) {}; - -/** @type {string} */ -angular.Scope.$id; - -/** - * @param {boolean=} opt_isolate - * @return {!angular.Scope} - */ -angular.Scope.$new = function(opt_isolate) {}; - -/** - * @param {string} name - * @param {function(!angular.Scope.Event, ...?)} listener - * @return {function()} - */ -angular.Scope.$on = function(name, listener) {}; - -/** @type {!angular.Scope} */ -angular.Scope.$parent; - -/** @type {!angular.Scope} */ -angular.Scope.$root; - -/** - * @param {string|!Function} exp - * @param {(string|Function)=} opt_listener - * @param {boolean=} opt_objectEquality - * @return {function()} - */ -angular.Scope.$watch = function(exp, opt_listener, opt_objectEquality) {}; - -/** - * @param {string|!Function} exp - * @param {(string|Function)=} opt_listener - * @return {function()} - */ -angular.Scope.$watchCollection = function(exp, opt_listener) {}; - -/** - * @typedef {{ - * currentScope: !angular.Scope, - * defaultPrevented: boolean, - * name: string, - * preventDefault: function(), - * stopPropagation: function(), - * targetScope: !angular.Scope - * }} - */ -angular.Scope.Event; - -/** @type {!angular.Scope} */ -angular.Scope.Event.currentScope; - -/** @type {boolean} */ -angular.Scope.Event.defaultPrevented; - -/** @type {string} */ -angular.Scope.Event.name; - -angular.Scope.Event.preventDefault = function() {}; - -angular.Scope.Event.stopPropagation = function() {}; - -/** @type {!angular.Scope} */ -angular.Scope.Event.targetScope; - -/** - * @type {Object} - */ -angular.version = {}; - -/** - * @type {string} - */ -angular.version.full = ''; - -/** - * @type {number} - */ -angular.version.major = 0; - -/** - * @type {number} - */ -angular.version.minor = 0; - -/** - * @type {number} - */ -angular.version.dot = 0; - -/** - * @type {string} - */ -angular.version.codeName = ''; - -/****************************************************************************** - * $anchorScroll Service - *****************************************************************************/ - -/** - * @typedef {function()} - */ -angular.$anchorScroll; - -/****************************************************************************** - * $anchorScrollProvider Service - *****************************************************************************/ - -/** - * @typedef {{ - * disableAutoScrolling: function() - * }} - */ -angular.$anchorScrollProvider; - -/** - * @type {function()} - */ -angular.$anchorScrollProvider.disableAutoScrolling = function() {}; - -/****************************************************************************** - * $animate Service - *****************************************************************************/ - -/** - * @constructor - */ -angular.$animate; - -/** - * @param {JQLiteSelector} element - * @param {Object} from - * @param {Object} to - * @param {string=} opt_className - * @param {Object.<string, *>=} opt_options - * @return {!angular.$q.Promise} - */ -angular.$animate.prototype.animate = function( - element, from, to, opt_className, opt_options) {}; - -/** - * @param {JQLiteSelector} element - * @param {JQLiteSelector} parentElement - * @param {JQLiteSelector} afterElement - * @param {Object.<string, *>=} opt_options - * @return {!angular.$q.Promise} - */ -angular.$animate.prototype.enter = function( - element, parentElement, afterElement, opt_options) {}; - -/** - * @param {JQLiteSelector} element - * @param {Object.<string, *>=} opt_options - * @return {!angular.$q.Promise} - */ -angular.$animate.prototype.leave = function(element, opt_options) {}; - -/** - * @param {JQLiteSelector} element - * @param {JQLiteSelector} parentElement - * @param {JQLiteSelector} afterElement - * @param {Object.<string, *>=} opt_options - * @return {!angular.$q.Promise} - */ -angular.$animate.prototype.move = function( - element, parentElement, afterElement, opt_options) {}; - -/** - * @param {JQLiteSelector} element - * @param {string} className - * @param {Object.<string, *>=} opt_options - * @return {!angular.$q.Promise} - */ -angular.$animate.prototype.addClass = function( - element, className, opt_options) {}; - -/** - * @param {JQLiteSelector} element - * @param {string} className - * @param {Object.<string, *>=} opt_options - * @return {!angular.$q.Promise} - */ -angular.$animate.prototype.removeClass = function( - element, className, opt_options) {}; - -/** - * @param {JQLiteSelector} element - * @param {string} add - * @param {string} remove - * @param {Object.<string, *>=} opt_options - * @return {!angular.$q.Promise} - */ -angular.$animate.prototype.setClass = function( - element, add, remove, opt_options) {}; - -/** - * @param {boolean=} opt_value - * @param {JQLiteSelector=} opt_element - * @return {boolean} - */ -angular.$animate.prototype.enabled = function(opt_value, opt_element) {}; - -/** - * @param {angular.$q.Promise} animationPromise - */ -angular.$animate.prototype.cancel = function(animationPromise) {}; - -/****************************************************************************** - * $animateProvider Service - *****************************************************************************/ - -/** - * @constructor - */ -angular.$animateProvider; - -/** - * @param {string} name - * @param {Function} factory - */ -angular.$animateProvider.prototype.register = function(name, factory) {}; - -/** - * @param {RegExp=} opt_expression - */ -angular.$animateProvider.prototype.classNameFilter = function( - opt_expression) {}; - -/****************************************************************************** - * $compile Service - *****************************************************************************/ - -/** - * @typedef { - * function( - * (JQLiteSelector|Object), - * function(!angular.Scope, Function=)=, number=): - * function(!angular.Scope, - * function(!angular.JQLite, !angular.Scope=)=): !angular.JQLite} - */ -angular.$compile; - -/****************************************************************************** - * $cacheFactory Service - *****************************************************************************/ - -/** - * @typedef { - * function(string, angular.$cacheFactory.Options=): - * !angular.$cacheFactory.Cache} - */ -angular.$cacheFactory; - -/** - * @typedef {function(string): ?angular.$cacheFactory.Cache} - */ -angular.$cacheFactory.get; - -/** @typedef {{capacity: (number|undefined)}} */ -angular.$cacheFactory.Options; - -/** - * @template T - * @constructor - */ -angular.$cacheFactory.Cache = function() {}; - -/** - * @return {!angular.$cacheFactory.Cache.Info} - */ -angular.$cacheFactory.Cache.prototype.info = function() {}; - -/** - * @param {string} key - * @param {T} value - */ -angular.$cacheFactory.Cache.prototype.put = function(key, value) {}; - -/** - * @param {string} key - * @return {T} - */ -angular.$cacheFactory.Cache.prototype.get = function(key) {}; - -/** - * @param {string} key - */ -angular.$cacheFactory.Cache.prototype.remove = function(key) {}; - -angular.$cacheFactory.Cache.prototype.removeAll = function() {}; -angular.$cacheFactory.Cache.prototype.destroy = function() {}; - -/** - * @typedef {{ - * id: string, - * size: number, - * options: angular.$cacheFactory.Options - * }} - */ -angular.$cacheFactory.Cache.Info; - -/****************************************************************************** - * $controller Service - *****************************************************************************/ - -/** - * @typedef {function((Function|string), Object):Object} - */ -angular.$controller; - -/****************************************************************************** - * $controllerProvider Service - *****************************************************************************/ - -/** - * @typedef {{ - * register: function((string|Object), (Function|Array)), - * allowGlobals: function() - * }} - */ -angular.$controllerProvider; - -/****************************************************************************** - * $exceptionHandler Service - *****************************************************************************/ - -/** - * @typedef {function(Error, string=)} - */ -angular.$exceptionHandler; - -/****************************************************************************** - * $filter Service - *****************************************************************************/ - -/** - * @typedef {function(string): !Function} - */ -angular.$filter; - -/** - * The 'orderBy' filter is available through $filterProvider and AngularJS - * injection; but is not accessed through a documented public API of AngularJS. - * <p>In current AngularJS version the injection is satisfied by - * angular.orderByFunction, where the implementation is found. - * <p>See http://docs.angularjs.org/api/ng.filter:orderBy. - * @typedef {function(Array, - * (string|function(?):*|Array.<(string|function(?):*)>), - * boolean=): Array} - */ -angular.$filter.orderBy; - -/****************************************************************************** - * $filterProvider Service - *****************************************************************************/ - -/** - * @typedef {{ - * register: function(string, (!Function|!Array.<string|!Function>)) - * }} - */ -angular.$filterProvider; - -/** - * @param {string} name - * @param {(!Function|!Array.<string|!Function>)} fn - */ -angular.$filterProvider.register = function(name, fn) {}; - -/****************************************************************************** - * $http Service - *****************************************************************************/ - -/** - * This is a typedef because the closure compiler does not allow - * defining a type that is a function with properties. - * If you are trying to use the $http service as a function, try - * using one of the helper functions instead. - * @typedef {{ - * delete: function(string, angular.$http.Config=):!angular.$http.HttpPromise, - * get: function(string, angular.$http.Config=):!angular.$http.HttpPromise, - * head: function(string, angular.$http.Config=):!angular.$http.HttpPromise, - * jsonp: function(string, angular.$http.Config=):!angular.$http.HttpPromise, - * post: function(string, *, angular.$http.Config=): - * !angular.$http.HttpPromise, - * put: function(string, *, angular.$http.Config=):!angular.$http.HttpPromise, - * defaults: angular.$http.Config, - * pendingRequests: !Array.<angular.$http.Config> - * }} - */ -angular.$http; - -/** - * @typedef {{ - * cache: (boolean|!angular.$cacheFactory.Cache|undefined), - * data: (string|Object|undefined), - * headers: (Object|undefined), - * method: (string|undefined), - * params: (Object.<(string|Object)>|undefined), - * responseType: (string|undefined), - * timeout: (number|!angular.$q.Promise|undefined), - * transformRequest: - * (function((string|Object), Object):(string|Object)| - * Array.<function((string|Object), Object):(string|Object)>|undefined), - * transformResponse: - * (function((string|Object), Object):(string|Object)| - * Array.<function((string|Object), Object):(string|Object)>|undefined), - * url: (string|undefined), - * withCredentials: (boolean|undefined), - * xsrfCookieName: (string|undefined), - * xsrfHeaderName: (string|undefined) - * }} - */ -angular.$http.Config; - -angular.$http.Config.transformRequest; - -angular.$http.Config.transformResponse; - -// /** -// * This extern is currently incomplete as delete is a reserved word. -// * To use delete, index $http. -// * Example: $http['delete'](url, opt_config); -// * @param {string} url -// * @param {angular.$http.Config=} opt_config -// * @return {!angular.$http.HttpPromise} -// */ -// angular.$http.delete = function(url, opt_config) {}; - -/** - * @param {string} url - * @param {angular.$http.Config=} opt_config - * @return {!angular.$http.HttpPromise} - */ -angular.$http.get = function(url, opt_config) {}; - -/** - * @param {string} url - * @param {angular.$http.Config=} opt_config - * @return {!angular.$http.HttpPromise} - */ -angular.$http.head = function(url, opt_config) {}; - -/** - * @param {string} url - * @param {angular.$http.Config=} opt_config - * @return {!angular.$http.HttpPromise} - */ -angular.$http.jsonp = function(url, opt_config) {}; - -/** - * @param {string} url - * @param {*} data - * @param {angular.$http.Config=} opt_config - * @return {!angular.$http.HttpPromise} - */ -angular.$http.post = function(url, data, opt_config) {}; - -/** - * @param {string} url - * @param {*} data - * @param {angular.$http.Config=} opt_config - * @return {!angular.$http.HttpPromise} - */ -angular.$http.put = function(url, data, opt_config) {}; - -/** - * @type {angular.$http.Config} - */ -angular.$http.defaults; - -/** - * @type {Array.<angular.$http.Config>} - * @const - */ -angular.$http.pendingRequests; - -/** - * @typedef {{ - * request: (undefined|(function(!angular.$http.Config): - * !angular.$http.Config|!angular.$q.Promise.<!angular.$http.Config>)), - * requestError: (undefined|(function(Object): !angular.$q.Promise|Object)), - * response: (undefined|(function(!angular.$http.Response): - * !angular.$http.Response|!angular.$q.Promise.<!angular.$http.Response>)), - * responseError: (undefined|(function(Object): !angular.$q.Promise|Object)) - * }} - */ -angular.$http.Interceptor; - -/** - * @typedef {{ - * defaults: !angular.$http.Config, - * interceptors: !Array.<string|function(...*): !angular.$http.Interceptor>, - * useApplyAsync: function(boolean=):(boolean|!angular.$HttpProvider) - * }} - */ -angular.$HttpProvider; - -/** - * @type {angular.$http.Config} - */ -angular.$HttpProvider.defaults; - -/** - * @type {!Array.<string|function(...*): !angular.$http.Interceptor>} - */ -angular.$HttpProvider.interceptors; - -/** - * @param {boolean=} opt_value - * @return {boolean|!angular.$HttpProvider} - */ -angular.$HttpProvider.useApplyAsync = function(opt_value) {}; - -/****************************************************************************** - * $injector Service - *****************************************************************************/ - -/** - * @typedef {{ - * annotate: function((Function|Array.<string|Function>)):Array.<string>, - * get: function(string):(?), - * has: function(string):boolean, - * instantiate: function(Function, Object=):Object, - * invoke: function( - * (!Function|Array.<string|!Function>), Object=, Object=):(?) - * }} - */ -angular.$injector; - -/** - * @param {(!Function|Array.<string|!Function>)} fn - * @return {Array.<string>} - */ -angular.$injector.annotate = function(fn) {}; - -/** - * @param {string} name - * @return {?} - */ -angular.$injector.get = function(name) {}; - -/** - * @param {string} name - * @return {boolean} - */ -angular.$injector.has = function(name) {}; - -/** - * @param {!Function} type - * @param {Object=} opt_locals - * @return {Object} - */ -angular.$injector.instantiate = function(type, opt_locals) {}; - -/** - * @param {(!Function|Array.<string|!Function>)} fn - * @param {Object=} opt_self - * @param {Object=} opt_locals - * @return {?} - */ -angular.$injector.invoke = function(fn, opt_self, opt_locals) {}; - -/****************************************************************************** - * $interpolateProvider Service - *****************************************************************************/ - -/** - * @typedef {{ - * startSymbol: function(string), - * endSymbol: function(string) - * }} - */ -angular.$interpolateProvider; - -/** @type {function(string)} */ -angular.$interpolateProvider.startSymbol; - -/** @type {function(string)} */ -angular.$interpolateProvider.endSymbol; - -/****************************************************************************** - * $interval Service - *****************************************************************************/ - -/** - * @typedef { - * function(function(), number=, number=, boolean=):!angular.$q.Promise - * } - */ -angular.$interval; - -/** - * Augment the angular.$interval type definition by reopening the type via an - * artificial angular.$interval instance. - * - * This allows us to define methods on function objects which is something - * that can't be expressed via typical type annotations. - * - * @type {angular.$interval} - */ -angular.$interval_; - -/** - * @type {function(!angular.$q.Promise):boolean} - */ -angular.$interval_.cancel = function(promise) {}; - -/****************************************************************************** - * $location Service - *****************************************************************************/ - -/** - * @typedef {{ - * absUrl: function():string, - * hash: function(string=):string, - * host: function():string, - * path: function(string=):(string|!angular.$location), - * port: function():number, - * protocol: function():string, - * replace: function(), - * search: function((string|Object.<string, string>)=, - * ?(string|Array.<string>|boolean)=): (!Object|angular.$location), - * url: function(string=):string - * }} - */ -angular.$location; - -/** - * @return {string} - */ -angular.$location.absUrl = function() {}; - -/** - * @param {string=} opt_hash - * @return {string} - */ -angular.$location.hash = function(opt_hash) {}; - -/** - * @return {string} - */ -angular.$location.host = function() {}; - -/** - * @param {string=} opt_path - * @return {string|!angular.$location} - */ -angular.$location.path = function(opt_path) {}; - -/** - * @return {number} - */ -angular.$location.port = function() {}; - -/** - * @return {string} - */ -angular.$location.protocol = function() {}; - -/** - * @type {function()} - */ -angular.$location.replace = function() {}; - -/** - * @param {(string|Object.<string, string>)=} opt_search - * @param {?(string|Array.<string>|boolean)=} opt_paramValue - * @return {(!Object|angular.$location)} - */ -angular.$location.search = function(opt_search, opt_paramValue) {}; - -/** - * @param {string=} opt_url - * @return {string} - */ -angular.$location.url = function(opt_url) {}; - -/****************************************************************************** - * $locationProvider Service - *****************************************************************************/ - -/** - * @typedef {{ - * enabled: (boolean|undefined), - * requireBase: (boolean|undefined) - * }} - */ -angular.$locationProvider.html5ModeConfig; - -/** - * @typedef {{ - * hashPrefix: - * function(string=): (string|!angular.$locationProvider), - * html5Mode: - * function( - * (boolean|angular.$locationProvider.html5ModeConfig)=): - * (boolean|!angular.$locationProvider) - * }} - */ -angular.$locationProvider; - -/** - * @param {string=} opt_prefix - * @return {string|!angular.$locationProvider} - */ -angular.$locationProvider.hashPrefix = function(opt_prefix) {}; - -/** - * @param {(boolean|angular.$locationProvider.html5ModeConfig)=} opt_mode - * @return {boolean|!angular.$locationProvider} - */ -angular.$locationProvider.html5Mode = function(opt_mode) {}; - -/****************************************************************************** - * $log Service - *****************************************************************************/ - -/** - * @typedef {{ - * error: function(...*), - * info: function(...*), - * log: function(...*), - * warn: function(...*) - * }} - */ -angular.$log; - -/** - * @param {...*} var_args - */ -angular.$log.error = function(var_args) {}; - -/** - * @param {...*} var_args - */ -angular.$log.info = function(var_args) {}; - -/** - * @param {...*} var_args - */ -angular.$log.log = function(var_args) {}; - -/** - * @param {...*} var_args - */ -angular.$log.warn = function(var_args) {}; - -/****************************************************************************** - * NgModelController - *****************************************************************************/ - -/** - * @constructor - */ -angular.NgModelController = function() {}; - -/** - * @type {?} - */ -angular.NgModelController.prototype.$modelValue; - -/** - * @type {boolean} - */ -angular.NgModelController.prototype.$dirty; - -/** - * @type {!Object.<boolean>} - */ -angular.NgModelController.prototype.$error; - -/** - * @type {!Array.<function(?):*>} - */ -angular.NgModelController.prototype.$formatters; - -/** - * @type {boolean} - */ -angular.NgModelController.prototype.$invalid; - -/** - * @type {!Array.<function(?):*>} - */ -angular.NgModelController.prototype.$parsers; - -/** - * @type {boolean} - */ -angular.NgModelController.prototype.$pristine; - -angular.NgModelController.prototype.$render = function() {}; - -/** - * @param {string} key - * @param {boolean} isValid - */ -angular.NgModelController.prototype.$setValidity = function(key, isValid) {}; - -/** - * @param {?} value - */ -angular.NgModelController.prototype.$setViewValue = function(value) {}; - -/** - * @type {boolean} - */ -angular.NgModelController.prototype.$valid; - -/** - * @type {!Array.<function()>} - */ -angular.NgModelController.prototype.$viewChangeListeners; - -/** - * @type {?} - */ -angular.NgModelController.prototype.$viewValue; - -/** - * @type {!Object.<string, function(?, ?):*>} - */ -angular.NgModelController.prototype.$validators; - -/** - * @type {Object.<string, function(?, ?):*>} - */ -angular.NgModelController.prototype.$asyncValidators; - -/** - * @type {boolean} - */ -angular.NgModelController.prototype.$untouched; - -/** - * @type {boolean} - */ -angular.NgModelController.prototype.$touched; - -/** - * @param {?} value - */ -angular.NgModelController.prototype.$isEmpty = function(value) {}; - -/** - * @type {function()} - */ -angular.NgModelController.prototype.$setPristine = function() {}; - -/** - * @type {function()} - */ -angular.NgModelController.prototype.$setDirty = function() {}; - -/** - * @type {function()} - */ -angular.NgModelController.prototype.$setUntouched = function() {}; - -/** - * @type {function()} - */ -angular.NgModelController.prototype.$setTouched = function() {}; - -/** - * @type {function()} - */ -angular.NgModelController.prototype.$rollbackViewValue = function() {}; - -/** - * @type {function()} - */ -angular.NgModelController.prototype.$validate = function() {}; - -/** - * @type {function()} - */ -angular.NgModelController.prototype.$commitViewValue = function() {}; - -/****************************************************************************** - * FormController - *****************************************************************************/ - -/** - * @constructor - */ -angular.FormController = function() {}; - -/** - * @param {*} control - */ -angular.FormController.prototype.$addControl = function(control) {}; - -/** - * @type {function()} - */ -angular.FormController.prototype.$rollbackViewValue = function() {}; - -/** - * @type {function()} - */ -angular.FormController.prototype.$commitViewValue = function() {}; - -/** - * @type {boolean} - */ -angular.FormController.prototype.$dirty; - -/** - * @type {!Object.<boolean|!Array.<*>>} - */ -angular.FormController.prototype.$error; - -/** - * @type {boolean} - */ -angular.FormController.prototype.$invalid; - -/** - * @type {string} - */ -angular.FormController.prototype.$name; - -/** - * @type {boolean} - */ -angular.FormController.prototype.$pristine; - -/** - * @param {*} control - */ -angular.FormController.prototype.$removeControl = function(control) {}; - -/** - * @type {function()} - */ -angular.FormController.prototype.$setDirty = function() {}; - -/** - * @type {function()} - */ -angular.FormController.prototype.$setPristine = function() {}; - -/** - * @type {function()} - */ -angular.FormController.prototype.$setUntouched = function() {}; - -/** - * @type {function()} - */ -angular.FormController.prototype.$setSubmitted = function() {}; - -/** - * @type {boolean} - */ -angular.FormController.prototype.$submitted; - -/** - * @param {string} validationToken - * @param {boolean} isValid - * @param {*} control - */ -angular.FormController.prototype.$setValidity = function( - validationToken, isValid, control) {}; - -/** - * @type {boolean} - */ -angular.FormController.prototype.$valid; - -/****************************************************************************** - * $parse Service - *****************************************************************************/ - -/** - * @typedef {function(string):!angular.$parse.Expression} - */ -angular.$parse; - -/** - * @typedef {function((!angular.Scope|!Object), Object=):*} - */ -angular.$parse.Expression; - -/** - * Augment the angular.$parse.Expression type definition by reopening the type - * via an artificial angular.$parse instance. - * - * This allows us to define methods on function objects which is something - * that can't be expressed via typical type annotations. - * - * @type {angular.$parse.Expression} - */ -angular.$parse_; - -/** - * @type {function((!angular.Scope|!Object), *)} - */ -angular.$parse_.assign = function(scope, newValue) {}; - -/****************************************************************************** - * $provide Service - *****************************************************************************/ - -/** - * @typedef {{ - * constant: function(string, *): Object, - * decorator: function(string, (!Function|Array.<string|!Function>)), - * factory: function(string, (!Function|Array.<string|!Function>)): Object, - * provider: function(string, (!Function|Array.<string|!Function>)): Object, - * service: function(string, (!Function|Array.<string|!Function>)): Object, - * value: function(string, *): Object - * }} - */ -angular.$provide; - -/** - * @param {string} name - * @param {*} object - * @return {Object} - */ -angular.$provide.constant = function(name, object) {}; - -/** - * @param {string} name - * @param {Function|Array.<string|Function>} decorator - */ -angular.$provide.decorator = function(name, decorator) {}; - -/** - * @param {string} name - * @param {Function|Array.<string|Function>} providerFunction - * @return {Object} - */ -angular.$provide.factory = function(name, providerFunction) {}; - -/** - * @param {string} name - * @param {Function|Array.<string|Function>} providerType - * @return {Object} - */ -angular.$provide.provider = function(name, providerType) {}; - -/** - * @param {string} name - * @param {Function|Array.<string|Function>} constructor - * @return {Object} - */ -angular.$provide.service = function(name, constructor) {}; - -/** - * @param {string} name - * @param {*} object - * @return {Object} - */ -angular.$provide.value = function(name, object) {}; - -/****************************************************************************** - * $route Service - *****************************************************************************/ - -/** - * @typedef {{ - * reload: function(), - * current: !angular.$route.Route, - * routes: Array.<!angular.$route.Route> - * }} - */ -angular.$route; - -/** @type {function()} */ -angular.$route.reload = function() {}; - -/** - * @param {!Object<string,string>} object - */ -angular.$route.updateParams = function(object) {}; - -/** @type {!angular.$route.Route} */ -angular.$route.current; - -/** @type {Array.<!angular.$route.Route>} */ -angular.$route.routes; - -/** - * @typedef {{ - * $route: angular.$routeProvider.Params, - * locals: Object.<string, *>, - * params: Object.<string, string>, - * pathParams: Object.<string, string>, - * scope: Object.<string, *>, - * originalPath: (string|undefined), - * regexp: (RegExp|undefined) - * }} - */ -angular.$route.Route; - -/** @type {angular.$routeProvider.Params} */ -angular.$route.Route.$route; - -/** @type {Object.<string, *>} */ -angular.$route.Route.locals; - -/** @type {Object.<string, string>} */ -angular.$route.Route.params; - -/** @type {Object.<string, string>} */ -angular.$route.Route.pathParams; - -/** @type {Object.<string, *>} */ -angular.$route.Route.scope; - -/** @type {string|undefined} */ -angular.$route.Route.originalPath; - -/** @type {RegExp|undefined} */ -angular.$route.Route.regexp; - -/****************************************************************************** - * $routeParams Service - *****************************************************************************/ - -// TODO: This should be !Object.<string|boolean> because valueless query params -// (without even an equal sign) come through as boolean "true". - -/** @typedef {!Object.<string>} */ -angular.$routeParams; - -/****************************************************************************** - * $routeProvider Service - *****************************************************************************/ - -/** - * @typedef {{ - * otherwise: - * function( - * (string|!angular.$routeProvider.Params)): !angular.$routeProvider, - * when: - * function( - * string, angular.$routeProvider.Params): !angular.$routeProvider - * }} - */ -angular.$routeProvider; - -/** - * @param {(string|!angular.$routeProvider.Params)} params - * @return {!angular.$routeProvider} - */ -angular.$routeProvider.otherwise = function(params) {}; - -/** - * @param {string} path - * @param {angular.$routeProvider.Params} route - * @return {!angular.$routeProvider} - */ -angular.$routeProvider.when = function(path, route) {}; - -/** - * @typedef {{ - * controller: (Function|Array.<string|Function>|string|undefined), - * controllerAs: (string|undefined), - * template: (string|undefined), - * templateUrl: (string|function(!Object.<string,string>=)|undefined), - * resolve: (Object.<string, ( - * string|Function|Array.<string|Function>|!angular.$q.Promise - * )>|undefined), - * redirectTo: ( - * string|function(Object.<string>, string, Object): string|undefined), - * reloadOnSearch: (boolean|undefined) - * }} - */ -angular.$routeProvider.Params; - -/** @type {Function|Array.<string|Function>|string} */ -angular.$routeProvider.Params.controller; - -/** @type {string} */ -angular.$routeProvider.Params.controllerAs; - -/** @type {string} */ -angular.$routeProvider.Params.template; - -/** @type {string|function(!Object.<string,string>=)} */ -angular.$routeProvider.Params.templateUrl; - -/** - * @type { - * Object.<string, ( - * string|Function|Array.<string|Function>|!angular.$q.Promise - * )>} - */ -angular.$routeProvider.Params.resolve; - -/** @type {string|function(Object.<string>, string, Object): string} */ -angular.$routeProvider.Params.redirectTo; - -/** @type {boolean} */ -angular.$routeProvider.Params.reloadOnSearch; - -/****************************************************************************** - * $sanitize Service - *****************************************************************************/ - -/** @typedef {function(string):string} */ -angular.$sanitize; - -/****************************************************************************** - * $sce Service - *****************************************************************************/ - -/** - * Ref: http://docs.angularjs.org/api/ng.$sce - * - * @typedef {{ - * HTML: string, - * CSS: string, - * URL: string, - * JS: string, - * RESOURCE_URL: string, - * isEnabled: function(): boolean, - * parseAs: function(string, string): !angular.$parse.Expression, - * getTrusted: function(string, *): string, - * trustAs: function(string, string): *, - * parseAsHtml: function(string): !angular.$parse.Expression, - * parseAsCss: function(string): !angular.$parse.Expression, - * parseAsUrl: function(string): !angular.$parse.Expression, - * parseAsJs: function(string): !angular.$parse.Expression, - * parseAsResourceUrl: function(string): !angular.$parse.Expression, - * getTrustedHtml: function(*): string, - * getTrustedCss: function(*): string, - * getTrustedUrl: function(*): string, - * getTrustedJs: function(*): string, - * getTrustedResourceUrl: function(*): string, - * trustAsHtml: function(string): *, - * trustAsCss: function(string): *, - * trustAsUrl: function(string): *, - * trustAsJs: function(string): *, - * trustAsResourceUrl: function(string): * - * }} - *****************************************************************************/ -angular.$sce; - - -/** @const {string} */ -angular.$sce.HTML; - -/** @const {string} */ -angular.$sce.CSS; - -/** @const {string} */ -angular.$sce.URL; - -/** @const {string} */ -angular.$sce.JS; - -/** @const {string} */ -angular.$sce.RESOURCE_URL; - -/** @return {boolean} */ -angular.$sce.isEnabled = function() {}; - -/** - * @param {string} type - * @param {string} expression - * @return {!angular.$parse.Expression} - */ -angular.$sce.parseAs = function(type, expression) {}; - -/** - * @param {string} type - * @param {*} maybeTrusted - * @return {string} - */ -angular.$sce.getTrusted = function(type, maybeTrusted) {}; - -/** - * @param {string} type - * @param {string} trustedValue - * @return {*} - */ -angular.$sce.trustAs = function(type, trustedValue) {}; - -/** - * @param {string} expression - * @return {!angular.$parse.Expression} - */ -angular.$sce.parseAsHtml = function(expression) {}; - -/** - * @param {string} expression - * @return {!angular.$parse.Expression} - */ -angular.$sce.parseAsCss = function(expression) {}; - -/** - * @param {string} expression - * @return {!angular.$parse.Expression} - */ -angular.$sce.parseAsUrl = function(expression) {}; - -/** - * @param {string} expression - * @return {!angular.$parse.Expression} - */ -angular.$sce.parseAsJs = function(expression) {}; - -/** - * @param {string} expression - * @return {!angular.$parse.Expression} - */ -angular.$sce.parseAsResourceUrl = function(expression) {}; - -/** - * @param {*} maybeTrusted - * @return {string} - */ -angular.$sce.getTrustedHtml = function(maybeTrusted) {}; - -/** - * @param {*} maybeTrusted - * @return {string} - */ -angular.$sce.getTrustedCss = function(maybeTrusted) {}; - -/** - * @param {*} maybeTrusted - * @return {string} - */ -angular.$sce.getTrustedUrl = function(maybeTrusted) {}; - -/** - * @param {*} maybeTrusted - * @return {string} - */ -angular.$sce.getTrustedJs = function(maybeTrusted) {}; - -/** - * @param {*} maybeTrusted - * @return {string} - */ -angular.$sce.getTrustedResourceUrl = function(maybeTrusted) {}; - -/** - * @param {string} trustedValue - * @return {*} - */ -angular.$sce.trustAsHtml = function(trustedValue) {}; - -/** - * @param {string} trustedValue - * @return {*} - */ -angular.$sce.trustAsCss = function(trustedValue) {}; - -/** - * @param {string} trustedValue - * @return {*} - */ -angular.$sce.trustAsUrl = function(trustedValue) {}; - -/** - * @param {string} trustedValue - * @return {*} - */ -angular.$sce.trustAsJs = function(trustedValue) {}; - -/** - * @param {string} trustedValue - * @return {*} - */ -angular.$sce.trustAsResourceUrl = function(trustedValue) {}; - -/****************************************************************************** - * $sceDelegate Service - *****************************************************************************/ - -/** - * Ref: http://docs.angularjs.org/api/ng/service/$sceDelegate - * - * @constructor - */ -angular.$sceDelegate = function() {}; - -/** - * @param {string} type - * @param {*} value - * @return {*} - */ -angular.$sceDelegate.prototype.trustAs = function(type, value) {}; - -/** - * Note: because this method overrides Object.prototype.valueOf, the value - * parameter needs to be annotated as optional to keep the compiler happy (as - * otherwise the signature won't match Object.prototype.valueOf). - * - * @override - * @param {*=} value - * @return {*} - */ -angular.$sceDelegate.prototype.valueOf = function(value) {}; - -/** - * @param {string} type - * @param {*} maybeTrusted - * @return {*} - */ -angular.$sceDelegate.prototype.getTrusted = function(type, maybeTrusted) {}; - -/****************************************************************************** - * $sceDelegateProvider Service - *****************************************************************************/ - -/** - * Ref: http://docs.angularjs.org/api/ng/provider/$sceDelegateProvider - * - * @constructor - */ -angular.$sceDelegateProvider = function() {}; - -/** - * @param {Array.<string>=} opt_whitelist - * @return {!Array.<string>} - */ -angular.$sceDelegateProvider.prototype.resourceUrlWhitelist = function( - opt_whitelist) {}; - -/** - * @param {Array.<string>=} opt_blacklist - * @return {!Array.<string>} - */ -angular.$sceDelegateProvider.prototype.resourceUrlBlacklist = function( - opt_blacklist) {}; - -/****************************************************************************** - * $templateCache Service - *****************************************************************************/ - -/** - * @typedef {!angular.$cacheFactory.Cache.<string>} - */ -angular.$templateCache; - -/****************************************************************************** - * $timeout Service - *****************************************************************************/ - -/** - * @typedef {function(function(), number=, boolean=):!angular.$q.Promise} - */ -angular.$timeout; - -/** - * Augment the angular.$timeout type definition by reopening the type via an - * artificial angular.$timeout instance. - * - * This allows us to define methods on function objects which is something - * that can't be expressed via typical type annotations. - * - * @type {angular.$timeout} - */ -angular.$timeout_; - -/** - * @type {function(angular.$q.Promise=):boolean} - */ -angular.$timeout_.cancel = function(promise) {}; - -/****************************************************************************** - * $window Service - *****************************************************************************/ - -/** @typedef {!Window} */ -angular.$window; diff --git a/src/closure/conf/externs/bingmaps.js b/src/closure/conf/externs/bingmaps.js deleted file mode 100755 index 99da4d02..00000000 --- a/src/closure/conf/externs/bingmaps.js +++ /dev/null @@ -1,176 +0,0 @@ -/** - * @externs - */ - - - -/** - * @constructor - */ -var BingMapsCoverageArea = function() {}; - - -/** - * @type {Array.<number>} - */ -BingMapsCoverageArea.prototype.bbox; - - -/** - * @type {number} - */ -BingMapsCoverageArea.prototype.zoomMax; - - -/** - * @type {number} - */ -BingMapsCoverageArea.prototype.zoomMin; - - - -/** - * @constructor - */ -var BingMapsImageryProvider = function() {}; - - -/** - * @type {string} - */ -BingMapsImageryProvider.prototype.attribution; - - -/** - * @type {Array.<BingMapsCoverageArea>} - */ -BingMapsImageryProvider.prototype.coverageAreas; - - - -/** - * @constructor - */ -var BingMapsImageryMetadataResponse = function() {}; - - -/** - * @type {string} - */ -BingMapsImageryMetadataResponse.prototype.authenticationResultCode; - - -/** - * @type {string} - */ -BingMapsImageryMetadataResponse.prototype.brandLogoUri; - - -/** - * @type {string} - */ -BingMapsImageryMetadataResponse.prototype.copyright; - - -/** - * @type {Array.<BingMapsResourceSet>} - */ -BingMapsImageryMetadataResponse.prototype.resourceSets; - - -/** - * @type {number} - */ -BingMapsImageryMetadataResponse.prototype.statusCode; - - -/** - * @type {string} - */ -BingMapsImageryMetadataResponse.prototype.statusDescription; - - -/** - * @type {string} - */ -BingMapsImageryMetadataResponse.prototype.traceId; - - - -/** - * @constructor - */ -var BingMapsResource = function() {}; - - -/** - * @type {number} - */ -BingMapsResource.prototype.imageHeight; - - -/** - * @type {string} - */ -BingMapsResource.prototype.imageUrl; - - -/** - * @type {Array.<string>} - */ -BingMapsResource.prototype.imageUrlSubdomains; - - -/** - * @type {number} - */ -BingMapsResource.prototype.imageWidth; - - -/** - * @type {Array.<BingMapsImageryProvider>} - */ -BingMapsResource.prototype.imageryProviders; - - -/** - * @type {Object} - */ -BingMapsResource.prototype.vintageEnd; - - -/** - * @type {Object} - */ -BingMapsResource.prototype.vintageStart; - - -/** - * @type {number} - */ -BingMapsResource.prototype.zoomMax; - - -/** - * @type {number} - */ -BingMapsResource.prototype.zoomMin; - - - -/** - * @constructor - */ -var BingMapsResourceSet = function() {}; - - -/** - * @type {number} - */ -BingMapsResourceSet.prototype.estimatedTotal; - - -/** - * @type {Array.<BingMapsResource>} - */ -BingMapsResourceSet.prototype.resources; \ No newline at end of file diff --git a/src/closure/conf/externs/bootstrap.js b/src/closure/conf/externs/bootstrap.js deleted file mode 100755 index fb49fcfd..00000000 --- a/src/closure/conf/externs/bootstrap.js +++ /dev/null @@ -1,242 +0,0 @@ -/** - * @fileoverview Externs for Twitter Bootstrap - * @see http://twitter.github.com/bootstrap/ - * - * @author Qamal Kosim-Satyaputra - * @externs - */ - - - -// --- Modal --- - - - -/** @constructor */ -jQuery.modal.options = function() {}; - -/** @type {boolean} */ -jQuery.modal.options.prototype.backdrop; - -/** @type {boolean} */ -jQuery.modal.options.prototype.keyboard; - -/** @type {boolean} */ -jQuery.modal.options.prototype.show; - -/** - * @param {=(string|jQuery.modal.options)} opt_eventOrOptions - * @return {jQuery} - */ -jQuery.prototype.modal = function(opt_eventOrOptions) {}; - - - -// --- Dropdown --- - - - -/** - * @return {jQuery} - */ -jQuery.prototype.dropdown = function() {}; - - - -// --- Scroll Spy --- - - - -/** @constructor */ -jQuery.scrollspy.options = function() {}; - -/** @type {number} */ -jQuery.scrollspy.options.prototype.offset; - -/** - * @param {=jQuery.scrollspy.options} opt_options - * @return {jQuery} - */ -jQuery.prototype.scrollspy = function(opt_options) {}; - - - -// --- Tabs --- - - - -/** - * @param {=string} opt_event - * @return {jQuery} - */ -jQuery.prototype.tab = function(opt_event) {}; - - - -// --- Tooltips --- - - - -/** @constructor */ -jQuery.tooltip.options = function() {}; - -/** @type {boolean} */ -jQuery.tooltip.prototype.animation; - -/** @type {string|function} */ -jQuery.tooltip.prototype.placement; - -/** @type {string} */ -jQuery.tooltip.prototype.selector; - -/** @type {string|function} */ -jQuery.tooltip.prototype.title; - -/** @type {string} */ -jQuery.tooltip.prototype.trigger; - -/** @type {number|{show: number, hide: number}} */ -jQuery.tooltip.prototype.delay; - -/** - * @param {=(string|jQuery.tooltip.options)} opt_eventOrOptions - * @return {jQuery} - */ -jQuery.prototype.tooltip = function(opt_eventOrOptions) {}; - - - -// --- Popovers --- - - - -/** @constructor */ -jQuery.popover.options = function() {}; - -/** @type {boolean} */ -jQuery.popover.prototype.animation; - -/** @type {string|function} */ -jQuery.popover.prototype.placement; - -/** @type {string} */ -jQuery.popover.prototype.selector; - -/** @type {string} */ -jQuery.popover.prototype.trigger; - -/** @type {string|function} */ -jQuery.popover.prototype.title; - -/** @type {string|function} */ -jQuery.popover.prototype.content; - -/** @type {number|{show: number, hide: number}} */ -jQuery.popover.prototype.delay; - -/** - * @param {=(string|jQuery.tooltip.options)} opt_eventOrOptions - * @return {jQuery} - */ -jQuery.prototype.popover = function(opt_eventOrOptions) {}; - - - -// --- Alerts --- - - - -/** - * @param {=string} opt_event - * @return {jQuery} - */ -jQuery.prototype.alert = function(opt_event) {}; - - - -// --- Buttons --- - - - -/** - * @param {=string} opt_state - * @return {jQuery} - */ -jQuery.prototype.button = function(opt_state) {}; - - - -// --- Collapse --- - - - -/** @constructor */ -jQuery.collapse.options = function() {}; - -/** @type {jQuerySelector} */ -jQuery.collapse.options.prototype.parent; - -/** @type {boolean} */ -jQuery.collapse.options.prototype.toggle; - -/** - * @param {=(string|jQuery.collapse.options)} opt_eventOrOptions - */ -jQuery.prototype.collapse = function(opt_eventOrOptions) {}; - - - -// --- Carousel --- - - - -/** @constructor */ -jQuery.carousel.options = function() {}; - -/** @type {number} */ -jQuery.carousel.options.prototype.interval; - -/** @type {string} */ -jQuery.carousel.options.prototype.pause; - -/** - * @param {=(string|jQuery.carousel.options})} opt_eventOrOptions - */ -jQuery.prototype.carousel = function(opt_eventOrOptions) {}; - - - -// --- Typeahead --- - - - -/** @constructor */ -jQuery.typeahead.options = function() {}; - -/** @type {Array} */ -jQuery.typeahead.options.prototype.source; - -/** @type {number} */ -jQuery.typeahead.options.prototype.items; - -/** @type {function} */ -jQuery.typeahead.options.prototype.matcher; - -/** @type {function} */ -jQuery.typeahead.options.prototype.sorter; - -/** @type {function} */ -jQuery.typeahead.options.prototype.highlighter; - -/** - * @param {=(string|jQuery.typeahead.options)} opt_options - * @return {jQuery} - */ -jQuery.prototype.typeahead = function(opt_options) {}; - -/** - * @param {Element|jQuery|jQuerySelector} - * @param {=jQuery.typeahead.options} opt_options - * @return {jQuery} - */ -jQuery.prototype.typeahead.Constructor = function(element, opt_options) {}; \ No newline at end of file diff --git a/src/closure/conf/externs/geojson.js b/src/closure/conf/externs/geojson.js deleted file mode 100755 index 6ddf03a3..00000000 --- a/src/closure/conf/externs/geojson.js +++ /dev/null @@ -1,171 +0,0 @@ -/** - * @fileoverview Externs for GeoJSON. - * @see http://geojson.org/geojson-spec.html - * @externs - */ - - - -/** - * @constructor - */ -var GeoJSONObject = function() {}; - - -/** - * @type {!Array.<number>|undefined} - */ -GeoJSONObject.prototype.bbox; - - -/** - * @type {string} - */ -GeoJSONObject.prototype.type; - - -/** - * @type {!GeoJSONCRS|undefined} - */ -GeoJSONObject.prototype.crs; - - - -/** - * @constructor - */ -var GeoJSONCRS = function() {}; - - -/** - * CRS type. One of `link` or `name`. - * @type {string} - */ -GeoJSONCRS.prototype.type; - - -/** - * TODO: remove GeoJSONCRSCode when http://jira.codehaus.org/browse/GEOS-5996 - * is fixed and widely deployed. - * @type {!GeoJSONCRSCode|!GeoJSONCRSName|!GeoJSONLink} - */ -GeoJSONCRS.prototype.properties; - - - -/** - * `GeoJSONCRSCode` is not part of the GeoJSON specification, but is generated - * by GeoServer. - * TODO: remove GeoJSONCRSCode when http://jira.codehaus.org/browse/GEOS-5996 - * is fixed and widely deployed. - * @constructor - */ -var GeoJSONCRSCode = function() {}; - - - -/** - * @constructor - */ -var GeoJSONCRSName = function() {}; - - -/** - * TODO: remove this when http://jira.codehaus.org/browse/GEOS-5996 is fixed - * and widely deployed. - * @type {string} - */ -GeoJSONCRSName.prototype.code; - - -/** - * @type {string} - */ -GeoJSONCRSName.prototype.name; - - - -/** - * @constructor - * @extends {GeoJSONObject} - */ -var GeoJSONGeometry = function() {}; - - -/** - * @type {!Array.<number>|!Array.<!Array.<number>>| - * !Array.<!Array.<!Array.<number>>>} - */ -GeoJSONGeometry.prototype.coordinates; - - - -/** - * @constructor - * @extends {GeoJSONObject} - */ -var GeoJSONGeometryCollection = function() {}; - - -/** - * @type {!Array.<GeoJSONGeometry>} - */ -GeoJSONGeometryCollection.prototype.geometries; - - - -/** - * @constructor - * @extends {GeoJSONObject} - */ -var GeoJSONFeature = function() {}; - - -/** - * @type {GeoJSONGeometry|GeoJSONGeometryCollection} - */ -GeoJSONFeature.prototype.geometry; - - -/** - * @type {number|string|undefined} - */ -GeoJSONFeature.prototype.id; - - -/** - * @type {Object.<string, *>} - */ -GeoJSONFeature.prototype.properties; - - - -/** - * @constructor - * @extends {GeoJSONObject} - */ -var GeoJSONFeatureCollection = function() {}; - - -/** - * @type {!Array.<GeoJSONFeature>} - */ -GeoJSONFeatureCollection.prototype.features; - - - -/** - * @constructor - */ -var GeoJSONLink = function() {}; - - -/** - * @type {string} - */ -GeoJSONLink.prototype.href; - -/** - * @type {string} - */ -GeoJSONLink.prototype.type; \ No newline at end of file diff --git a/src/closure/conf/externs/html2canvas.js b/src/closure/conf/externs/html2canvas.js deleted file mode 100755 index d12202e3..00000000 --- a/src/closure/conf/externs/html2canvas.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * - * @param {type} arg1 - * @param {type} arg2 - * @returns {html2canvas} - */ -function html2canvas (arg1, arg2) {}; - diff --git a/src/closure/conf/externs/jquery-1.9.js b/src/closure/conf/externs/jquery-1.9.js deleted file mode 100755 index 72b80b31..00000000 --- a/src/closure/conf/externs/jquery-1.9.js +++ /dev/null @@ -1,2166 +0,0 @@ -/* - * Copyright 2011 The Closure Compiler Authors. - * - * 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. - */ - -/** - * @fileoverview Externs for jQuery 1.9.1 - * - * Note that some functions use different return types depending on the number - * of parameters passed in. In these cases, you may need to annotate the type - * of the result in your code, so the JSCompiler understands which type you're - * expecting. For example: - * <code>var elt = /** @type {Element} * / (foo.get(0));</code> - * - * @see http://api.jquery.com/ - * @externs - */ - -/** - * @typedef {(Window|Document|Element|Array.<Element>|string|jQuery| - * NodeList)} - */ -var jQuerySelector; - -/** @typedef {function(...)|Array.<function(...)>} */ -var jQueryCallback; - -/** @typedef { - { - accepts: (Object.<string, string>|undefined), - async: (?boolean|undefined), - beforeSend: (function(jQuery.jqXHR, (jQueryAjaxSettings|Object.<string, *>))|undefined), - cache: (?boolean|undefined), - complete: (function(jQuery.jqXHR, string)|undefined), - contents: (Object.<string, RegExp>|undefined), - contentType: (?string|undefined), - context: (Object.<?, ?>|jQueryAjaxSettings|undefined), - converters: (Object.<string, Function>|undefined), - crossDomain: (?boolean|undefined), - data: (Object.<?, ?>|?string|Array.<?>|undefined), - dataFilter: (function(string, string):?|undefined), - dataType: (?string|undefined), - error: (function(jQuery.jqXHR, string, string)|undefined), - global: (?boolean|undefined), - headers: (Object.<?, ?>|undefined), - ifModified: (?boolean|undefined), - isLocal: (?boolean|undefined), - jsonp: (?string|undefined), - jsonpCallback: (?string|function()|undefined), - mimeType: (?string|undefined), - password: (?string|undefined), - processData: (?boolean|undefined), - scriptCharset: (?string|undefined), - statusCode: (Object.<number, function()>|undefined), - success: (function(?, string, jQuery.jqXHR)|undefined), - timeout: (?number|undefined), - traditional: (?boolean|undefined), - type: (?string|undefined), - url: (?string|undefined), - username: (?string|undefined), - xhr: (function():(ActiveXObject|XMLHttpRequest)|undefined), - xhrFields: (Object.<?, ?>|undefined) - }} */ -var jQueryAjaxSettings; - -/** - * @constructor - * @param {(jQuerySelector|Element|Object|Array.<Element>|jQuery|string| - * function())=} arg1 - * @param {(Element|jQuery|Document| - * Object.<string, (string|function(!jQuery.event=))>)=} arg2 - * @return {!jQuery} - */ -function jQuery(arg1, arg2) {} - -/** - * @constructor - * @extends {jQuery} - * @param {(jQuerySelector|Element|Object|Array.<Element>|jQuery|string| - * function())=} arg1 - * @param {(Element|jQuery|Document| - * Object.<string, (string|function(!jQuery.event=))>)=} arg2 - * @return {!jQuery} - */ -function $(arg1, arg2) {} - -/** - * @param {(jQuerySelector|Array.<Element>|string|jQuery)} arg1 - * @param {Element=} context - * @return {!jQuery} - * @nosideeffects - */ -jQuery.prototype.add = function(arg1, context) {}; - -/** - * @param {(jQuerySelector|Array.<Element>|string|jQuery)=} arg1 - * @return {!jQuery} - * @nosideeffects - */ -jQuery.prototype.addBack = function(arg1) {}; - -/** - * @param {(string|function(number,String))} arg1 - * @return {!jQuery} - */ -jQuery.prototype.addClass = function(arg1) {}; - -/** - * @param {(string|Element|jQuery|function(number))} arg1 - * @param {(string|Element|Array.<Element>|jQuery)=} content - * @return {!jQuery} - */ -jQuery.prototype.after = function(arg1, content) {}; - -/** - * @param {(string|jQueryAjaxSettings|Object.<string,*>)} arg1 - * @param {(jQueryAjaxSettings|Object.<string, *>)=} settings - * @return {jQuery.jqXHR} - */ -jQuery.ajax = function(arg1, settings) {}; - -/** - * @param {(string|jQueryAjaxSettings|Object.<string, *>)} arg1 - * @param {(jQueryAjaxSettings|Object.<string, *>)=} settings - * @return {jQuery.jqXHR} - */ -$.ajax = function(arg1, settings) {}; - -/** - * @param {function(!jQuery.event,XMLHttpRequest,(jQueryAjaxSettings|Object.<string, *>))} handler - * @return {!jQuery} - */ -jQuery.prototype.ajaxComplete = function(handler) {}; - -/** - * @param {function(!jQuery.event,jQuery.jqXHR,(jQueryAjaxSettings|Object.<string, *>),*)} handler - * @return {!jQuery} - */ -jQuery.prototype.ajaxError = function(handler) {}; - -/** - * @param {(string|function((jQueryAjaxSettings|Object.<string, *>),(jQueryAjaxSettings|Object.<string, *>),jQuery.jqXHR))} dataTypes - * @param {function((jQueryAjaxSettings|Object.<string, *>),(jQueryAjaxSettings|Object.<string, *>),jQuery.jqXHR)=} handler - */ -jQuery.ajaxPrefilter = function(dataTypes, handler) {}; - -/** - * @param {(string|function((jQueryAjaxSettings|Object.<string, *>),(jQueryAjaxSettings|Object.<string, *>),jQuery.jqXHR))} dataTypes - * @param {function((jQueryAjaxSettings|Object.<string, *>),(jQueryAjaxSettings|Object.<string, *>),jQuery.jqXHR)=} handler - */ -$.ajaxPrefilter = function(dataTypes, handler) {}; - -/** - * @param {function(!jQuery.event,jQuery.jqXHR,(jQueryAjaxSettings|Object.<string, *>))} handler - * @return {!jQuery} - */ -jQuery.prototype.ajaxSend = function(handler) {}; - -/** @const {jQueryAjaxSettings|Object.<string, *>} */ -jQuery.ajaxSettings; - -/** @const {jQueryAjaxSettings|Object.<string, *>} */ -$.ajaxSettings = {}; - -/** @type {Object.<string, boolean>} */ -jQuery.ajaxSettings.flatOptions = {}; - -/** @type {Object.<string, boolean>} */ -$.ajaxSettings.flatOptions = {}; - -/** @type {boolean} */ -jQuery.ajaxSettings.processData; - -/** @type {boolean} */ -$.ajaxSettings.processData; - -/** @type {Object.<string, string>} */ -jQuery.ajaxSettings.responseFields = {}; - -/** @type {Object.<string, string>} */ -$.ajaxSettings.responseFields = {}; - -/** @param {jQueryAjaxSettings|Object.<string, *>} options */ -jQuery.ajaxSetup = function(options) {}; - -/** @param {jQueryAjaxSettings|Object.<string, *>} options */ -$.ajaxSetup = function(options) {}; - -/** - * @param {function()} handler - * @return {!jQuery} - */ -jQuery.prototype.ajaxStart = function(handler) {}; - -/** - * @param {function()} handler - * @return {!jQuery} - */ -jQuery.prototype.ajaxStop = function(handler) {}; - -/** - * @param {function(!jQuery.event,XMLHttpRequest,(jQueryAjaxSettings|Object.<string, *>), ?)} handler - * @return {!jQuery} - */ -jQuery.prototype.ajaxSuccess = function(handler) {}; - -/** - * @deprecated Please use .addBack(selector) instead. - * @return {!jQuery} - * @nosideeffects - */ -jQuery.prototype.andSelf = function() {}; - -/** - * @param {Object.<string,*>} properties - * @param {(string|number|function()|Object.<string,*>)=} arg2 - * @param {(string|function())=} easing - * @param {function()=} complete - * @return {!jQuery} - */ -jQuery.prototype.animate = function(properties, arg2, easing, complete) {}; - -/** - * @param {(string|Element|Array.<Element>|jQuery|function(number,string))} arg1 - * @param {...(string|Element|Array.<Element>|jQuery)} content - * @return {!jQuery} - */ -jQuery.prototype.append = function(arg1, content) {}; - -/** - * @param {(jQuerySelector|Element|jQuery)} target - * @return {!jQuery} - */ -jQuery.prototype.appendTo = function(target) {}; - -/** - * @param {(string|Object.<string,*>)} arg1 - * @param {(string|number|boolean|function(number,string))=} arg2 - * @return {(string|!jQuery)} - */ -jQuery.prototype.attr = function(arg1, arg2) {}; - -/** - * @param {(string|Element|jQuery|function())} arg1 - * @param {(string|Element|Array.<Element>|jQuery)=} content - * @return {!jQuery} - */ -jQuery.prototype.before = function(arg1, content) {}; - -/** - * @param {(string|Object.<string, function(!jQuery.event=)>)} arg1 - * @param {(Object.<string, *>|function(!jQuery.event=)|boolean)=} eventData - * @param {(function(!jQuery.event=)|boolean)=} arg3 - * @return {!jQuery} - */ -jQuery.prototype.bind = function(arg1, eventData, arg3) {}; - -/** - * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1 - * @param {function(!jQuery.event=)=} handler - * @return {!jQuery} - */ -jQuery.prototype.blur = function(arg1, handler) {}; - -/** - * @constructor - * @private - */ -jQuery.callbacks = function () {}; - -/** - * @param {string=} flags - * @return {jQuery.callbacks} - */ -jQuery.Callbacks = function (flags) {}; - -/** @param {function()} callbacks */ -jQuery.callbacks.prototype.add = function(callbacks) {}; - -/** @return {undefined} */ -jQuery.callbacks.prototype.disable = function() {}; - -/** @return {undefined} */ -jQuery.callbacks.prototype.empty = function() {}; - -/** @param {...*} var_args */ -jQuery.callbacks.prototype.fire = function(var_args) {}; - -/** @return {boolean} */ -jQuery.callbacks.prototype.fired = function() {}; - -/** @param {...*} var_args */ -jQuery.callbacks.prototype.fireWith = function(var_args) {}; - -/** - * @param {function()} callback - * @return {boolean} - * @nosideeffects - */ -jQuery.callbacks.prototype.has = function(callback) {}; - -/** @return {undefined} */ -jQuery.callbacks.prototype.lock = function() {}; - -/** @return {boolean} */ -jQuery.callbacks.prototype.locked = function() {}; - -/** @param {function()} callbacks */ -jQuery.callbacks.prototype.remove = function(callbacks) {}; - -/** - * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1 - * @param {function(!jQuery.event=)=} handler - * @return {!jQuery} - */ -jQuery.prototype.change = function(arg1, handler) {}; - -/** - * @param {jQuerySelector=} selector - * @return {!jQuery} - * @nosideeffects - */ -jQuery.prototype.children = function(selector) {}; - -/** - * @param {string=} queueName - * @return {!jQuery} - */ -jQuery.prototype.clearQueue = function(queueName) {}; - -/** - * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1 - * @param {function(!jQuery.event=)=} handler - * @return {!jQuery} - */ -jQuery.prototype.click = function(arg1, handler) {}; - -/** - * @param {boolean=} withDataAndEvents - * @param {boolean=} deepWithDataAndEvents - * @return {!jQuery} - * @suppress {checkTypes} see https://code.google.com/p/closure-compiler/issues/detail?id=583 - */ -jQuery.prototype.clone = function(withDataAndEvents, deepWithDataAndEvents) {}; - -/** - * @param {(jQuerySelector|jQuery|Element|string)} arg1 - * @param {Element=} context - * @return {!jQuery} - * @nosideeffects - */ -jQuery.prototype.closest = function(arg1, context) {}; - -/** - * @param {Element} container - * @param {Element} contained - * @return {boolean} - */ -jQuery.contains = function(container, contained) {}; - -/** - * @param {Element} container - * @param {Element} contained - * @return {boolean} - */ -$.contains = function(container, contained) {}; - -/** - * @return {!jQuery} - * @nosideeffects - */ -jQuery.prototype.contents = function() {}; - -/** @type {Element|Document} */ -jQuery.prototype.context; - -/** - * @param {(string|Object.<string,*>)} arg1 - * @param {(string|number|function(number,*))=} arg2 - * @return {(string|!jQuery)} - */ -jQuery.prototype.css = function(arg1, arg2) {}; - -/** @type {Object.<string, *>} */ -jQuery.cssHooks; - -/** @type {Object.<string, *>} */ -$.cssHooks; - -/** - * @param {Element} elem - * @param {string=} key - * @param {*=} value - * @return {*} - */ -jQuery.data = function(elem, key, value) {}; - -/** - * @param {(string|Object.<string, *>)=} arg1 - * @param {*=} value - * @return {*} - */ -jQuery.prototype.data = function(arg1, value) {}; - -/** - * @param {Element} elem - * @param {string=} key - * @param {*=} value - * @return {*} - */ -$.data = function(elem, key, value) {}; - -/** - * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1 - * @param {function(!jQuery.event=)=} handler - * @return {!jQuery} - */ -jQuery.prototype.dblclick = function(arg1, handler) {}; - -/** - * @constructor - * @implements {jQuery.Promise} - * @param {function()=} opt_fn - * @see http://api.jquery.com/category/deferred-object/ - */ -jQuery.deferred = function(opt_fn) {}; - -/** - * @constructor - * @extends {jQuery.deferred} - * @param {function()=} opt_fn - * @return {jQuery.Deferred} - */ -jQuery.Deferred = function(opt_fn) {}; - -/** - * @constructor - * @extends {jQuery.deferred} - * @param {function()=} opt_fn - * @see http://api.jquery.com/category/deferred-object/ - */ -$.deferred = function(opt_fn) {}; - -/** - * @constructor - * @extends {jQuery.deferred} - * @param {function()=} opt_fn - * @return {jQuery.deferred} - */ -$.Deferred = function(opt_fn) {}; - -/** - * @override - * @param {jQueryCallback} alwaysCallbacks - * @param {jQueryCallback=} alwaysCallbacks2 - * @return {jQuery.deferred} - */ -jQuery.deferred.prototype.always - = function(alwaysCallbacks, alwaysCallbacks2) {}; - -/** - * @override - * @param {jQueryCallback} doneCallbacks - * @param {jQueryCallback=} doneCallbacks2 - * @return {jQuery.deferred} - */ -jQuery.deferred.prototype.done = function(doneCallbacks, doneCallbacks2) {}; - -/** - * @override - * @param {jQueryCallback} failCallbacks - * @param {jQueryCallback=} failCallbacks2 - * @return {jQuery.deferred} - */ -jQuery.deferred.prototype.fail = function(failCallbacks, failCallbacks2) {}; - -/** - * @param {...*} var_args - * @return {jQuery.deferred} - */ -jQuery.deferred.prototype.notify = function(var_args) {}; - -/** - * @param {Object} context - * @param {...*} var_args - * @return {jQuery.deferred} - */ -jQuery.deferred.prototype.notifyWith = function(context, var_args) {}; - -/** - * @deprecated Please use deferred.then() instead. - * @override - * @param {function()=} doneFilter - * @param {function()=} failFilter - * @param {function()=} progressFilter - * @return {jQuery.Promise} - */ -jQuery.deferred.prototype.pipe = - function(doneFilter, failFilter, progressFilter) {}; - -/** - * @param {jQueryCallback} progressCallbacks - * @return {jQuery.deferred} - */ -jQuery.deferred.prototype.progress = function(progressCallbacks) {}; - -/** - * @param {Object=} target - * @return {jQuery.Promise} - */ -jQuery.deferred.prototype.promise = function(target) {}; - -/** - * @param {...*} var_args - * @return {jQuery.deferred} - */ -jQuery.deferred.prototype.reject = function(var_args) {}; - -/** - * @param {Object} context - * @param {Array.<*>=} args - * @return {jQuery.deferred} - */ -jQuery.deferred.prototype.rejectWith = function(context, args) {}; - -/** - * @param {...*} var_args - * @return {jQuery.deferred} - */ -jQuery.deferred.prototype.resolve = function(var_args) {}; - -/** - * @param {Object} context - * @param {Array.<*>=} args - * @return {jQuery.deferred} - */ -jQuery.deferred.prototype.resolveWith = function(context, args) {}; - -/** @return {string} */ -jQuery.deferred.prototype.state = function() {}; - -/** - * @override - * @param {jQueryCallback} doneCallbacks - * @param {jQueryCallback=} failCallbacks - * @param {jQueryCallback=} progressCallbacks - * @return {jQuery.deferred} - */ -jQuery.deferred.prototype.then - = function(doneCallbacks, failCallbacks, progressCallbacks) {}; - -/** - * @param {number} duration - * @param {string=} queueName - * @return {!jQuery} - */ -jQuery.prototype.delay = function(duration, queueName) {}; - -/** - * @param {string} selector - * @param {(string|Object.<string,*>)} arg2 - * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg3 - * @param {function(!jQuery.event=)=} handler - * @return {!jQuery} - */ -jQuery.prototype.delegate = function(selector, arg2, arg3, handler) {}; - -/** - * @param {Element} elem - * @param {string=} queueName - */ -jQuery.dequeue = function(elem, queueName) {}; - -/** - * @param {string=} queueName - * @return {!jQuery} - */ -jQuery.prototype.dequeue = function(queueName) {}; - -/** - * @param {Element} elem - * @param {string=} queueName - */ -$.dequeue = function(elem, queueName) {}; - -/** - * @param {jQuerySelector=} selector - * @return {!jQuery} - */ -jQuery.prototype.detach = function(selector) {}; - -/** - * @param {Object} collection - * @param {function((number|string),?)} callback - * @return {Object} - */ -jQuery.each = function(collection, callback) {}; - -/** - * @param {function(number,Element)} fnc - * @return {!jQuery} - */ -jQuery.prototype.each = function(fnc) {}; - -/** - * @param {Object} collection - * @param {function((number|string),?)} callback - * @return {Object} - */ -$.each = function(collection, callback) {}; - -/** @return {!jQuery} */ -jQuery.prototype.empty = function() {}; - -/** - * @return {!jQuery} - * @nosideeffects - */ -jQuery.prototype.end = function() {}; - -/** - * @param {number} arg1 - * @return {!jQuery} - */ -jQuery.prototype.eq = function(arg1) {}; - -/** @param {string} message */ -jQuery.error = function(message) {}; - -/** - * @deprecated Please use .on( "error", handler ) instead. - * @param {(function(!jQuery.event=)|Object.<string, *>)} arg1 - * @param {function(!jQuery.event=)=} handler - * @return {!jQuery} - */ -jQuery.prototype.error = function(arg1, handler) {}; - -/** @param {string} message */ -$.error = function(message) {}; - -/** - * @constructor - * @param {string} eventType - */ -jQuery.event = function(eventType) {}; - -/** - * @constructor - * @extends {jQuery.event} - * @param {string} eventType - * @param {Object=} properties - * @return {jQuery.Event} - */ -jQuery.Event = function(eventType, properties) {}; - -/** - * @constructor - * @extends {jQuery.event} - * @param {string} eventType - */ -$.event = function(eventType) {}; - -/** - * @constructor - * @extends {jQuery.event} - * @param {string} eventType - * @param {Object=} properties - * @return {$.Event} - */ -$.Event = function(eventType, properties) {}; - -/** @type {Element} */ -jQuery.event.prototype.currentTarget; - -/** @type {Object.<string, *>} */ -jQuery.event.prototype.data; - -/** @type {Element} */ -jQuery.event.prototype.delegateTarget; - -/** - * @return {boolean} - * @nosideeffects - */ -jQuery.event.prototype.isDefaultPrevented = function() {}; - -/** - * @return {boolean} - * @nosideeffects - */ -jQuery.event.prototype.isImmediatePropagationStopped = function() {}; - -/** - * @return {boolean} - * @nosideeffects - */ -jQuery.event.prototype.isPropagationStopped = function() {}; - -/** @type {string} */ -jQuery.event.prototype.namespace; - -/** @type {Event} */ -jQuery.event.prototype.originalEvent; - -/** @type {number} */ -jQuery.event.prototype.pageX; - -/** @type {number} */ -jQuery.event.prototype.pageY; - -/** @return {undefined} */ -jQuery.event.prototype.preventDefault = function() {}; - -/** @type {Object.<string, *>} */ -jQuery.event.prototype.props; - -/** @type {Element} */ -jQuery.event.prototype.relatedTarget; - -/** @type {*} */ -jQuery.event.prototype.result; - -/** @return {undefined} */ -jQuery.event.prototype.stopImmediatePropagation = function() {}; - -/** @return {undefined} */ -jQuery.event.prototype.stopPropagation = function() {}; - -/** @type {Element} */ -jQuery.event.prototype.target; - -/** @type {number} */ -jQuery.event.prototype.timeStamp; - -/** @type {string} */ -jQuery.event.prototype.type; - -/** @type {number} */ -jQuery.event.prototype.which; - -/** - * @param {(Object|boolean)} arg1 - * @param {...*} var_args - * @return {Object} - */ -jQuery.extend = function(arg1, var_args) {}; - -/** - * @param {(Object|boolean)} arg1 - * @param {...*} var_args - * @return {Object} - */ -jQuery.prototype.extend = function(arg1, var_args) {}; - -/** - * @param {(Object|boolean)} arg1 - * @param {...*} var_args - * @return {Object} - */ -$.extend = function(arg1, var_args) {}; - -/** - * @param {(string|number|function())=} duration - * @param {(function()|string)=} arg2 - * @param {function()=} callback - * @return {!jQuery} - */ -jQuery.prototype.fadeIn = function(duration, arg2, callback) {}; - -/** - * @param {(string|number|function())=} duration - * @param {(function()|string)=} arg2 - * @param {function()=} callback - * @return {!jQuery} - */ -jQuery.prototype.fadeOut = function(duration, arg2, callback) {}; - -/** - * @param {(string|number)} duration - * @param {number} opacity - * @param {(function()|string)=} arg3 - * @param {function()=} callback - * @return {!jQuery} - */ -jQuery.prototype.fadeTo = function(duration, opacity, arg3, callback) {}; - -/** - * @param {(string|number|function())=} duration - * @param {(string|function())=} easing - * @param {function()=} callback - * @return {!jQuery} - */ -jQuery.prototype.fadeToggle = function(duration, easing, callback) {}; - -/** - * @param {(jQuerySelector|function(number,Element)|Element|jQuery)} arg1 - * @return {!jQuery} - * @see http://api.jquery.com/filter/ - */ -jQuery.prototype.filter = function(arg1) {}; - -/** - * @param {(jQuerySelector|jQuery|Element)} arg1 - * @return {!jQuery} - * @nosideeffects - */ -jQuery.prototype.find = function(arg1) {}; - -/** @return {!jQuery} */ -jQuery.prototype.first = function() {}; - -/** @see http://docs.jquery.com/Plugins/Authoring */ -jQuery.fn = jQuery.prototype; - -/** @see http://docs.jquery.com/Plugins/Authoring */ -$.fn = $.prototype; - -/** - * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1 - * @param {function(!jQuery.event=)=} handler - * @return {!jQuery} - */ -jQuery.prototype.focus = function(arg1, handler) {}; - -/** - * @param {(function(!jQuery.event=)|Object.<string, *>)} arg1 - * @param {function(!jQuery.event=)=} handler - * @return {!jQuery} - */ -jQuery.prototype.focusin = function(arg1, handler) {}; - -/** - * @param {(function(!jQuery.event=)|Object.<string, *>)} arg1 - * @param {function(!jQuery.event=)=} handler - * @return {!jQuery} - */ -jQuery.prototype.focusout = function(arg1, handler) {}; - -/** @const */ -jQuery.fx = {}; - -/** @const */ -$.fx = {}; - -/** @type {number} */ -jQuery.fx.interval; - -/** @type {number} */ -$.fx.interval; - -/** @type {boolean} */ -jQuery.fx.off; - -/** @type {boolean} */ -$.fx.off; - -/** - * @param {string} url - * @param {(Object.<string,*>|string| - * function(string,string,jQuery.jqXHR))=} data - * @param {(function(string,string,jQuery.jqXHR)|string)=} success - * @param {string=} dataType - * @return {jQuery.jqXHR} - */ -jQuery.get = function(url, data, success, dataType) {}; - -/** - * @param {number=} index - * @return {(Element|Array.<Element>)} - * @nosideeffects - */ -jQuery.prototype.get = function(index) {}; - -/** - * @param {string} url - * @param {(Object.<string,*>|string| - * function(string,string,jQuery.jqXHR))=} data - * @param {(function(string,string,jQuery.jqXHR)|string)=} success - * @param {string=} dataType - * @return {jQuery.jqXHR} - */ -$.get = function(url, data, success, dataType) {}; - -/** - * @param {string} url - * @param {(Object.<string,*>| - * function(Object.<string,*>,string,jQuery.jqXHR))=} data - * @param {function(Object.<string,*>,string,jQuery.jqXHR)=} success - * @return {jQuery.jqXHR} - * @see http://api.jquery.com/jquery.getjson/#jQuery-getJSON-url-data-success - */ -jQuery.getJSON = function(url, data, success) {}; - -/** - * @param {string} url - * @param {(Object.<string,*>| - * function(Object.<string,*>,string,jQuery.jqXHR))=} data - * @param {function(Object.<string,*>,string,jQuery.jqXHR)=} success - * @return {jQuery.jqXHR} - * @see http://api.jquery.com/jquery.getjson/#jQuery-getJSON-url-data-success - */ -$.getJSON = function(url, data, success) {}; - -/** - * @param {string} url - * @param {function(Node,string,jQuery.jqXHR)=} success - * @return {jQuery.jqXHR} - */ -jQuery.getScript = function(url, success) {}; - -/** - * @param {string} url - * @param {function(Node,string,jQuery.jqXHR)=} success - * @return {jQuery.jqXHR} - */ -$.getScript = function(url, success) {}; - -/** @param {string} code */ -jQuery.globalEval = function(code) {}; - -/** @param {string} code */ -$.globalEval = function(code) {}; - -/** - * @param {Array.<*>} arr - * @param {function(*,number)} fnc - * @param {boolean=} invert - * @return {Array.<*>} - */ -jQuery.grep = function(arr, fnc, invert) {}; - -/** - * @param {Array.<*>} arr - * @param {function(*,number)} fnc - * @param {boolean=} invert - * @return {Array.<*>} - */ -$.grep = function(arr, fnc, invert) {}; - -/** - * @param {(string|Element)} arg1 - * @return {!jQuery} - * @nosideeffects - */ -jQuery.prototype.has = function(arg1) {}; - -/** - * @param {string} className - * @return {boolean} - * @nosideeffects - */ -jQuery.prototype.hasClass = function(className) {}; - -/** - * @param {Element} elem - * @return {boolean} - * @nosideeffects - */ -jQuery.hasData = function(elem) {}; - -/** - * @param {Element} elem - * @return {boolean} - * @nosideeffects - */ -$.hasData = function(elem) {}; - -/** - * @param {(string|number|function(number,number))=} arg1 - * @return {(number|!jQuery)} - */ -jQuery.prototype.height = function(arg1) {}; - -/** - * @param {(string|number|function())=} duration - * @param {(function()|string)=} arg2 - * @param {function()=} callback - * @return {!jQuery} - */ -jQuery.prototype.hide = function(duration, arg2, callback) {}; - -/** @param {boolean} hold */ -jQuery.holdReady = function(hold) {}; - -/** @param {boolean} hold */ -$.holdReady = function(hold) {}; - -/** - * @param {function(!jQuery.event=)} arg1 - * @param {function(!jQuery.event=)=} handlerOut - * @return {!jQuery} - */ -jQuery.prototype.hover = function(arg1, handlerOut) {}; - -/** - * @param {(string|function(number,string))=} arg1 - * @return {(string|!jQuery)} - */ -jQuery.prototype.html = function(arg1) {}; - -/** - * @param {*} value - * @param {Array.<*>} arr - * @param {number=} fromIndex - * @return {number} - * @nosideeffects - */ -jQuery.inArray = function(value, arr, fromIndex) {}; - -/** - * @param {*} value - * @param {Array.<*>} arr - * @param {number=} fromIndex - * @return {number} - * @nosideeffects - */ -$.inArray = function(value, arr, fromIndex) {}; - -/** - * @param {(jQuerySelector|Element|jQuery)=} arg1 - * @return {number} - */ -jQuery.prototype.index = function(arg1) {}; - -/** - * @return {number} - * @nosideeffects - */ -jQuery.prototype.innerHeight = function() {}; - -/** - * @return {number} - * @nosideeffects - */ -jQuery.prototype.innerWidth = function() {}; - -/** - * @param {(jQuerySelector|Element|jQuery)} target - * @return {!jQuery} - */ -jQuery.prototype.insertAfter = function(target) {}; - -/** - * @param {(jQuerySelector|Element|jQuery)} target - * @return {!jQuery} - */ -jQuery.prototype.insertBefore = function(target) {}; - -/** - * @param {(jQuerySelector|function(number)|jQuery|Element)} arg1 - * @return {boolean} - */ -jQuery.prototype.is = function(arg1) {}; - -/** - * @param {*} obj - * @return {boolean} - * @nosideeffects - */ -jQuery.isArray = function(obj) {}; - -/** - * @param {*} obj - * @return {boolean} - * @nosideeffects - */ -$.isArray = function(obj) {}; - -/** - * @param {Object} obj - * @return {boolean} - * @nosideeffects - */ -jQuery.isEmptyObject = function(obj) {}; - -/** - * @param {Object} obj - * @return {boolean} - * @nosideeffects - */ -$.isEmptyObject = function(obj) {}; - -/** - * @param {*} obj - * @return {boolean} - * @nosideeffects - */ -jQuery.isFunction = function(obj) {}; - -/** - * @param {*} obj - * @return {boolean} - * @nosideeffects - */ -$.isFunction = function(obj) {}; - -/** - * @param {*} value - * @return {boolean} - * @nosideeffects - */ -jQuery.isNumeric = function(value) {}; - -/** - * @param {*} value - * @return {boolean} - * @nosideeffects - */ -$.isNumeric = function(value) {}; - -/** - * @param {*} obj - * @return {boolean} - * @nosideeffects - */ -jQuery.isPlainObject = function(obj) {}; - -/** - * @param {*} obj - * @return {boolean} - * @nosideeffects - */ -$.isPlainObject = function(obj) {}; - -/** - * @param {*} obj - * @return {boolean} - * @nosideeffects - */ -jQuery.isWindow = function(obj) {}; - -/** - * @param {*} obj - * @return {boolean} - * @nosideeffects - */ -$.isWindow = function(obj) {}; - -/** - * @param {Element} node - * @return {boolean} - * @nosideeffects - */ -jQuery.isXMLDoc = function(node) {}; - -/** - * @param {Element} node - * @return {boolean} - * @nosideeffects - */ -$.isXMLDoc = function(node) {}; - -/** @type {string} */ -jQuery.prototype.jquery; - -/** - * @constructor - * @extends {XMLHttpRequest} - * @implements {jQuery.Promise} - * @private - * @see http://api.jquery.com/jQuery.ajax/#jqXHR - */ -jQuery.jqXHR = function () {}; - -/** - * @override - * @param {jQueryCallback} alwaysCallbacks - * @param {jQueryCallback=} alwaysCallbacks2 - * @return {jQuery.jqXHR} - */ -jQuery.jqXHR.prototype.always = - function(alwaysCallbacks, alwaysCallbacks2) {}; - -/** - * @deprecated - * @param {function()} callback - * @return {jQuery.jqXHR} -*/ -jQuery.jqXHR.prototype.complete = function (callback) {}; - -/** - * @override - * @param {jQueryCallback} doneCallbacks - * @return {jQuery.jqXHR} - */ -jQuery.jqXHR.prototype.done = function(doneCallbacks) {}; - -/** - * @deprecated - * @param {function()} callback - * @return {jQuery.jqXHR} -*/ -jQuery.jqXHR.prototype.error = function (callback) {}; - -/** - * @override - * @param {jQueryCallback} failCallbacks - * @return {jQuery.jqXHR} - */ -jQuery.jqXHR.prototype.fail = function(failCallbacks) {}; - -/** - * @deprecated - * @override - */ -jQuery.jqXHR.prototype.onreadystatechange = function (callback) {}; - -/** - * @override - * @param {function()=} doneFilter - * @param {function()=} failFilter - * @param {function()=} progressFilter - * @return {jQuery.jqXHR} - */ -jQuery.jqXHR.prototype.pipe = - function(doneFilter, failFilter, progressFilter) {}; - -/** - * @deprecated - * @param {function()} callback - * @return {jQuery.jqXHR} -*/ -jQuery.jqXHR.prototype.success = function (callback) {}; - -/** - * @override - * @param {jQueryCallback} doneCallbacks - * @param {jQueryCallback=} failCallbacks - * @param {jQueryCallback=} progressCallbacks - * @return {jQuery.jqXHR} - */ -jQuery.jqXHR.prototype.then = - function(doneCallbacks, failCallbacks, progressCallbacks) {}; - -/** - * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1 - * @param {function(!jQuery.event=)=} handler - * @return {!jQuery} - */ -jQuery.prototype.keydown = function(arg1, handler) {}; - -/** - * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1 - * @param {function(!jQuery.event=)=} handler - * @return {!jQuery} - */ -jQuery.prototype.keypress = function(arg1, handler) {}; - -/** - * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1 - * @param {function(!jQuery.event=)=} handler - * @return {!jQuery} - */ -jQuery.prototype.keyup = function(arg1, handler) {}; - -/** @return {!jQuery} */ -jQuery.prototype.last = function() {}; - -/** @type {number} */ -jQuery.prototype.length; - -/** - * @deprecated Please avoid the document loading Event invocation of - * .load() and use .on( "load", handler ) instead. (The AJAX - * module invocation signature is OK.) - * @param {(function(!jQuery.event=)|Object.<string, *>|string)} arg1 - * @param {(function(!jQuery.event=)|Object.<string,*>|string)=} arg2 - * @param {function(string,string,XMLHttpRequest)=} complete - * @return {!jQuery} - */ -jQuery.prototype.load = function(arg1, arg2, complete) {}; - -/** - * @param {*} obj - * @return {Array.<*>} - */ -jQuery.makeArray = function(obj) {}; - -/** - * @param {*} obj - * @return {Array.<*>} - */ -$.makeArray = function(obj) {}; - -/** - * @param {(Array.<*>|Object.<string, *>)} arg1 - * @param {(function(*,number)|function(*,(string|number)))} callback - * @return {Array.<*>} - */ -jQuery.map = function(arg1, callback) {}; - -/** - * @param {function(number,Element)} callback - * @return {!jQuery} - */ -jQuery.prototype.map = function(callback) {}; - -/** - * @param {(Array.<*>|Object.<string, *>)} arg1 - * @param {(function(*,number)|function(*,(string|number)))} callback - * @return {Array.<*>} - */ -$.map = function(arg1, callback) {}; - -/** - * @param {Array.<*>} first - * @param {Array.<*>} second - * @return {Array.<*>} - */ -jQuery.merge = function(first, second) {}; - -/** - * @param {Array.<*>} first - * @param {Array.<*>} second - * @return {Array.<*>} - */ -$.merge = function(first, second) {}; - -/** - * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1 - * @param {function(!jQuery.event=)=} handler - * @return {!jQuery} - */ -jQuery.prototype.mousedown = function(arg1, handler) {}; - -/** - * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1 - * @param {function(!jQuery.event=)=} handler - * @return {!jQuery} - */ -jQuery.prototype.mouseenter = function(arg1, handler) {}; - -/** - * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1 - * @param {function(!jQuery.event=)=} handler - * @return {!jQuery} - */ -jQuery.prototype.mouseleave = function(arg1, handler) {}; - -/** - * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1 - * @param {function(!jQuery.event=)=} handler - * @return {!jQuery} - */ -jQuery.prototype.mousemove = function(arg1, handler) {}; - -/** - * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1 - * @param {function(!jQuery.event=)=} handler - * @return {!jQuery} - */ -jQuery.prototype.mouseout = function(arg1, handler) {}; - -/** - * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1 - * @param {function(!jQuery.event=)=} handler - * @return {!jQuery} - */ -jQuery.prototype.mouseover = function(arg1, handler) {}; - -/** - * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1 - * @param {function(!jQuery.event=)=} handler - * @return {!jQuery} - */ -jQuery.prototype.mouseup = function(arg1, handler) {}; - -/** - * @param {jQuerySelector=} selector - * @return {!jQuery} - * @nosideeffects - */ -jQuery.prototype.next = function(selector) {}; - -/** - * @param {string=} selector - * @return {!jQuery} - * @nosideeffects - */ -jQuery.prototype.nextAll = function(selector) {}; - -/** - * @param {(jQuerySelector|Element)=} arg1 - * @param {jQuerySelector=} filter - * @return {!jQuery} - * @nosideeffects - */ -jQuery.prototype.nextUntil = function(arg1, filter) {}; - -/** - * @param {boolean=} removeAll - * @return {Object} - */ -jQuery.noConflict = function(removeAll) {}; - -/** - * @param {boolean=} removeAll - * @return {Object} - */ -$.noConflict = function(removeAll) {}; - -/** - * @return {function()} - * @nosideeffects - */ -jQuery.noop = function() {}; - -/** - * @return {function()} - * @nosideeffects - */ -$.noop = function() {}; - -/** - * @param {(jQuerySelector|Array.<Element>|function(number)|jQuery)} arg1 - * @return {!jQuery} - */ -jQuery.prototype.not = function(arg1) {}; - -/** - * @return {number} - * @nosideeffects - */ -jQuery.now = function() {}; - -/** - * @return {number} - * @nosideeffects - */ -$.now = function() {}; - -/** - * @param {(string|Object.<string,*>)=} arg1 - * @param {(string|function(!jQuery.event=))=} selector - * @param {function(!jQuery.event=)=} handler - * @return {!jQuery} - */ -jQuery.prototype.off = function(arg1, selector, handler) {}; - -/** - * @param {({left:number,top:number}| - * function(number,{top:number,left:number}))=} arg1 - * @return {({left:number,top:number}|!jQuery)} - */ -jQuery.prototype.offset = function(arg1) {}; - -/** - * @return {!jQuery} - * @nosideeffects - */ -jQuery.prototype.offsetParent = function() {}; - -/** - * @param {(string|Object.<string,*>)} arg1 - * @param {*=} selector - * @param {*=} data - * @param {function(!jQuery.event=)=} handler - * @return {!jQuery} - */ -jQuery.prototype.on = function(arg1, selector, data, handler) {}; - -/** - * @param {(string|Object.<string,*>)} arg1 - * @param {*=} arg2 - * @param {*=} arg3 - * @param {function(!jQuery.event=)=} handler - * @return {!jQuery} - */ -jQuery.prototype.one = function(arg1, arg2, arg3, handler) {}; - -/** - * @param {boolean=} includeMargin - * @return {number} - * @nosideeffects - */ -jQuery.prototype.outerHeight = function(includeMargin) {}; - -/** - * @param {boolean=} includeMargin - * @return {number} - * @nosideeffects - */ -jQuery.prototype.outerWidth = function(includeMargin) {}; - -/** - * @param {(Object.<string, *>|Array.<Object.<string, *>>)} obj - * @param {boolean=} traditional - * @return {string} - */ -jQuery.param = function(obj, traditional) {}; - -/** - * @param {(Object.<string, *>|Array.<Object.<string, *>>)} obj - * @param {boolean=} traditional - * @return {string} - */ -$.param = function(obj, traditional) {}; - -/** - * @param {jQuerySelector=} selector - * @return {!jQuery} - * @nosideeffects - */ -jQuery.prototype.parent = function(selector) {}; - -/** - * @param {jQuerySelector=} selector - * @return {!jQuery} - * @nosideeffects - */ -jQuery.prototype.parents = function(selector) {}; - -/** - * @param {(jQuerySelector|Element)=} arg1 - * @param {jQuerySelector=} filter - * @return {!jQuery} - * @nosideeffects - */ -jQuery.prototype.parentsUntil = function(arg1, filter) {}; - -/** - * @param {string} data - * @param {(Element|boolean)=} context - * @param {boolean=} keepScripts - * @return {Array.<Element>} - */ -jQuery.parseHTML = function(data, context, keepScripts) {}; - -/** - * @param {string} data - * @param {(Element|boolean)=} context - * @param {boolean=} keepScripts - * @return {Array.<Element>} - */ -$.parseHTML = function(data, context, keepScripts) {}; - -/** - * @param {string} json - * @return {string|number|Object.<string, *>|Array.<?>|boolean} - */ -jQuery.parseJSON = function(json) {}; - -/** - * @param {string} json - * @return {Object.<string, *>} - */ -$.parseJSON = function(json) {}; - -/** - * @param {string} data - * @return {Document} - */ -jQuery.parseXML = function(data) {}; - -/** - * @param {string} data - * @return {Document} - */ -$.parseXML = function(data) {}; - -/** - * @return {{left:number,top:number}} - * @nosideeffects - */ -jQuery.prototype.position = function() {}; - -/** - * @param {string} url - * @param {(Object.<string,*>|string| - * function(string,string,jQuery.jqXHR))=} data - * @param {(function(string,string,jQuery.jqXHR)|string|null)=} success - * @param {string=} dataType - * @return {jQuery.jqXHR} - */ -jQuery.post = function(url, data, success, dataType) {}; - -/** - * @param {string} url - * @param {(Object.<string,*>|string| - * function(string,string,jQuery.jqXHR))=} data - * @param {(function(string,string,jQuery.jqXHR)|string|null)=} success - * @param {string=} dataType - * @return {jQuery.jqXHR} - */ -$.post = function(url, data, success, dataType) {}; - -/** - * @param {(string|Element|jQuery|function(number,string))} arg1 - * @param {(string|Element|jQuery)=} content - * @return {!jQuery} - */ -jQuery.prototype.prepend = function(arg1, content) {}; - -/** - * @param {(jQuerySelector|Element|jQuery)} target - * @return {!jQuery} - */ -jQuery.prototype.prependTo = function(target) {}; - -/** - * @param {jQuerySelector=} selector - * @return {!jQuery} - * @nosideeffects - */ -jQuery.prototype.prev = function(selector) {}; - -/** - * @param {jQuerySelector=} selector - * @return {!jQuery} - * @nosideeffects - */ -jQuery.prototype.prevAll = function(selector) {}; - -/** - * @param {(jQuerySelector|Element)=} arg1 - * @param {jQuerySelector=} filter - * @return {!jQuery} - * @nosideeffects - */ -jQuery.prototype.prevUntil = function(arg1, filter) {}; - -/** - * @param {(string|Object)=} type - * @param {Object=} target - * @return {jQuery.Promise} - */ -jQuery.prototype.promise = function(type, target) {}; - -/** - * @interface - * @private - * @see http://api.jquery.com/Types/#Promise - */ -jQuery.Promise = function () {}; - -/** - * @param {jQueryCallback} alwaysCallbacks - * @param {jQueryCallback=} alwaysCallbacks2 - * @return {jQuery.Promise} - */ -jQuery.Promise.prototype.always = - function(alwaysCallbacks, alwaysCallbacks2) {}; - -/** - * @param {jQueryCallback} doneCallbacks - * @return {jQuery.Promise} - */ -jQuery.Promise.prototype.done = function(doneCallbacks) {}; - -/** - * @param {jQueryCallback} failCallbacks - * @return {jQuery.Promise} - */ -jQuery.Promise.prototype.fail = function(failCallbacks) {}; - -/** - * @param {function()=} doneFilter - * @param {function()=} failFilter - * @param {function()=} progressFilter - * @return {jQuery.Promise} - */ -jQuery.Promise.prototype.pipe = - function(doneFilter, failFilter, progressFilter) {}; - -/** - * @param {jQueryCallback} doneCallbacks - * @param {jQueryCallback=} failCallbacks - * @param {jQueryCallback=} progressCallbacks - * @return {jQuery.Promise} - */ -jQuery.Promise.prototype.then = - function(doneCallbacks, failCallbacks, progressCallbacks) {}; - -/** - * @param {(string|Object.<string,*>)} arg1 - * @param {(string|number|boolean|function(number,String))=} arg2 - * @return {(string|boolean|!jQuery)} - */ -jQuery.prototype.prop = function(arg1, arg2) {}; - -/** - * @param {...*} var_args - * @return {function()} - */ -jQuery.proxy = function(var_args) {}; - -/** - * @param {...*} var_args - * @return {function()} - */ -$.proxy = function(var_args) {}; - -/** - * @param {Array.<Element>} elements - * @param {string=} name - * @param {Array.<*>=} args - * @return {!jQuery} - */ -jQuery.prototype.pushStack = function(elements, name, args) {}; - -/** - * @param {(string|Array.<function()>|function(function()))=} queueName - * @param {(Array.<function()>|function(function()))=} arg2 - * @return {(Array.<Element>|!jQuery)} - */ -jQuery.prototype.queue = function(queueName, arg2) {}; - -/** - * @param {Element} elem - * @param {string=} queueName - * @param {(Array.<function()>|function())=} arg3 - * @return {(Array.<Element>|!jQuery)} - */ -jQuery.queue = function(elem, queueName, arg3) {}; - -/** - * @param {Element} elem - * @param {string=} queueName - * @param {(Array.<function()>|function())=} arg3 - * @return {(Array.<Element>|!jQuery)} - */ -$.queue = function(elem, queueName, arg3) {}; - -/** - * @param {function()} handler - * @return {!jQuery} - */ -jQuery.prototype.ready = function(handler) {}; - -/** - * @param {string=} selector - * @return {!jQuery} - */ -jQuery.prototype.remove = function(selector) {}; - -/** - * @param {string} attributeName - * @return {!jQuery} - */ -jQuery.prototype.removeAttr = function(attributeName) {}; - -/** - * @param {(string|function(number,string))=} arg1 - * @return {!jQuery} - */ -jQuery.prototype.removeClass = function(arg1) {}; - -/** - * @param {(string|Array.<string>)=} arg1 - * @return {!jQuery} - */ -jQuery.prototype.removeData = function(arg1) {}; - -/** - * @param {Element} elem - * @param {string=} name - * @return {!jQuery} - */ -jQuery.removeData = function(elem, name) {}; - -/** - * @param {Element} elem - * @param {string=} name - * @return {!jQuery} - */ -$.removeData = function(elem, name) {}; - -/** - * @param {string} propertyName - * @return {!jQuery} - */ -jQuery.prototype.removeProp = function(propertyName) {}; - -/** - * @param {jQuerySelector} target - * @return {!jQuery} - */ -jQuery.prototype.replaceAll = function(target) {}; - -/** - * @param {(string|Element|jQuery|function())} arg1 - * @return {!jQuery} - */ -jQuery.prototype.replaceWith = function(arg1) {}; - -/** - * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1 - * @param {function(!jQuery.event=)=} handler - * @return {!jQuery} - */ -jQuery.prototype.resize = function(arg1, handler) {}; - -/** - * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1 - * @param {function(!jQuery.event=)=} handler - * @return {!jQuery} - */ -jQuery.prototype.scroll = function(arg1, handler) {}; - -/** - * @param {number=} value - * @return {(number|!jQuery)} - */ -jQuery.prototype.scrollLeft = function(value) {}; - -/** - * @param {number=} value - * @return {(number|!jQuery)} - */ -jQuery.prototype.scrollTop = function(value) {}; - -/** - * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1 - * @param {function(!jQuery.event=)=} handler - * @return {!jQuery} - */ -jQuery.prototype.select = function(arg1, handler) {}; - -/** - * @return {string} - * @nosideeffects - */ -jQuery.prototype.serialize = function() {}; - -/** - * @return {Array.<Object.<string, *>>} - * @nosideeffects - */ -jQuery.prototype.serializeArray = function() {}; - -/** - * @param {(string|number|function())=} duration - * @param {(function()|string)=} arg2 - * @param {function()=} callback - * @return {!jQuery} - */ -jQuery.prototype.show = function(duration, arg2, callback) {}; - -/** - * @param {jQuerySelector=} selector - * @return {!jQuery} - * @nosideeffects - */ -jQuery.prototype.siblings = function(selector) {}; - -/** - * @deprecated Please use the .length property instead. - * @return {number} - * @nosideeffects - */ -jQuery.prototype.size = function() {}; - -/** - * @param {number} start - * @param {number=} end - * @return {!jQuery} - */ -jQuery.prototype.slice = function(start, end) {}; - -/** - * @param {(Object.<string,*>|string|number)=} optionsOrDuration - * @param {(function()|string)=} completeOrEasing - * @param {function()=} complete - * @return {!jQuery} - */ -jQuery.prototype.slideDown = - function(optionsOrDuration, completeOrEasing, complete) {}; - -/** - * @param {(Object.<string,*>|string|number)=} optionsOrDuration - * @param {(function()|string)=} completeOrEasing - * @param {function()=} complete - * @return {!jQuery} - */ -jQuery.prototype.slideToggle = - function(optionsOrDuration, completeOrEasing, complete) {}; - -/** - * @param {(Object.<string,*>|string|number)=} optionsOrDuration - * @param {(function()|string)=} completeOrEasing - * @param {function()=} complete - * @return {!jQuery} - */ -jQuery.prototype.slideUp = - function(optionsOrDuration, completeOrEasing, complete) {}; - -/** - * @param {(boolean|string)=} arg1 - * @param {boolean=} arg2 - * @param {boolean=} jumpToEnd - * @return {!jQuery} - */ -jQuery.prototype.stop = function(arg1, arg2, jumpToEnd) {}; - -/** - * @param {(function(!jQuery.event=)|Object.<string, *>)=} arg1 - * @param {function(!jQuery.event=)=} handler - * @return {!jQuery} - */ -jQuery.prototype.submit = function(arg1, handler) {}; - -/** @type {Object.<string, *>} - * @deprecated Please try to use feature detection instead. - */ -jQuery.support; - -/** @type {Object.<string, *>} - * @deprecated Please try to use feature detection instead. - */ -$.support; - -/** - * @deprecated Please try to use feature detection instead. - * @type {boolean} - */ -jQuery.support.boxModel; - -/** - * @deprecated Please try to use feature detection instead. - * @type {boolean} - */ -$.support.boxModel; - -/** @type {boolean} */ -jQuery.support.changeBubbles; - -/** @type {boolean} */ -$.support.changeBubbles; - -/** @type {boolean} */ -jQuery.support.cors; - -/** @type {boolean} */ -$.support.cors; - -/** @type {boolean} */ -jQuery.support.cssFloat; - -/** @type {boolean} */ -$.support.cssFloat; - -/** @type {boolean} */ -jQuery.support.hrefNormalized; - -/** @type {boolean} */ -$.support.hrefNormalized; - -/** @type {boolean} */ -jQuery.support.htmlSerialize; - -/** @type {boolean} */ -$.support.htmlSerialize; - -/** @type {boolean} */ -jQuery.support.leadingWhitespace; - -/** @type {boolean} */ -$.support.leadingWhitespace; - -/** @type {boolean} */ -jQuery.support.noCloneEvent; - -/** @type {boolean} */ -$.support.noCloneEvent; - -/** @type {boolean} */ -jQuery.support.opacity; - -/** @type {boolean} */ -$.support.opacity; - -/** @type {boolean} */ -jQuery.support.style; - -/** @type {boolean} */ -$.support.style; - -/** @type {boolean} */ -jQuery.support.submitBubbles; - -/** @type {boolean} */ -$.support.submitBubbles; - -/** @type {boolean} */ -jQuery.support.tbody; - -/** @type {boolean} */ -$.support.tbody; - -/** - * @param {(string|number|boolean|function(number,string))=} arg1 - * @return {(string|!jQuery)} - */ -jQuery.prototype.text = function(arg1) {}; - -/** - * @return {Array.<Element>} - * @nosideeffects - */ -jQuery.prototype.toArray = function() {}; - -/** - * Refers to the method from the Effects category. There used to be a toggle - * method on the Events category which was removed starting version 1.9. - * @param {(number|string|Object.<string,*>|boolean)=} arg1 - * @param {(function()|string)=} arg2 - * @param {function()=} arg3 - * @return {!jQuery} - */ -jQuery.prototype.toggle = function(arg1, arg2, arg3) {}; - -/** - * @param {(string|boolean|function(number,string,boolean))=} arg1 - * @param {boolean=} flag - * @return {!jQuery} - */ -jQuery.prototype.toggleClass = function(arg1, flag) {}; - -/** - * @param {(string|jQuery.event)} arg1 - * @param {...*} var_args - * @return {!jQuery} - */ -jQuery.prototype.trigger = function(arg1, var_args) {}; - -/** - * @param {string|jQuery.event} eventType - * @param {Array.<*>=} extraParameters - * @return {*} - */ -jQuery.prototype.triggerHandler = function(eventType, extraParameters) {}; - -/** - * @param {string} str - * @return {string} - * @nosideeffects - */ -jQuery.trim = function(str) {}; - -/** - * @param {string} str - * @return {string} - * @nosideeffects - */ -$.trim = function(str) {}; - -/** - * @param {*} obj - * @return {string} - * @nosideeffects - */ -jQuery.type = function(obj) {}; - -/** - * @param {*} obj - * @return {string} - * @nosideeffects - */ -$.type = function(obj) {}; - -/** - * @param {(string|function(!jQuery.event=)|jQuery.event)=} arg1 - * @param {(function(!jQuery.event=)|boolean)=} arg2 - * @return {!jQuery} - */ -jQuery.prototype.unbind = function(arg1, arg2) {}; - -/** - * @param {string=} arg1 - * @param {(string|Object.<string,*>)=} arg2 - * @param {function(!jQuery.event=)=} handler - * @return {!jQuery} - */ -jQuery.prototype.undelegate = function(arg1, arg2, handler) {}; - -/** - * @param {Array.<Element>} arr - * @return {Array.<Element>} - */ -jQuery.unique = function(arr) {}; - -/** - * @param {Array.<Element>} arr - * @return {Array.<Element>} - */ -$.unique = function(arr) {}; - -/** - * @deprecated Please use .on( "unload", handler ) instead. - * @param {(function(!jQuery.event=)|Object.<string, *>)} arg1 - * @param {function(!jQuery.event=)=} handler - * @return {!jQuery} - */ -jQuery.prototype.unload = function(arg1, handler) {}; - -/** @return {!jQuery} */ -jQuery.prototype.unwrap = function() {}; - -/** - * @param {(string|Array.<string>|function(number,*))=} arg1 - * @return {(string|number|Array.<string>|!jQuery)} - */ -jQuery.prototype.val = function(arg1) {}; - -/** - * Note: The official documentation (https://api.jquery.com/jQuery.when/) says - * jQuery.when accepts deferreds, but it actually accepts any type, e.g.: - * - * jQuery.when(jQuery.ready, jQuery.ajax(''), jQuery('#my-element'), 1) - * - * If an argument is not an "observable" (a promise-like object) it is wrapped - * into a promise. - * @param {*} deferred - * @param {...*} deferreds - * @return {jQuery.Promise} - */ -jQuery.when = function(deferred, deferreds) {}; - -/** - * Note: See jQuery.when(). - * @param {*} deferred - * @param {...*} deferreds - * @return {jQuery.Promise} - */ -$.when = function(deferred, deferreds) {}; - -/** - * @param {(string|number|function(number,number))=} arg1 - * @return {(number|!jQuery)} - */ -jQuery.prototype.width = function(arg1) {}; - -/** - * @param {(string|jQuerySelector|Element|jQuery|function(number))} arg1 - * @return {!jQuery} - */ -jQuery.prototype.wrap = function(arg1) {}; - -/** - * @param {(string|jQuerySelector|Element|jQuery)} wrappingElement - * @return {!jQuery} - */ -jQuery.prototype.wrapAll = function(wrappingElement) {}; - -/** - * @param {(string|jQuerySelector|Element|jQuery|function(number))} arg1 - * @return {!jQuery} - */ -jQuery.prototype.wrapInner = function(arg1) {}; - -/** - * @param {(string|number|function(number,number))=} arg1 - * @return {(number|!jQuery)} - */ -jQuery.prototype.tooltip = function(arg1) {}; \ No newline at end of file diff --git a/src/closure/conf/externs/jspdf.js b/src/closure/conf/externs/jspdf.js deleted file mode 100755 index 2b5ba6f0..00000000 --- a/src/closure/conf/externs/jspdf.js +++ /dev/null @@ -1,51 +0,0 @@ -/** - * - * @param {type} arg1 - * @returns {jsPDF} - */ -function jsPDF (arg1) {}; - -/** - * - * @param {type} arg1 - * @param {type} arg2 - * @param {type} arg3 - * @param {type} arg4 - * @returns {undefined} - */ -jsPDF.prototype.fromHTML = function (arg1, arg2, arg3, arg4) {}; - -/** - * - * @param {type} arg1 - * @param {type} arg2 - * @param {type} arg3 - * @param {type} arg4 - * @param {type} arg5 - * @param {type} arg6 - * @returns {undefined} - */ -jsPDF.prototype.addImage = function (arg1, arg2, arg3, arg4, arg5, arg6) {}; - -/** - * - * @param {type} arg1 - * @returns {undefined} - */ -jsPDF.prototype.save = function (arg1) {}; - -/** - * - * @param {type} arg1 - * @returns {undefined} - */ -jsPDF.prototype.setPage = function (arg1) {}; - -/** - * - * @param {type} arg1 - * @param {type} arg2 - * @returns {undefined} - */ -jsPDF.prototype.addHTML = function (arg1, arg2) {}; - diff --git a/src/closure/conf/externs/vmap.js b/src/closure/conf/externs/vmap.js deleted file mode 100755 index b799165a..00000000 --- a/src/closure/conf/externs/vmap.js +++ /dev/null @@ -1,75 +0,0 @@ -/** - * @author: Armand Bahi - * @Description: Fichier contenant les externs: fonctions à ne pas renommer durant la compilation - * @externs - */ - -/** - * Function for initialise the bootstrap toggle switch checkbox plugin - * @constructor - * @param {object} arg1 - */ -function bootstrapToggle(arg1) {} - -/** - * Function for initialise the bootstrap colorpicker plugin - * @constructor - * @param {object} arg1 - */ -function colorpicker(arg1) {} - -/** - * Function for initialise the bootstrap table plugin - * @constructor - * @param {object} arg1 - */ -function bootstrapTable(arg1) {} - -/** - * @param {object} arg1 - * @return {!jQuery} - */ -function sortable(arg1) {} - -/** - * - * @param {string} key - * @returns {undefined} - */ -ol.Object.prototype.get = function (key) {} - -/** - * Get the collection of layers associated with this map. - * @return {!ol.Collection.<ol.layer.Base>} Layers. - * @api stable - */ -ol.Map.prototype.getLayers = function () {} - -/** - * Return the visibility of the layer (`true` or `false`). - * @return {boolean} The visibility of the layer. - * @observable - * @api stable - */ -ol.layer.Base.prototype.getVisible = function () {} - -/** - * Set the visibility of the layer (`true` or `false`). - * @param {boolean} visible The visibility of the layer. - * @observable - * @api stable - */ -ol.layer.Base.prototype.setVisible = function (visible) {} - -/** - * The tile related to the event. - * @type {ol.Tile} - * @api - */ -ol.source.TileEvent.tile - -/** - * @type {string} - * @see http://www.w3.org/TR/pointerevents/#the-touch-action-css-property - */ -CSSProperties.prototype.touchAction; \ No newline at end of file diff --git a/src/module_extraction/README.md b/src/module_extraction/README.md deleted file mode 100644 index 2bf5eb52..00000000 --- a/src/module_extraction/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# module_extraction - -Module extraction for Vitis \ No newline at end of file diff --git a/src/module_extraction/_install/dependency.xml b/src/module_extraction/_install/dependency.xml deleted file mode 100755 index f8953c39..00000000 --- a/src/module_extraction/_install/dependency.xml +++ /dev/null @@ -1,19 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<installer> - <schema> - <name>s_extraction</name> - <dependenciesCollection> - <dependency> - <nature>schema</nature> - <name>s_vitis</name> - <object>vitis</object> - </dependency> - </dependenciesCollection> - </schema> - <dependenciesCollection> - <dependency> - <nature>framework</nature> - <name>vitis</name> - </dependency> - </dependenciesCollection> -</installer> diff --git a/src/module_extraction/_install/fileToDelete.txt b/src/module_extraction/_install/fileToDelete.txt deleted file mode 100755 index 0f43fe95..00000000 --- a/src/module_extraction/_install/fileToDelete.txt +++ /dev/null @@ -1,6 +0,0 @@ -javascript/deps.js -javascript/script_module.js -javascript/statistics.js -javascript/widget/script_widget.js -javascript/widget/widgetMod.js -javascript/widget/deps.js \ No newline at end of file diff --git a/src/module_extraction/_install/folderToDelete.txt b/src/module_extraction/_install/folderToDelete.txt deleted file mode 100755 index b92d8976..00000000 --- a/src/module_extraction/_install/folderToDelete.txt +++ /dev/null @@ -1,2 +0,0 @@ -javascript/controllers -javascript/directives \ No newline at end of file diff --git a/src/module_extraction/module/forms/configuration/configuration_vitis_configuration_extractionConfig.json b/src/module_extraction/module/forms/configuration/configuration_vitis_configuration_extractionConfig.json deleted file mode 100644 index f25d20c9..00000000 --- a/src/module_extraction/module/forms/configuration/configuration_vitis_configuration_extractionConfig.json +++ /dev/null @@ -1 +0,0 @@ -{"insert":{"rows":[],"tabs":{"position":"top","list":[{"label":"Tab 0","elements":[]}]}},"search":{"rows":[]},"display":{"rows":[]},"update":{"name":"configuration_extraction_module-form","title":"","input_size":"xxs","nb_cols":7,"javascript":false,"rows":[{"fields":[{"name":"color_mutualized","type":"text","label":"CONFIGURATION_VITIS_CONFIGURATION_EXTRACTIONCONFIG_FORM_COLOR_MUTUALIZED","nb_cols":12,"id":"color_mutualized","default_value":"green"}]},{"fields":[{"name":"color_no_mutualized","type":"text","label":"CONFIGURATION_VITIS_CONFIGURATION_EXTRACTIONCONFIG_FORM_COLOR_NO_MUTUALIZED","nb_cols":12,"id":"color_no_mutualized","default_value":"red"}]},{"fields":[{"name":"sig","type":"text","label":"CONFIGURATION_VITIS_CONFIGURATION_EXTRACTIONCONFIG_FORM_SIG","nb_cols":12,"id":"sig","default_value":"*.shp|*.*"}]},{"fields":[{"name":"dao","type":"text","label":"CONFIGURATION_VITIS_CONFIGURATION_EXTRACTIONCONFIG_FORM_DAO","nb_cols":12,"id":"dao","default_value":"*.dao"}]},{"fields":[{"type":"button","name":"form_submit","class":"btn-ungroup btn-group-sm","nb_cols":12,"buttons":[{"type":"submit","name":"form_submit","label":"FORM_UPDATE","class":"btn-primary"}],"id":"form_submit_6_1"}]}],"event":"updateProperties('extraction')","afterEvent":"editSectionForm()","tabs":{"position":"top","list":[{"label":"Tab 0","elements":["color_mutualized","color_no_mutualized","sig","dao","form_submit"]}]}},"datasources":{}} \ No newline at end of file diff --git a/src/module_extraction/module/forms/extraction/extraction_extraction_extraction.js b/src/module_extraction/module/forms/extraction/extraction_extraction_extraction.js deleted file mode 100755 index 2589e360..00000000 --- a/src/module_extraction/module/forms/extraction/extraction_extraction_extraction.js +++ /dev/null @@ -1,500 +0,0 @@ -/* global angular, goog, vitisApp, bootbox */ - -//bloque les delete du destructeur à éviter -//'use strict'; - -console.info("Generateur_wab_generator_1 loaded --> your functions are ready"); -/*********************************************************************************** - Signaletique_Recap_0 Javascript - ***********************************************************************************/ - -var oFormRequired = { - "sUrl": "", - "scope_": {}, - "toDestructor": [] -}; -/** - * constructor_form - * Fonction appelé à l'initialisation du formulaire si dans la structure json javascript vaut "true" - * @param {type} scope - * @param {type} s_url - * @returns {undefined} - */ -var constructor_form = function (scope, s_url) { - ////////////////////////////////////////////////////////// - //Ne pas toucher - console.log("Constructor"); - - oFormRequired.sUrl = s_url; - oFormRequired.scope_ = scope; - //console.log(scope); - ////////////////////////////////////////////////////////// - // Permet de recharge le javascript d'une section à une autre - var envSrvc = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(["envSrvc"]); - var formSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["formSrvc"]); - // - var oElemDefCt = formSrvc["getFormElementDefinition"]("id_conseil", envSrvc["sFormDefinitionName"], envSrvc["oFormDefinition"]); - var oElemDefCom = formSrvc["getFormElementDefinition"]("id_com", envSrvc["sFormDefinitionName"], envSrvc["oFormDefinition"]); - var oElemDefExtent = formSrvc["getFormElementDefinition"]("extent", envSrvc["sFormDefinitionName"], envSrvc["oFormDefinition"]); - - - //Comportements différents selon le mode (insert, update, search, display) (GTF : accés uniquement au mode insert) - //if (oFormRequired.scope_.sFormDefinitionName.indexOf("insert") > -1 || (oFormRequired.scope_.sFormDefinitionName.indexOf("update") > -1)) { - oFormRequired.toDestructor.push(oFormRequired.scope_.$watch("oFormValues." + oFormRequired.scope_.sFormDefinitionName + ".extent_method.selectedOption", function (value) { - //console.log(value); - if (value) { - if (value["value"]) { - //oFormRequired.scope_.oFormValues[oFormRequired.scope_.sFormDefinitionName]["name"] = value["value"] + "_"; - if (value["value"] == "id_conseil") - { - oElemDefCt["visible"] = true; - oElemDefCom["visible"] = false; - oElemDefExtent["visible"] = false; - } - else if (value["value"] == "id_com") - { - oElemDefCt["visible"] = false; - oElemDefCom["visible"] = true; - oElemDefExtent["visible"] = false; - } - else - { - oElemDefCt["visible"] = false; - oElemDefCom["visible"] = false; - oElemDefExtent["visible"] = true; - } - } - else - { - oElemDefCt["visible"] = false; - oElemDefCom["visible"] = false; - } - - } - })); - //Evènement lorsqu'on choisie un CT - oFormRequired.toDestructor.push(oFormRequired.scope_.$watch("oFormValues." + oFormRequired.scope_.sFormDefinitionName + ".id_conseil.selectedOption", function (value) { - if (value && typeof(oFormRequired) !== "undefined") - { - getLayerTree(oFormRequired.scope_.oFormValues[oFormRequired.scope_.sFormDefinitionName]).then( function(aNodes){ - var oTreeview = $("#layers_9_1_treeview")["treeview"](true); - $("layers_9_1_treeview")["treeview"](true); - //On recréer un arbre - oTreeview["init"]({"data": aNodes, - "onNodeChecked": oTreeview.options.onNodeChecked, - "onNodeUnchecked": oTreeview.options.onNodeUnchecked, - "showBorder": false, - "levels": 0, - "showCheckbox": true, - "expandIcon": "glyphicon glyphicon-folder-close", - "collapseIcon": "glyphicon glyphicon-folder-open", - "highlightSelected": false, - "multiSelect": true}); - scope.$applyAsync(); - }); - - getStatsTree(oFormRequired.scope_.oFormValues[oFormRequired.scope_.sFormDefinitionName]).then( function(aNodes){ - var oTreeview = $("#statistique_9_1_treeview")["treeview"](true); - $("statistique_9_1_treeview")["treeview"](true); - //On recréer un arbre - oTreeview["init"]({"data": aNodes, - "onNodeChecked": oTreeview.options.onNodeChecked, - "onNodeUnchecked": oTreeview.options.onNodeUnchecked, - "showBorder": false, - "levels": 0, - "showCheckbox": true, - "expandIcon": "glyphicon glyphicon-folder-close", - "collapseIcon": "glyphicon glyphicon-folder-open", - "highlightSelected": false, - "multiSelect": true}); - scope.$applyAsync(); - }); - } - - })); - //Evènement lorsqu'on choisie une commune - oFormRequired.toDestructor.push(oFormRequired.scope_.$watch("oFormValues." + oFormRequired.scope_.sFormDefinitionName + ".id_com.selectedOption", function (value) { - if (value && typeof(oFormRequired) !== "undefined") - { - getLayerTree(oFormRequired.scope_.oFormValues[oFormRequired.scope_.sFormDefinitionName]).then( function(aNodes){ - var oTreeview = $("#layers_9_1_treeview")["treeview"](true); - $("layers_9_1_treeview")["treeview"]({"data":aNodes}); - //On recréer un arbre - oTreeview["init"]({"data": aNodes, - "onNodeChecked": oTreeview.options.onNodeChecked, - "onNodeUnchecked": oTreeview.options.onNodeUnchecked, - "showBorder": false, - "levels": 0, - "showCheckbox": true, - "expandIcon": "glyphicon glyphicon-folder-close", - "collapseIcon": "glyphicon glyphicon-folder-open", - "highlightSelected": false, - "multiSelect": true}); - scope.$applyAsync(); - - }); - - getStatsTree(oFormRequired.scope_.oFormValues[oFormRequired.scope_.sFormDefinitionName]).then( function(aNodes){ - var oTreeview = $("#statistique_9_1_treeview")["treeview"](true); - $("statistique_9_1_treeview")["treeview"](true); - //On recréer un arbre - oTreeview["init"]({"data": aNodes, - "onNodeChecked": oTreeview.options.onNodeChecked, - "onNodeUnchecked": oTreeview.options.onNodeUnchecked, - "showBorder": false, - "levels": 0, - "showCheckbox": true, - "expandIcon": "glyphicon glyphicon-folder-close", - "collapseIcon": "glyphicon glyphicon-folder-open", - "highlightSelected": false, - "multiSelect": true}); - scope.$applyAsync(); - }); - } - })); - //Evenement lorsqu'on saisie un nouveau polygone - oFormRequired.toDestructor.push(oFormRequired.scope_.$watch("oFormValues." + oFormRequired.scope_.sFormDefinitionName + ".extent", function (value) { - if (value && typeof(oFormRequired) !== "undefined") - { - //getLayerTree(value, "geom"); - getLayerTree(oFormRequired.scope_.oFormValues[oFormRequired.scope_.sFormDefinitionName]).then( function(aNodes){ - //console.log(aNodes); - //layers_9_1_treeview - var oTreeview = $("#layers_9_1_treeview")["treeview"](true); - //$("layers_9_1_treeview")["treeview"]({"data":aNodes}); - //On recréer un arbre - oTreeview["init"]({"data": aNodes, - "onNodeChecked": oTreeview.options.onNodeChecked, - "onNodeUnchecked": oTreeview.options.onNodeUnchecked, - "showBorder": false, - "levels": 0, - "showCheckbox": true, - "expandIcon": "glyphicon glyphicon-folder-close", - "collapseIcon": "glyphicon glyphicon-folder-open", - "highlightSelected": false, - "multiSelect": true}); - scope.$applyAsync(); - - }); - - getStatsTree(oFormRequired.scope_.oFormValues[oFormRequired.scope_.sFormDefinitionName]).then( function(aNodes){ - var oTreeview = $("#statistique_9_1_treeview")["treeview"](true); - $("statistique_9_1_treeview")["treeview"](true); - //On recréer un arbre - oTreeview["init"]({"data": aNodes, - "onNodeChecked": oTreeview.options.onNodeChecked, - "onNodeUnchecked": oTreeview.options.onNodeUnchecked, - "showBorder": false, - "levels": 0, - "showCheckbox": true, - "expandIcon": "glyphicon glyphicon-folder-close", - "collapseIcon": "glyphicon glyphicon-folder-open", - "highlightSelected": false, - "multiSelect": true}); - scope.$applyAsync(); - }); - - - } - })); -}; - -/** - * Fonction appelée lorsqu'on choisit la CT ou la commune ou si on saisit un polygone dans le formulaire - * @return undefined - */ -function getLayerTree(oFormValues) { - var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]); - var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]); - var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]); - var $q = angular.element(vitisApp.appHtmlFormDrtv).injector().get(["$q"]); - // - $log.info("getLayerTree"); - // Charge la liste des couches. - - var deferred = $q.defer(); - var promise = deferred.promise; - if (oFormValues.extent_method.selectedOption["value"] != "") { - ajaxRequest({ - "method": "GET", - "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/extraction/extractions/Layers", - "params": getUrlParams(), - "scope": angular.element("form[name='" + envSrvc["oFormDefinition"][envSrvc["sFormDefinitionName"]]["name"] + "']").scope(), - "success": function(response) { - if (response["data"]["status"] == 1) { - console.log(response["data"]); - var scope = angular.element("form[name='" + envSrvc["oFormDefinition"][envSrvc["sFormDefinitionName"]]["name"] + "']").scope(); - // Création de l'arborescence des couches pour le champ "treeview". - var aLayers = response["data"]["layers"]; - var aNodes = []; - var stats = true; - - if (typeof(aLayers) != "undefined") { - var aCategories = Object.keys(aLayers); - for (var i in aCategories) { - var aNode = {"text": aCategories[i], "nodes": []} - for (var j in aLayers[aCategories[i]]) { - if (aLayers[aCategories[i]][j]["statistique"] !== true) - { - stats = false; - aNode["nodes"].push({"text": aLayers[aCategories[i]][j]["text"], "value": aLayers[aCategories[i]][j]["value"], "mutualized": aLayers[aCategories[i]][j]["mutualized"]}); - } - } - if (stats !== true) - { - aNodes.push(aNode); - } - stats = true; - } - } - - this["setTreeviewNodesState"] = function (aNodes) { - for (var i in aNodes) { - if (typeof (aNodes[i]["nodes"]) != "undefined") - this["setTreeviewNodesState"](aNodes[i]["nodes"]); - else { - if (typeof (aNodes[i]["state"]) == "undefined") - { - aNodes[i]["state"] = {}; - } - var aCheckedItem = []; - var sValue = scope["oFormValues"][envSrvc["sFormDefinitionName"]]["layers"]; - if (typeof (sValue) == "string" && sValue != "") - { - aCheckedItem = sValue.split("|"); - } - if (aCheckedItem.indexOf(String(aNodes[i]["value"])) != -1) - { - aNodes[i]["state"]["checked"] = true; - } - //Si la couche est mutualisée - if (aNodes[i]['mutualized'] == true) - { - console.log(propertiesSrvc["color_mutualized"]); - aNodes[i]["color"] = propertiesSrvc["color_mutualized"]; - } else if (aNodes[i]['mutualized'] == false) { - aNodes[i]["color"] = propertiesSrvc["color_no_mutualized"]; - } - } - } - } - this["setTreeviewNodesState"](aNodes); - deferred.resolve(aNodes); - } else { - // - var oOptions = { - "className": "modal-danger" - }; - // Message d'erreur ? - if (response["data"]["errorMessage"] != null) - oOptions["message"] = response["data"]["errorMessage"]; - scope.$root["modalWindow"]("alert", "REQUEST_ERROR", oOptions); - } - } - }); - } - return promise; -} - -/** - * Fonction appelée lorsqu'on choisit la CT ou la commune ou si on saisit un polygone dans le formulaire - * @return undefined - */ -function getStatsTree(oFormValues) { - var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]); - var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]); - var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]); - var $q = angular.element(vitisApp.appHtmlFormDrtv).injector().get(["$q"]); - // - $log.info("getLayerTree"); - // Charge la liste des couches. - - var deferred = $q.defer(); - var promise = deferred.promise; - if (oFormValues.extent_method.selectedOption["value"] != "") { - ajaxRequest({ - "method": "GET", - "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/extraction/extractions/Layers", - "params": getUrlParams(), - "scope": angular.element("form[name='" + envSrvc["oFormDefinition"][envSrvc["sFormDefinitionName"]]["name"] + "']").scope(), - "success": function(response) { - if (response["data"]["status"] == 1) { - console.log(response["data"]); - var scope = angular.element("form[name='" + envSrvc["oFormDefinition"][envSrvc["sFormDefinitionName"]]["name"] + "']").scope(); - // Création de l'arborescence des statistiques pour le champ "treeview". - var aLayers = response["data"]["layers"]; - var aNodes = []; - var stats = false; - - if (typeof(aLayers) != "undefined") { - var aCategories = Object.keys(aLayers); - for (var i in aCategories) { - var aNode = {"text": aCategories[i], "nodes": []} - for (var j in aLayers[aCategories[i]]) { - if (aLayers[aCategories[i]][j]["statistique"] === true) - { - stats = true; - aNode["nodes"].push({"text": aLayers[aCategories[i]][j]["text"], "value": aLayers[aCategories[i]][j]["value"], "mutualized": aLayers[aCategories[i]][j]["mutualized"]}); - } - } - if (stats === true) - { - aNodes.push(aNode); - } - stats = false; - } - } - - this["setTreeviewNodesState"] = function (aNodes) { - for (var i in aNodes) { - if (typeof (aNodes[i]["nodes"]) != "undefined") - this["setTreeviewNodesState"](aNodes[i]["nodes"]); - else { - if (typeof (aNodes[i]["state"]) == "undefined") - { - aNodes[i]["state"] = {}; - } - var aCheckedItem = []; - var sValue = scope["oFormValues"][envSrvc["sFormDefinitionName"]]["statistique"]; - if (typeof (sValue) == "string" && sValue != "") - { - aCheckedItem = sValue.split("|"); - } - if (aCheckedItem.indexOf(String(aNodes[i]["value"])) != -1) - { - aNodes[i]["state"]["checked"] = true; - } - //Si la couche est mutualisée - if (aNodes[i]['mutualized'] == true) - { - aNodes[i]["color"] = propertiesSrvc["color_mutualized"]; - } else if (aNodes[i]['mutualized'] == false) { - aNodes[i]["color"] = propertiesSrvc["color_no_mutualized"]; - } - } - } - } - this["setTreeviewNodesState"](aNodes); - deferred.resolve(aNodes); - } else { - // - var oOptions = { - "className": "modal-danger" - }; - // Message d'erreur ? - if (response["data"]["errorMessage"] != null) - oOptions["message"] = response["data"]["errorMessage"]; - scope.$root["modalWindow"]("alert", "REQUEST_ERROR", oOptions); - } - } - }); - } - return promise; -} - -/** - * Fonction qui renvoie les paramètres pour effectuer la requête AJAX - * @returns {getUrlParams.oUrlParams} - */ -function getUrlParams() { - var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]); - var sTable = ""; - var sCompare_operator = ""; - var sColumn = ""; - var aValue = []; - var aValeur = []; - - if (oFormValues.extent_method.selectedOption["value"] == "id_conseil") - { - sTable = "ct"; - sColumn = "ct_id"; - sCompare_operator = "IN"; - aValue = oFormValues.id_conseil.selectedOption; - } - else if (oFormValues.extent_method.selectedOption["value"] == "id_com") - { - sTable = "commune"; - sColumn = "commune_id"; - sCompare_operator = "IN"; - aValue = oFormValues.id_com.selectedOption; - } - - if (oFormValues.extent_method.selectedOption["value"] == "extent") - { - sTable = "ct"; - sColumn = "geom"; - sCompare_operator = "INTERSECT"; - aValeur = "SRID=2154;"+ oFormValues.extent; - //console.log('Compare_operator ' + compare_operator + ' valeur ' + valeur ); - } - else - { - if(aValue) - { - for (var i = 0; i < aValue.length; i++) - { - //Si c'est une sélection vide - if(aValue[i]["value"] == "") - { - //On remplace la valeur vide par un id négatif - aValeur[i] = "-1"; - } - else if (oFormValues.extent_method.selectedOption["value"] == "id_conseil") - { - aValeur[i] = aValue[i]["value"]; - } - else if (oFormValues.extent_method.selectedOption["value"] == "id_com") - { - aValeur[i] = aValue[i]["value"]; - } - else if (oFormValues.extent_method.selectedOption["value"] == "id_conseil") - { - aValeur[i] = aValue[i]["value"]; - } - } - } - else - { - aValeur[0] = "-1"; - } - } - - var oUrlParams = { - "schema": propertiesSrvc["schema_extraction"], - "table": sTable, - "distinct": true, - "filter": { - "column": sColumn, - "compare_operator": sCompare_operator, - "value": aValeur - } - } - return oUrlParams; -} - -/** - * destructor_form - * Fonction appelé quand on quitte le formulaire nettoie toute les fonctions pour les rendres inutilisable en dehors du formulaire - * @returns {undefined} - */ -var destructor_form = function () { - console.log("Destructor"); - - for (var i = 0; i < oFormRequired.toDestructor.length; i++) { - oFormRequired.toDestructor[i] = undefined; - delete oFormRequired.toDestructor[i]; - } - - //supprimer la balise script du js pour pouvoir le recharger si on reviens sur le formulaire plus tard - angular.element('[src="' + oFormRequired.sUrl + '?version=' + oFormRequired.scope_["oProperties"]["build"] + '"]').remove(); - - oFormRequired = undefined; - delete oFormRequired; - - constructor_form = undefined; - delete constructor_form; - destructor_form = undefined; - delete destructor_form; -}; - -/**********************************************************************************/ \ No newline at end of file diff --git a/src/module_extraction/module/forms/extraction/extraction_extraction_extraction.json b/src/module_extraction/module/forms/extraction/extraction_extraction_extraction.json deleted file mode 100755 index 7cd9f292..00000000 --- a/src/module_extraction/module/forms/extraction/extraction_extraction_extraction.json +++ /dev/null @@ -1,4838 +0,0 @@ -{ - "display": { - "name": "extraction_extraction_extraction-form", - "title": "EXTRACTION_EXTRACTION_EXTRACTION_TITLE", - "input_size": "xxs", - "initEvent": "initExtractionExtractionForm()", - "nb_cols": 12, - "javascript": true, - "rows": [ - { - "fields": [ - { - "type": "label", - "name": "bo_id", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_BO_ID", - "required": false, - "nb_cols": 12, - "id": "bo_id_1_1" - } - ] - }, - { - "fields": [ - { - "type": "checkbox", - "name": "preco_tech", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_TECHNIQUE", - "nb_cols": 4, - "id": "Element_6_2_1" - }, - { - "type": "checkbox", - "name": "chart_graph", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_CARTOGRAPHIQUE", - "nb_cols": 4, - "id": "Element_6_2_2" - }, - { - "type": "checkbox", - "name": "metadonnees", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ISOGEO", - "nb_cols": 4, - "id": "Element_6_2_3" - } - ] - }, - { - "fields": [ - { - "type": "label", - "name": "status", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_STATUS", - "required": false, - "nb_cols": 4, - "id": "status_2_1" - }, - { - "type": "label", - "name": "creation_date", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_CREATION_DATE", - "required": false, - "nb_cols": 6, - "id": "creation_date_4_1" - } - ] - }, - { - "fields": [ - { - "type": "label", - "name": "email", - "label": "FORM_EMAIL_USERS_USER", - "required": false, - "nb_cols": 4, - "id": "email_3_1" - }, - { - "type": "label", - "name": "company", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_COMPANY", - "required": false, - "nb_cols": 4, - "id": "company_8_1" - }, - { - "type": "label", - "name": "requestor", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_REQUESTOR", - "required": false, - "nb_cols": 4, - "id": "requestor_5_1" - } - ] - }, - { - "fields": [ - { - "type": "linkurl", - "name": "ae", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_AE", - "required": false, - "nb_cols": 12, - "id": "ae_6_1" - } - ] - }, - { - "fields": [ - { - "type": "label", - "name": "layers", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_LAYERS", - "required": false, - "nb_cols": 12, - "id": "layers_9_1" - } - ] - }, - { - "fields": [ - { - "type": "label", - "name": "coordsys_id", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_COORDSYS_ID", - "required": false, - "nb_cols": 4, - "id": "coordsys_id_11_1" - }, - { - "type": "label", - "name": "vector_format_id", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_VECTOR_FORMAT_ID", - "required": false, - "nb_cols": 4, - "id": "vector_format_id_10_1" - }, - { - "type": "label", - "name": "raster_format_id", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_RASTER_FORMAT_ID", - "required": false, - "nb_cols": 4, - "id": "raster_format_id_14_1" - } - ] - }, - { - "fields": [ - { - "type": "label", - "name": "extent_method", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_EXTENT_METHOD", - "required": false, - "nb_cols": 12, - "id": "extent_method_15_1" - } - ] - }, - { - "fields": [ - { - "type": "label", - "name": "id_com", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ID_COM", - "required": false, - "nb_cols": 12, - "id": "id_com_22_1" - } - ] - }, - { - "fields": [ - { - "type": "label", - "name": "id_conseil", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ID_CONSEIL", - "required": false, - "nb_cols": 12, - "id": "id_conseil_23_1" - } - ] - }, - { - "fields": [ - { - "type": "map_vmap", - "name": "extent", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_EXTENT", - "required": false, - "nb_cols": 12, - "id": "extent_7_1", - "style": { - "height": "250px" - }, - "map_options": { - "proj": "EPSG:2154", - "type": "vmap", - "center": { - "extent": [ - 4510838297753.592, - 313452152357706.75, - 4510842604414.408, - 313452153911336.25 - ], - "coord": [ - 4510840451084, - 313452153134521.5 - ], - "scale": 23468294 - }, - "controls": { - "MP": true, - "ZO": true, - "SL": true, - "CP": true - }, - "layers": [], - "interactions": { - "multi_geometry": false, - "full_screen": true, - "RA": true, - "RO": true, - "ED": true, - "DP": false, - "DL": false, - "DPol": true, - "SE": true - }, - "draw_color": "rgba(54,184,255,0.6)", - "contour_color": "rgba(0,0,0,0.4)", - "contour_size": 2, - "circle_radius": 6, - "features": [], - "coord_accuracy": 8, - "tree": { - "name": "Tree", - "children": [ - { - "view": { - "center": [ - "902168", - "6269043" - ], - "zoom": 7, - "maxZoom": 28, - "minZoom": 0, - "projection": "EPSG:2154", - "extent": [ - 4510835482577.04, - 313452150322452.2, - 4510845419590.96, - 313452155946590.8 - ] - } - }, - { - "name": "extraction", - "children": [ - { - "name": "REF_ortho2011", - "layerType": "tilewms", - "url": "http://SCPA441.cpa.fr:8399/arcgis/services/REF_ortho2011/MapServer/WMSServer", - "index": -1, - "visible": true, - "opacity": 1, - "is_dynamic": false, - "is_filtered": false, - "version": "1.3.0", - "params": { - "LAYERS": "0", - "VERSION": "1.3.0", - "STYLES": "" - }, - "bo_queryable": false, - "layer_id": 1, - "select": true - }, - { - "name": "REF_CPA_LIMITE_COMMUNE", - "layerType": "tilewms", - "url": "http://SCPA441.cpa.fr:8399/arcgis/services/REF_CPA_LIMITE_COMMUNE/MapServer/WMSServer", - "index": -1, - "visible": true, - "opacity": 1, - "is_dynamic": false, - "is_filtered": false, - "version": "1.3.0", - "params": { - "LAYERS": "0,1", - "VERSION": "1.3.0", - "STYLES": "" - }, - "bo_queryable": false, - "layer_id": 2, - "select": true - } - ], - "visible": true - } - ] - } - } - } - ] - }, - { - "fields": [ - { - "type": "label", - "name": "history", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_HISTORY", - "required": false, - "nb_cols": 12, - "id": "history_3_1" - } - ] - }, - { - "fields": [ - { - "type": "label", - "name": "note", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_NOTE", - "required": false, - "nb_cols": 12, - "id": "note_12_1" - } - ] - }, - { - "fields": [ - { - "type": "label", - "name": "note_line", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_NOTE_LINE", - "required": false, - "nb_cols": 12, - "id": "note_line_13_1" - } - ] - }, - { - "fields": [ - { - "type": "label", - "options": { - "choices": [ - { - "label": "oui", - "value": true - }, - { - "label": "non", - "value": false - } - ] - }, - "name": "signed", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_SIGNED", - "required": false, - "nb_cols": 3, - "id": "signed_16_1" - }, - { - "type": "label", - "options": { - "choices": [ - { - "label": "oui", - "value": true - }, - { - "label": "non", - "value": false - } - ] - }, - "name": "accepted_by_cpa", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ACCEPTED_BY_CPA", - "required": false, - "nb_cols": 3, - "id": "accepted_by_cpa_17_1" - }, - { - "type": "label", - "options": { - "choices": [ - { - "label": "oui", - "value": true - }, - { - "label": "non", - "value": false - } - ] - }, - "name": "identification_complete", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_IDENTIFICATION_COMPLETE", - "required": false, - "nb_cols": 3, - "id": "identification_complete_18_1" - }, - { - "type": "label", - "options": { - "choices": [ - { - "label": "oui", - "value": true - }, - { - "label": "non", - "value": false - } - ] - }, - "name": "definition_complete", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_DEFINITION_COMPLETE", - "required": false, - "nb_cols": 3, - "id": "definition_complete_19_1" - } - ] - }, - { - "fields": [ - { - "type": "label", - "name": "comment", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_COMMENT", - "required": false, - "nb_cols": 12, - "id": "comment_20_1" - } - ] - }, - { - "fields": [ - { - "type": "label", - "name": "priority_id", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_PRIORITY_ID", - "required": false, - "nb_cols": 12, - "id": "priority_id_21_1" - } - ] - }, - { - "fields": [ - { - "type": "hidden", - "name": "status_name", - "nb_cols": 6, - "id": "Element_0_25_1" - }, - { - "type": "hidden", - "name": "tr_status_method", - "nb_cols": 6, - "id": "Element_0_25_2" - } - ] - }, - { - "class": "wab-method-button", - "fields": [ - { - "type": "button", - "class": "btn-ungroup btn-group-sm", - "nb_cols": 1, - "name": "display_button", - "id": "display_button", - "buttons": [ - { - "type": "button", - "name": "return_list", - "label": "FORM_RETURN_LIST", - "class": "btn-primary", - "event": "setMode(\"search\")", - "disabled": false - } - ] - }, - { - "type": "button", - "name": "Element_0", - "nb_cols": 1, - "id": "Element_0_25_2", - "class": "btn-ungroup btn-group-sm", - "buttons": [ - { - "type": "button", - "name": "form_submit", - "label": "Autoriser l'extraction", - "class": "btn-primary", - "event": "setWabStatusMethod('trAutoriser')" - } - ] - }, - { - "type": "button", - "name": "Element_1", - "nb_cols": 1, - "id": "Element_1_25_3", - "class": "btn-ungroup btn-group-sm", - "buttons": [ - { - "type": "button", - "name": "form_submit", - "label": "Demander l'AE", - "class": "btn-primary", - "event": "setWabStatusMethod('trDemander')", - "disabled": false - } - ] - }, - { - "type": "button", - "name": "Element_2", - "nb_cols": 1, - "id": "Element_2_25_4", - "class": "btn-ungroup btn-group-sm", - "buttons": [ - { - "type": "button", - "name": "form_submit", - "label": "Générer l'AE", - "class": "btn-primary", - "event": "setWabStatusMethod('trGenerer')" - } - ] - }, - { - "type": "button", - "name": "Element_3", - "nb_cols": 1, - "id": "Element_3_25_5", - "class": "btn-ungroup btn-group-sm", - "buttons": [ - { - "type": "button", - "name": "form_submit", - "label": "Créer", - "class": "btn-primary", - "event": "setWabStatusMethod('trNouveau')" - } - ] - }, - { - "type": "button", - "name": "Element_4", - "nb_cols": 1, - "id": "Element_4_25_6", - "class": "btn-ungroup btn-group-sm", - "buttons": [ - { - "type": "button", - "name": "form_submit", - "label": "Refuser l'extraction", - "class": "btn-primary", - "event": "setWabStatusMethod('trRefuser')", - "disabled": false - } - ] - }, - { - "type": "button", - "name": "Element_5", - "nb_cols": 1, - "id": "Element_5_25_7", - "class": "btn-ungroup btn-group-sm", - "buttons": [ - { - "type": "button", - "name": "form_submit", - "label": "Recharger l'acte d'engagement", - "class": "btn-primary", - "event": "setWabStatusMethod('trResoumettre')" - } - ] - }, - { - "type": "button", - "name": "Element_7", - "nb_cols": 1, - "id": "Element_7_25_9", - "class": "btn-ungroup btn-group-sm", - "buttons": [ - { - "type": "button", - "name": "form_submit", - "label": "Soumettre l'AE", - "class": "btn-primary", - "event": "setWabStatusMethod('trSoumettre')" - } - ] - }, - { - "type": "button", - "name": "Element_8", - "nb_cols": 1, - "id": "Element_8_25_10", - "class": "btn-ungroup btn-group-sm", - "buttons": [ - { - "type": "button", - "name": "form_submit", - "label": "Terminer", - "class": "btn-primary", - "event": "setWabStatusMethod('trTerminer')" - } - ] - } - ] - } - ], - "wab": { - "START": { - "controleur": { - "company": "", - "layers": "", - "coordsys_id": "", - "vector_format_id": "", - "raster_format_id": "", - "extent_method": "", - "id_com": "", - "id_conseil": "", - "extent": "", - "status": "", - "history": "", - "creation_date": "", - "requestor": "", - "ae": "", - "note": "", - "note_line": "", - "signed": "", - "accepted_by_cpa": "", - "identification_complete": "", - "definition_complete": "", - "comment": "", - "priority_id": "", - "bo_id": "", - "status_name": "", - "tr_status_method": "", - "display_button": "rw", - "Element_3": "", - "Element_4": "", - "Element_5": "", - "Element_7": "", - "Element_8": "", - "preco_tech": "", - "chart_graph": "", - "metadonnees": "", - "email": "", - "Element_1": "", - "statistique": "" - }, - "demandeur": { - "email": "rw", - "company": "rw", - "layers": "rw", - "coordsys_id": "rw", - "vector_format_id": "rw", - "raster_format_id": "rw", - "extent_method": "rw", - "id_com": "rw", - "id_conseil": "rw", - "extent": "rw", - "status": "", - "history": "", - "creation_date": "", - "requestor": "", - "ae": "", - "note": "", - "note_line": "", - "signed": "", - "accepted_by_cpa": "", - "identification_complete": "", - "definition_complete": "", - "comment": "", - "priority_id": "", - "bo_id": "", - "status_name": "rw", - "tr_status_method": "rw", - "display_button": "rw", - "Element_3": "", - "Element_4": "", - "Element_5": "", - "Element_7": "", - "Element_8": "", - "preco_tech": "", - "chart_graph": "", - "metadonnees": "", - "Element_1": "", - "statistique": "" - } - }, - "Nouveau": { - "controleur": { - "company": "", - "layers": "", - "coordsys_id": "", - "vector_format_id": "", - "raster_format_id": "", - "extent_method": "", - "id_com": "", - "id_conseil": "", - "extent": "", - "status": "", - "history": "", - "creation_date": "", - "requestor": "", - "ae": "", - "note": "", - "note_line": "", - "signed": "", - "accepted_by_cpa": "", - "identification_complete": "", - "definition_complete": "", - "comment": "", - "priority_id": "", - "bo_id": "", - "status_name": "", - "tr_status_method": "", - "display_button": "rw", - "Element_3": "", - "Element_4": "", - "Element_5": "", - "Element_7": "", - "Element_8": "", - "preco_tech": "", - "chart_graph": "", - "metadonnees": "", - "email": "", - "Element_1": "", - "statistique": "" - }, - "demandeur": { - "email": "rw", - "company": "rw", - "layers": "rw", - "coordsys_id": "rw", - "vector_format_id": "rw", - "raster_format_id": "rw", - "extent_method": "rw", - "id_com": "rw", - "id_conseil": "rw", - "extent": "rw", - "status": "r", - "history": "", - "creation_date": "r", - "requestor": "rw", - "ae": "", - "note": "", - "note_line": "", - "signed": "", - "accepted_by_cpa": "", - "identification_complete": "", - "definition_complete": "", - "comment": "", - "priority_id": "", - "bo_id": "r", - "status_name": "rw", - "tr_status_method": "rw", - "display_button": "rw", - "Element_3": "", - "Element_4": "", - "Element_5": "", - "Element_7": "", - "Element_8": "", - "preco_tech": "r", - "chart_graph": "r", - "metadonnees": "r", - "Element_1": "", - "statistique": "" - } - }, - "AE Demandé": { - "controleur": { - "company": "", - "layers": "", - "coordsys_id": "", - "vector_format_id": "", - "raster_format_id": "", - "extent_method": "", - "id_com": "", - "id_conseil": "", - "extent": "", - "status": "", - "history": "", - "creation_date": "", - "requestor": "", - "ae": "", - "note": "", - "note_line": "", - "signed": "", - "accepted_by_cpa": "", - "identification_complete": "", - "definition_complete": "", - "comment": "", - "priority_id": "", - "bo_id": "", - "status_name": "", - "tr_status_method": "", - "display_button": "rw", - "Element_3": "", - "Element_4": "", - "Element_5": "", - "Element_7": "", - "Element_8": "", - "preco_tech": "", - "chart_graph": "", - "metadonnees": "", - "email": "", - "Element_1": "", - "statistique": "" - }, - "demandeur": { - "email": "r", - "company": "r", - "layers": "r", - "coordsys_id": "r", - "vector_format_id": "r", - "raster_format_id": "r", - "extent_method": "r", - "id_com": "r", - "id_conseil": "r", - "extent": "r", - "status": "r", - "history": "", - "creation_date": "r", - "requestor": "r", - "ae": "", - "note": "", - "note_line": "", - "signed": "", - "accepted_by_cpa": "", - "identification_complete": "", - "definition_complete": "", - "comment": "", - "priority_id": "", - "bo_id": "r", - "status_name": "rw", - "tr_status_method": "rw", - "display_button": "rw", - "Element_3": "", - "Element_4": "", - "Element_5": "", - "Element_7": "", - "Element_8": "", - "preco_tech": "", - "chart_graph": "", - "metadonnees": "", - "Element_1": "", - "statistique": "" - } - }, - "AE Généré": { - "controleur": { - "company": "", - "layers": "", - "coordsys_id": "", - "vector_format_id": "", - "raster_format_id": "", - "extent_method": "", - "id_com": "", - "id_conseil": "", - "extent": "", - "status": "", - "history": "", - "creation_date": "", - "requestor": "", - "ae": "", - "note": "", - "note_line": "", - "signed": "", - "accepted_by_cpa": "", - "identification_complete": "", - "definition_complete": "", - "comment": "", - "priority_id": "", - "bo_id": "", - "status_name": "", - "tr_status_method": "", - "display_button": "rw", - "Element_3": "", - "Element_4": "", - "Element_5": "", - "Element_7": "", - "Element_8": "", - "preco_tech": "", - "chart_graph": "", - "metadonnees": "", - "email": "", - "Element_1": "", - "statistique": "" - }, - "demandeur": { - "email": "r", - "company": "r", - "layers": "r", - "coordsys_id": "r", - "vector_format_id": "r", - "raster_format_id": "r", - "extent_method": "r", - "id_com": "r", - "id_conseil": "r", - "extent": "r", - "status": "r", - "history": "", - "creation_date": "r", - "requestor": "r", - "ae": "rw", - "note": "", - "note_line": "", - "signed": "", - "accepted_by_cpa": "", - "identification_complete": "", - "definition_complete": "", - "comment": "", - "priority_id": "", - "bo_id": "r", - "status_name": "rw", - "tr_status_method": "rw", - "display_button": "rw", - "Element_3": "", - "Element_4": "", - "Element_5": "", - "Element_7": "", - "Element_8": "", - "preco_tech": "r", - "chart_graph": "r", - "metadonnees": "r", - "Element_1": "", - "statistique": "" - } - }, - "AE Soumis": { - "controleur": { - "email": "r", - "company": "r", - "layers": "r", - "coordsys_id": "r", - "vector_format_id": "r", - "raster_format_id": "r", - "extent_method": "r", - "id_com": "r", - "id_conseil": "r", - "extent": "r", - "status": "r", - "history": "r", - "creation_date": "r", - "requestor": "r", - "ae": "", - "note": "", - "note_line": "", - "signed": "rw", - "accepted_by_cpa": "rw", - "identification_complete": "rw", - "definition_complete": "rw", - "comment": "rw", - "priority_id": "r", - "bo_id": "r", - "status_name": "rw", - "tr_status_method": "rw", - "display_button": "rw", - "Element_3": "", - "Element_4": "", - "Element_5": "", - "Element_7": "", - "Element_8": "", - "preco_tech": "r", - "chart_graph": "r", - "metadonnees": "r", - "Element_1": "", - "statistique": "" - }, - "demandeur": { - "email": "r", - "company": "r", - "layers": "r", - "coordsys_id": "r", - "vector_format_id": "r", - "raster_format_id": "r", - "extent_method": "r", - "id_com": "r", - "id_conseil": "r", - "extent": "r", - "status": "r", - "history": "", - "creation_date": "r", - "requestor": "r", - "ae": "", - "note": "", - "note_line": "", - "signed": "", - "accepted_by_cpa": "", - "identification_complete": "", - "definition_complete": "", - "comment": "", - "priority_id": "r", - "bo_id": "r", - "status_name": "rw", - "tr_status_method": "rw", - "display_button": "rw", - "Element_3": "", - "Element_4": "", - "Element_5": "", - "Element_7": "", - "Element_8": "", - "preco_tech": "r", - "chart_graph": "r", - "metadonnees": "r", - "Element_1": "", - "statistique": "" - } - }, - "Autorisée": { - "controleur": { - "email": "r", - "company": "r", - "layers": "r", - "coordsys_id": "r", - "vector_format_id": "r", - "raster_format_id": "r", - "extent_method": "r", - "id_com": "r", - "id_conseil": "r", - "extent": "r", - "status": "r", - "history": "r", - "creation_date": "r", - "requestor": "r", - "ae": "r", - "note": "", - "note_line": "", - "signed": "r", - "accepted_by_cpa": "r", - "identification_complete": "r", - "definition_complete": "r", - "comment": "r", - "priority_id": "rw", - "bo_id": "r", - "status_name": "rw", - "tr_status_method": "rw", - "display_button": "rw", - "Element_3": "", - "Element_4": "", - "Element_5": "", - "Element_7": "", - "Element_8": "", - "preco_tech": "r", - "chart_graph": "r", - "metadonnees": "r", - "Element_1": "", - "statistique": "" - }, - "demandeur": { - "email": "", - "company": "", - "layers": "", - "coordsys_id": "", - "vector_format_id": "", - "raster_format_id": "", - "extent_method": "", - "id_com": "", - "id_conseil": "", - "extent": "", - "status": "", - "history": "", - "creation_date": "", - "requestor": "", - "ae": "", - "note": "", - "note_line": "", - "signed": "", - "accepted_by_cpa": "", - "identification_complete": "", - "definition_complete": "", - "comment": "", - "priority_id": "", - "bo_id": "", - "status_name": "", - "tr_status_method": "", - "display_button": "rw", - "Element_3": "", - "Element_4": "", - "Element_5": "", - "Element_7": "", - "Element_8": "", - "preco_tech": "", - "chart_graph": "", - "metadonnees": "", - "Element_1": "", - "statistique": "" - } - }, - "Refusée": { - "controleur": { - "email": "r", - "company": "r", - "layers": "r", - "coordsys_id": "r", - "vector_format_id": "r", - "raster_format_id": "r", - "extent_method": "r", - "id_com": "r", - "id_conseil": "r", - "extent": "r", - "status": "r", - "history": "r", - "creation_date": "r", - "requestor": "r", - "ae": "", - "note": "", - "note_line": "", - "signed": "r", - "accepted_by_cpa": "r", - "identification_complete": "r", - "definition_complete": "r", - "comment": "r", - "priority_id": "r", - "bo_id": "r", - "status_name": "rw", - "tr_status_method": "rw", - "display_button": "rw", - "Element_3": "", - "Element_4": "", - "Element_5": "", - "Element_7": "", - "Element_8": "", - "preco_tech": "r", - "chart_graph": "r", - "metadonnees": "r", - "Element_1": "", - "statistique": "" - }, - "demandeur": { - "email": "r", - "company": "r", - "layers": "r", - "coordsys_id": "r", - "vector_format_id": "r", - "raster_format_id": "r", - "extent_method": "r", - "id_com": "r", - "id_conseil": "r", - "extent": "r", - "status": "r", - "history": "", - "creation_date": "r", - "requestor": "r", - "ae": "", - "note": "", - "note_line": "", - "signed": "r", - "accepted_by_cpa": "r", - "identification_complete": "r", - "definition_complete": "r", - "comment": "r", - "priority_id": "r", - "bo_id": "r", - "status_name": "rw", - "tr_status_method": "rw", - "display_button": "rw", - "Element_3": "", - "Element_4": "", - "Element_5": "", - "Element_7": "", - "Element_8": "", - "preco_tech": "r", - "chart_graph": "r", - "metadonnees": "r", - "Element_1": "", - "statistique": "" - } - }, - "Terminée": { - "controleur": { - "company": "r", - "layers": "r", - "coordsys_id": "r", - "vector_format_id": "", - "raster_format_id": "r", - "extent_method": "", - "id_com": "", - "id_conseil": "", - "extent": "r", - "status": "r", - "history": "r", - "creation_date": "r", - "requestor": "r", - "ae": "", - "note": "", - "note_line": "", - "signed": "", - "accepted_by_cpa": "", - "identification_complete": "", - "definition_complete": "", - "comment": "r", - "priority_id": "", - "bo_id": "r", - "status_name": "rw", - "tr_status_method": "rw", - "display_button": "rw", - "Element_3": "", - "Element_4": "", - "Element_5": "", - "Element_7": "", - "Element_8": "", - "preco_tech": "r", - "chart_graph": "r", - "metadonnees": "r", - "email": "", - "Element_1": "", - "statistique": "" - }, - "demandeur": { - "email": "r", - "company": "r", - "layers": "r", - "coordsys_id": "r", - "vector_format_id": "", - "raster_format_id": "r", - "extent_method": "", - "id_com": "", - "id_conseil": "", - "extent": "r", - "status": "r", - "history": "r", - "creation_date": "r", - "requestor": "r", - "ae": "", - "note": "", - "note_line": "", - "signed": "", - "accepted_by_cpa": "", - "identification_complete": "", - "definition_complete": "", - "comment": "r", - "priority_id": "", - "bo_id": "r", - "status_name": "rw", - "tr_status_method": "rw", - "display_button": "rw", - "Element_3": "", - "Element_4": "", - "Element_5": "", - "Element_7": "", - "Element_8": "", - "preco_tech": "r", - "chart_graph": "r", - "metadonnees": "r", - "Element_1": "", - "statistique": "" - } - } - }, - "tabs": { - "position": "top", - "list": [ - { - "label": "Tab 0", - "elements": [ - "bo_id", - "status", - "history", - "creation_date", - "requestor", - "ae", - "extent", - "email", - "company", - "layers", - "vector_format_id", - "coordsys_id", - "note", - "note_line", - "raster_format_id", - "extent_method", - "signed", - "accepted_by_cpa", - "identification_complete", - "definition_complete", - "comment", - "priority_id", - "id_com", - "id_conseil", - "display_button", - "status_name", - "ct_list", - "statistique", - "Element_3", - "Element_4", - "Element_5", - "Element_7", - "Element_8", - "tr_status_method", - "format", - "preco_tech", - "chart_graph", - "metadonnees" - ] - } - ] - } - }, - "search": { - "name": "extraction_extraction_extraction-form", - "title": "EXTRACTION_EXTRACTION_EXTRACTION_TITLE", - "input_size": "xxs", - "nb_cols": 12, - "javascript": false, - "rows": [ - { - "fields": [ - { - "type": "text", - "name": "company", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_COMPANY", - "nb_cols": 12, - "id": "company_8_1" - } - ] - }, - { - "fields": [ - { - "type": "button", - "class": "btn-ungroup btn-group-xs", - "nb_cols": 12, - "name": "search_button", - "id": "search_button", - "buttons": [ - { - "type": "button", - "name": "search", - "label": "FORM_SEARCH_BUTTON", - "class": "btn-primary", - "event": "setGridFilter()" - }, - { - "type": "reset", - "name": "reset", - "label": "FORM_RESET_BUTTON", - "class": "btn-primary", - "event": "resetGridFilter()" - } - ] - } - ] - } - ], - "tabs": { - "position": "top", - "list": [ - { - "label": "Tab 0", - "elements": [ - "company", - "search_button" - ] - } - ] - } - }, - "insert": { - "name": "extraction_extraction_extraction-form", - "title": "EXTRACTION_EXTRACTION_EXTRACTION_TITLE_INSERT", - "input_size": "xxs", - "nb_cols": 12, - "javascript": true, - "rows": [ - { - "fields": [ - { - "type": "label", - "name": "bo_id", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_TECHNIQUE", - "nb_cols": 12, - "id": "Element_0_2_1" - } - ] - }, - { - "fields": [ - { - "type": "checkbox", - "name": "preco_tech", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_TECHNIQUE", - "required": false, - "nb_cols": 4, - "id": "checkbox_tech_2_1" - }, - { - "type": "checkbox", - "name": "chart_graph", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_CARTOGRAPHIQUE", - "required": false, - "nb_cols": 4, - "id": "checkbox_carto" - }, - { - "type": "checkbox", - "name": "metadonnees", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ISOGEO", - "required": false, - "nb_cols": 4, - "id": "checkbox_iso" - } - ] - }, - { - "fields": [ - { - "type": "email", - "name": "email", - "label": "FORM_EMAIL_USERS_USER", - "required": true, - "nb_cols": 6, - "id": "email_3_1", - "pattern": "^(([a-zA-Z]|[0-9])|([-]|[_]|[.]))+[@](([a-zA-Z]|[0-9])|([-]|[_]|[.])){2,63}[.](([a-zA-Z0-9]){2,63})+$" - }, - { - "type": "text", - "name": "company", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_COMPANY", - "required": true, - "nb_cols": 6, - "id": "company_8_1" - } - ] - }, - { - "fields": [ - { - "type": "select", - "name": "extent_method", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_EXTENT_METHOD", - "required": true, - "nb_cols": 12, - "id": "extent_method_15_1", - "options": [ - "Commmunes|id_com", - "Conseils de Territoire|id_conseil", - "Etendue libre|extent" - ], - "id_from": "extent_method_15_1_from" - } - ] - }, - { - "fields": [ - { - "type": "list", - "name": "id_com", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ID_COM", - "required": false, - "nb_cols": 12, - "datasource": { - "datasource_id": "datasource_9", - "sort_order": "ASC", - "distinct": "true", - "label_key": "name", - "order_by": "name", - "id_key": "commune_id", - "attributs": "commune_id|name" - }, - "id": "id_com_22_1", - "id_from": "id_com_22_1_from", - "size": 10 - } - ] - }, - { - "fields": [ - { - "type": "list", - "name": "id_conseil", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ID_CONSEIL", - "required": false, - "nb_cols": 12, - "datasource": { - "datasource_id": "datasource_8", - "sort_order": "ASC", - "distinct": "true", - "label_key": "name", - "order_by": "name", - "id_key": "ct_id", - "attributs": "ct_id|name" - }, - "id": "id_conseil_23_1", - "id_from": "id_conseil_23_1_from", - "size": 10 - } - ] - }, - { - "fields": [ - { - "type": "map_vmap", - "name": "extent", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_EXTENT", - "required": false, - "nb_cols": 12, - "id": "extent_7_1", - "style": { - "height": "250px" - }, - "map_options": { - "proj": "EPSG:2154", - "type": "vmap", - "center": { - "extent": [ - -1736177.943496094, - 5863277.723320313, - 2570482.873496094, - 7416907.166679688 - ], - "coord": [ - 417152.46499999985, - 6640092.445 - ], - "scale": 23468294 - }, - "controls": { - "MP": true, - "ZO": true, - "SL": true, - "CP": true - }, - "layers": [], - "interactions": { - "multi_geometry": false, - "full_screen": true, - "RA": true, - "RO": true, - "ED": true, - "DP": false, - "DL": false, - "DPol": true, - "SE": true - }, - "draw_color": "rgba(54,184,255,0.6)", - "contour_color": "rgba(0,0,0,0.4)", - "contour_size": 2, - "circle_radius": 6, - "features": [], - "coord_accuracy": 8, - "tree": { - "name": "Tree", - "children": [ - { - "view": { - "center": [ - "902168", - "6269043" - ], - "zoom": 7, - "maxZoom": 28, - "minZoom": 0, - "projection": "EPSG:2154", - "extent": [ - 4510835482577.04, - 313452150322452.2, - 4510845419590.96, - 313452155946590.8 - ] - } - }, - { - "name": "extraction", - "children": [ - { - "name": "REF_ortho2011", - "layerType": "tilewms", - "url": "http://SCPA441.cpa.fr:8399/arcgis/services/REF_ortho2011/MapServer/WMSServer", - "index": -1, - "visible": true, - "opacity": 1, - "is_dynamic": false, - "is_filtered": false, - "version": "1.3.0", - "params": { - "LAYERS": "0", - "VERSION": "1.3.0", - "STYLES": "" - }, - "bo_queryable": false, - "layer_id": 1, - "select": true - }, - { - "name": "REF_CPA_LIMITE_COMMUNE", - "layerType": "tilewms", - "url": "http://SCPA441.cpa.fr:8399/arcgis/services/REF_CPA_LIMITE_COMMUNE/MapServer/WMSServer", - "index": -1, - "visible": true, - "opacity": 1, - "is_dynamic": false, - "is_filtered": false, - "version": "1.3.0", - "params": { - "LAYERS": "0,1", - "VERSION": "1.3.0", - "STYLES": "" - }, - "bo_queryable": false, - "layer_id": 2, - "select": true - } - ], - "visible": true - } - ] - } - } - } - ] - }, - { - "class": "extraction-treeview", - "fields": [ - { - "type": "treeview", - "name": "layers", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_LAYERS", - "required": false, - "nb_cols": 12, - "id": "layers_9_1", - "size": 20, - "options": { - "showBorder": false, - "levels": 0, - "showCheckbox": true, - "expandIcon": "glyphicon glyphicon-folder-close", - "collapseIcon": "glyphicon glyphicon-folder-open", - "highlightSelected": false, - "multiSelect": true, - "data": "getExtractionLayersTree()" - } - } - ] - }, - { - "fields": [ - { - "type": "treeview", - "name": "statistique", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_STATISTIQUE", - "required": false, - "pattern": "", - "nb_cols": 12, - "id": "statistique_9_1", - "options": { - "showBorder": false, - "levels": 0, - "showCheckbox": true, - "expandIcon": "glyphicon glyphicon-folder-close", - "collapseIcon": "glyphicon glyphicon-folder-open", - "highlightSelected": false, - "multiSelect": true, - "data": "getExtractionStatsTree()" - } - } - ] - }, - { - "fields": [ - { - "type": "select", - "name": "coordsys_id", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_COORDSYS_ID", - "required": false, - "nb_cols": 4, - "id": "coordsys_id_11_1", - "datasource": { - "datasource_id": "datasource_1", - "sort_order": "ASC", - "distinct": "true", - "label_key": "coordsys", - "order_by": "coordsys", - "id_key": "coordsys_id", - "attributs": "coordsys_id|coordsys" - }, - "default_value": "Lambert93", - "id_from": "coordsys_id_11_1_from" - }, - { - "type": "select", - "name": "vector_format_id", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_VECTOR_FORMAT_ID", - "required": false, - "nb_cols": 4, - "id": "vector_format_id_10_1", - "datasource": { - "datasource_id": "datasource_2", - "sort_order": "ASC", - "distinct": "true", - "label_key": "format", - "order_by": "format", - "id_key": "format_id", - "attributs": "format_id|format" - }, - "default_value": "SHAPE", - "id_from": "vector_format_id_10_1_from" - }, - { - "type": "select", - "name": "raster_format_id", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_RASTER_FORMAT_ID", - "required": false, - "nb_cols": 4, - "id": "raster_format_id_14_1", - "datasource": { - "datasource_id": "datasource_3", - "sort_order": "ASC", - "distinct": "true", - "label_key": "format", - "order_by": "format", - "id_key": "format_id", - "attributs": "format_id|format" - }, - "default_value": "ECW", - "id_from": "raster_format_id_14_1_from" - } - ] - }, - { - "fields": [ - { - "type": "text", - "name": "status", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_STATUS", - "required": false, - "nb_cols": 12, - "id": "status_2_1" - } - ] - }, - { - "fields": [ - { - "type": "text", - "name": "history", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_HISTORY", - "required": false, - "nb_cols": 12, - "id": "history_3_1" - } - ] - }, - { - "fields": [ - { - "type": "text", - "name": "creation_date", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_CREATION_DATE", - "required": false, - "nb_cols": 12, - "id": "creation_date_4_1" - } - ] - }, - { - "fields": [ - { - "type": "text", - "name": "requestor", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_REQUESTOR", - "required": false, - "nb_cols": 12, - "id": "requestor_5_1" - } - ] - }, - { - "fields": [ - { - "type": "file_wsdata", - "name": "ae", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_AE", - "required": false, - "nb_cols": 12, - "id": "ae_6_1" - } - ] - }, - { - "fields": [ - { - "type": "text", - "name": "note", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_NOTE", - "required": false, - "nb_cols": 12, - "id": "note_12_1" - } - ] - }, - { - "fields": [ - { - "type": "text", - "name": "note_line", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_NOTE_LINE", - "required": false, - "nb_cols": 12, - "id": "note_line_13_1" - } - ] - }, - { - "fields": [ - { - "type": "radio", - "options": { - "choices": [ - { - "label": "oui", - "value": true - }, - { - "label": "non", - "value": false - } - ] - }, - "name": "signed", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_SIGNED", - "required": false, - "nb_cols": 12, - "id": "signed_16_1" - } - ] - }, - { - "fields": [ - { - "type": "radio", - "options": { - "choices": [ - { - "label": "oui", - "value": true - }, - { - "label": "non", - "value": false - } - ] - }, - "name": "accepted_by_cpa", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ACCEPTED_BY_CPA", - "required": false, - "nb_cols": 12, - "id": "accepted_by_cpa_17_1" - } - ] - }, - { - "fields": [ - { - "type": "radio", - "options": { - "choices": [ - { - "label": "oui", - "value": true - }, - { - "label": "non", - "value": false - } - ] - }, - "name": "identification_complete", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_IDENTIFICATION_COMPLETE", - "required": false, - "nb_cols": 12, - "id": "identification_complete_18_1" - } - ] - }, - { - "fields": [ - { - "type": "radio", - "options": { - "choices": [ - { - "label": "oui", - "value": true - }, - { - "label": "non", - "value": false - } - ] - }, - "name": "definition_complete", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_DEFINITION_COMPLETE", - "required": false, - "nb_cols": 12, - "id": "definition_complete_19_1" - } - ] - }, - { - "fields": [ - { - "type": "text", - "name": "comment", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_COMMENT", - "required": false, - "nb_cols": 12, - "id": "comment_20_1" - } - ] - }, - { - "fields": [ - { - "type": "integer", - "name": "priority_id", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_PRIORITY_ID", - "required": false, - "nb_cols": 12, - "id": "priority_id_21_1" - } - ] - }, - { - "fields": [ - { - "type": "hidden", - "name": "status_name", - "nb_cols": 6, - "id": "Element_0_26_1", - "default_value": "START" - }, - { - "type": "hidden", - "name": "tr_status_method", - "nb_cols": 6, - "id": "Element_0_25_2" - } - ] - }, - { - "class": "wab-method-button", - "fields": [ - { - "type": "button", - "class": "btn-ungroup btn-group-sm", - "nb_cols": 6, - "name": "insert_button", - "id": "insert_button", - "buttons": [ - { - "type": "submit", - "name": "form_submit", - "label": "FORM_CREATE", - "class": "btn-primary" - } - ] - }, - { - "type": "button", - "name": "return_list_button", - "nb_cols": 6, - "id": "return_list_button", - "class": "btn-ungroup btn-group-sm", - "buttons": [ - { - "type": "button", - "name": "return_list", - "label": "FORM_RETURN_LIST", - "class": "btn-primary", - "event": "setMode(\"search\")" - } - ] - } - ] - } - ], - "initEvent": "initExtractionExtractionForm()", - "beforeEvent": "setWabStatusMethod('trNouveau')", - "event": "sendSimpleForm()", - "afterEvent": "editSectionForm()", - "tabs": { - "position": "top", - "list": [ - { - "label": "Tab 0", - "elements": [ - "bo_id", - "status", - "history", - "creation_date", - "requestor", - "ae", - "email", - "extent", - "company", - "layers", - "vector_format_id", - "coordsys_id", - "note", - "note_line", - "raster_format_id", - "extent_method", - "signed", - "accepted_by_cpa", - "identification_complete", - "definition_complete", - "comment", - "priority_id", - "id_com", - "id_conseil", - "insert_button", - "bo_id", - "status_name", - "tr_status_method", - "return_list_button", - "statistique" - ] - } - ] - }, - "wab": { - "START": { - "controleur": { - "email": "", - "company": "", - "layers": "", - "coordsys_id": "", - "vector_format_id": "", - "raster_format_id": "", - "extent_method": "", - "id_com": "", - "id_conseil": "", - "extent": "", - "status": "", - "history": "", - "creation_date": "", - "requestor": "", - "ae": "", - "note": "", - "note_line": "", - "signed": "", - "accepted_by_cpa": "", - "identification_complete": "", - "definition_complete": "", - "comment": "", - "priority_id": "", - "insert_button": "", - "bo_id": "", - "status_name": "", - "tr_status_method": "", - "return_list_button": "rw", - "chart_graph": "", - "metadonnees": "", - "preco_tech": "", - "statistique": "" - }, - "demandeur": { - "email": "rw", - "company": "rw", - "layers": "rw", - "coordsys_id": "rw", - "vector_format_id": "rw", - "raster_format_id": "rw", - "extent_method": "rw", - "id_com": "rw", - "id_conseil": "rw", - "extent": "rw", - "status": "", - "history": "", - "creation_date": "", - "requestor": "", - "ae": "", - "note": "", - "note_line": "", - "signed": "", - "accepted_by_cpa": "", - "identification_complete": "", - "definition_complete": "", - "comment": "", - "priority_id": "", - "insert_button": "rw", - "bo_id": "", - "status_name": "", - "tr_status_method": "", - "return_list_button": "rw", - "chart_graph": "rw", - "metadonnees": "rw", - "preco_tech": "rw", - "statistique": "rw" - } - }, - "Nouveau": { - "controleur": { - "email": "", - "company": "", - "layers": "", - "coordsys_id": "", - "vector_format_id": "", - "raster_format_id": "", - "extent_method": "", - "id_com": "", - "id_conseil": "", - "extent": "", - "status": "", - "history": "", - "creation_date": "", - "requestor": "", - "ae": "", - "note": "", - "note_line": "", - "signed": "", - "accepted_by_cpa": "", - "identification_complete": "", - "definition_complete": "", - "comment": "", - "priority_id": "", - "insert_button": "", - "bo_id": "", - "status_name": "", - "tr_status_method": "", - "return_list_button": "rw", - "chart_graph": "", - "metadonnees": "", - "preco_tech": "", - "statistique": "" - }, - "demandeur": { - "email": "rw", - "company": "rw", - "layers": "rw", - "coordsys_id": "rw", - "vector_format_id": "rw", - "raster_format_id": "rw", - "extent_method": "rw", - "id_com": "rw", - "id_conseil": "rw", - "extent": "rw", - "status": "r", - "history": "", - "creation_date": "r", - "requestor": "r", - "ae": "", - "note": "", - "note_line": "", - "signed": "", - "accepted_by_cpa": "", - "identification_complete": "", - "definition_complete": "", - "comment": "", - "priority_id": "", - "insert_button": "", - "bo_id": "r", - "status_name": "", - "tr_status_method": "", - "return_list_button": "rw", - "chart_graph": "rw", - "metadonnees": "rw", - "preco_tech": "rw", - "statistique": "rw" - } - }, - "AE Demandé": { - "controleur": { - "email": "", - "company": "", - "layers": "", - "coordsys_id": "", - "vector_format_id": "", - "raster_format_id": "", - "extent_method": "", - "id_com": "", - "id_conseil": "", - "extent": "", - "status": "", - "history": "", - "creation_date": "", - "requestor": "", - "ae": "", - "note": "", - "note_line": "", - "signed": "", - "accepted_by_cpa": "", - "identification_complete": "", - "definition_complete": "", - "comment": "", - "priority_id": "", - "insert_button": "", - "bo_id": "", - "status_name": "", - "tr_status_method": "", - "return_list_button": "", - "chart_graph": "", - "metadonnees": "", - "preco_tech": "", - "statistique": "" - }, - "demandeur": { - "email": "r", - "company": "r", - "layers": "r", - "coordsys_id": "r", - "vector_format_id": "r", - "raster_format_id": "r", - "extent_method": "r", - "id_com": "r", - "id_conseil": "r", - "extent": "r", - "status": "r", - "history": "", - "creation_date": "r", - "requestor": "r", - "ae": "", - "note": "", - "note_line": "", - "signed": "", - "accepted_by_cpa": "", - "identification_complete": "", - "definition_complete": "", - "comment": "", - "priority_id": "", - "insert_button": "", - "bo_id": "r", - "status_name": "rw", - "tr_status_method": "rw", - "return_list_button": "rw", - "chart_graph": "r", - "metadonnees": "r", - "preco_tech": "r", - "statistique": "r" - } - }, - "AE Généré": { - "controleur": { - "email": "", - "company": "", - "layers": "", - "coordsys_id": "", - "vector_format_id": "", - "raster_format_id": "", - "extent_method": "", - "id_com": "", - "id_conseil": "", - "extent": "", - "status": "", - "history": "", - "creation_date": "", - "requestor": "", - "ae": "", - "note": "", - "note_line": "", - "signed": "", - "accepted_by_cpa": "", - "identification_complete": "", - "definition_complete": "", - "comment": "", - "priority_id": "", - "insert_button": "", - "bo_id": "", - "status_name": "", - "tr_status_method": "", - "return_list_button": "", - "chart_graph": "", - "metadonnees": "", - "preco_tech": "", - "statistique": "" - }, - "demandeur": { - "email": "r", - "company": "r", - "layers": "r", - "coordsys_id": "r", - "vector_format_id": "r", - "raster_format_id": "r", - "extent_method": "r", - "id_com": "r", - "id_conseil": "r", - "extent": "r", - "status": "r", - "history": "", - "creation_date": "r", - "requestor": "r", - "ae": "rw", - "note": "", - "note_line": "", - "signed": "", - "accepted_by_cpa": "", - "identification_complete": "", - "definition_complete": "", - "comment": "", - "priority_id": "", - "insert_button": "", - "bo_id": "r", - "status_name": "r", - "tr_status_method": "r", - "return_list_button": "rw", - "chart_graph": "r", - "metadonnees": "r", - "preco_tech": "r", - "statistique": "r" - } - }, - "AE Soumis": { - "controleur": { - "email": "r", - "company": "r", - "layers": "r", - "coordsys_id": "r", - "vector_format_id": "r", - "raster_format_id": "r", - "extent_method": "r", - "id_com": "r", - "id_conseil": "r", - "extent": "r", - "status": "r", - "history": "r", - "creation_date": "r", - "requestor": "r", - "ae": "", - "note": "", - "note_line": "", - "signed": "rw", - "accepted_by_cpa": "rw", - "identification_complete": "rw", - "definition_complete": "rw", - "comment": "rw", - "priority_id": "r", - "insert_button": "", - "bo_id": "r", - "status_name": "r", - "tr_status_method": "r", - "return_list_button": "rw", - "chart_graph": "", - "metadonnees": "", - "preco_tech": "", - "statistique": "" - }, - "demandeur": { - "email": "r", - "company": "r", - "layers": "r", - "coordsys_id": "r", - "vector_format_id": "r", - "raster_format_id": "r", - "extent_method": "r", - "id_com": "r", - "id_conseil": "r", - "extent": "r", - "status": "r", - "history": "", - "creation_date": "r", - "requestor": "r", - "ae": "", - "note": "", - "note_line": "", - "signed": "", - "accepted_by_cpa": "", - "identification_complete": "", - "definition_complete": "", - "comment": "", - "priority_id": "r", - "insert_button": "", - "bo_id": "r", - "status_name": "r", - "tr_status_method": "r", - "return_list_button": "rw", - "chart_graph": "r", - "metadonnees": "r", - "preco_tech": "r", - "statistique": "r" - } - }, - "Autorisée": { - "controleur": { - "email": "r", - "company": "r", - "layers": "r", - "coordsys_id": "r", - "vector_format_id": "r", - "raster_format_id": "r", - "extent_method": "r", - "id_com": "r", - "id_conseil": "r", - "extent": "r", - "status": "r", - "history": "r", - "creation_date": "r", - "requestor": "r", - "ae": "r", - "note": "", - "note_line": "", - "signed": "r", - "accepted_by_cpa": "r", - "identification_complete": "r", - "definition_complete": "r", - "comment": "r", - "priority_id": "r", - "insert_button": "", - "bo_id": "r", - "status_name": "r", - "tr_status_method": "r", - "return_list_button": "rw", - "chart_graph": "", - "metadonnees": "", - "preco_tech": "", - "statistique": "" - }, - "demandeur": { - "email": "", - "company": "", - "layers": "", - "coordsys_id": "", - "vector_format_id": "", - "raster_format_id": "", - "extent_method": "", - "id_com": "", - "id_conseil": "", - "extent": "", - "status": "", - "history": "", - "creation_date": "", - "requestor": "", - "ae": "", - "note": "", - "note_line": "", - "signed": "", - "accepted_by_cpa": "", - "identification_complete": "", - "definition_complete": "", - "comment": "", - "priority_id": "", - "insert_button": "", - "bo_id": "", - "status_name": "", - "tr_status_method": "", - "return_list_button": "rw", - "chart_graph": "", - "metadonnees": "", - "preco_tech": "", - "statistique": "" - } - }, - "Refusée": { - "controleur": { - "email": "r", - "company": "r", - "layers": "r", - "coordsys_id": "r", - "vector_format_id": "r", - "raster_format_id": "r", - "extent_method": "r", - "id_com": "r", - "id_conseil": "r", - "extent": "r", - "status": "r", - "history": "r", - "creation_date": "r", - "requestor": "r", - "ae": "", - "note": "", - "note_line": "", - "signed": "r", - "accepted_by_cpa": "r", - "identification_complete": "r", - "definition_complete": "r", - "comment": "r", - "priority_id": "r", - "insert_button": "", - "bo_id": "r", - "status_name": "r", - "tr_status_method": "r", - "return_list_button": "rw", - "chart_graph": "", - "metadonnees": "", - "preco_tech": "", - "statistique": "" - }, - "demandeur": { - "email": "r", - "company": "r", - "layers": "r", - "coordsys_id": "r", - "vector_format_id": "r", - "raster_format_id": "r", - "extent_method": "r", - "id_com": "r", - "id_conseil": "r", - "extent": "r", - "status": "r", - "history": "", - "creation_date": "r", - "requestor": "r", - "ae": "", - "note": "", - "note_line": "", - "signed": "r", - "accepted_by_cpa": "r", - "identification_complete": "r", - "definition_complete": "r", - "comment": "r", - "priority_id": "r", - "insert_button": "", - "bo_id": "r", - "status_name": "rw", - "tr_status_method": "rw", - "return_list_button": "rw", - "chart_graph": "r", - "metadonnees": "r", - "preco_tech": "r", - "statistique": "r" - } - }, - "Extraction terminée": { - "controleur": { - "bo_id": "", - "preco_tech": "", - "chart_graph": "", - "metadonnees": "", - "email": "", - "company": "", - "extent_method": "", - "id_com": "", - "id_conseil": "", - "extent": "", - "layers": "", - "coordsys_id": "", - "vector_format_id": "", - "raster_format_id": "", - "status": "", - "history": "", - "creation_date": "", - "requestor": "", - "ae": "", - "note": "", - "note_line": "", - "signed": "", - "accepted_by_cpa": "", - "identification_complete": "", - "definition_complete": "", - "comment": "", - "priority_id": "", - "status_name": "", - "tr_status_method": "", - "insert_button": "", - "return_list_button": "", - "statistique": "" - }, - "demandeur": { - "bo_id": "", - "preco_tech": "", - "chart_graph": "", - "metadonnees": "", - "email": "", - "company": "", - "extent_method": "", - "id_com": "", - "id_conseil": "", - "extent": "", - "layers": "", - "coordsys_id": "", - "vector_format_id": "", - "raster_format_id": "", - "status": "", - "history": "", - "creation_date": "", - "requestor": "", - "ae": "", - "note": "", - "note_line": "", - "signed": "", - "accepted_by_cpa": "", - "identification_complete": "", - "definition_complete": "", - "comment": "", - "priority_id": "", - "status_name": "", - "tr_status_method": "", - "insert_button": "", - "return_list_button": "", - "statistique": "" - } - }, - "Fichier invalidé": { - "controleur": { - "bo_id": "", - "preco_tech": "", - "chart_graph": "", - "metadonnees": "", - "email": "", - "company": "", - "extent_method": "", - "id_com": "", - "id_conseil": "", - "extent": "", - "layers": "", - "coordsys_id": "", - "vector_format_id": "", - "raster_format_id": "", - "status": "", - "history": "", - "creation_date": "", - "requestor": "", - "ae": "", - "note": "", - "note_line": "", - "signed": "", - "accepted_by_cpa": "", - "identification_complete": "", - "definition_complete": "", - "comment": "", - "priority_id": "", - "status_name": "", - "tr_status_method": "", - "insert_button": "", - "return_list_button": "", - "statistique": "" - }, - "demandeur": { - "bo_id": "", - "preco_tech": "", - "chart_graph": "", - "metadonnees": "", - "email": "", - "company": "", - "extent_method": "", - "id_com": "", - "id_conseil": "", - "extent": "", - "layers": "", - "coordsys_id": "", - "vector_format_id": "", - "raster_format_id": "", - "status": "", - "history": "", - "creation_date": "", - "requestor": "", - "ae": "", - "note": "", - "note_line": "", - "signed": "", - "accepted_by_cpa": "", - "identification_complete": "", - "definition_complete": "", - "comment": "", - "priority_id": "", - "status_name": "", - "tr_status_method": "", - "insert_button": "", - "return_list_button": "", - "statistique": "" - } - }, - "Fichier déposé": { - "controleur": { - "bo_id": "", - "preco_tech": "", - "chart_graph": "", - "metadonnees": "", - "email": "", - "company": "", - "extent_method": "", - "id_com": "", - "id_conseil": "", - "extent": "", - "layers": "", - "coordsys_id": "", - "vector_format_id": "", - "raster_format_id": "", - "status": "", - "history": "", - "creation_date": "", - "requestor": "", - "ae": "", - "note": "", - "note_line": "", - "signed": "", - "accepted_by_cpa": "", - "identification_complete": "", - "definition_complete": "", - "comment": "", - "priority_id": "", - "status_name": "", - "tr_status_method": "", - "insert_button": "", - "return_list_button": "", - "statistique": "" - }, - "demandeur": { - "bo_id": "", - "preco_tech": "", - "chart_graph": "", - "metadonnees": "", - "email": "", - "company": "", - "extent_method": "", - "id_com": "", - "id_conseil": "", - "extent": "", - "layers": "", - "coordsys_id": "", - "vector_format_id": "", - "raster_format_id": "", - "status": "", - "history": "", - "creation_date": "", - "requestor": "", - "ae": "", - "note": "", - "note_line": "", - "signed": "", - "accepted_by_cpa": "", - "identification_complete": "", - "definition_complete": "", - "comment": "", - "priority_id": "", - "status_name": "", - "tr_status_method": "", - "insert_button": "", - "return_list_button": "", - "statistique": "" - } - }, - "Fichier accepté": { - "controleur": { - "bo_id": "", - "preco_tech": "", - "chart_graph": "", - "metadonnees": "", - "email": "", - "company": "", - "extent_method": "", - "id_com": "", - "id_conseil": "", - "extent": "", - "layers": "", - "coordsys_id": "", - "vector_format_id": "", - "raster_format_id": "", - "status": "", - "history": "", - "creation_date": "", - "requestor": "", - "ae": "", - "note": "", - "note_line": "", - "signed": "", - "accepted_by_cpa": "", - "identification_complete": "", - "definition_complete": "", - "comment": "", - "priority_id": "", - "status_name": "", - "tr_status_method": "", - "insert_button": "", - "return_list_button": "", - "statistique": "" - }, - "demandeur": { - "bo_id": "", - "preco_tech": "", - "chart_graph": "", - "metadonnees": "", - "email": "", - "company": "", - "extent_method": "", - "id_com": "", - "id_conseil": "", - "extent": "", - "layers": "", - "coordsys_id": "", - "vector_format_id": "", - "raster_format_id": "", - "status": "", - "history": "", - "creation_date": "", - "requestor": "", - "ae": "", - "note": "", - "note_line": "", - "signed": "", - "accepted_by_cpa": "", - "identification_complete": "", - "definition_complete": "", - "comment": "", - "priority_id": "", - "status_name": "", - "tr_status_method": "", - "insert_button": "", - "return_list_button": "", - "statistique": "" - } - }, - "Dépôt terminé": { - "controleur": { - "bo_id": "", - "preco_tech": "", - "chart_graph": "", - "metadonnees": "", - "email": "", - "company": "", - "extent_method": "", - "id_com": "", - "id_conseil": "", - "extent": "", - "layers": "", - "coordsys_id": "", - "vector_format_id": "", - "raster_format_id": "", - "status": "", - "history": "", - "creation_date": "", - "requestor": "", - "ae": "", - "note": "", - "note_line": "", - "signed": "", - "accepted_by_cpa": "", - "identification_complete": "", - "definition_complete": "", - "comment": "", - "priority_id": "", - "status_name": "", - "tr_status_method": "", - "insert_button": "", - "return_list_button": "", - "statistique": "" - }, - "demandeur": { - "bo_id": "", - "preco_tech": "", - "chart_graph": "", - "metadonnees": "", - "email": "", - "company": "", - "extent_method": "", - "id_com": "", - "id_conseil": "", - "extent": "", - "layers": "", - "coordsys_id": "", - "vector_format_id": "", - "raster_format_id": "", - "status": "", - "history": "", - "creation_date": "", - "requestor": "", - "ae": "", - "note": "", - "note_line": "", - "signed": "", - "accepted_by_cpa": "", - "identification_complete": "", - "definition_complete": "", - "comment": "", - "priority_id": "", - "status_name": "", - "tr_status_method": "", - "insert_button": "", - "return_list_button": "", - "statistique": "" - } - } - } - }, - "update": { - "name": "extraction_extraction_extraction-form", - "title": "EXTRACTION_EXTRACTION_EXTRACTION_TITLE", - "input_size": "xxs", - "nb_cols": 12, - "javascript": true, - "rows": [ - { - "fields": [ - { - "type": "label", - "name": "bo_id", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_BO_ID", - "required": false, - "nb_cols": 12, - "id": "bo_id_1_1" - } - ] - }, - { - "fields": [ - { - "type": "label", - "name": "status_name", - "nb_cols": 12, - "id": "Element_6_25_1" - }, - { - "type": "checkbox", - "name": "preco_tech", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_TECHNIQUE", - "required": false, - "nb_cols": 4, - "id": "checkbox_tech_2_1" - }, - { - "type": "checkbox", - "name": "chart_graph", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_CARTOGRAPHIQUE", - "required": false, - "nb_cols": 4, - "id": "checkbox_carto" - }, - { - "type": "checkbox", - "name": "metadonnees", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ISOGEO", - "required": false, - "nb_cols": 4, - "id": "checkbox_iso" - } - ] - }, - { - "fields": [ - { - "type": "text", - "name": "creation_date", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_CREATION_DATE", - "required": false, - "nb_cols": 12, - "id": "creation_date_4_1" - } - ] - }, - { - "fields": [ - { - "type": "email", - "name": "email", - "label": "FORM_EMAIL_USERS_USER", - "required": false, - "nb_cols": 4, - "id": "email_3_1", - "pattern": "^(([a-zA-Z]|[0-9])|([-]|[_]|[.]))+[@](([a-zA-Z]|[0-9])|([-]|[_]|[.])){2,63}[.](([a-zA-Z0-9]){2,63})+$" - }, - { - "type": "text", - "name": "company", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_COMPANY", - "required": true, - "nb_cols": 4, - "id": "company_8_1" - }, - { - "type": "text", - "name": "requestor", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_REQUESTOR", - "required": false, - "nb_cols": 4, - "id": "requestor_5_1" - } - ] - }, - { - "fields": [ - { - "type": "select", - "name": "extent_method", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_EXTENT_METHOD", - "required": true, - "nb_cols": 12, - "id": "extent_method_15_1", - "options": [ - "Commmunes|id_com", - "Conseils de Territoire|id_conseil", - "Etendue libre|extent" - ], - "id_from": "extent_method_15_1_from" - } - ] - }, - { - "fields": [ - { - "type": "list", - "name": "id_com", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ID_COM", - "required": false, - "nb_cols": 12, - "datasource": { - "datasource_id": "datasource_9", - "sort_order": "ASC", - "distinct": "true", - "label_key": "name", - "order_by": "name", - "id_key": "commune_id", - "attributs": "commune_id|name" - }, - "id": "id_com_22_1", - "id_from": "id_com_22_1_from", - "size": 10 - } - ] - }, - { - "fields": [ - { - "type": "list", - "name": "id_conseil", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ID_CONSEIL", - "required": false, - "nb_cols": 12, - "datasource": { - "datasource_id": "datasource_8", - "sort_order": "ASC", - "distinct": "true", - "label_key": "name", - "order_by": "name", - "id_key": "ct_id", - "attributs": "ct_id|name" - }, - "id": "id_conseil_23_1", - "id_from": "id_conseil_23_1_from", - "size": 10 - } - ] - }, - { - "fields": [ - { - "type": "map_vmap", - "name": "extent", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_EXTENT", - "required": false, - "nb_cols": 12, - "id": "extent_7_1", - "style": { - "height": "250px" - }, - "map_options": { - "proj": "EPSG:2154", - "type": "vmap", - "center": { - "extent": [ - 4510838297753.592, - 313452152357706.75, - 4510842604414.408, - 313452153911336.25 - ], - "coord": [ - 4510840451084, - 313452153134521.5 - ], - "scale": 23468294 - }, - "controls": { - "MP": true, - "ZO": true, - "SL": true, - "CP": true - }, - "layers": [], - "interactions": { - "multi_geometry": false, - "full_screen": true, - "RA": true, - "RO": true, - "ED": true, - "DP": false, - "DL": false, - "DPol": true, - "SE": true - }, - "draw_color": "rgba(54,184,255,0.6)", - "contour_color": "rgba(0,0,0,0.4)", - "contour_size": 2, - "circle_radius": 6, - "features": [], - "coord_accuracy": 8, - "tree": { - "name": "Tree", - "children": [ - { - "view": { - "center": [ - "902168", - "6269043" - ], - "zoom": 7, - "maxZoom": 28, - "minZoom": 0, - "projection": "EPSG:2154", - "extent": [ - 4510835482577.04, - 313452150322452.2, - 4510845419590.96, - 313452155946590.8 - ] - } - }, - { - "name": "extraction", - "children": [ - { - "name": "REF_ortho2011", - "layerType": "tilewms", - "url": "http://SCPA441.cpa.fr:8399/arcgis/services/REF_ortho2011/MapServer/WMSServer", - "index": -1, - "visible": true, - "opacity": 1, - "is_dynamic": false, - "is_filtered": false, - "version": "1.3.0", - "params": { - "LAYERS": "0", - "VERSION": "1.3.0", - "STYLES": "" - }, - "bo_queryable": false, - "layer_id": 1, - "select": true - }, - { - "name": "REF_CPA_LIMITE_COMMUNE", - "layerType": "tilewms", - "url": "http://SCPA441.cpa.fr:8399/arcgis/services/REF_CPA_LIMITE_COMMUNE/MapServer/WMSServer", - "index": -1, - "visible": true, - "opacity": 1, - "is_dynamic": false, - "is_filtered": false, - "version": "1.3.0", - "params": { - "LAYERS": "0,1", - "VERSION": "1.3.0", - "STYLES": "" - }, - "bo_queryable": false, - "layer_id": 2, - "select": true - } - ], - "visible": true - } - ] - } - } - } - ] - }, - { - "class": "extraction-treeview", - "fields": [ - { - "type": "treeview", - "name": "layers", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_LAYERS", - "required": false, - "nb_cols": 12, - "id": "layers_9_1", - "size": 20, - "options": { - "showBorder": false, - "levels": 0, - "showCheckbox": true, - "expandIcon": "glyphicon glyphicon-folder-close", - "collapseIcon": "glyphicon glyphicon-folder-open", - "highlightSelected": false, - "multiSelect": true, - "data": "getExtractionLayersTree()" - } - } - ] - }, - { - "fields": [ - { - "type": "treeview", - "name": "statistique", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_STATISTIQUE", - "required": false, - "pattern": "", - "nb_cols": 12, - "id": "statistique_9_1", - "options": { - "showBorder": false, - "levels": 0, - "showCheckbox": true, - "expandIcon": "glyphicon glyphicon-folder-close", - "collapseIcon": "glyphicon glyphicon-folder-open", - "highlightSelected": false, - "multiSelect": true, - "data": "getExtractionStatsTree()" - } - } - ] - }, - { - "fields": [ - { - "type": "file_wsdata", - "name": "ae", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_AE", - "required": false, - "nb_cols": 12, - "id": "ae_6_1" - } - ] - }, - { - "fields": [ - { - "type": "select", - "name": "coordsys_id", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_COORDSYS_ID", - "required": false, - "nb_cols": 4, - "id": "coordsys_id_11_1", - "datasource": { - "datasource_id": "datasource_1", - "sort_order": "ASC", - "distinct": "true", - "label_key": "coordsys", - "order_by": "coordsys", - "id_key": "coordsys_id", - "attributs": "coordsys_id|coordsys" - }, - "id_from": "coordsys_id_11_1_from" - }, - { - "type": "select", - "name": "vector_format_id", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_VECTOR_FORMAT_ID", - "required": false, - "nb_cols": 4, - "id": "vector_format_id_10_1", - "datasource": { - "datasource_id": "datasource_2", - "sort_order": "ASC", - "distinct": "true", - "label_key": "format", - "order_by": "format", - "id_key": "format_id", - "attributs": "format_id|format" - }, - "id_from": "vector_format_id_10_1_from" - }, - { - "type": "select", - "name": "raster_format_id", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_RASTER_FORMAT_ID", - "required": false, - "nb_cols": 4, - "id": "raster_format_id_14_1", - "datasource": { - "datasource_id": "datasource_3", - "sort_order": "ASC", - "distinct": "true", - "label_key": "format", - "order_by": "format", - "id_key": "format_id", - "attributs": "format_id|format" - }, - "id_from": "raster_format_id_14_1_from" - } - ] - }, - { - "fields": [ - { - "type": "text", - "name": "history", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_HISTORY", - "required": false, - "nb_cols": 12, - "id": "history_3_1" - } - ] - }, - { - "fields": [ - { - "type": "text", - "name": "note", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_NOTE", - "required": false, - "nb_cols": 12, - "id": "note_12_1" - } - ] - }, - { - "fields": [ - { - "type": "text", - "name": "note_line", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_NOTE_LINE", - "required": false, - "nb_cols": 12, - "id": "note_line_13_1" - } - ] - }, - { - "fields": [ - { - "type": "radio", - "options": { - "choices": [ - { - "label": "oui", - "value": true, - "$$hashKey": "object:2269" - }, - { - "label": "non", - "value": false, - "$$hashKey": "object:2270" - } - ] - }, - "name": "signed", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_SIGNED", - "required": false, - "nb_cols": 3, - "id": "signed_16_1" - }, - { - "type": "radio", - "options": { - "choices": [ - { - "label": "oui", - "value": true, - "$$hashKey": "object:2277" - }, - { - "label": "non", - "value": false, - "$$hashKey": "object:2278" - } - ] - }, - "name": "accepted_by_cpa", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ACCEPTED_BY_CPA", - "required": false, - "nb_cols": 3, - "id": "accepted_by_cpa_17_1" - }, - { - "type": "radio", - "options": { - "choices": [ - { - "label": "oui", - "value": true, - "$$hashKey": "object:2285" - }, - { - "label": "non", - "value": false, - "$$hashKey": "object:2286" - } - ] - }, - "name": "identification_complete", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_IDENTIFICATION_COMPLETE", - "required": false, - "nb_cols": 3, - "id": "identification_complete_18_1" - }, - { - "type": "radio", - "options": { - "choices": [ - { - "label": "oui", - "value": true, - "$$hashKey": "object:2293" - }, - { - "label": "non", - "value": false, - "$$hashKey": "object:2294" - } - ] - }, - "name": "definition_complete", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_DEFINITION_COMPLETE", - "required": false, - "nb_cols": 3, - "id": "definition_complete_19_1" - } - ] - }, - { - "fields": [ - { - "type": "text", - "name": "comment", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_COMMENT", - "required": false, - "nb_cols": 12, - "id": "comment_20_1" - } - ] - }, - { - "fields": [ - { - "type": "select", - "name": "priority_id", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_PRIORITY_ID", - "required": false, - "nb_cols": 12, - "id": "priority_id_21_1", - "options": [ - "Heures Pleines|1", - "Heures creuses|0" - ], - "id_from": "priority_id_21_1_from" - } - ] - }, - { - "fields": [ - { - "type": "file_wsdata", - "name": "input_deposit", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_INPUT_DEPOSIT", - "required": false, - "pattern": "", - "nb_cols": 12, - "id": "Element_6_19_1" - } - ] - }, - { - "class": "wab-method-button", - "fields": [ - { - "type": "button", - "class": "btn-ungroup btn-group-sm", - "nb_cols": 1, - "name": "update_button", - "id": "update_button", - "buttons": [ - { - "type": "submit", - "name": "form_submit", - "label": "FORM_UPDATE", - "class": "btn-primary" - } - ] - }, - { - "type": "button", - "name": "return_list_button", - "nb_cols": 1, - "id": "return_list_button", - "class": "btn-ungroup btn-group-sm", - "buttons": [ - { - "type": "button", - "name": "return_list", - "label": "FORM_RETURN_LIST", - "class": "btn-primary", - "event": "setMode(\"search\")" - } - ] - }, - { - "type": "button", - "name": "Element_2", - "nb_cols": 1, - "id": "Element_2_20_1", - "class": "btn-ungroup btn-group-sm", - "buttons": [ - { - "type": "submit", - "name": "form_submit", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_DEPOSIT", - "class": "btn-primary", - "event": "callBoMethod('trDeposer')" - } - ] - }, - { - "type": "button", - "name": "Element_0", - "nb_cols": 1, - "id": "Element_0_25_2", - "class": "btn-ungroup btn-group-sm", - "buttons": [ - { - "type": "submit", - "name": "form_submit", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ALLOW_EXTRACTION", - "class": "btn-primary", - "event": "callBoMethod('trAutoriser')" - } - ] - }, - { - "type": "button", - "name": "Element_1", - "nb_cols": 1, - "id": "Element_1_25_3", - "class": "btn-ungroup btn-group-sm", - "buttons": [ - { - "type": "submit", - "name": "form_submit", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ASK_AE", - "class": "btn-primary", - "event": "callBoMethod('trDemander')", - "disabled": false - } - ] - }, - { - "type": "button", - "name": "Element_3", - "nb_cols": 1, - "id": "Element_3_25_5", - "class": "btn-ungroup btn-group-sm", - "buttons": [ - { - "type": "submit", - "name": "form_submit", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_CREATE", - "class": "btn-primary", - "event": "callBoMethod('trNouveau')" - } - ] - }, - { - "type": "button", - "name": "Element_4", - "nb_cols": 1, - "id": "Element_4_25_6", - "class": "btn-ungroup btn-group-sm", - "buttons": [ - { - "type": "submit", - "name": "form_submit", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_REJECT_EXTRACTION", - "class": "btn-primary", - "event": "callBoMethod('trRefuser')" - } - ] - }, - { - "type": "button", - "name": "Element_5", - "nb_cols": 1, - "id": "Element_5_25_7", - "class": "btn-ungroup btn-group-sm", - "buttons": [ - { - "type": "submit", - "name": "form_submit", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_RELOAD_AE", - "class": "btn-primary", - "event": "callBoMethod('trResoumettre')" - } - ] - }, - { - "type": "button", - "name": "Element_7", - "nb_cols": 1, - "id": "Element_7_25_9", - "class": "btn-ungroup btn-group-sm", - "buttons": [ - { - "type": "submit", - "name": "form_submit", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_SEND_AE", - "class": "btn-primary", - "event": "callBoMethod('trSoumettre')" - } - ] - }, - { - "type": "button", - "name": "Element_8", - "nb_cols": 1, - "id": "Element_8_25_10", - "class": "btn-ungroup btn-group-sm", - "buttons": [ - { - "type": "submit", - "name": "form_submit", - "label": "EXTRACTION_EXTRACTION_EXTRACTION_FORM_TERMINATE", - "class": "btn-primary", - "event": "callBoMethod('trTerminer')" - } - ] - } - ] - } - ], - "initEvent": "initExtractionExtractionForm()", - "event": "sendSimpleForm()", - "afterEvent": "editSectionForm()", - "tabs": { - "position": "top", - "list": [ - { - "label": "Tab 0", - "elements": [ - "bo_id", - "history", - "creation_date", - "requestor", - "ae", - "extent", - "company", - "layers", - "vector_format_id", - "coordsys_id", - "note", - "note_line", - "raster_format_id", - "extent_method", - "signed", - "accepted_by_cpa", - "identification_complete", - "definition_complete", - "comment", - "priority_id", - "id_com", - "id_conseil", - "update_button", - "status_name", - "Element_3", - "Element_4", - "Element_5", - "Element_7", - "Element_8", - "status_name", - "return_list_button", - "preco_tech", - "chart_graph", - "metadonnees", - "statistique", - "Element_2", - "input_deposit" - ] - } - ] - }, - "wab": { - "START": { - "controleur": { - "email": "", - "company": "", - "layers": "", - "coordsys_id": "", - "vector_format_id": "", - "raster_format_id": "", - "extent_method": "", - "id_com": "", - "id_conseil": "", - "extent": "", - "history": "", - "creation_date": "", - "requestor": "", - "ae": "", - "note": "", - "note_line": "", - "signed": "", - "accepted_by_cpa": "", - "identification_complete": "", - "definition_complete": "", - "comment": "", - "priority_id": "", - "bo_id": "", - "status_name": "", - "update_button": "", - "Element_3": "", - "Element_4": "", - "Element_5": "", - "Element_7": "", - "Element_8": "", - "return_list_button": "rw", - "Element_1": "", - "chart_graph": "", - "metadonnees": "", - "preco_tech": "", - "Element_0": "", - "statistique": "", - "Element_2": "", - "input_deposit": "" - }, - "demandeur": { - "email": "rw", - "company": "rw", - "layers": "rw", - "coordsys_id": "rw", - "vector_format_id": "rw", - "raster_format_id": "rw", - "extent_method": "rw", - "id_com": "rw", - "id_conseil": "rw", - "extent": "rw", - "history": "", - "creation_date": "", - "requestor": "", - "ae": "", - "note": "", - "note_line": "", - "signed": "", - "accepted_by_cpa": "", - "identification_complete": "", - "definition_complete": "", - "comment": "", - "priority_id": "", - "bo_id": "", - "status_name": "", - "update_button": "rw", - "Element_3": "", - "Element_4": "", - "Element_5": "", - "Element_7": "", - "Element_8": "", - "return_list_button": "rw", - "Element_1": "", - "chart_graph": "", - "metadonnees": "", - "preco_tech": "", - "Element_0": "", - "statistique": "rw", - "Element_2": "", - "input_deposit": "" - } - }, - "Nouveau": { - "controleur": { - "email": "", - "company": "", - "layers": "", - "coordsys_id": "", - "vector_format_id": "", - "raster_format_id": "", - "extent_method": "", - "id_com": "", - "id_conseil": "", - "extent": "", - "history": "", - "creation_date": "", - "requestor": "", - "ae": "", - "note": "", - "note_line": "", - "signed": "", - "accepted_by_cpa": "", - "identification_complete": "", - "definition_complete": "", - "comment": "", - "priority_id": "", - "bo_id": "", - "status_name": "", - "update_button": "", - "Element_3": "", - "Element_4": "", - "Element_5": "", - "Element_7": "", - "Element_8": "", - "return_list_button": "rw", - "Element_1": "", - "chart_graph": "", - "metadonnees": "", - "preco_tech": "", - "Element_0": "", - "statistique": "", - "Element_2": "", - "input_deposit": "" - }, - "demandeur": { - "email": "rw", - "company": "rw", - "layers": "rw", - "coordsys_id": "rw", - "vector_format_id": "rw", - "raster_format_id": "rw", - "extent_method": "rw", - "id_com": "rw", - "id_conseil": "rw", - "extent": "rw", - "history": "", - "creation_date": "r", - "requestor": "rw", - "ae": "", - "note": "", - "note_line": "", - "signed": "", - "accepted_by_cpa": "", - "identification_complete": "", - "definition_complete": "", - "comment": "", - "priority_id": "", - "bo_id": "r", - "status_name": "", - "update_button": "rw", - "Element_3": "", - "Element_4": "", - "Element_5": "", - "Element_7": "", - "Element_8": "", - "return_list_button": "rw", - "Element_1": "rw", - "chart_graph": "rw", - "metadonnees": "rw", - "preco_tech": "rw", - "Element_0": "", - "statistique": "rw", - "Element_2": "", - "input_deposit": "" - } - }, - "AE Demandé": { - "controleur": { - "email": "", - "company": "", - "layers": "", - "coordsys_id": "", - "vector_format_id": "", - "raster_format_id": "", - "extent_method": "", - "id_com": "", - "id_conseil": "", - "extent": "", - "history": "", - "creation_date": "", - "requestor": "", - "ae": "", - "note": "", - "note_line": "", - "signed": "", - "accepted_by_cpa": "", - "identification_complete": "", - "definition_complete": "", - "comment": "", - "priority_id": "", - "bo_id": "", - "status_name": "", - "update_button": "", - "Element_3": "", - "Element_4": "", - "Element_5": "", - "Element_7": "", - "Element_8": "", - "return_list_button": "rw", - "Element_1": "", - "chart_graph": "", - "metadonnees": "", - "preco_tech": "", - "Element_0": "", - "statistique": "", - "Element_2": "", - "input_deposit": "" - }, - "demandeur": { - "email": "r", - "company": "r", - "layers": "r", - "coordsys_id": "r", - "vector_format_id": "r", - "raster_format_id": "r", - "extent_method": "r", - "id_com": "r", - "id_conseil": "r", - "extent": "r", - "history": "", - "creation_date": "r", - "requestor": "r", - "ae": "", - "note": "", - "note_line": "", - "signed": "", - "accepted_by_cpa": "", - "identification_complete": "", - "definition_complete": "", - "comment": "", - "priority_id": "", - "bo_id": "r", - "status_name": "", - "update_button": "rw", - "Element_3": "", - "Element_4": "", - "Element_5": "", - "Element_7": "", - "Element_8": "", - "return_list_button": "rw", - "Element_1": "", - "chart_graph": "r", - "metadonnees": "r", - "preco_tech": "r", - "Element_0": "", - "statistique": "r", - "Element_2": "", - "input_deposit": "" - } - }, - "AE Généré": { - "controleur": { - "email": "", - "company": "", - "layers": "", - "coordsys_id": "", - "vector_format_id": "", - "raster_format_id": "", - "extent_method": "", - "id_com": "", - "id_conseil": "", - "extent": "", - "history": "", - "creation_date": "", - "requestor": "", - "ae": "", - "note": "", - "note_line": "", - "signed": "", - "accepted_by_cpa": "", - "identification_complete": "", - "definition_complete": "", - "comment": "", - "priority_id": "", - "bo_id": "", - "status_name": "", - "update_button": "", - "Element_3": "", - "Element_4": "", - "Element_5": "", - "Element_7": "", - "Element_8": "", - "return_list_button": "rw", - "Element_1": "", - "chart_graph": "", - "metadonnees": "", - "preco_tech": "", - "Element_0": "", - "statistique": "", - "Element_2": "", - "input_deposit": "" - }, - "demandeur": { - "email": "r", - "company": "r", - "layers": "r", - "coordsys_id": "r", - "vector_format_id": "r", - "raster_format_id": "r", - "extent_method": "r", - "id_com": "r", - "id_conseil": "r", - "extent": "r", - "history": "", - "creation_date": "r", - "requestor": "r", - "ae": "rw", - "note": "", - "note_line": "", - "signed": "", - "accepted_by_cpa": "", - "identification_complete": "", - "definition_complete": "", - "comment": "", - "priority_id": "", - "bo_id": "r", - "status_name": "", - "update_button": "rw", - "Element_3": "", - "Element_4": "", - "Element_5": "", - "Element_7": "rw", - "Element_8": "", - "return_list_button": "rw", - "Element_1": "", - "chart_graph": "r", - "metadonnees": "r", - "preco_tech": "r", - "Element_0": "", - "statistique": "r", - "Element_2": "", - "input_deposit": "" - } - }, - "AE Soumis": { - "controleur": { - "email": "r", - "company": "r", - "layers": "r", - "coordsys_id": "r", - "vector_format_id": "r", - "raster_format_id": "r", - "extent_method": "r", - "id_com": "r", - "id_conseil": "r", - "extent": "r", - "history": "r", - "creation_date": "r", - "requestor": "r", - "ae": "r", - "note": "", - "note_line": "", - "signed": "rw", - "accepted_by_cpa": "rw", - "identification_complete": "rw", - "definition_complete": "rw", - "comment": "rw", - "priority_id": "r", - "bo_id": "r", - "status_name": "", - "update_button": "rw", - "Element_3": "", - "Element_4": "rw", - "Element_5": "rw", - "Element_7": "", - "Element_8": "", - "return_list_button": "rw", - "Element_1": "", - "chart_graph": "r", - "metadonnees": "r", - "preco_tech": "r", - "Element_0": "rw", - "statistique": "r", - "Element_2": "", - "input_deposit": "" - }, - "demandeur": { - "email": "r", - "company": "r", - "layers": "r", - "coordsys_id": "r", - "vector_format_id": "r", - "raster_format_id": "r", - "extent_method": "r", - "id_com": "r", - "id_conseil": "r", - "extent": "r", - "history": "", - "creation_date": "r", - "requestor": "r", - "ae": "r", - "note": "", - "note_line": "", - "signed": "", - "accepted_by_cpa": "", - "identification_complete": "", - "definition_complete": "", - "comment": "", - "priority_id": "r", - "bo_id": "r", - "status_name": "", - "update_button": "rw", - "Element_3": "", - "Element_4": "", - "Element_5": "", - "Element_7": "", - "Element_8": "", - "return_list_button": "rw", - "Element_1": "", - "chart_graph": "r", - "metadonnees": "r", - "preco_tech": "", - "Element_0": "", - "statistique": "r", - "Element_2": "", - "input_deposit": "" - } - }, - "Autorisée": { - "controleur": { - "email": "r", - "company": "r", - "layers": "r", - "coordsys_id": "r", - "vector_format_id": "r", - "raster_format_id": "r", - "extent_method": "r", - "id_com": "r", - "id_conseil": "r", - "extent": "r", - "history": "r", - "creation_date": "r", - "requestor": "r", - "ae": "r", - "note": "", - "note_line": "", - "signed": "r", - "accepted_by_cpa": "r", - "identification_complete": "r", - "definition_complete": "r", - "comment": "r", - "priority_id": "rw", - "bo_id": "r", - "status_name": "", - "update_button": "", - "Element_3": "", - "Element_4": "", - "Element_5": "", - "Element_7": "", - "Element_8": "", - "return_list_button": "rw", - "Element_1": "", - "chart_graph": "r", - "metadonnees": "r", - "preco_tech": "r", - "Element_0": "", - "statistique": "r", - "Element_2": "", - "input_deposit": "" - }, - "demandeur": { - "email": "", - "company": "", - "layers": "", - "coordsys_id": "", - "vector_format_id": "", - "raster_format_id": "", - "extent_method": "", - "id_com": "", - "id_conseil": "", - "extent": "", - "history": "", - "creation_date": "", - "requestor": "", - "ae": "", - "note": "", - "note_line": "", - "signed": "", - "accepted_by_cpa": "", - "identification_complete": "", - "definition_complete": "", - "comment": "", - "priority_id": "", - "bo_id": "", - "status_name": "", - "update_button": "", - "Element_3": "", - "Element_4": "", - "Element_5": "", - "Element_7": "", - "Element_8": "", - "return_list_button": "rw", - "Element_1": "", - "chart_graph": "", - "metadonnees": "", - "preco_tech": "", - "Element_0": "", - "statistique": "", - "Element_2": "", - "input_deposit": "" - } - }, - "Refusée": { - "controleur": { - "email": "", - "company": "r", - "layers": "r", - "coordsys_id": "r", - "vector_format_id": "r", - "raster_format_id": "r", - "extent_method": "r", - "id_com": "r", - "id_conseil": "r", - "extent": "r", - "history": "r", - "creation_date": "r", - "requestor": "r", - "ae": "", - "note": "", - "note_line": "", - "signed": "r", - "accepted_by_cpa": "r", - "identification_complete": "r", - "definition_complete": "r", - "comment": "r", - "priority_id": "r", - "bo_id": "r", - "status_name": "", - "update_button": "", - "Element_3": "", - "Element_4": "", - "Element_5": "", - "Element_7": "", - "Element_8": "", - "return_list_button": "rw", - "Element_1": "", - "chart_graph": "r", - "metadonnees": "r", - "preco_tech": "r", - "Element_0": "", - "statistique": "", - "Element_2": "", - "input_deposit": "r" - }, - "demandeur": { - "email": "r", - "company": "r", - "layers": "r", - "coordsys_id": "r", - "vector_format_id": "r", - "raster_format_id": "r", - "extent_method": "r", - "id_com": "r", - "id_conseil": "r", - "extent": "r", - "history": "", - "creation_date": "r", - "requestor": "r", - "ae": "rw", - "note": "", - "note_line": "", - "signed": "r", - "accepted_by_cpa": "r", - "identification_complete": "r", - "definition_complete": "r", - "comment": "r", - "priority_id": "r", - "bo_id": "r", - "status_name": "", - "update_button": "rw", - "Element_3": "", - "Element_4": "", - "Element_5": "rw", - "Element_7": "", - "Element_8": "", - "return_list_button": "rw", - "Element_1": "", - "chart_graph": "", - "metadonnees": "", - "preco_tech": "", - "Element_0": "", - "statistique": "r", - "Element_2": "", - "input_deposit": "r" - } - }, - "Fichier invalidé": { - "controleur": { - "bo_id": "", - "preco_tech": "", - "chart_graph": "", - "metadonnees": "", - "creation_date": "", - "email": "", - "company": "", - "requestor": "", - "extent_method": "", - "id_com": "", - "id_conseil": "", - "extent": "", - "layers": "", - "ae": "", - "coordsys_id": "", - "vector_format_id": "", - "raster_format_id": "", - "history": "", - "note": "", - "note_line": "", - "signed": "", - "accepted_by_cpa": "", - "identification_complete": "", - "definition_complete": "", - "comment": "", - "priority_id": "", - "status_name": "", - "update_button": "", - "return_list_button": "", - "Element_1": "", - "Element_3": "", - "Element_4": "", - "Element_5": "", - "Element_7": "", - "Element_8": "", - "Element_0": "", - "statistique": "", - "Element_2": "", - "input_deposit": "r" - }, - "demandeur": { - "bo_id": "", - "preco_tech": "", - "chart_graph": "", - "metadonnees": "", - "creation_date": "", - "email": "", - "company": "", - "requestor": "", - "extent_method": "", - "id_com": "", - "id_conseil": "", - "extent": "", - "layers": "", - "ae": "", - "coordsys_id": "", - "vector_format_id": "", - "raster_format_id": "", - "history": "", - "note": "", - "note_line": "", - "signed": "", - "accepted_by_cpa": "", - "identification_complete": "", - "definition_complete": "", - "comment": "", - "priority_id": "", - "status_name": "", - "update_button": "", - "return_list_button": "", - "Element_1": "", - "Element_3": "", - "Element_4": "", - "Element_5": "", - "Element_7": "", - "Element_8": "", - "Element_0": "", - "statistique": "", - "Element_2": "", - "input_deposit": "r" - } - }, - "Fichier déposé": { - "controleur": { - "bo_id": "", - "preco_tech": "", - "chart_graph": "", - "metadonnees": "", - "creation_date": "", - "email": "", - "company": "", - "requestor": "", - "extent_method": "", - "id_com": "", - "id_conseil": "", - "extent": "", - "layers": "", - "ae": "", - "coordsys_id": "", - "vector_format_id": "", - "raster_format_id": "", - "history": "", - "note": "", - "note_line": "", - "signed": "", - "accepted_by_cpa": "", - "identification_complete": "", - "definition_complete": "", - "comment": "", - "priority_id": "", - "status_name": "", - "update_button": "", - "return_list_button": "", - "Element_1": "", - "Element_3": "", - "Element_4": "", - "Element_5": "", - "Element_7": "", - "Element_8": "", - "Element_0": "", - "statistique": "", - "Element_2": "", - "input_deposit": "r" - }, - "demandeur": { - "bo_id": "r", - "preco_tech": "r", - "chart_graph": "r", - "metadonnees": "r", - "creation_date": "r", - "email": "r", - "company": "r", - "requestor": "r", - "extent_method": "r", - "id_com": "r", - "id_conseil": "r", - "extent": "r", - "layers": "r", - "ae": "r", - "coordsys_id": "r", - "vector_format_id": "r", - "raster_format_id": "r", - "history": "", - "note": "", - "note_line": "", - "signed": "", - "accepted_by_cpa": "", - "identification_complete": "", - "definition_complete": "", - "comment": "", - "priority_id": "", - "status_name": "", - "update_button": "", - "return_list_button": "rw", - "Element_1": "", - "Element_3": "", - "Element_4": "", - "Element_5": "", - "Element_7": "", - "Element_8": "", - "Element_0": "", - "statistique": "r", - "Element_2": "", - "input_deposit": "r" - } - }, - "Fichier accepté": { - "controleur": { - "bo_id": "", - "preco_tech": "", - "chart_graph": "", - "metadonnees": "", - "creation_date": "", - "email": "", - "company": "", - "requestor": "", - "extent_method": "", - "id_com": "", - "id_conseil": "", - "extent": "", - "layers": "", - "ae": "", - "coordsys_id": "", - "vector_format_id": "", - "raster_format_id": "", - "history": "", - "note": "", - "note_line": "", - "signed": "", - "accepted_by_cpa": "", - "identification_complete": "", - "definition_complete": "", - "comment": "", - "priority_id": "", - "status_name": "", - "update_button": "", - "return_list_button": "", - "Element_1": "", - "Element_3": "", - "Element_4": "", - "Element_5": "", - "Element_7": "", - "Element_8": "", - "Element_0": "", - "statistique": "", - "Element_2": "", - "input_deposit": "r" - }, - "demandeur": { - "bo_id": "", - "preco_tech": "", - "chart_graph": "", - "metadonnees": "", - "creation_date": "", - "email": "", - "company": "", - "requestor": "", - "extent_method": "", - "id_com": "", - "id_conseil": "", - "extent": "", - "layers": "", - "ae": "", - "coordsys_id": "", - "vector_format_id": "", - "raster_format_id": "", - "history": "", - "note": "", - "note_line": "", - "signed": "", - "accepted_by_cpa": "", - "identification_complete": "", - "definition_complete": "", - "comment": "", - "priority_id": "", - "status_name": "", - "update_button": "", - "return_list_button": "", - "Element_1": "", - "Element_3": "", - "Element_4": "", - "Element_5": "", - "Element_7": "", - "Element_8": "", - "Element_0": "", - "statistique": "", - "Element_2": "", - "input_deposit": "r" - } - }, - "Dépôt terminé": { - "controleur": { - "bo_id": "", - "preco_tech": "", - "chart_graph": "", - "metadonnees": "", - "creation_date": "", - "email": "", - "company": "", - "requestor": "", - "extent_method": "", - "id_com": "", - "id_conseil": "", - "extent": "", - "layers": "", - "ae": "", - "coordsys_id": "", - "vector_format_id": "", - "raster_format_id": "", - "history": "", - "note": "", - "note_line": "", - "signed": "", - "accepted_by_cpa": "", - "identification_complete": "", - "definition_complete": "", - "comment": "", - "priority_id": "", - "status_name": "", - "update_button": "", - "return_list_button": "", - "Element_1": "", - "Element_3": "", - "Element_4": "", - "Element_5": "", - "Element_7": "", - "Element_8": "", - "Element_0": "", - "statistique": "", - "Element_2": "", - "input_deposit": "r" - }, - "demandeur": { - "bo_id": "", - "preco_tech": "", - "chart_graph": "", - "metadonnees": "", - "creation_date": "", - "email": "", - "company": "", - "requestor": "", - "extent_method": "", - "id_com": "", - "id_conseil": "", - "extent": "", - "layers": "", - "ae": "", - "coordsys_id": "", - "vector_format_id": "", - "raster_format_id": "", - "history": "", - "note": "", - "note_line": "", - "signed": "", - "accepted_by_cpa": "", - "identification_complete": "", - "definition_complete": "", - "comment": "", - "priority_id": "", - "status_name": "", - "update_button": "", - "return_list_button": "", - "Element_1": "", - "Element_3": "", - "Element_4": "", - "Element_5": "", - "Element_7": "", - "Element_8": "", - "Element_0": "", - "statistique": "", - "Element_2": "", - "input_deposit": "r" - } - }, - "Extraction terminée": { - "controleur": { - "bo_id": "r", - "preco_tech": "r", - "chart_graph": "r", - "metadonnees": "r", - "creation_date": "r", - "email": "r", - "company": "r", - "requestor": "r", - "extent_method": "r", - "id_com": "r", - "id_conseil": "r", - "extent": "r", - "layers": "r", - "ae": "r", - "coordsys_id": "r", - "vector_format_id": "r", - "raster_format_id": "r", - "history": "r", - "note": "", - "note_line": "", - "signed": "r", - "accepted_by_cpa": "r", - "identification_complete": "r", - "definition_complete": "r", - "comment": "r", - "priority_id": "r", - "status_name": "", - "update_button": "", - "return_list_button": "rw", - "Element_1": "", - "Element_3": "", - "Element_4": "", - "Element_5": "", - "Element_7": "", - "Element_8": "", - "Element_0": "", - "statistique": "r", - "Element_2": "", - "input_deposit": "r" - }, - "demandeur": { - "bo_id": "r", - "preco_tech": "r", - "chart_graph": "r", - "metadonnees": "r", - "creation_date": "r", - "email": "r", - "company": "r", - "requestor": "r", - "extent_method": "r", - "id_com": "r", - "id_conseil": "r", - "extent": "r", - "layers": "r", - "ae": "r", - "coordsys_id": "r", - "vector_format_id": "r", - "raster_format_id": "r", - "history": "", - "note": "", - "note_line": "", - "signed": "", - "accepted_by_cpa": "", - "identification_complete": "", - "definition_complete": "", - "comment": "", - "priority_id": "", - "status_name": "", - "update_button": "", - "return_list_button": "rw", - "Element_1": "", - "Element_3": "", - "Element_4": "", - "Element_5": "", - "Element_7": "", - "Element_8": "", - "Element_0": "", - "statistique": "r", - "Element_2": "rw", - "input_deposit": "rw" - } - } - } - }, - "datasources": { - "datasource_1": { - "type": "web_service", - "dataType": "tableValue", - "name": "datasource_coordsys", - "description": "", - "parameters": { - "schema": "s_extraction", - "table": "rt_coordsys" - }, - "ressource_id": "vitis/genericquerys", - "id": "datasource_1" - }, - "datasource_2": { - "type": "web_service", - "dataType": "tableValue", - "name": "datasource_vector_format", - "description": "", - "parameters": { - "schema": "s_extraction", - "table": "rt_format", - "filter": { - "use_for_vector": true - } - }, - "ressource_id": "vitis/genericquerys", - "id": "datasource_2" - }, - "datasource_3": { - "type": "web_service", - "dataType": "tableValue", - "name": "datasource_raster_format", - "description": "", - "parameters": { - "schema": "s_extraction", - "table": "rt_format", - "filter": { - "use_for_raster": true - } - }, - "ressource_id": "vitis/genericquerys", - "id": "datasource_3" - }, - "datasource_4": { - "type": "web_service", - "dataType": "externalDatabase", - "name": "datasource_commune", - "description": "", - "parameters": { - "server": "scpa7717", - "port": "5432", - "sgbd": "pgsql", - "login": "sigl", - "password": "sigl28sig", - "database": "sig", - "schema": "cad93", - "table": "commune" - }, - "ressource_id": "vitis/genericquerys", - "id": "datasource_4" - }, - "datasource_5": { - "type": "web_service", - "dataType": "externalDatabase", - "name": "datasource_commune", - "description": "", - "parameters": { - "server": "scpa7717", - "port": "5432", - "sgbd": "pgsql", - "login": "sigl", - "password": "sigl28sig", - "database": "sig", - "schema": "ref93", - "table": "ref_amp_lim_ct" - }, - "ressource_id": "vitis/genericquerys", - "id": "datasource_5" - }, - "datasource_6": { - "type": "web_service", - "dataType": "externalDatabase", - "name": "datasource_ct", - "description": "", - "parameters": { - "filter": { - "relation": "AND", - "operators": [] - }, - "server": "scpa7717", - "port": "5432", - "sgbd": "pgsql", - "login": "sigl", - "password": "sigl28sig", - "database": "sig", - "schema": "ref93", - "table": "ct" - }, - "ressource_id": "vitis/genericquerys/ct", - "id": "datasource_6" - }, - "datasource_7": { - "type": "web_service", - "dataType": "externalDatabase", - "name": "datasource_com", - "description": "", - "parameters": { - "filter": { - "relation": "AND", - "operators": [] - }, - "server": "GEWURZTRAMINER", - "port": "5432", - "sgbd": "pgsql", - "login": "postgres", - "password": "postgres", - "database": "vitis_gtf", - "schema": "s_extraction", - "table": "commune" - }, - "ressource_id": "vitis/genericquerys/commune", - "id": "datasource_7" - }, - "datasource_8": { - "type": "web_service", - "dataType": "tableValue", - "name": "datasource_8", - "description": "", - "parameters": { - "filter": { - "relation": "AND", - "operators": [] - }, - "schema": "s_extraction", - "table": "ct" - }, - "ressource_id": "vitis/genericquerys", - "id": "datasource_8" - }, - "datasource_9": { - "type": "web_service", - "dataType": "tableValue", - "name": "datasource_9", - "description": "", - "parameters": { - "filter": { - "relation": "AND", - "operators": [] - }, - "schema": "s_extraction", - "table": "commune" - }, - "ressource_id": "vitis/genericquerys", - "id": "datasource_9" - }, - "datasource_10": { - "type": "object", - "dataType": "text", - "name": "datasource_format", - "description": "", - "options": [ - "Vecteur|vector", - "Raster|raster" - ], - "id": "datasource_10" - } - } -} \ No newline at end of file diff --git a/src/module_extraction/module/forms/extraction_depot/extraction_depot_extraction_extraction_depot.js b/src/module_extraction/module/forms/extraction_depot/extraction_depot_extraction_extraction_depot.js deleted file mode 100755 index b0b587e3..00000000 --- a/src/module_extraction/module/forms/extraction_depot/extraction_depot_extraction_extraction_depot.js +++ /dev/null @@ -1,253 +0,0 @@ -/* global angular, goog, vitisApp, bootbox */ - -//bloque les delete du destructeur à éviter -//'use strict'; - -console.info("Generateur_wab_generator_1 loaded --> your functions are ready"); -/*********************************************************************************** - Signaletique_Recap_0 Javascript - ***********************************************************************************/ - -var oFormRequired = { - "sUrl": "", - "scope_": {}, - "toDestructor": [] -}; -/** - * constructor_form - * Fonction appelé à l'initialisation du formulaire si dans la structure json javascript vaut "true" - * @param {type} scope - * @param {type} s_url - * @returns {undefined} - */ -var constructor_form = function (scope, s_url) { - ////////////////////////////////////////////////////////// - //Ne pas toucher - console.log("Constructor"); - - oFormRequired.sUrl = s_url; - oFormRequired.scope_ = scope; - //console.log(scope); - ////////////////////////////////////////////////////////// - // Permet de recharge le javascript d'une section à une autre - var envSrvc = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(["envSrvc"]); - var formSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["formSrvc"]); - var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]); - - /*oFormRequired.toDestructor.push(oFormRequired.scope_.$watch("oFormValues." + oFormRequired.scope_.sFormDefinitionName + ".btn_refresh_treeview", function (value) { - console.log("DJFHVHJCHSJCJH"); - }*/ - - /** - * loadTreeview function. - * Crée le treeview des fichiers du projet fme. - **/ - scope["loadTreeviewDepot"] = function() { - var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]); - // - $log.info("loadTreeviewDepot"); - - // Charge l'arborescence des logs. - ajaxRequest({ - "method": "GET", - "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/extraction/extraction_depots/Tree", - "scope": scope, - "success": function(response) { - if (response["data"]["status"] == 1) { - var aNodes = []; - data = response["data"]["tree"]; - scope["aSelectedWorkspaceFile"] = []; - scope["aTreeviewLogs"] = data; - // Crée l'arborescence dans l'élément. - - for (var i in response["data"]["content"]) { - var aNode = {"text": response["data"]["content"][i]["filename"].split("/").pop(), "nodes": []} - for (var j in response["data"]["content"][i]["content"]) { - aNode["nodes"].push({"text": response["data"]["content"][i]["content"][j]["filename"].split("/").pop(), "tags": response["data"]["content"][i]["content"][j]["lastModification"].split(),}); - } - aNodes.push(aNode); - } - - $("#Element_0_2_1_treeview")["treeview"]({ - "showBorder": false, - "expandIcon": "glyphicon glyphicon-folder-close", - "collapseIcon": "glyphicon glyphicon-folder-open", - "highlightSelected": true, - "multiSelect": false, - "showTags": true, - "data": aNodes - }); - } - } - }); - }; - - scope["deleteFileDepot"] = function () { - var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]); - // - $log.info("deleteFileDepot"); - - var aSelectedNode = $("#Element_0_2_1_treeview")["treeview"]('getSelected') - - if (aSelectedNode.length > 0) - { - var aNodeParent = $("#Element_0_2_1_treeview")["treeview"]('getNode', aSelectedNode[0]["parentId"]); - ajaxRequest({ - "method": "DELETES", - "params": { - "file_name": aNodeParent["text"] + "/" + aSelectedNode[0]["text"] - }, - "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/extraction/extraction_depots", - "scope": scope, - "success": function(response) { - if (response["data"]["status"] == 1) { - } - } - }); - scope["loadTreeviewDepot"](); - } - else - { - var sErrorMessage = "EXTRACTION_DEPOT_DELETE_SELECT_A_FILE"; - var oOptions = { - "className": "modal-danger", - "message": sErrorMessage - }; - //$('#myModal').modal('toggle'); - scope.$root["modalWindow"]("dialog", "EXTRACTION_DEPORT_DELETE_NO_SELECTED", oOptions); - //$('#myModal').modal('hide'); - } - - } - scope["loadTreeviewDepot"](); - - scope["downloadFileDepot"] = function () { - var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]); - // - $log.info("downloadFileDepot"); - - var aSelectedNode = $("#Element_0_2_1_treeview")["treeview"]('getSelected'); - var sFileName = aSelectedNode[0]["text"]; - var aNodeParent = $("#Element_0_2_1_treeview")["treeview"]('getNode', aSelectedNode[0]["parentId"]); - if (aSelectedNode[0]["parentId"] == "") - { - if (sFileName != "") - { - ajaxRequest({ - "method": "GET", - "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/extraction/extraction_depots/File", - "scope": scope, - "params": { - "file_name": aNodeParent["text"] + "/" + aSelectedNode[0]["text"] - }, - "responseType": 'blob', - "success": function(response) { - if (typeof(window.navigator.msSaveOrOpenBlob) == "undefined") { - // Crée un lien et simule un click dessus. - var link = document.createElement('a'); - link.href = window.URL.createObjectURL(response["data"]); - link.download = sFileName; - link.style.display = 'none'; - document.body.appendChild(link); - link.click(); - document.body.removeChild(link); - } - else { - // Pour Edge et IE. - window.navigator.msSaveOrOpenBlob(response["data"], sFileName); - } - } - }); - } - } - } - //var iMaxUploadFileSize = parseInt(propertiesSrvc["max_upload_file_size"]); - - /** - * beforeProjectDirectory function. - * Traitement avant l'envoi du formulaire de la section "Répertoire Projet" (publication > Projet FME). - */ - angular.element(vitisApp.appMainDrtv).scope()["beforeDepositDirectory"] = function () { - // Injection des services. - var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]); - var $q = angular.element(vitisApp.appHtmlFormDrtv).injector().get(["$q"]); - var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]); - var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]); - // - $log.info("beforeDepositDirectory"); - envSrvc.sMode = "update"; - var scope = this; - var deferred = $q.defer(); - var promise = deferred.promise; - // - var oFile = envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["control_file"]; - var iMaxUploadFileSize = parseInt(propertiesSrvc["max_upload_file_size"]); - var sErrorMessage; - - // Vérification du fichier .fmw. - if (typeof (oFile) === "object" && typeof (oFile["aFiles"]) !== "undefined" && oFile["aFiles"].length > 0) { - // Taille maxi du fichier. - if (oFile["aFiles"][0]["size"] > iMaxUploadFileSize) - sErrorMessage = "ERROR_FILE_SIZE_EXTRACTION_LOAD_DEPOSIT_DIRECTORY"; - } - // Validation du formulaire. - if (typeof (sErrorMessage) === "undefined") - deferred.resolve(); - - // Affichage de la fenêtre modale d'erreur. - if (typeof (sErrorMessage) !== "undefined") { - var oOptions = { - "className": "modal-danger", - "message": sErrorMessage - }; - scope.$root["modalWindow"]("dialog", "FORM_VALIDATION_ERROR", oOptions); - } - // - return promise; - }; - - /** - * afterProjectDirectory function. - * Actions à effectuer après l'upload d'un fichier dans le répertoire d'un projet fme. - */ - angular.element(vitisApp.appMainDrtv).scope()["afterDepositDirectory"] = function () { - // Injection des services. - var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]); - // - $log.info("afterDepositDirectory"); - // Remise à zéro du formulaire. - this["resetForm"](); - angular.element("input[type=file]")["fileinput"]("clear"); - // Recharge la liste des fichiers. - this["loadTreeviewDepot"](); - } - // -}; - - -/** - * destructor_form - * Fonction appelé quand on quitte le formulaire nettoie toute les fonctions pour les rendres inutilisable en dehors du formulaire - * @returns {undefined} - */ -var destructor_form = function () { - console.log("Destructor"); - - for (var i = 0; i < oFormRequired.toDestructor.length; i++) { - oFormRequired.toDestructor[i] = undefined; - delete oFormRequired.toDestructor[i]; - } - - //supprimer la balise script du js pour pouvoir le recharger si on reviens sur le formulaire plus tard - angular.element('[src="' + oFormRequired.sUrl + '?version=' + oFormRequired.scope_["oProperties"]["build"] + '"]').remove(); - - oFormRequired = undefined; - delete oFormRequired; - - constructor_form = undefined; - delete constructor_form; - destructor_form = undefined; - delete destructor_form; -}; - -/**********************************************************************************/ \ No newline at end of file diff --git a/src/module_extraction/module/forms/extraction_depot/extraction_depot_extraction_extraction_depot.json b/src/module_extraction/module/forms/extraction_depot/extraction_depot_extraction_extraction_depot.json deleted file mode 100755 index 6a36d947..00000000 --- a/src/module_extraction/module/forms/extraction_depot/extraction_depot_extraction_extraction_depot.json +++ /dev/null @@ -1,291 +0,0 @@ -{ - "search": { - "name": "extraction_deposit_directory_update_form", - "title": "EXTRACTION_DEPOT_TITLE", - "beforeEvent": "beforeDepositDirectory()", - "event": "sendSimpleForm()", - "afterEvent": "afterDepositDirectory()", - "input_size": "xs", - "nb_cols": 12, - "class": "project-directory-upload-form", - "javascript": true, - "rows": [ - { - "fields": [ - { - "type": "treeview", - "name": "FileTreeView", - "label": "", - "required": false, - "pattern": "", - "nb_cols": 12, - "id": "Element_0_2_1", - "options": { - "showBorder": false, - "levels": 0, - "showCheckbox": true, - "expandIcon": "glyphicon glyphicon-folder-close", - "collapseIcon": "glyphicon glyphicon-folder-open", - "highlightSelected": false, - "multiSelect": true, - "data": "", - "dataLoadingEvent": "" - } - } - ] - }, - { - "fields": [ - { - "type": "button", - "class": "btn-ungroup btn-group-xs", - "name": "group-button", - "nb_cols": 12, - "buttons": [ - { - "type": "button", - "name": "btn_download_file", - "glyphicon": "download", - "class": "btn-primary btn-xs", - "event": "downloadFileDepot()", - "tooltip": { - "title": "FORM_DOWNLOAD_FILE_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY", - "placement": "bottom", - "trigger": "hover", - "container": "body" - } - }, - { - "type": "button", - "name": "btn_refresh_treeview", - "glyphicon": "refresh", - "class": "btn-primary btn-xs", - "event": "loadTreeviewDepot()", - "tooltip": { - "title": "FORM_RELOAD_DIRECTORY_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY", - "placement": "bottom", - "trigger": "hover", - "container": "body" - } - }, - { - "type": "button", - "name": "btn_delete_file", - "glyphicon": "trash", - "class": "btn-primary btn-xs", - "event": "deleteFileDepot()", - "tooltip": { - "title": "FORM_DELETE_FILE_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY", - "placement": "bottom", - "trigger": "hover" - } - } - ], - "id": "undefined_1_1" - } - ] - }, - { - "class": "form-field-inline", - "fields": [ - { - "type": "upload", - "name": "control_file", - "label": "EXTRACTION_DEPOT_FILE_UPLOAD", - "nb_cols": 6, - "id": "fmw_file_2_1" - } - ] - }, - { - "fields": [ - { - "type": "button", - "name": "Element_0", - "nb_cols": 12, - "id": "Element_0_5_1", - "class": "btn-ungroup btn-group-sm", - "buttons": [ - { - "type": "submit", - "name": "form_submit", - "label": "EXTRACTION_DEPOT_FILE_UPDATE", - "class": "btn-primary" - } - ] - } - ] - } - ], - "tabs": { - "position": "top", - "list": [ - { - "label": "Tab 0", - "elements": [ - "btn_download_file", - "btn_refresh_treeview", - "btn_delete_file", - "control_file", - "btn_upload_fmw_file", - "FileTreeView", - "Element_0" - ] - } - ] - } - }, - "update": { - "name": "extraction_deposit_directory_update_form", - "title": "EXTRACTION_DEPOT_TITLE", - "beforeEvent": "beforeProjectDirectory()", - "event": "sendSimpleForm()", - "afterEvent": "afterProjectDirectory()", - "input_size": "xs", - "nb_cols": 12, - "class": "project-directory-upload-form", - "rows": [ - { - "fields": [ - { - "type": "treeview", - "name": "FileTreeView", - "label": "", - "required": false, - "pattern": "", - "nb_cols": 12, - "id": "Element_0_2_1", - "options": { - "showBorder": false, - "levels": 0, - "showCheckbox": true, - "expandIcon": "glyphicon glyphicon-folder-close", - "collapseIcon": "glyphicon glyphicon-folder-open", - "highlightSelected": false, - "multiSelect": true, - "data": "", - "dataLoadingEvent": "" - } - } - ] - }, - { - "fields": [ - { - "type": "button", - "class": "btn-ungroup btn-group-xs", - "name": "group-button", - "nb_cols": 12, - "buttons": [ - { - "type": "button", - "name": "btn_download_file", - "glyphicon": "download", - "class": "btn-primary btn-xs", - "event": "downloadFile()", - "tooltip": { - "title": "FORM_DOWNLOAD_FILE_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY", - "placement": "bottom", - "trigger": "hover", - "container": "body" - } - }, - { - "type": "button", - "name": "btn_refresh_treeview", - "glyphicon": "refresh", - "class": "btn-primary btn-xs", - "event": "loadTreeviewDepot()", - "tooltip": { - "title": "FORM_RELOAD_DIRECTORY_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY", - "placement": "bottom", - "trigger": "hover", - "container": "body" - } - }, - { - "type": "button", - "name": "btn_delete_file", - "glyphicon": "trash", - "class": "btn-primary btn-xs", - "event": "deleteFile()", - "tooltip": { - "title": "FORM_DELETE_FILE_PUBLICATION_WORKSPACE_LOAD_PROJECT_DIRECTORY", - "placement": "bottom", - "trigger": "hover" - } - } - ], - "id": "undefined_1_1" - } - ] - }, - { - "class": "form-field-inline", - "fields": [ - { - "type": "upload", - "name": "control_file", - "label": "EXTRACTION_DEPOT_FILE_UPLOAD", - "nb_cols": 6, - "id": "fmw_file_2_1" - } - ] - }, - { - "fields": [ - { - "type": "button", - "name": "Element_0", - "nb_cols": 12, - "id": "Element_0_5_1", - "class": "btn-ungroup btn-group-sm", - "buttons": [ - { - "type": "submit", - "name": "form_submit", - "label": "FORM_UPLOAD_FILE_DEPOSIT", - "class": "btn-primary" - } - ] - } - ] - } - ], - "tabs": { - "position": "top", - "list": [ - { - "label": "Tab 0", - "elements": [ - "btn_download_file", - "btn_refresh_treeview", - "btn_delete_file", - "control_file", - "btn_upload_fmw_file", - "FileTreeView", - "Element_0" - ] - } - ] - } - }, - "insert": {}, - "display": { - "name": "gtf_workspace_project_directory_display_form", - "title": "EXTRACTION_DEPOT_TITLE", - "input_size": "xs", - "nb_cols": 8, - "rows": [], - "tabs": { - "position": "top", - "list": [ - { - "label": "Tab 0", - "elements": [] - } - ] - } - }, - "datasources": {} -} \ No newline at end of file diff --git a/src/module_extraction/module/forms/extraction_ref/extraction_ref_extraction_coordsys.json b/src/module_extraction/module/forms/extraction_ref/extraction_ref_extraction_coordsys.json deleted file mode 100755 index 5aa5221d..00000000 --- a/src/module_extraction/module/forms/extraction_ref/extraction_ref_extraction_coordsys.json +++ /dev/null @@ -1,240 +0,0 @@ -{ - "display":{ - "name":"extraction_ref_extraction_coordsys-form", - "title":"EXTRACTION_REF_EXTRACTION_COORDSYS_TITLE", - "input_size":"xxs", - "nb_cols":12, - "javascript":false, - "rows":[ - { - "fields":[ - { - "type":"label", - "name":"coordsys_id", - "label":"EXTRACTION_REF_EXTRACTION_COORDSYS_FORM_COORDSYS_ID", - "disabled":false, - "required":false, - "nb_cols":12 - } - ] - }, - { - "fields":[ - { - "type":"label", - "name":"coordsys", - "label":"EXTRACTION_REF_EXTRACTION_COORDSYS_FORM_COORDSYS", - "disabled":false, - "required":false, - "nb_cols":12 - } - ] - }, - { - "fields":[ - { - "type":"button", - "class":"btn-ungroup btn-group-sm", - "nb_cols":12, - "name":"display_button", - "id":"display_button", - "buttons":[ - { - "type":"button", - "name":"return_list", - "label":"FORM_RETURN_LIST", - "class":"btn-primary", - "event":"setMode(\"search\")" - } - ] - } - ] - } - ] - }, - "search":{ - "name":"extraction_ref_extraction_coordsys-form", - "title":"EXTRACTION_REF_EXTRACTION_COORDSYS_TITLE", - "input_size":"xxs", - "nb_cols":12, - "javascript":false, - "rows":[ - { - "fields":[ - { - "type":"text", - "name":"coordsys", - "label":"EXTRACTION_REF_EXTRACTION_COORDSYS_FORM_COORDSYS", - "disabled":false, - "required":false, - "nb_cols":4 - } - ] - }, - { - "fields":[ - { - "type":"button", - "class":"btn-ungroup btn-group-xs", - "nb_cols":12, - "name":"search_button", - "id":"search_button", - "buttons":[ - { - "type":"button", - "name":"search", - "label":"FORM_SEARCH_BUTTON", - "class":"btn-primary", - "event":"setGridFilter()" - }, - { - "type":"reset", - "name":"reset", - "label":"FORM_RESET_BUTTON", - "class":"btn-primary", - "event":"resetGridFilter()" - } - ] - } - ] - } - ] - }, - "insert":{ - "name":"extraction_ref_extraction_coordsys-form", - "title":"EXTRACTION_REF_EXTRACTION_COORDSYS_TITLE_INSERT", - "input_size":"xxs", - "nb_cols":12, - "javascript":false, - "rows":[ - { - "fields":[ - { - "type":"text", - "name":"coordsys_id", - "label":"EXTRACTION_REF_EXTRACTION_COORDSYS_FORM_COORDSYS_ID", - "disabled":false, - "required":true, - "nb_cols":12, - "id":"coordsys_id_1_1" - } - ] - }, - { - "fields":[ - { - "type":"text", - "name":"coordsys", - "label":"EXTRACTION_REF_EXTRACTION_COORDSYS_FORM_COORDSYS", - "disabled":false, - "required":false, - "nb_cols":12, - "id":"coordsys_2_1" - } - ] - }, - { - "fields":[ - { - "type":"button", - "class":"btn-ungroup btn-group-sm", - "nb_cols":12, - "name":"insert_button", - "id":"insert_button", - "buttons":[ - { - "type":"submit", - "name":"form_submit", - "label":"FORM_CREATE", - "class":"btn-primary" - }, - { - "type":"button", - "name":"return_list", - "label":"FORM_RETURN_LIST", - "class":"btn-primary", - "event":"setMode(\"search\")" - } - ] - } - ] - } - ], - "event":"sendSimpleForm()", - "afterEvent":"editSectionForm()", - "tabs":{ - "position":"top", - "list":[ - { - "label":"Tab 0", - "elements":[ - "coordsys_id", - "coordsys", - "insert_button" - ] - } - ] - } - }, - "update":{ - "name":"extraction_ref_extraction_coordsys-form", - "title":"EXTRACTION_REF_EXTRACTION_COORDSYS_TITLE", - "input_size":"xxs", - "nb_cols":12, - "javascript":false, - "rows":[ - { - "fields":[ - { - "type":"text", - "name":"coordsys_id", - "label":"EXTRACTION_REF_EXTRACTION_COORDSYS_FORM_COORDSYS_ID", - "disabled":false, - "required":true, - "nb_cols":12 - } - ] - }, - { - "fields":[ - { - "type":"text", - "name":"coordsys", - "label":"EXTRACTION_REF_EXTRACTION_COORDSYS_FORM_COORDSYS", - "disabled":false, - "required":false, - "nb_cols":12 - } - ] - }, - { - "fields":[ - { - "type":"button", - "class":"btn-ungroup btn-group-sm", - "nb_cols":12, - "name":"update_button", - "id":"update_button", - "buttons":[ - { - "type":"submit", - "name":"form_submit", - "label":"FORM_UPDATE", - "class":"btn-primary" - }, - { - "type":"button", - "name":"return_list", - "label":"FORM_RETURN_LIST", - "class":"btn-primary", - "event":"setMode(\"search\")" - } - ] - } - ] - } - ], - "event":"sendSimpleForm()", - "afterEvent":"editSectionForm()" - } -} \ No newline at end of file diff --git a/src/module_extraction/module/forms/extraction_ref/extraction_ref_extraction_format.json b/src/module_extraction/module/forms/extraction_ref/extraction_ref_extraction_format.json deleted file mode 100755 index 115f79f1..00000000 --- a/src/module_extraction/module/forms/extraction_ref/extraction_ref_extraction_format.json +++ /dev/null @@ -1,393 +0,0 @@ -{ - "display":{ - "name":"extraction_ref_extraction_format-form", - "title":"EXTRACTION_REF_EXTRACTION_FORMAT_TITLE", - "input_size":"xxs", - "nb_cols":12, - "javascript":false, - "rows":[ - { - "fields":[ - { - "type":"label", - "name":"format_id", - "label":"EXTRACTION_REF_EXTRACTION_FORMAT_FORM_FORMAT_ID", - "disabled":false, - "required":false, - "nb_cols":12 - } - ] - }, - { - "fields":[ - { - "type":"label", - "name":"format", - "label":"EXTRACTION_REF_EXTRACTION_FORMAT_FORM_FORMAT", - "disabled":false, - "required":false, - "nb_cols":12 - } - ] - }, - { - "fields":[ - { - "type":"label", - "options":{ - "choices":[ - { - "label":"oui", - "value":true - }, - { - "label":"non", - "value":false - } - ] - }, - "name":"use_for_raster", - "label":"EXTRACTION_REF_EXTRACTION_FORMAT_FORM_USE_FOR_RASTER", - "disabled":false, - "required":false, - "nb_cols":12 - } - ] - }, - { - "fields":[ - { - "type":"label", - "options":{ - "choices":[ - { - "label":"oui", - "value":true - }, - { - "label":"non", - "value":false - } - ] - }, - "name":"use_for_vector", - "label":"EXTRACTION_REF_EXTRACTION_FORMAT_FORM_USE_FOR_VECTOR", - "disabled":false, - "required":false, - "nb_cols":12 - } - ] - }, - { - "fields":[ - { - "type":"button", - "class":"btn-ungroup btn-group-sm", - "nb_cols":12, - "name":"display_button", - "id":"display_button", - "buttons":[ - { - "type":"button", - "name":"return_list", - "label":"FORM_RETURN_LIST", - "class":"btn-primary", - "event":"setMode(\"search\")" - } - ] - } - ] - } - ] - }, - "search":{ - "name":"extraction_ref_extraction_format-form", - "title":"EXTRACTION_REF_EXTRACTION_FORMAT_TITLE", - "input_size":"xxs", - "nb_cols":12, - "javascript":false, - "rows":[ - { - "fields":[ - { - "type":"text", - "name":"format", - "label":"EXTRACTION_REF_EXTRACTION_FORMAT_FORM_FORMAT", - "disabled":false, - "required":false, - "nb_cols":4, - "id":"format_2_1" - } - ] - }, - { - "fields":[ - { - "type":"button", - "class":"btn-ungroup btn-group-xs", - "nb_cols":12, - "name":"search_button", - "id":"search_button", - "buttons":[ - { - "type":"button", - "name":"search", - "label":"FORM_SEARCH_BUTTON", - "class":"btn-primary", - "event":"setGridFilter()" - }, - { - "type":"reset", - "name":"reset", - "label":"FORM_RESET_BUTTON", - "class":"btn-primary", - "event":"resetGridFilter()" - } - ] - } - ] - } - ] - }, - "insert":{ - "name":"extraction_ref_extraction_format-form", - "title":"EXTRACTION_REF_EXTRACTION_FORMAT_TITLE_INSERT", - "input_size":"xxs", - "nb_cols":12, - "javascript":false, - "rows":[ - { - "fields":[ - { - "type":"text", - "name":"format_id", - "label":"EXTRACTION_REF_EXTRACTION_FORMAT_FORM_FORMAT_ID", - "disabled":false, - "required":true, - "nb_cols":12, - "id":"format_id_1_1" - } - ] - }, - { - "fields":[ - { - "type":"text", - "name":"format", - "label":"EXTRACTION_REF_EXTRACTION_FORMAT_FORM_FORMAT", - "disabled":false, - "required":false, - "nb_cols":12, - "id":"format_2_1" - } - ] - }, - { - "fields":[ - { - "type":"radio", - "options":{ - "choices":[ - { - "label":"oui", - "value":true, - "$$hashKey":"object:1221" - }, - { - "label":"non", - "value":false, - "$$hashKey":"object:1222" - } - ] - }, - "name":"use_for_raster", - "label":"EXTRACTION_REF_EXTRACTION_FORMAT_FORM_USE_FOR_RASTER", - "disabled":false, - "required":false, - "nb_cols":12, - "id":"use_for_raster_3_1" - } - ] - }, - { - "fields":[ - { - "type":"radio", - "options":{ - "choices":[ - { - "label":"oui", - "value":true, - "$$hashKey":"object:1234" - }, - { - "label":"non", - "value":false, - "$$hashKey":"object:1235" - } - ] - }, - "name":"use_for_vector", - "label":"EXTRACTION_REF_EXTRACTION_FORMAT_FORM_USE_FOR_VECTOR", - "disabled":false, - "required":false, - "nb_cols":12, - "id":"use_for_vector_4_1" - } - ] - }, - { - "fields":[ - { - "type":"button", - "class":"btn-ungroup btn-group-sm", - "nb_cols":12, - "name":"insert_button", - "id":"insert_button", - "buttons":[ - { - "type":"submit", - "name":"form_submit", - "label":"FORM_CREATE", - "class":"btn-primary" - }, - { - "type":"button", - "name":"return_list", - "label":"FORM_RETURN_LIST", - "class":"btn-primary", - "event":"setMode(\"search\")" - } - ] - } - ] - } - ], - "event":"sendSimpleForm()", - "afterEvent":"editSectionForm()", - "tabs":{ - "position":"top", - "list":[ - { - "label":"Tab 0", - "elements":[ - "format_id", - "format", - "use_for_raster", - "use_for_vector", - "insert_button" - ] - } - ] - } - }, - "update":{ - "name":"extraction_ref_extraction_format-form", - "title":"EXTRACTION_REF_EXTRACTION_FORMAT_TITLE", - "input_size":"xxs", - "nb_cols":12, - "javascript":false, - "rows":[ - { - "fields":[ - { - "type":"text", - "name":"format_id", - "label":"EXTRACTION_REF_EXTRACTION_FORMAT_FORM_FORMAT_ID", - "disabled":false, - "required":true, - "nb_cols":12 - } - ] - }, - { - "fields":[ - { - "type":"text", - "name":"format", - "label":"EXTRACTION_REF_EXTRACTION_FORMAT_FORM_FORMAT", - "disabled":false, - "required":false, - "nb_cols":12 - } - ] - }, - { - "fields":[ - { - "type":"radio", - "options":{ - "choices":[ - { - "label":"oui", - "value":true - }, - { - "label":"non", - "value":false - } - ] - }, - "name":"use_for_raster", - "label":"EXTRACTION_REF_EXTRACTION_FORMAT_FORM_USE_FOR_RASTER", - "disabled":false, - "required":false, - "nb_cols":12 - } - ] - }, - { - "fields":[ - { - "type":"radio", - "options":{ - "choices":[ - { - "label":"oui", - "value":true - }, - { - "label":"non", - "value":false - } - ] - }, - "name":"use_for_vector", - "label":"EXTRACTION_REF_EXTRACTION_FORMAT_FORM_USE_FOR_VECTOR", - "disabled":false, - "required":false, - "nb_cols":12 - } - ] - }, - { - "fields":[ - { - "type":"button", - "class":"btn-ungroup btn-group-sm", - "nb_cols":12, - "name":"update_button", - "id":"update_button", - "buttons":[ - { - "type":"submit", - "name":"form_submit", - "label":"FORM_UPDATE", - "class":"btn-primary" - }, - { - "type":"button", - "name":"return_list", - "label":"FORM_RETURN_LIST", - "class":"btn-primary", - "event":"setMode(\"search\")" - } - ] - } - ] - } - ], - "event":"sendSimpleForm()", - "afterEvent":"editSectionForm()" - } -} \ No newline at end of file diff --git a/src/module_extraction/module/forms/extraction_ref/extraction_ref_extraction_layer.json b/src/module_extraction/module/forms/extraction_ref/extraction_ref_extraction_layer.json deleted file mode 100755 index 0a47f292..00000000 --- a/src/module_extraction/module/forms/extraction_ref/extraction_ref_extraction_layer.json +++ /dev/null @@ -1,355 +0,0 @@ -{ - "display":{ - "name":"extraction_ref_extraction_layer-form", - "title":"EXTRACTION_REF_EXTRACTION_LAYER_TITLE", - "input_size":"xxs", - "nb_cols":12, - "javascript":false, - "rows":[ - { - "fields":[ - { - "type":"label", - "name":"layer_id", - "label":"EXTRACTION_REF_EXTRACTION_LAYER_FORM_LAYER_ID", - "disabled":false, - "required":false, - "nb_cols":12 - } - ] - }, - { - "fields":[ - { - "type":"label", - "name":"layer", - "label":"EXTRACTION_REF_EXTRACTION_LAYER_FORM_LAYER", - "disabled":false, - "required":false, - "nb_cols":12 - } - ] - }, - { - "fields":[ - { - "type":"label", - "name":"category", - "label":"EXTRACTION_REF_EXTRACTION_LAYER_FORM_CATEGORY", - "disabled":false, - "required":false, - "nb_cols":12 - } - ] - }, - { - "fields":[ - { - "type":"label", - "name":"restriction", - "label":"EXTRACTION_REF_EXTRACTION_LAYER_FORM_RESTRICTION", - "disabled":false, - "required":false, - "nb_cols":12 - } - ] - }, - { - "fields":[ - { - "type":"label", - "name":"unused_attributes", - "label":"EXTRACTION_REF_EXTRACTION_LAYER_FORM_UNUSED_ATTRIBUTES", - "disabled":false, - "required":false, - "nb_cols":12 - } - ] - }, - { - "fields":[ - { - "type":"button", - "class":"btn-ungroup btn-group-sm", - "nb_cols":12, - "name":"display_button", - "id":"display_button", - "buttons":[ - { - "type":"button", - "name":"return_list", - "label":"FORM_RETURN_LIST", - "class":"btn-primary", - "event":"setMode(\"search\")" - } - ] - } - ] - } - ] - }, - "search":{ - "name":"extraction_ref_extraction_layer-form", - "title":"EXTRACTION_REF_EXTRACTION_LAYER_TITLE", - "input_size":"xxs", - "nb_cols":12, - "javascript":false, - "rows":[ - { - "fields":[ - { - "type":"text", - "name":"layer", - "label":"EXTRACTION_REF_EXTRACTION_LAYER_FORM_LAYER", - "disabled":false, - "required":false, - "nb_cols":4, - "id":"layer_2_1" - } - ] - }, - { - "fields":[ - { - "type":"button", - "class":"btn-ungroup btn-group-xs", - "nb_cols":12, - "name":"search_button", - "id":"search_button", - "buttons":[ - { - "type":"button", - "name":"search", - "label":"FORM_SEARCH_BUTTON", - "class":"btn-primary", - "event":"setGridFilter()" - }, - { - "type":"reset", - "name":"reset", - "label":"FORM_RESET_BUTTON", - "class":"btn-primary", - "event":"resetGridFilter()" - } - ] - } - ] - } - ] - }, - "insert":{ - "name":"extraction_ref_extraction_layer-form", - "title":"EXTRACTION_REF_EXTRACTION_LAYER_TITLE_INSERT", - "input_size":"xxs", - "nb_cols":12, - "javascript":false, - "rows":[ - { - "fields":[ - { - "type":"text", - "name":"layer_id", - "label":"EXTRACTION_REF_EXTRACTION_LAYER_FORM_LAYER_ID", - "disabled":false, - "required":true, - "nb_cols":12, - "id":"layer_id_1_1" - } - ] - }, - { - "fields":[ - { - "type":"text", - "name":"layer", - "label":"EXTRACTION_REF_EXTRACTION_LAYER_FORM_LAYER", - "disabled":false, - "required":false, - "nb_cols":12, - "id":"layer_2_1" - } - ] - }, - { - "fields":[ - { - "type":"text", - "name":"category", - "label":"EXTRACTION_REF_EXTRACTION_LAYER_FORM_CATEGORY", - "disabled":false, - "required":false, - "nb_cols":12, - "id":"category_3_1" - } - ] - }, - { - "fields":[ - { - "type":"text", - "name":"restriction", - "label":"EXTRACTION_REF_EXTRACTION_LAYER_FORM_RESTRICTION", - "disabled":false, - "required":false, - "nb_cols":12, - "id":"restriction_4_1" - } - ] - }, - { - "fields":[ - { - "type":"text", - "name":"unused_attributes", - "label":"EXTRACTION_REF_EXTRACTION_LAYER_FORM_UNUSED_ATTRIBUTES", - "disabled":false, - "required":false, - "nb_cols":12, - "id":"unused_attributes_5_1" - } - ] - }, - { - "fields":[ - { - "type":"button", - "class":"btn-ungroup btn-group-sm", - "nb_cols":12, - "name":"insert_button", - "id":"insert_button", - "buttons":[ - { - "type":"submit", - "name":"form_submit", - "label":"FORM_CREATE", - "class":"btn-primary" - }, - { - "type":"button", - "name":"return_list", - "label":"FORM_RETURN_LIST", - "class":"btn-primary", - "event":"setMode(\"search\")" - } - ] - } - ] - } - ], - "event":"sendSimpleForm()", - "afterEvent":"editSectionForm()", - "tabs":{ - "position":"top", - "list":[ - { - "label":"Tab 0", - "elements":[ - "layer_id", - "layer", - "category", - "restriction", - "unused_attributes", - "insert_button" - ] - } - ] - } - }, - "update":{ - "name":"extraction_ref_extraction_layer-form", - "title":"EXTRACTION_REF_EXTRACTION_LAYER_TITLE", - "input_size":"xxs", - "nb_cols":12, - "javascript":false, - "rows":[ - { - "fields":[ - { - "type":"text", - "name":"layer_id", - "label":"EXTRACTION_REF_EXTRACTION_LAYER_FORM_LAYER_ID", - "disabled":false, - "required":true, - "nb_cols":12 - } - ] - }, - { - "fields":[ - { - "type":"text", - "name":"layer", - "label":"EXTRACTION_REF_EXTRACTION_LAYER_FORM_LAYER", - "disabled":false, - "required":false, - "nb_cols":12 - } - ] - }, - { - "fields":[ - { - "type":"text", - "name":"category", - "label":"EXTRACTION_REF_EXTRACTION_LAYER_FORM_CATEGORY", - "disabled":false, - "required":false, - "nb_cols":12 - } - ] - }, - { - "fields":[ - { - "type":"text", - "name":"restriction", - "label":"EXTRACTION_REF_EXTRACTION_LAYER_FORM_RESTRICTION", - "disabled":false, - "required":false, - "nb_cols":12 - } - ] - }, - { - "fields":[ - { - "type":"text", - "name":"unused_attributes", - "label":"EXTRACTION_REF_EXTRACTION_LAYER_FORM_UNUSED_ATTRIBUTES", - "disabled":false, - "required":false, - "nb_cols":12 - } - ] - }, - { - "fields":[ - { - "type":"button", - "class":"btn-ungroup btn-group-sm", - "nb_cols":12, - "name":"update_button", - "id":"update_button", - "buttons":[ - { - "type":"submit", - "name":"form_submit", - "label":"FORM_UPDATE", - "class":"btn-primary" - }, - { - "type":"button", - "name":"return_list", - "label":"FORM_RETURN_LIST", - "class":"btn-primary", - "event":"setMode(\"search\")" - } - ] - } - ] - } - ], - "event":"sendSimpleForm()", - "afterEvent":"editSectionForm()" - } -} \ No newline at end of file diff --git a/src/module_extraction/module/forms/login/sign_up.json b/src/module_extraction/module/forms/login/sign_up.json deleted file mode 100755 index cc5bc1e5..00000000 --- a/src/module_extraction/module/forms/login/sign_up.json +++ /dev/null @@ -1,230 +0,0 @@ -{ - "search": { - "name": "login_form", - "input_size": "xs", - "event": "sendInscriptionRequest()", - "rows": [ - { - "fields": [ - { - "type": "text", - "name": "username", - "label": "SIGNUPUSERNAME", - "required": true, - "pattern": "^([a-zA-Z_0-9])+", - "nb_cols": 12, - "id": "Element_0_2_1" - } - ] - }, - { - "fields": [ - { - "type": "password", - "name": "password", - "label": "SIGNUPPASSWORD", - "required": true, - "pattern": "", - "nb_cols": 12, - "id": "Element_0_4_1" - } - ] - }, - { - "fields": [ - { - "type": "password", - "name": "signuppasswordconfirmation", - "label": "SIGNUPPASSWORDCONFIRMATION", - "required": true, - "pattern": "", - "nb_cols": 12, - "id": "Element_0_4_1" - } - ] - }, - { - "fields": [ - { - "type": "text", - "name": "company", - "label": "SIGNUPORGANIZATION", - "required": true, - "pattern": "", - "nb_cols": 12, - "id": "Element_3_4_1", - "id_from": "Element_3_4_1_from" - } - ] - }, - { - "fields": [ - { - "type": "email", - "name": "mail", - "label": "SIGNUPMAIL", - "required": true, - "pattern": "^(([a-zA-Z]|[0-9])|([-]|[_]|[.]))+[@](([a-zA-Z]|[0-9])|([-]|[_]|[.])){2,63}[.](([a-zA-Z0-9]){2,63})+$", - "nb_cols": 12, - "id": "Element_2_3_1" - } - ] - }, - { - "fields": [ - { - "type": "text", - "name": "phone", - "label": "SIGN_UP_PHONE", - "required": false, - "pattern": "^(\\+[0-9]{1,3})?([0-9]{8,15})$", - "nb_cols": 12, - "id": "Element_0_5_1" - } - ] - }, - { - "fields": [ - { - "type": "text", - "name": "public_ip", - "label": "SIGN_UP_PUBLIC_IP", - "required": false, - "pattern": "^([0-9]{3}.[0-9]{3}.[0-9]{3})((/[0-9]+)?)$", - "nb_cols": 12, - "id": "Element_0_6_1" - } - ] - }, - { - "fields": [ - { - "type": "text", - "name": "demandeur", - "label": "SIGN_UP_DEMANDEUR", - "required": false, - "pattern": "", - "nb_cols": 12, - "id": "Element_0_8_1" - } - ] - }, - { - "fields": [ - { - "type": "email", - "name": "mail_demandeur", - "label": "SIGN_UP_MAIL_DEMANDEUR", - "required": false, - "pattern": "^(([a-zA-Z]|[0-9])|([-]|[_]|[.]))+[@](([a-zA-Z]|[0-9])|([-]|[_]|[.])){2,63}[.](([a-zA-Z0-9]){2,63})+$", - "nb_cols": 12, - "id": "Element_0_9_1" - } - ] - }, - { - "fields": [ - { - "type": "text", - "name": "study_object", - "label": "SIGN_UP_STUDY_OBJECT", - "required": false, - "pattern": "", - "nb_cols": 12, - "id": "Element_0_7_1" - } - ] - }, - { - "fields": [ - { - "type": "date", - "name": "start_date", - "label": "SIGN_UP_START_DATE", - "nb_cols": 6, - "id": "Element_0_10_1" - }, - { - "type": "date", - "name": "end_date", - "label": "SIGN_UP_END_DATE", - "nb_cols": 6, - "id": "Element_0_10_1" - } - ] - }, - { - "fields": [ - { - "type": "checkbox", - "name": "signupcgu", - "label": "ACCEPT_CGU", - "required": true, - "nb_cols": 12, - "id": "Element_5_5_1" - } - ] - }, - { - "fields": [ - { - "type": "captcha", - "nb_cols": 12, - "name": "captcha", - "class": "center", - "id": "captcha", - "key": "6LdWLR8UAAAAAExA8zTXKFIsIwhacAJw1tdpuFw1" - } - ] - }, - { - "fields": [ - { - "type": "button", - "name": "btn_signup", - "nb_cols": 12, - "id": "Element_42_5_1", - "class": "btn-ungroup btn-group-sm login-connect-btn", - "buttons": [ - { - "type": "submit", - "name": "form_signup", - "label": "SIGNUP_BUTTON", - "class": "btn-primary" - } - ] - } - ] - } - ], - "tabs": { - "position": "top", - "list": [ - { - "label": "Tab 0", - "elements": [ - "username", - "password", - "signuppasswordconfirmation", - "mail", - "company", - "signupcgu", - "captcha", - "btn_signup", - "phone", - "public_ip", - "study_object", - "end_date", - "start_date", - "demandeur", - "mail_demandeur" - ] - } - ] - } - }, - "update": {}, - "insert": {}, - "display": {}, - "datasources": {} -} \ No newline at end of file diff --git a/src/module_extraction/module/javascript/script_module.js b/src/module_extraction/module/javascript/script_module.js deleted file mode 100755 index db7ca4c3..00000000 --- a/src/module_extraction/module/javascript/script_module.js +++ /dev/null @@ -1,412 +0,0 @@ -/* global vitisApp, goog, angular, bootbox, oVFB */ - -'use strict'; -goog.provide('extraction.script_module'); -vitisApp.on('appMainDrtvLoaded', function () { - /** - * setWabStatusMethod function. - * Définition de la méthode de transition. - * @param {string} sMethodName Nom de la méthode wab. - **/ - angular.element(vitisApp.appMainDrtv).scope()["setWabStatusMethod"] = function (sMethodName) { - // Injection des services. - var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]); - //var $rootScope = angular.element(vitisApp.appMainDrtv).injector().get(["$rootScope"]); - var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]); - // - $log.info("setWabStatusMethod", sMethodName); - envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["tr_status_method"] = sMethodName; - // Envoi le formulaire. - if (envSrvc["sMode"] != "display") { - var sFormElementName = envSrvc["oFormDefinition"][envSrvc["sFormDefinitionName"]]["name"]; - var formScope = angular.element("form[name='" + sFormElementName + "']").scope(); - if (envSrvc["sMode"] == "update") - formScope["sendForm"](); - } - }; - - /** - * loadExtractionConfig function. - * Chargement de la section "Configuration EXTRACTION" dans l''''onglet "Configuration". - * @expose - */ - angular.element(vitisApp.appMainDrtv).scope()["loadExtractionConfig"] = function () { - // Injection des services. - var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]); - var envSrvc = angular.element(vitisApp.appWorkspaceListDrtv).injector().get(["envSrvc"]); - // - $log.info("loadExtractionConfig"); - // Paramètres des properties dans les valeurs du formulaire de config de Extraction. - angular.element(vitisApp.appMainDrtv).scope()["setPropertiesFormValues"](); - // Surcharge l''''url du formulaire des properties de Extraction. - var scope = this; - var sTable = envSrvc["oSelectedObject"]["name"]; - scope["oFormRequestParams"] = { - "sUrl": "modules/extraction/forms/" + envSrvc["oSelectedMode"]["mode_id"] + "/" + sTable + "_" + envSrvc["oSectionForm"][sTable]["sections"][envSrvc["oSectionForm"][sTable]["iSelectedSectionIndex"]]["name"] + ".json" - }; - }; - - /** - * initExtractionExtractionForm function. - * Traitements avant l'affichage du formulaire de l'onglet "Extraction". - **/ - angular.element(vitisApp.appMainDrtv).scope()["initExtractionExtractionForm"] = function () { - // Injection des services. - var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]); - var $rootScope = angular.element(vitisApp.appMainDrtv).injector().get(["$rootScope"]); - var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]); - var formSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["formSrvc"]); - // - $log.info("initExtractionExtractionForm"); - var oFormValues = envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]; - var oElemDef; - // Affiche le champ de form. correspondant au type de méthode choisie. - var aExtentMethod = ["id_com", "id_conseil", "extent"]; - for (var i in aExtentMethod) { - var oElemDef = formSrvc["getFormElementDefinition"](aExtentMethod[i], envSrvc["sFormDefinitionName"], envSrvc["oFormDefinition"]); - if (oFormValues["extent_method"] == aExtentMethod[i]) - oElemDef["visible"] = true; - else - oElemDef["visible"] = false; - } - // Libellé des champs "Commune" et "Bassin de vie". - if (envSrvc["sMode"] == "display") { - oFormValues["id_com"] = oFormValues["id_com_label"]; - oFormValues["id_conseil"] = oFormValues["id_conseil_label"]; - } - // Attends la fin du chargement de tous les champs du formulaire. - var clearListener = $rootScope.$on('formExtracted', function (event, sFormDefinitionName) { - // Supprime le "listener". - clearListener(); - // Evènement sur le <select> "méthode choisie" : affiche le champ de form. correspondant au choix. - var oExtentMethod = formSrvc["getFormElementDefinition"]("extent_method", envSrvc["sFormDefinitionName"], envSrvc["oFormDefinition"]); - if (oExtentMethod["type"] == "select" && document.getElementById(oExtentMethod["id"]) != null) { - document.getElementById(oExtentMethod["id"]).addEventListener("change", function () { - for (var i in aExtentMethod) { - var oElemDef = formSrvc["getFormElementDefinition"](aExtentMethod[i], envSrvc["sFormDefinitionName"], envSrvc["oFormDefinition"]); - if (this.value == aExtentMethod[i]) - oElemDef["visible"] = true; - else - oElemDef["visible"] = false; - } - var formScope = angular.element("form[name='" + envSrvc["oFormDefinition"][envSrvc["sFormDefinitionName"]]["name"]).scope(); - formScope.$apply(); - }); - } - }); - }; - - /** - * getExtractionLayersTree function. - * Retourne l'arborescence pour le champ treeview "layers". - **/ - angular.element(vitisApp.appMainDrtv).scope()["getExtractionLayersTree"] = function () { - // Injection des services. - var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]); - var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]); - var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]); - var $q = angular.element(vitisApp.appHtmlFormDrtv).injector().get(["$q"]); - // - $log.info("getExtractionLayersTree"); - var deferred = $q.defer(); - var promise = deferred.promise; - // Charge la liste des couches. - ajaxRequest({ - "method": "GET", - "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/extraction/extractions/Layers", - "scope": angular.element("form[name='" + envSrvc["oFormDefinition"][envSrvc["sFormDefinitionName"]]["name"] + "']").scope(), - "success": function(response) { - if (response["data"]["status"] == 1) { - // Création de l'arborescence des couches pour le champ "treeview". - var aLayers = response["data"]["layers"]; - var aNodes = []; - var stats = true; - if (typeof(aLayers) != "undefined") { - var aCategories = Object.keys(aLayers); - for (var i in aCategories) { - var aNode = {"text": aCategories[i], "nodes": []} - for (var j in aLayers[aCategories[i]]) { - if (aLayers[aCategories[i]][j]["statistique"] !== true) - { - stats = false; - aNode["nodes"].push({"text": aLayers[aCategories[i]][j]["text"], "value": aLayers[aCategories[i]][j]["value"], "mutualized": aLayers[aCategories[i]][j]["mutualized"]}); - } - } - if (stats !== true) - { - aNodes.push(aNode); - } - stats = true; - } - } - - this["setTreeviewNodesState"] = function (aNodes) { - for (var i in aNodes) { - if (typeof (aNodes[i]["nodes"]) != "undefined") - { - this["setTreeviewNodesState"](aNodes[i]["nodes"]); - } - else { - //Si la couche est mutualisée - if (aNodes[i]['mutualized'] == true) - { - aNodes[i]["color"] = propertiesSrvc["color_mutualized"]; - } else if (aNodes[i]['mutualized'] == false) { - aNodes[i]["color"] = propertiesSrvc["color_no_mutualized"]; - } - } - } - } - this["setTreeviewNodesState"](aNodes); - - deferred.resolve(aNodes); - } else { - // - var oOptions = { - "className": "modal-danger" - }; - // Message d'erreur ? - if (response["data"]["errorMessage"] != null) - oOptions["message"] = response["data"]["errorMessage"]; - scope.$root["modalWindow"]("alert", "REQUEST_ERROR", oOptions); - } - } - }); - return promise; - }; - - - /** - * getExtractionLayersTree function. - * Retourne l'arborescence pour le champ treeview "layers". - **/ - angular.element(vitisApp.appMainDrtv).scope()["getExtractionStatsTree"] = function () { - // Injection des services. - var $log = angular.element(vitisApp.appMainDrtv).injector().get(["$log"]); - var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]); - var propertiesSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["propertiesSrvc"]); - var $q = angular.element(vitisApp.appHtmlFormDrtv).injector().get(["$q"]); - // - $log.info("getExtractionStatsTree"); - var deferred = $q.defer(); - var promise = deferred.promise; - // Charge la liste des couches. - ajaxRequest({ - "method": "GET", - "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/extraction/extractions/Layers", - "scope": angular.element("form[name='" + envSrvc["oFormDefinition"][envSrvc["sFormDefinitionName"]]["name"] + "']").scope(), - "success": function(response) { - if (response["data"]["status"] == 1) { - // Création de l'arborescence des couches pour le champ "treeview". - var aLayers = response["data"]["layers"]; - var aNodes = []; - var stats = false; - if (typeof(aLayers) != "undefined") { - var aCategories = Object.keys(aLayers); - for (var i in aCategories) { - var aNode = {"text": aCategories[i], "nodes": []} - for (var j in aLayers[aCategories[i]]) { - if (aLayers[aCategories[i]][j]["statistique"] === true) - { - stats = true; - aNode["nodes"].push({"text": aLayers[aCategories[i]][j]["text"], "value": aLayers[aCategories[i]][j]["value"], "mutualized": aLayers[aCategories[i]][j]["mutualized"]}); - } - } - if (stats === true) - { - aNodes.push(aNode); - } - stats = false; - } - } - - this["setTreeviewNodesState"] = function (aNodes) { - for (var i in aNodes) { - if (typeof (aNodes[i]["nodes"]) != "undefined") - { - this["setTreeviewNodesState"](aNodes[i]["nodes"]); - } - else { - //Si la couche est mutualisée - if (aNodes[i]['mutualized'] == true) - { - aNodes[i]["color"] = propertiesSrvc["color_mutualized"]; - } else if (aNodes[i]['mutualized'] == false) { - aNodes[i]["color"] = propertiesSrvc["color_no_mutualized"]; - } - } - } - } - this["setTreeviewNodesState"](aNodes); - - deferred.resolve(aNodes); - } else { - // - var oOptions = { - "className": "modal-danger" - }; - // Message d'erreur ? - if (response["data"]["errorMessage"] != null) - oOptions["message"] = response["data"]["errorMessage"]; - scope.$root["modalWindow"]("alert", "REQUEST_ERROR", oOptions); - } - } - }); - return promise; - }; - - /** - * appExtractionLayersColumn directive. - * Mise en forme de la colonne "layers" dans la liste de l'onglet "Extraction". - * @param {service} $translate Translate service. - * @ngInject - **/ - vitisApp.appExtractionLayersColumnDrtv = function ($translate) { - return { - link: function (scope, element, attrs) { - // 1er affichage ou tri de la liste : maj de la mise en forme. - var clearObserver = attrs.$observe("appExtractionLayersColumn", function (value) { - // Si le champ est vide : supprime l'icône. - if (scope["row"]["entity"][scope["col"]["field"]] == null || scope["row"]["entity"][scope["col"]["field"]] == "") - element[0].className = ""; - else { - // Classes css (ui-grid + spécifiques). - element[0].className = "ui-grid-cell-contents info-icon"; - // Traduction du titre et du contenu. - $translate(["EXTRACTION_REF_EXTRACTION_LAYER_LAYERS_TOOLTIP_TITLE"]).then(function (translations) { - // Création du "tooltip". - $(element)["popover"]({ - "trigger": "hover", - "container": "body", - "title": function () { - return translations["EXTRACTION_REF_EXTRACTION_LAYER_LAYERS_TOOLTIP_TITLE"]; - }, - "content": function () { - var sValue = scope["row"]["entity"][scope["col"]["field"]]; - return sValue.replace(/\|/g, "<br>"); - }, - // Placement du tooltip à gauche ou à droite suivant la position horizontale de l'élément. - "placement": function (oPopoverNode, oElementNode) { - return scope.$root["workspaceTooltipPlacement"](oElementNode); - }, - "html": true - }); - }); - } - }); - // Attends la suppression du scope. - scope.$on("$destroy", function () { - // Supprime le tooltip. - $(element)["popover"]("destroy"); - // Supprime l'observateur. - clearObserver(); - }); - } - } - }; - vitisApp["compileProvider"].directive('appExtractionLayersColumn', vitisApp.appExtractionLayersColumnDrtv); - - /** - * appExtractionRefUnusedAttributesColumn directive. - * Mise en forme de la colonne "unused_attributes" dans la liste de l'onglet "Extraction". - * @param {service} $translate Translate service. - * @ngInject - **/ - vitisApp.appExtractionRefUnusedAttributesColumnDrtv = function ($translate) { - return { - link: function (scope, element, attrs) { - // 1er affichage ou tri de la liste : maj de la mise en forme. - var clearObserver = attrs.$observe("appExtractionRefUnusedAttributesColumn", function (value) { - // Si le champ est vide : supprime l'icône. - if (scope["row"]["entity"][scope["col"]["field"]] == null || scope["row"]["entity"][scope["col"]["field"]] == "") - element[0].className = ""; - else { - // Classes css (ui-grid + spécifiques). - element[0].className = "ui-grid-cell-contents info-icon"; - // Traduction du titre et du contenu. - $translate(["EXTRACTION_REF_EXTRACTION_LAYER_UNUSED_ATTRIBUTES_TOOLTIP_TITLE"]).then(function (translations) { - // Création du "tooltip". - $(element)["popover"]({ - "trigger": "hover", - "container": "body", - "title": function () { - return translations["EXTRACTION_REF_EXTRACTION_LAYER_UNUSED_ATTRIBUTES_TOOLTIP_TITLE"]; - }, - "content": function () { - var sValue = scope["row"]["entity"][scope["col"]["field"]]; - return sValue.replace(/;/g, "<br>"); - }, - // Placement du tooltip à gauche ou à droite suivant la position horizontale de l'élément. - "placement": function (oPopoverNode, oElementNode) { - return scope.$root["workspaceTooltipPlacement"](oElementNode); - }, - "html": true - }); - }); - } - }); - // Attends la suppression du scope. - scope.$on("$destroy", function () { - // Supprime le tooltip. - $(element)["popover"]("destroy"); - // Supprime l'observateur. - clearObserver(); - }); - } - } - }; - vitisApp["compileProvider"].directive('appExtractionRefUnusedAttributesColumn', vitisApp.appExtractionRefUnusedAttributesColumnDrtv); - - angular.element(vitisApp.appMainDrtv).scope()["showModalSignUp"] = function () { - $("#modal_sign_up").modal('open'); - - var oFormValues = {}; - oFormValues["search"] = {}; - ajaxRequest({ - 'method': 'GET', - 'url': propertiesSrvc["web_server_name"] + '/' + propertiesSrvc["application"] + "/modules/extraction/forms/sign_up.json", - 'success': function (response) { - hideAjaxLoader(); - - var oFormReaderScope = angular.element($("#modal_sign_up_form_container").children()).scope(); - oFormReaderScope.$evalAsync(function () { - oFormReaderScope['ctrl']['setDefinitionName']("search"); - oFormReaderScope['ctrl']['setFormValues'](oFormValues); - oFormReaderScope['ctrl']['setFormDefinition'](response["data"]); - oFormReaderScope['ctrl']['loadForm'](); - }); - - $this.$timeout_(function () { - //Materialize.updateTextFields(); - $(".checkbox").removeClass("checkbox checkbox-margin"); - - //$this.cssSelectFormDefinitionListener(oFormReaderScope); - }, 100); - }, - 'error': function (response) { - hideAjaxLoader(); - console.error("ERROR"); - } - }); - }; -}); - -vitisApp.on('appInitCtrlLoaded', function () { - var $rootScope = angular.element(vitisApp.appMainDrtv).injector().get(["$rootScope"]); - var envSrvc = angular.element(vitisApp.appMainDrtv).injector().get(["envSrvc"]); - var $translatePartialLoader = angular.element(vitisApp.appMainDrtv).injector().get(["$translatePartialLoader"]); - var $translate = angular.element(vitisApp.appMainDrtv).injector().get(["$translate"]); - // Chargement du template de login et des formulaires spécifiques à Extraction. - //envSrvc["sLoginTemplate"] = "modules/calimap/templates/loginTpl.html"; - //envSrvc["sLoginForm"] = "modules/extraction/forms/extraction/login.json"; - //envSrvc["sForgottenPasswordForm"] = "modules/calimap/forms/login/forgotten_password.json"; - envSrvc["sSignUpForm"] = "modules/extraction/forms/login/sign_up.json"; - // Chargement du fichier less pour le login. - //loadExternalCss(["modules/calimap/less/login.less"]); - // Chargement des fichiers de langues du module. - var clearListener = $rootScope.$on('endFormNgRepeat', function (event) { - clearListener(); - $translatePartialLoader["addPart"]("modules/extraction/lang"); - $translate["refresh"](); - }); -}); \ No newline at end of file diff --git a/src/module_extraction/module/lang/lang-en.json b/src/module_extraction/module/lang/lang-en.json deleted file mode 100755 index de3d253d..00000000 --- a/src/module_extraction/module/lang/lang-en.json +++ /dev/null @@ -1,111 +0,0 @@ -{ - "TEXT_MODE_EXTRACTION" : "Gestion des extractions", - "TITLE_MODE_EXTRACTION" : "Extraction", - "TEXT_MODE_EXTRACTION_REF" : "Gestion références des extractions", - "TITLE_MODE_EXTRACTION_REF" : "extraction_ref", - "EXTRACTION_EXTRACTION_EXTRACTION_TITLE" : "Extraction", - "EXTRACTION_EXTRACTION_EXTRACTION_TITLE_INSERT" : "Extraction", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_BO_ID" : "Id métier", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_STATUS" : "Etat", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_CREATION_DATE" : "Date de création", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_REQUESTOR" : "Demandeur", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_AE" : "Acte d'engagement", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_EXTENT" : "Etendue", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_COMPANY" : "Organisme", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_LAYERS" : "Couches", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_STATISTIQUE" : "Données statistiques", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_VECTOR_FORMAT_ID" : "Format Vecteurs", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_COORDSYS_ID" : "Système de coordonnées", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_NOTE" : "note", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_NOTE_LINE" : "note_line", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_RASTER_FORMAT_ID" : "Format Images", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_EXTENT_METHOD" : "Méthode de saisie", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_SIGNED" : "Acte d'engagement signé", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ACCEPTED_BY_CPA" : "Validation de l'usage décrit pour les données", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_IDENTIFICATION_COMPLETE" : "Cadre d'identification complet", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_DEFINITION_COMPLETE" : "Définition des traitements non renseignée", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_CREATE" : "Créer", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_REJECT_EXTRACTION" : "Refuser l'extraction", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_RELOAD_AE" : "Recharger l'acte d'engagement", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_SEND_AE" : "Soumettre l'AE", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_TERMINATE" : "Terminer", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ASK_AE" : "Demander l'AE", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_GENERATE_AE" : "Générer l'AE", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ALLOW_EXTRACTION" : "Autoriser l'extraction", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_COMMENT" : "Commentaires", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_PRIORITY_ID" : "Priorité", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ID_COM" : "Commune", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ID_CONSEIL" : "Conseil de Territoire", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_HISTORY" : "Historique", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_TECHNIQUE" : "Générer précaunisations techniques", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_CARTOGRAPHIQUE" : "Générer charte cartographique", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_LISTE_TERRITOIRE" : "Liste des territoires", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_LISTE_COMMUNE" : "Liste des communes", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_FORMAT" : "Format", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ISOGEO" : "Générer métadonnées isogéo", - "EXTRACTION_REF_EXTRACTION_COORDSYS_TITLE" : "Système de coordonnées {{::coordsys_id}}", - "EXTRACTION_REF_EXTRACTION_COORDSYS_TITLE_INSERT" : "Système de coordonnées", - "EXTRACTION_REF_EXTRACTION_COORDSYS_FORM_COORDSYS_ID" : "ID", - "EXTRACTION_REF_EXTRACTION_COORDSYS_FORM_COORDSYS" : "Nom", - "EXTRACTION_REF_EXTRACTION_FORMAT_TITLE" : "Format {{::format_id}}", - "EXTRACTION_REF_EXTRACTION_FORMAT_TITLE_INSERT" : "Format", - "EXTRACTION_REF_EXTRACTION_FORMAT_SELECT" : "Sélectionner un format :", - "EXTRACTION_REF_EXTRACTION_FORMAT_FORM_FORMAT_ID" : "ID", - "EXTRACTION_REF_EXTRACTION_FORMAT_FORM_FORMAT" : "Nom", - "EXTRACTION_REF_EXTRACTION_FORMAT_FORM_USE_FOR_RASTER" : "Raster", - "EXTRACTION_REF_EXTRACTION_FORMAT_FORM_USE_FOR_VECTOR" : "Vecteur", - "EXTRACTION_REF_EXTRACTION_LAYER_TITLE" : "Couche {{::layer_id}}", - "EXTRACTION_REF_EXTRACTION_LAYER_TITLE_INSERT" : "Couche", - "EXTRACTION_REF_EXTRACTION_LAYER_FORM_LAYER_ID" : "ID", - "EXTRACTION_REF_EXTRACTION_LAYER_FORM_LAYER" : "Nom", - "EXTRACTION_REF_EXTRACTION_LAYER_FORM_CATEGORY" : "Catégorie", - "EXTRACTION_REF_EXTRACTION_LAYER_FORM_RESTRICTION" : "Restriction", - "EXTRACTION_REF_EXTRACTION_LAYER_FORM_UNUSED_ATTRIBUTES" : "Attributs inutilisés", - "EXTRACTION_REF_EXTRACTION_LAYER_LAYERS_TOOLTIP_TITLE" : "Couches", - "EXTRACTION_REF_EXTRACTION_LAYER_UNUSED_ATTRIBUTES_TOOLTIP_TITLE" : "Attributs inutilisés", - "CONFIGURATION_VITIS_CONFIGURATION_EXTRACTIONCONFIG_FORM_SCHEMA_EXTRACTION" : "", - "CONFIGURATION_VITIS_CONFIGURATION_EXTRACTIONCONFIG_FORM_COLOR_MUTUALIZED" : "", - "CONFIGURATION_VITIS_CONFIGURATION_EXTRACTIONCONFIG_FORM_COLOR_NO_MUTUALIZED" : "", - "TEXT_MODE_EXTRACTION_FORM" : "", - "TITLE_MODE_EXTRACTION_FORM" : "extraction_form", - "SIGN_UP_END_DATE" : "Date de fin de contrat", - "SIGN_UP_START_DATE" : "Date de début de contrat", - "SIGN_UP_STUDY_OBJECT" : "Objet de l'étude", - "SIGN_UP_PUBLIC_IP" : "IP publique fixe", - "SIGN_UP_PHONE" : "Téléphone", - "SIGN_UP_DEMANDEUR" : "Nom du demandeur", - "SIGN_UP_MAIL_DEMANDEUR" : "Adresse mail du demandeur", - "TEXT_MODE_EXTRACTION_DEPOT" : "", - "TITLE_MODE_EXTRACTION_DEPOT" : "extraction_depot", - "EXTRACTION_EXTRACTION_CP_TITLE_INSERT" : "Extraction", - "EXTRACTION_EXTRACTION_CP_FORM_TECHNIQUE" : "Générer précaunisations techniques", - "EXTRACTION_EXTRACTION_CP_FORM_CARTOGRAPHIQUE" : "Générer charte cartographique", - "EXTRACTION_EXTRACTION_CP_FORM_ISOGEO" : "Générer métadonnées isogéo", - "EXTRACTION_EXTRACTION_CP_FORM_COMPANY" : "Organisme", - "EXTRACTION_EXTRACTION_CP_FORM_EXTENT_METHOD" : "Méthode de saisie", - "EXTRACTION_EXTRACTION_CP_FORM_ID_COM" : "Commune", - "EXTRACTION_EXTRACTION_CP_FORM_ID_CONSEIL" : "Conseil de Territoire", - "EXTRACTION_EXTRACTION_CP_FORM_EXTENT" : "Etendue", - "EXTRACTION_EXTRACTION_CP_FORM_LAYERS" : "Couches", - "EXTRACTION_EXTRACTION_CP_FORM_STATISTIQUE" : "Données statistiques", - "EXTRACTION_EXTRACTION_CP_FORM_COORDSYS_ID" : "Système de coordonnées", - "EXTRACTION_EXTRACTION_CP_FORM_VECTOR_FORMAT_ID" : "Format Vecteurs", - "EXTRACTION_EXTRACTION_CP_FORM_RASTER_FORMAT_ID" : "Format Images", - "EXTRACTION_EXTRACTION_CP_FORM_STATUS" : "Etat", - "EXTRACTION_EXTRACTION_CP_FORM_HISTORY" : "Historique", - "EXTRACTION_EXTRACTION_CP_FORM_CREATION_DATE" : "Date de création", - "EXTRACTION_EXTRACTION_CP_FORM_REQUESTOR" : "Demandeur", - "EXTRACTION_EXTRACTION_CP_FORM_AE" : "Acte d'engagement", - "EXTRACTION_EXTRACTION_CP_FORM_NOTE" : "note", - "EXTRACTION_EXTRACTION_CP_FORM_NOTE_LINE" : "note_line", - "EXTRACTION_EXTRACTION_CP_FORM_SIGNED" : "Acte d'engagement signé", - "EXTRACTION_EXTRACTION_CP_FORM_ACCEPTED_BY_CPA" : "Validation de l'usage décrit pour les données", - "EXTRACTION_EXTRACTION_CP_FORM_IDENTIFICATION_COMPLETE" : "Cadre d'identification complet", - "EXTRACTION_EXTRACTION_CP_FORM_DEFINITION_COMPLETE" : "Définition des traitements non renseignée", - "EXTRACTION_EXTRACTION_CP_FORM_COMMENT" : "Commentaires", - "EXTRACTION_EXTRACTION_CP_FORM_PRIORITY_ID" : "Priorité", - "EXTRACTION_EXTRACTION_CP_TITLE" : "Extraction", - "EXTRACTION_EXTRACTION_CP_FORM_BO_ID" : "Id métier", - "EXTRACTION_DEPOT_EXTRACTION_EXTRACTION_DEPOT_TITLE" : "", - "EXTRACTION_DEPOT_EXTRACTION_EXTRACTION_DEPOT_TITLE_INSERT" : "" -} \ No newline at end of file diff --git a/src/module_extraction/module/lang/lang-fr.json b/src/module_extraction/module/lang/lang-fr.json deleted file mode 100755 index 88375368..00000000 --- a/src/module_extraction/module/lang/lang-fr.json +++ /dev/null @@ -1,123 +0,0 @@ -{ - "TEXT_MODE_EXTRACTION" : "Gestion des extractions", - "TITLE_MODE_EXTRACTION" : "Extraction", - "TEXT_MODE_EXTRACTION_REF" : "Gestion références des extractions", - "TITLE_MODE_EXTRACTION_REF" : "extraction_ref", - "EXTRACTION_EXTRACTION_EXTRACTION_TITLE" : "Extraction", - "EXTRACTION_EXTRACTION_EXTRACTION_TITLE_INSERT" : "Extraction", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_BO_ID" : "Id métier", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_STATUS" : "Etat", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_CREATION_DATE" : "Date de création", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_REQUESTOR" : "Demandeur", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_AE" : "Acte d'engagement", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_EXTENT" : "Etendue", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_COMPANY" : "Organisme", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_LAYERS" : "Couches", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_STATISTIQUE" : "Données statistiques", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_VECTOR_FORMAT_ID" : "Format Vecteurs", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_COORDSYS_ID" : "Système de coordonnées", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_NOTE" : "note", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_NOTE_LINE" : "note_line", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_RASTER_FORMAT_ID" : "Format Images", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_EXTENT_METHOD" : "Méthode de saisie", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_SIGNED" : "Acte d'engagement signé", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ACCEPTED_BY_CPA" : "Validation de l'usage décrit pour les données", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_IDENTIFICATION_COMPLETE" : "Cadre d'identification complet", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_DEFINITION_COMPLETE" : "Définition des traitements non renseignée", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_CREATE" : "Créer", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_REJECT_EXTRACTION" : "Refuser l'extraction", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_RELOAD_AE" : "Recharger l'acte d'engagement", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_SEND_AE" : "Soumettre l'AE", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_TERMINATE" : "Terminer", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ASK_AE" : "Demander l'AE", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_GENERATE_AE" : "Générer l'AE", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ALLOW_EXTRACTION" : "Autoriser l'extraction", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_COMMENT" : "Commentaires", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_PRIORITY_ID" : "Priorité", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ID_COM" : "Commune", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ID_CONSEIL" : "Conseil de Territoire", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_HISTORY" : "Historique", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_TECHNIQUE" : "Générer précaunisations techniques", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_CARTOGRAPHIQUE" : "Générer charte cartographique", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_LISTE_TERRITOIRE" : "Liste des territoires", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_LISTE_COMMUNE" : "Liste des communes", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_FORMAT" : "Format", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_ISOGEO" : "Générer métadonnées isogéo", - "EXTRACTION_REF_EXTRACTION_COORDSYS_TITLE" : "Système de coordonnées {{::coordsys_id}}", - "EXTRACTION_REF_EXTRACTION_COORDSYS_TITLE_INSERT" : "Système de coordonnées", - "EXTRACTION_REF_EXTRACTION_COORDSYS_FORM_COORDSYS_ID" : "ID", - "EXTRACTION_REF_EXTRACTION_COORDSYS_FORM_COORDSYS" : "Nom", - "EXTRACTION_REF_EXTRACTION_FORMAT_TITLE" : "Format {{::format_id}}", - "EXTRACTION_REF_EXTRACTION_FORMAT_TITLE_INSERT" : "Format", - "EXTRACTION_REF_EXTRACTION_FORMAT_SELECT" : "Sélectionner un format :", - "EXTRACTION_REF_EXTRACTION_FORMAT_FORM_FORMAT_ID" : "ID", - "EXTRACTION_REF_EXTRACTION_FORMAT_FORM_FORMAT" : "Nom", - "EXTRACTION_REF_EXTRACTION_FORMAT_FORM_USE_FOR_RASTER" : "Raster", - "EXTRACTION_REF_EXTRACTION_FORMAT_FORM_USE_FOR_VECTOR" : "Vecteur", - "EXTRACTION_REF_EXTRACTION_LAYER_TITLE" : "Couche {{::layer_id}}", - "EXTRACTION_REF_EXTRACTION_LAYER_TITLE_INSERT" : "Couche", - "EXTRACTION_REF_EXTRACTION_LAYER_FORM_LAYER_ID" : "ID", - "EXTRACTION_REF_EXTRACTION_LAYER_FORM_LAYER" : "Nom", - "EXTRACTION_REF_EXTRACTION_LAYER_FORM_CATEGORY" : "Catégorie", - "EXTRACTION_REF_EXTRACTION_LAYER_FORM_RESTRICTION" : "Restriction", - "EXTRACTION_REF_EXTRACTION_LAYER_FORM_UNUSED_ATTRIBUTES" : "Attributs inutilisés", - "EXTRACTION_REF_EXTRACTION_LAYER_LAYERS_TOOLTIP_TITLE" : "Couches", - "EXTRACTION_REF_EXTRACTION_LAYER_UNUSED_ATTRIBUTES_TOOLTIP_TITLE" : "Attributs inutilisés", - "CONFIGURATION_VITIS_CONFIGURATION_EXTRACTIONCONFIG_FORM_SCHEMA_EXTRACTION" : "", - "CONFIGURATION_VITIS_CONFIGURATION_EXTRACTIONCONFIG_FORM_COLOR_MUTUALIZED" : "Couleur des couches mutualisées", - "CONFIGURATION_VITIS_CONFIGURATION_EXTRACTIONCONFIG_FORM_COLOR_NO_MUTUALIZED" : "Couleur des couches non mutualisées", - "TEXT_MODE_EXTRACTION_FORM" : "", - "TITLE_MODE_EXTRACTION_FORM" : "extraction_form", - "SIGN_UP_END_DATE" : "Date de fin de contrat", - "SIGN_UP_START_DATE" : "Date de début de contrat", - "SIGN_UP_STUDY_OBJECT" : "Objet de l'étude", - "SIGN_UP_PUBLIC_IP" : "IP publique fixe", - "SIGN_UP_PHONE" : "Téléphone", - "SIGN_UP_DEMANDEUR" : "Nom du demandeur", - "SIGN_UP_MAIL_DEMANDEUR" : "Adresse mail du demandeur", - "TEXT_MODE_EXTRACTION_DEPOT" : "", - "TITLE_MODE_EXTRACTION_DEPOT" : "extraction_depot", - "EXTRACTION_EXTRACTION_CP_TITLE_INSERT" : "Extraction", - "EXTRACTION_EXTRACTION_CP_FORM_TECHNIQUE" : "Générer précaunisations techniques", - "EXTRACTION_EXTRACTION_CP_FORM_CARTOGRAPHIQUE" : "Générer charte cartographique", - "EXTRACTION_EXTRACTION_CP_FORM_ISOGEO" : "Générer métadonnées isogéo", - "EXTRACTION_EXTRACTION_CP_FORM_COMPANY" : "Organisme", - "EXTRACTION_EXTRACTION_CP_FORM_EXTENT_METHOD" : "Méthode de saisie", - "EXTRACTION_EXTRACTION_CP_FORM_ID_COM" : "Commune", - "EXTRACTION_EXTRACTION_CP_FORM_ID_CONSEIL" : "Conseil de Territoire", - "EXTRACTION_EXTRACTION_CP_FORM_EXTENT" : "Etendue", - "EXTRACTION_EXTRACTION_CP_FORM_LAYERS" : "Couches", - "EXTRACTION_EXTRACTION_CP_FORM_STATISTIQUE" : "Données statistiques", - "EXTRACTION_EXTRACTION_CP_FORM_COORDSYS_ID" : "Système de coordonnées", - "EXTRACTION_EXTRACTION_CP_FORM_VECTOR_FORMAT_ID" : "Format Vecteurs", - "EXTRACTION_EXTRACTION_CP_FORM_RASTER_FORMAT_ID" : "Format Images", - "EXTRACTION_EXTRACTION_CP_FORM_STATUS" : "Etat", - "EXTRACTION_EXTRACTION_CP_FORM_HISTORY" : "Historique", - "EXTRACTION_EXTRACTION_CP_FORM_CREATION_DATE" : "Date de création", - "EXTRACTION_EXTRACTION_CP_FORM_REQUESTOR" : "Demandeur", - "EXTRACTION_EXTRACTION_CP_FORM_AE" : "Acte d'engagement", - "EXTRACTION_EXTRACTION_CP_FORM_NOTE" : "note", - "EXTRACTION_EXTRACTION_CP_FORM_NOTE_LINE" : "note_line", - "EXTRACTION_EXTRACTION_CP_FORM_SIGNED" : "Acte d'engagement signé", - "EXTRACTION_EXTRACTION_CP_FORM_ACCEPTED_BY_CPA" : "Validation de l'usage décrit pour les données", - "EXTRACTION_EXTRACTION_CP_FORM_IDENTIFICATION_COMPLETE" : "Cadre d'identification complet", - "EXTRACTION_EXTRACTION_CP_FORM_DEFINITION_COMPLETE" : "Définition des traitements non renseignée", - "EXTRACTION_EXTRACTION_CP_FORM_COMMENT" : "Commentaires", - "EXTRACTION_EXTRACTION_CP_FORM_PRIORITY_ID" : "Priorité", - "EXTRACTION_EXTRACTION_CP_TITLE" : "Extraction", - "EXTRACTION_EXTRACTION_CP_FORM_BO_ID" : "Id métier", - "EXTRACTION_DEPOT_EXTRACTION_EXTRACTION_DEPOT_TITLE" : "", - "EXTRACTION_DEPOT_EXTRACTION_EXTRACTION_DEPOT_TITLE_INSERT" : "", - "EXTRACTION_DEPORT_DELETE_NO_SELECTED": "Aucun fichier sélectionné", - "EXTRACTION_DEPOT_DELETE_SELECT_A_FILE": "Veuillez sélectionner un fichier à supprimer", - "EXTRACTION_DEPOT_TITLE": "Dépot de fichiers", - "EXTRACTION_DEPOT_FILE_UPLOAD": "Fichier à envoyer", - "EXTRACTION_DEPOT_FILE_UPDATE": "Mettre à jour", - "ERROR_FILE_SIZE_EXTRACTION_LOAD_DEPOSIT_DIRECTORY" : "La taille du fichier est supérieure à la taille maximale autorisée.", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_DEPOSIT" : "Déposer", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_INPUT_DEPOSIT" : "Fichier à déposer", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_FORMAT_EXTENSION" : "Format du fichier", - "EXTRACTION_EXTRACTION_EXTRACTION_FORM_SCHEMA_CONSTRAINT" : "Schéma des contraintes", - "CONFIGURATION_VITIS_CONFIGURATION_EXTRACTIONCONFIG_FORM_SIG" : "Extensions SIG (séparées par |)", - "CONFIGURATION_VITIS_CONFIGURATION_EXTRACTIONCONFIG_FORM_DAO" : "Extensions DAO (séparées par |)" -} \ No newline at end of file diff --git a/src/module_extraction/module/less/main.less b/src/module_extraction/module/less/main.less deleted file mode 100755 index 6fc121e6..00000000 --- a/src/module_extraction/module/less/main.less +++ /dev/null @@ -1,5 +0,0 @@ -// LESS -@ui-grid-bg-image: "../images/ui-grid/wbg.gif"; -@font-color-purple: #6d1a67; -@test-color: black; -@import 'projectDirectory.less'; \ No newline at end of file diff --git a/src/module_extraction/module/templates/depositDirectoryTpl.html b/src/module_extraction/module/templates/depositDirectoryTpl.html deleted file mode 100755 index 14d9fd0c..00000000 --- a/src/module_extraction/module/templates/depositDirectoryTpl.html +++ /dev/null @@ -1,16 +0,0 @@ -<div data-app-deposit-directory="" id="deposit-directory" class="row no-bs-row-margin deposit-directory"> - <div class="col-xs-12 no_bs_padding"> - <!-- Titre --> - <div id="deposit_directory_title_container" class="row"> - <div class="col-xs-12 deposit-directory-title">Dépôt {{oFormValues[sFormDefinitionName].name}}</div> - </div> - <!-- Treeview --> - <div id="deposit-directory-treeview-container" class="row deposit-directory-treeview-container"> - <div data-app-deposit-directory-treeview="" class="col-xs-12 deposit-directory-treeview"></div> - </div> - <!-- Formulaire (upload) --> - <div id="deposit_directory_form_container" class="row deposit-directory-upload-form-container"> - <div data-app-deposit-directory-form="" class="col-xs-{{oFormDefinition[sFormDefinitionName].nb_cols}}"></div> - </div> - </div> -</div> \ No newline at end of file diff --git a/src/module_extraction/web_service/conf/properties.inc b/src/module_extraction/web_service/conf/properties.inc deleted file mode 100755 index 62a488a9..00000000 --- a/src/module_extraction/web_service/conf/properties.inc +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$properties['color_mutualized'] = 'green'; -$properties['color_no_mutualized'] = 'red'; -$properties['sig'] = '*.shp'; -$properties['dao'] = '*.dao'; -$properties['shared_dir'] = 'D:/serveur/gtf/vas/shared'; -?> \ No newline at end of file diff --git a/src/module_extraction/web_service/conf/properties_server.inc b/src/module_extraction/web_service/conf/properties_server.inc deleted file mode 100644 index 1f67047d..00000000 --- a/src/module_extraction/web_service/conf/properties_server.inc +++ /dev/null @@ -1,3 +0,0 @@ -<?php - $properties['schema_extraction'] = 's_extraction'; -?> \ No newline at end of file diff --git a/src/module_extraction/web_service/conf/selected_properties.inc b/src/module_extraction/web_service/conf/selected_properties.inc deleted file mode 100644 index 90da243f..00000000 --- a/src/module_extraction/web_service/conf/selected_properties.inc +++ /dev/null @@ -1,18 +0,0 @@ -<?php - -$aAdminFields = Array( - 'color_mutualized', - 'color_no_mutualized', - 'sig', - 'dao' -); -$aUserFields = Array( - 'color_mutualized', - 'color_no_mutualized', - 'sig', - 'dao' -); - -$properties['aAdminFields'] = array_merge($properties['aAdminFields'], $aAdminFields); -$properties['aUserFields'] = array_merge($properties['aUserFields'], $aUserFields); -?> \ No newline at end of file diff --git a/src/module_extraction/web_service/conf/version.inc b/src/module_extraction/web_service/conf/version.inc deleted file mode 100755 index 42fa9895..00000000 --- a/src/module_extraction/web_service/conf/version.inc +++ /dev/null @@ -1,7 +0,0 @@ -<?php -// Numéro de la version de extraction -define ("VM_VERSION", "20XX.XX.XX"); -define ("VM_BUILD", "XXXXX"); -define ("VM_MONTH_YEAR", "XX_20XX"); -define ("VM_STATUS", "STABLE"); -?> \ No newline at end of file diff --git a/src/module_extraction/web_service/sql/sqlQueries.xml b/src/module_extraction/web_service/sql/sqlQueries.xml deleted file mode 100755 index 04344a79..00000000 --- a/src/module_extraction/web_service/sql/sqlQueries.xml +++ /dev/null @@ -1,493 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<sqlQueries> - <title>Scripts d'installation et de mises à jour de la base du VAS</title> - <queriesCollection> - <query> - <type>init</type> - <version>2017-01-00</version> - <code> - <![CDATA[ - --Partie pour le module extraction version 2017-01-00 généré par WAB le 22/05/2018 à 09:09:32 - --Partie pour le module extraction version 2017-01-01 généré par WAB le 18/07/2017 à 09:52:00 - CREATE SCHEMA s_extraction AUTHORIZATION u_vitis; - GRANT ALL ON SCHEMA s_extraction TO u_vitis; - GRANT USAGE ON SCHEMA s_extraction TO extraction_admin; - GRANT USAGE ON SCHEMA s_extraction TO extraction_user; - CREATE SEQUENCE s_extraction.bo_id_extraction_seq START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; - ALTER TABLE s_extraction.bo_id_extraction_seq OWNER TO u_vitis; - GRANT ALL ON SEQUENCE s_extraction.bo_id_extraction_seq TO u_vitis; - GRANT ALL ON SEQUENCE s_extraction.bo_id_extraction_seq TO extraction_admin; - GRANT ALL ON SEQUENCE s_extraction.bo_id_extraction_seq TO extraction_user; - CREATE SEQUENCE s_extraction.seq_common START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; - ALTER TABLE s_extraction.seq_common OWNER TO u_vitis; - GRANT ALL ON SEQUENCE s_extraction.seq_common TO u_vitis; - GRANT ALL ON SEQUENCE s_extraction.seq_common TO extraction_admin; - GRANT ALL ON SEQUENCE s_extraction.seq_common TO extraction_user; - CREATE TABLE s_extraction.extraction (bo_id integer NOT NULL, status character varying(100), history text, creation_date date DEFAULT ('now'::text)::date, requestor character varying(50) DEFAULT "current_user"(), ae character varying(255), extent text, company character varying(50), layers text, vector_format_id character varying(100), coordsys_id character varying(50), note text, note_line text, raster_format_id character varying(100), extent_method character varying(50), signed boolean, accepted_by_cpa boolean, identification_complete boolean, definition_complete boolean, comment text, priority_id integer, id_com text, id_conseil text, email varchar(100),status_id integer); - ALTER TABLE s_extraction.extraction OWNER TO u_vitis; - CREATE TABLE s_extraction.rt_coordsys (coordsys_id character varying(50) NOT NULL, coordsys character varying(100)); - ALTER TABLE s_extraction.rt_coordsys OWNER TO u_vitis; - CREATE TABLE s_extraction.rt_feature_model (feature_type character varying(200) NOT NULL, attribute_name character varying(200) NOT NULL, attribute_data_type character varying(200), geometry_type character varying(200), "order" integer); - ALTER TABLE s_extraction.rt_feature_model OWNER TO u_vitis; - CREATE TABLE s_extraction.rt_format (format_id character varying(100) NOT NULL, format character varying(255), use_for_raster boolean, use_for_vector boolean); - ALTER TABLE s_extraction.rt_format OWNER TO u_vitis; - CREATE TABLE s_extraction.rt_layer (layer_id character varying(100) NOT NULL, layer character varying(255), category character varying(50), restriction character varying(50), unused_attributes text); - ALTER TABLE s_extraction.rt_layer OWNER TO u_vitis; - CREATE TABLE s_extraction.version(version character varying(100) NOT NULL, build integer NOT NULL, date timestamp with time zone NOT NULL, active boolean NOT NULL, CONSTRAINT version_pkey PRIMARY KEY (version)); - ALTER TABLE s_extraction.version OWNER TO u_vitis; - INSERT INTO s_extraction.rt_coordsys (coordsys_id, coordsys) VALUES ('EPSG:27572', 'Lambert 2 étendu'); - INSERT INTO s_extraction.rt_coordsys (coordsys_id, coordsys) VALUES ('Lambert93', 'Lambert 93'); - INSERT INTO s_extraction.rt_coordsys (coordsys_id, coordsys) VALUES ('EPSG:3944', 'Lambert 93 CC44'); - INSERT INTO s_extraction.rt_coordsys (coordsys_id, coordsys) VALUES ('EPSG:4326', 'WGS 84'); - INSERT INTO s_extraction.rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('ECW', 'Er Mapper ECW', true, false); - INSERT INTO s_extraction.rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('ACAD', 'Autocad DWG', false, true); - INSERT INTO s_extraction.rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('SHAPE', 'Esri Shapefile', false, true); - INSERT INTO s_extraction.rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('MAPINFO', 'Mapinfo Tab', false, true); - INSERT INTO s_extraction.rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('MIF', 'Mapinfo MIF/MID', false, true); - INSERT INTO s_extraction.rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('GML', 'GML', false, true); - INSERT INTO s_extraction.rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('OGCKML', 'KML', false, true); - INSERT INTO s_extraction.rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('GEOJSON', 'GEOJSON', false, true); - INSERT INTO s_extraction.rt_format (format_id, format, use_for_raster, use_for_vector) VALUES ('TIFF', 'TIFF', true, false); - INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.arrondissement', 'id_geofla', 'fme_real64', 'fme_no_geom;fme_point;fme_line;fme_area;fme_surface;fme_collection', 1); - INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.arrondissement', 'code_arr', 'fme_varchar(1)', '', 2); - INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.arrondissement', 'code_chf', 'fme_varchar(3)', '', 3); - INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.arrondissement', 'nom_chf', 'fme_varchar(50)', '', 4); - INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.arrondissement', 'x_chf_lieu', 'fme_varchar(255)', '', 5); - INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.arrondissement', 'y_chf_lieu', 'fme_varchar(255)', '', 6); - INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.arrondissement', 'code_dept', 'fme_varchar(2)', '', 7); - INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.arrondissement', 'nom_dept', 'fme_varchar(30)', '', 8); - INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.arrondissement', 'code_reg', 'fme_varchar(2)', '', 9); - INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.arrondissement', 'nom_region', 'fme_varchar(30)', '', 10); - INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.canton', 'id_geofla', 'fme_real64', 'fme_no_geom;fme_point;fme_line;fme_area;fme_surface;fme_collection', 1); - INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.canton', 'code_cant', 'fme_varchar(2)', '', 2); - INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.canton', 'code_chf', 'fme_varchar(3)', '', 3); - INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.canton', 'nom_chf', 'fme_varchar(50)', '', 4); - INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.canton', 'x_chf_lieu', 'fme_varchar(255)', '', 5); - INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.canton', 'y_chf_lieu', 'fme_varchar(255)', '', 6); - INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.canton', 'code_arr', 'fme_varchar(1)', '', 7); - INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.canton', 'code_dept', 'fme_varchar(2)', '', 8); - INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.canton', 'nom_dept', 'fme_varchar(30)', '', 9); - INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.canton', 'code_reg', 'fme_varchar(2)', '', 10); - INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.canton', 'nom_region', 'fme_varchar(30)', '', 11); - INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.commune', 'id_geofla', 'fme_real64', 'fme_no_geom;fme_point;fme_line;fme_area;fme_surface;fme_collection', 1); - INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.commune', 'code_comm', 'fme_varchar(3)', '', 2); - INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.commune', 'insee_com', 'fme_varchar(5)', '', 3); - INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.commune', 'nom_comm', 'fme_varchar(50)', '', 4); - INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.commune', 'statut', 'fme_varchar(20)', '', 5); - INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.commune', 'x_chf_lieu', 'fme_varchar(255)', '', 6); - INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.commune', 'y_chf_lieu', 'fme_varchar(255)', '', 7); - INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.commune', 'z_moyen', 'fme_varchar(255)', '', 8); - INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.commune', 'superficie', 'fme_real64', '', 9); - INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.commune', 'population', 'fme_real64', '', 10); - INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.commune', 'code_cant', 'fme_varchar(2)', '', 11); - INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.commune', 'code_arr', 'fme_varchar(1)', '', 12); - INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.commune', 'code_dept', 'fme_varchar(2)', '', 13); - INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.commune', 'nom_dept', 'fme_varchar(30)', '', 14); - INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.commune', 'code_reg', 'fme_varchar(2)', '', 15); - INSERT INTO s_extraction.rt_feature_model (feature_type, attribute_name, attribute_data_type, geometry_type, "order") VALUES ('geofla.commune', 'nom_region', 'fme_varchar(30)', '', 16); - INSERT INTO s_extraction.rt_layer (layer_id, layer, category, restriction, unused_attributes) VALUES ('geofla.arrondissement', 'Arrondissement', 'Arrondissement', 'interne', 'x_centroid;y_centroid'); - INSERT INTO s_extraction.rt_layer (layer_id, layer, category, restriction, unused_attributes) VALUES ('geofla.canton', 'Canton', 'Arrondissement', 'restreinit', 'x_centroid;y_centroid'); - INSERT INTO s_extraction.rt_layer (layer_id, layer, category, restriction, unused_attributes) VALUES ('geofla.commune', 'Commune', 'Commune', 'public', 'x_centroid;y_centroid'); - ALTER TABLE ONLY s_extraction.extraction ADD CONSTRAINT pk_plan_bo_id PRIMARY KEY (bo_id); - ALTER TABLE ONLY s_extraction.rt_layer ADD CONSTRAINT pk_projet_type PRIMARY KEY (layer_id); - ALTER TABLE ONLY s_extraction.rt_format ADD CONSTRAINT pk_reseau PRIMARY KEY (format_id); - ALTER TABLE ONLY s_extraction.rt_coordsys ADD CONSTRAINT pk_rt_coordsys PRIMARY KEY (coordsys_id); - ALTER TABLE ONLY s_extraction.rt_feature_model ADD CONSTRAINT pk_rt_feature_model PRIMARY KEY (feature_type, attribute_name); - ALTER TABLE ONLY s_extraction.extraction ADD CONSTRAINT fk_coordsys_id FOREIGN KEY (coordsys_id) REFERENCES s_extraction.rt_coordsys(coordsys_id); - ALTER TABLE ONLY s_extraction.extraction ADD CONSTRAINT fk_format_id FOREIGN KEY (vector_format_id) REFERENCES s_extraction.rt_format(format_id); - GRANT ALL ON TABLE s_extraction.extraction TO u_vitis; - GRANT ALL ON TABLE s_extraction.extraction TO extraction_user; - GRANT ALL ON TABLE s_extraction.rt_coordsys TO u_vitis; - GRANT ALL ON TABLE s_extraction.rt_coordsys TO extraction_admin; - GRANT ALL ON TABLE s_extraction.rt_feature_model TO u_vitis; - GRANT ALL ON TABLE s_extraction.rt_feature_model TO extraction_admin; - GRANT ALL ON TABLE s_extraction.rt_format TO u_vitis; - GRANT ALL ON TABLE s_extraction.rt_format TO extraction_admin; - GRANT ALL ON TABLE s_extraction.rt_layer TO u_vitis; - GRANT ALL ON TABLE s_extraction.rt_layer TO extraction_admin; - CREATE TABLE s_extraction.rt_extraction_status (status_id int4 NOT NULL DEFAULT nextval('s_extraction.seq_common'::regclass), name varchar(50) NOT NULL, progress int4 NOT NULL, PRIMARY KEY (status_id)); - ALTER TABLE s_extraction.rt_extraction_status OWNER TO u_vitis; - GRANT ALL ON TABLE s_extraction.rt_extraction_status TO extraction_admin; - CREATE TABLE s_extraction.rt_extraction_status_group( status_id integer NOT NULL, group_id integer NOT NULL, extraction_status_group_id integer NOT NULL, CONSTRAINT pk_workspace_group PRIMARY KEY (extraction_status_group_id), CONSTRAINT fk_group_id_workspace FOREIGN KEY (group_id) REFERENCES s_vitis."group" (group_id) MATCH SIMPLE ON UPDATE RESTRICT ON DELETE CASCADE, CONSTRAINT fk_status_id FOREIGN KEY (status_id) REFERENCES s_extraction.rt_extraction_status (status_id) MATCH SIMPLE ON UPDATE RESTRICT ON DELETE CASCADE)WITH ( OIDS=FALSE); - ALTER TABLE s_extraction.rt_extraction_status_group OWNER TO u_vitis; - GRANT ALL ON TABLE s_extraction.rt_extraction_status_group TO u_vitis; - GRANT SELECT ON TABLE s_extraction.rt_extraction_status_group TO extraction_user; - GRANT SELECT ON TABLE s_extraction.rt_extraction_status_group TO extraction_admin; - CREATE VIEW s_extraction.v_extraction AS SELECT DISTINCT extraction.bo_id, extraction.status_id, extraction.history, extraction.creation_date, extraction.requestor, extraction.ae, extraction.extent, extraction.company, extraction.layers, extraction.vector_format_id, extraction.vector_format_id AS format_id, extraction.coordsys_id, extraction.raster_format_id, extraction.extent_method, extraction.signed, extraction.accepted_by_cpa, extraction.identification_complete, extraction.definition_complete, extraction.priority_id, extraction.id_com, extraction.id_conseil, extraction.note, rt_extraction_status.progress AS progress_level, rt_extraction_status.name AS status_name, rt_extraction_status.name AS status FROM ((((s_extraction.extraction LEFT JOIN s_extraction.rt_extraction_status ON ((extraction.status_id = rt_extraction_status.status_id))) LEFT JOIN s_extraction.rt_extraction_status_group ON ((rt_extraction_status.status_id = rt_extraction_status_group.status_id))) LEFT JOIN s_vitis.user_group ON ((rt_extraction_status_group.group_id = user_group.group_id))) LEFT JOIN s_vitis."user" ON ((user_group.user_id = "user".user_id))) WHERE ((("user".login)::name = "current_user"()) AND (((extraction.requestor)::name = "current_user"()) OR (rt_extraction_status_group.group_id = 12))); - ALTER TABLE s_extraction.v_extraction OWNER TO u_vitis; - GRANT ALL ON TABLE s_extraction.v_extraction TO u_vitis; - GRANT ALL ON TABLE s_extraction.v_extraction TO extraction_admin; - GRANT ALL ON TABLE s_extraction.v_extraction TO extraction_user; - GRANT ALL ON TABLE s_extraction.extraction TO extraction_admin; - GRANT ALL ON TABLE s_extraction.extraction TO extraction_user; - GRANT ALL ON TABLE s_extraction.rt_coordsys TO extraction_admin; - GRANT SELECT ON TABLE s_extraction.rt_coordsys TO extraction_user; - GRANT ALL ON TABLE s_extraction.rt_extraction_status TO extraction_admin; - GRANT SELECT ON TABLE s_extraction.rt_extraction_status TO extraction_user; - GRANT ALL ON TABLE s_extraction.rt_format TO extraction_admin; - GRANT SELECT ON TABLE s_extraction.rt_format TO extraction_user; - GRANT ALL ON TABLE s_extraction.rt_layer TO extraction_admin; - GRANT SELECT ON TABLE s_extraction.rt_layer TO extraction_user; - GRANT SELECT ON TABLE s_extraction.rt_feature_model TO extraction_admin; - GRANT SELECT ON TABLE s_extraction.rt_feature_model TO extraction_user; - --Partie WABSQL générée par WAB le 04/05/2018 à 14:31:04 - -- Ces tables sont normalement prévues dans votre fichier VisualParadigm et sont necessaires pour le fonctionnement de vos objets WAB - --CREATE TABLE s_extraction.rt_extraction_status (status_id integer NOT NULL DEFAULT nextval('s_vitis.seq_common'::regclass), name character varying(50) NOT NULL, progress integer NOT NULL, CONSTRAINT rt_extraction_status_pkey PRIMARY KEY (status_id)); - --CREATE TABLE s_extraction.rt_extraction_status_group (status_id integer NOT NULL, group_id integer NOT NULL, link_id integer NOT NULL DEFAULT nextval('s_vitis.seq_common'::regclass), CONSTRAINT rt_extraction_status_group_pkey PRIMARY KEY (link_id), CONSTRAINT fk_extraction_status_group FOREIGN KEY (status_id) REFERENCES s_extraction.rt_extraction_status (status_id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION); - CREATE TABLE s_extraction.extraction_history (history_id integer NOT NULL DEFAULT nextval('s_extraction.seq_common'::regclass), date timestamp with time zone NOT NULL, login character varying(50) NOT NULL, comment text NOT NULL, bo_id integer NOT NULL, CONSTRAINT extraction_history_pkey PRIMARY KEY (history_id), CONSTRAINT fk_extraction_history FOREIGN KEY (bo_id) REFERENCES s_extraction.extraction (bo_id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION); - -- Vue basique pour vos objets WAB tenant compte de la restriction groupe état - --CREATE OR REPLACE VIEW s_extraction.v_extraction AS SELECT extraction.* FROM s_extraction.extraction LEFT JOIN s_extraction.rt_extraction_status ON rt_extraction_status.status_id = extraction.status_id JOIN s_extraction.rt_extraction_status_group ON rt_extraction_status.status_id = rt_extraction_status_group.status_id WHERE (rt_extraction_status_group.group_id IN ( SELECT user_group.group_id FROM s_vitis.user_group LEFT JOIN s_vitis."user" ON user_group.user_id = "user".user_id WHERE "user".login::name = "current_user"())); - -- u_vitis est propriétaire de toutes vos tables - ALTER TABLE s_extraction.version OWNER TO u_vitis; - ALTER TABLE s_extraction.rt_feature_model OWNER TO u_vitis; - ALTER TABLE s_extraction.extraction OWNER TO u_vitis; - --ALTER TABLE s_extraction.ct OWNER TO u_vitis; - --ALTER TABLE s_extraction.commune OWNER TO u_vitis; - ALTER TABLE s_extraction.rt_coordsys OWNER TO u_vitis; - ALTER TABLE s_extraction.v_extraction OWNER TO u_vitis; - ALTER TABLE s_extraction.rt_format OWNER TO u_vitis; - ALTER TABLE s_extraction.rt_layer OWNER TO u_vitis; - ALTER TABLE s_extraction.rt_extraction_status OWNER TO u_vitis; - ALTER TABLE s_extraction.rt_extraction_status_group OWNER TO u_vitis; - ALTER TABLE s_extraction.extraction_history OWNER TO u_vitis; - -- u_vitis propriétaire sur les tables des objets WAB - --ALTER TABLE s_extraction.rt_extraction_status OWNER to u_vitis; - --ALTER TABLE s_extraction.rt_extraction_status_group OWNER to u_vitis; - --ALTER TABLE s_extraction.extraction_history OWNER to u_vitis; - -- Gestion des droits d'après les méthodes php saisies pour vos objets (annule et remplace) - REVOKE ALL ON TABLE s_extraction.rt_coordsys FROM extraction_admin; - REVOKE ALL ON TABLE s_extraction.v_extraction FROM extraction_user; - REVOKE ALL ON TABLE s_extraction.rt_format FROM extraction_admin; - REVOKE ALL ON TABLE s_extraction.rt_layer FROM extraction_admin; - GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE s_extraction.rt_coordsys TO extraction_admin; - GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE s_extraction.v_extraction TO extraction_user; - GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE s_extraction.rt_format TO extraction_admin; - GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE s_extraction.rt_layer TO extraction_admin; - -- Droits sur les tables des objets WAB - GRANT SELECT ON TABLE s_extraction.rt_extraction_status TO extraction_user; - GRANT SELECT ON TABLE s_extraction.rt_extraction_status_group TO extraction_user; - GRANT SELECT, INSERT ON TABLE s_extraction.extraction_history TO extraction_user; - INSERT INTO s_gtf.messageclass (messageclass, messageclass_type) VALUES ('AE Généré','action'); - INSERT INTO s_gtf.messageclass (messageclass, messageclass_type) VALUES ('Extraction Aix','action'); - INSERT INTO s_gtf.messageclass_action (messageclass_action_id, messageclass, actionclass, index, parameters) VALUES ((SELECT nextval('s_gtf.seq_common'::regclass)),'AE Généré','BoAction',0,'bo_id_attribute=''bo_id''|method=''trGenerer''|class=''Extractions''|module=''extraction'''); - INSERT INTO s_gtf.messageclass_action (messageclass_action_id, messageclass, actionclass, index, parameters) VALUES ((SELECT nextval('s_gtf.seq_common'::regclass)),'AE Généré','EmailAction',1,'template_id = ' || (SELECT email_template_id FROM s_gtf.email_template WHERE name = 'Email demandeur AE généré')); - INSERT INTO s_gtf.messageclass_action (messageclass_action_id, messageclass, actionclass, index, parameters) VALUES ((SELECT nextval('s_gtf.seq_common'::regclass)),'Extraction Aix','EmailAction',1,'template_id = ' || (SELECT email_template_id FROM s_gtf.email_template WHERE name = 'Email controleur données extraites')); - INSERT INTO s_gtf.messageclass_action (messageclass_action_id, messageclass, actionclass, index, parameters) VALUES ((SELECT nextval('s_gtf.seq_common'::regclass)),'Extraction Aix','EmailAction',2,'template_id = ' || (SELECT email_template_id FROM s_gtf.email_template WHERE name = 'Email demandeur données extraites')); - INSERT INTO s_gtf.messageclass_action (messageclass_action_id, messageclass, actionclass, index, parameters) VALUES ((SELECT nextval('s_gtf.seq_common'::regclass)),'Extraction Aix','BoAction',0,'bo_id_attribute=''bo_id''|method=''trTerminerExtraction''|class=''Extractions''|module=''extraction'''); - INSERT INTO s_gtf.email_template (name, subject, body, "to", cc, cci, code, use_advanced, rt_emailcontext_id, attachment) VALUES ('Email demandeur AE généré', NULL, NULL, NULL, NULL, NULL, '$logo = $this->aProperties[''ws_data_dir'']."/gtf/LOGO_AMP.jpg";' || chr(13) || '$base64 = base64_encode(file_get_contents($logo));' || chr(13) || '$image = ''<img src="data:image/png;base64,''.$base64.''">'';' || chr(13) || 'require_once("gtf_lib/gtf_object/Order.class.inc");' || chr(13) || 'require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || '$iBoId = $this->aObjects["oMessage"]->getBody(''bo_id'');' || chr(13) || '$sRequest = "SELECT * from s_extraction.extraction where bo_id = ".$iBoId;' || chr(13) || '$oPDOresult = $this->oBd->executeWithParams($sRequest, array());' || chr(13) || '$aBo = $this->oBd->ligneSuivante ($oPDOresult);' || chr(13) || '$iOrderId = $this->aObjects["oMessage"]->getBody(''order_id'');' || chr(13) || '$this->aObjects["oOrder"]= new orderLib($oBd, $iOrderId, $this->aObjects["oMessage"]->aProperties, "v_order");' || chr(13) || 'error_log( print_r($this->aObjects[''oOrder''], true));' || chr(13) || '$this->aObjects[''oUser''] = new User($oBd, $this->aObjects[''oOrder'']->aFields[''user_id''], $this->aObjects["oMessage"]->aProperties);' || chr(13) || '$this->to = $aBo[''email''];' || chr(13) || '$this->cc = $this->aObjects["oOrder"]->aFields[''email_notifications''];' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[PAYS D\''AIX - SIGAM] Demande N° ''.$aBo[''bo_id''].'' - Acte d\''Engagement pour l\''utilisation des données SIG'';' || chr(13) || '$this->body = $image.''<p>Bonjour</p>' || chr(13) || '<p></p>' || chr(13) || '<p>Suite à votre demande n°''.$aBo[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($aBo[''creation_date''])).'' pour l\''extraction des données, <u>merci de bien vouloir déposer l\''acte d\''engagement</u> ci-joint complété et signé, à l\''adresse suivante:<br/>' || chr(13) || '<A HREF="https://scpa430.cpa.fr/extraction">Application Extraction</A></p>' || chr(13) || '<p>Une fois réceptionné, l\''acte d\''engagement sera soumis à la validation du Territoire du Pays d\''Aix.<br/>' || chr(13) || 'Si celui-ci est validé, vous recevrez les données par mail (taille < 5Mo) ou par lien de téléchargement (taille > 5Mo).</p>' || chr(13) || '<p>Cordialement,</p>' || chr(13) || '<p>Le service d\''Information Géographique et Applicatifs Métiers (SIGAM)<br/>' || chr(13) || 'Territoire du Pays d\''Aix<br/>' || chr(13) || 'Tel : 04 42 93 83 50<br/>' || chr(13) || 'Mail : <a href="mailto:sig.paysdaix@ampmetropole.fr">sig.paysdaix@ampmetropole.fr</a> </p>'';' || chr(13) || '// les résultats de moins de 5 Mo sont envoyés en pièce jointe' || chr(13) || ' if (filesize($this->aObjects["oOrder"]->aFields[''result_file''])> (5*1024*1024)){' || chr(13) || ' $this->body .= ''<p>Le résultat est disponible par téléchargement :<br/><a href="'' . $this->aObjects["oOrder"]->aFields[''result_url''] . ''">Télécharger le résultat</a></p>'';' || chr(13) || ' } else {' || chr(13) || ' $this->aAttachments[0] = $this->aObjects["oOrder"]->aFields[''result_file''];' || chr(13) || ' }' || chr(13) || 'error_log(print_r($this->aObjects["oOrder"]->aFields, true));', '1', 'gtf', NULL); - INSERT INTO s_gtf.email_template (name, subject, body, "to", cc, cci, code, use_advanced, rt_emailcontext_id, attachment) VALUES ('Email demandeur AE à resoumettre', NULL, NULL, NULL, NULL, NULL, 'require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || 'require_once("vmlib/logUtil.inc");' || chr(13) || '$iBoId = $this->aObjects["oBusinessObject"]->aValues[''bo_id''];' || chr(13) || '$sUserLogin = $this->aObjects["oBusinessObject"]->aValues[''requestor''];' || chr(13) || '$sSql = ''SELECT user_id FROM s_framework.user WHERE login=\''''.$this->aObjects[''oBusinessObject'']->aValues[''requestor''].''\'''';' || chr(13) || '//writeToErrorLog($sSql);' || chr(13) || '$oResult = $oBd->execute($sSql);' || chr(13) || 'if(!$oBd->erreurRencontree) {' || chr(13) || ' if ($oBd->nombreLigne ($oResult) > 0) {' || chr(13) || ' $this->aObjects[''oUser''] = new User($oBd, $oBd->objetSuivant($oResult)->user_id, $this->aObjects["oBusinessObject"]->aProperties);' || chr(13) || ' }' || chr(13) || '}' || chr(13) || '//$this->to = ''sig@agglo-paysdaix.fr'';' || chr(13) || '$this->to = $this->aObjects[''oBusinessObject'']->aValues[''email''];' || chr(13) || '$this->cc = '''';' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[PAYS D\''AIX- SIGAM] Demande N° ''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' - Acte d\''engagement non valide'';' || chr(13) || '$this->body = ''<p>Bonjour,</p>' || chr(13) || ' <p>Suite à votre demande n°''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($this->aObjects[''oBusinessObject'']->aValues[''creation_date''])).'' pour l\''extraction des données, votre demande n\''a pas encore été validée pour la ou les raisons suivantes :<br/>'';' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''signed''] == "false"){' || chr(13) || ' $this->body .= '' - L\''acte d\''engagement n\''est pas signé<br/>'';' || chr(13) || '}' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''identification_complete''] == "false"){' || chr(13) || ' $this->body .= '' - Le cadre d\''identification du dépositaire est incomplet<br/>'';' || chr(13) || '}' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''definition_complete''] == "false"){' || chr(13) || ' $this->body .= '' - La définition des traitements pour l\''usage du cadastre est non renseignée<br/>'';' || chr(13) || '}' || chr(13) || 'error_log(print_r($this->aObjects[''oBusinessObject'']->aValues, true));' || chr(13) || '//$this->body .= ''<p>''.$this->aObjects[''oBusinessObject'']->aValues[''comment''].''</p>'';' || chr(13) || '$this->body .=''<p><u>Merci de bien vouloir déposer à nouveau l\''acte d\''engagement</u> à l\''adresse suivante :<br/>' || chr(13) || '<A HREF="https://scpa430.cpa.fr/extraction">Application Extraction</A></p>' || chr(13) || '<p>Une fois réceptionné, l\''acte d\''engagement sera soumis à la validation du Territoire du Pays d\''Aix.<br/>' || chr(13) || 'Si celui-ci est validé, vous recevrez les données par mail (taille < 5Mo) ou par lien de téléchargement (taille > 5Mo).</p>' || chr(13) || '<p>Cordialement,</p>' || chr(13) || '<p>Le service d\''Information Géographique et Applicatifs Métiers (SIGAM)<br/>' || chr(13) || 'Territoire du Pays d\''Aix<br/>' || chr(13) || 'Tel : 04 42 93 83 50<br/>' || chr(13) || 'Mail : <a href="mailto:sig.paysdaix@ampmetropole.fr">sig.paysdaix@ampmetropole.fr</a> </p>'';' || chr(13) || '$this->aAttachments[0] = '''';' || chr(13) || '', '1', 'gtf', NULL); - INSERT INTO s_gtf.email_template (name, subject, body, "to", cc, cci, code, use_advanced, rt_emailcontext_id, attachment) VALUES ('Email controleur données extraites', NULL, NULL, NULL, NULL, NULL, 'require_once("gtf_lib/gtf_object/Order.class.inc");' || chr(13) || 'require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || '$iBoId = $this->aObjects["oMessage"]->getBody(''bo_id'');' || chr(13) || '$sRequest = "SELECT * from s_extraction.extraction where bo_id = ".$iBoId;' || chr(13) || '$oPDOresult = $this->oBd->executeWithParams($sRequest, array());' || chr(13) || '$aBo = $this->oBd->ligneSuivante ($oPDOresult);' || chr(13) || '$iOrderId = $this->aObjects["oMessage"]->getBody(''order_id'');' || chr(13) || '$this->aObjects["oOrder"]= new OrderLib($oBd, $iOrderId, $this->aObjects["oMessage"]->aProperties, "v_order");' || chr(13) || '$this->aObjects[''oUser''] = new User($oBd, $this->aObjects[''oOrder'']->aFields[''user_id''], $this->aObjects["oMessage"]->aProperties);' || chr(13) || '$this->to = ''sig.paysdaix@ampmetropole.fr'';' || chr(13) || '$this->cc = '''';' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[GTF] - Demande N° ''.$aBo[''bo_id''].'' - Extraction des données'';' || chr(13) || '$this->body = ''<p>Les données concernant la demande n°''.$aBo[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($aBo[''creation_date''])).'' ont été envoyées au demandeur.</p>' || chr(13) || '<p>Cordialement,</p>' || chr(13) || '<p>L\''application d\''extraction de données de GTF</p>'';' || chr(13) || '', '1', 'gtf', NULL); - INSERT INTO s_gtf.email_template (name, subject, body, "to", cc, cci, code, use_advanced, rt_emailcontext_id, attachment) VALUES ('public', NULL, NULL, NULL, NULL, NULL, '$logo = $this->aProperties[''ws_data_dir'']."/gtf/LOGO_AMP.jpg";' || chr(13) || '$base64 = base64_encode(file_get_contents($logo));' || chr(13) || '$image = ''<img src="data:image/png;base64,''.$base64.''">'';' || chr(13) || 'if ($this->aObjects["oOrder"]->aFields[''order_status_id''] == 3) {' || chr(13) || ' $this->to = '''' . $this->aObjects["oOrder"]->getUser()->aFields[''email''] . '''';' || chr(13) || ' $this->cc = '''' . $this->aObjects["oOrder"]->aFields[''email_notifications''] . '''';' || chr(13) || ' $this->cci = '''';' || chr(13) || ' $this->subject = ''[Pays d\''Aix - SIGAM] - Données extraites'';' || chr(13) || ' $this->body = $image.''<p>Bonjour,</p>'';' || chr(13) || ' $this->body .=''<p></p><p>Les données correspondant à votre demande en date du ''.date(''d/m/Y'',strtotime($this->aObjects["oOrder"]->aFields[''order_date''])).'' sont disponibles '';' || chr(13) || ' if (filesize($this->aObjects["oOrder"]->aFields[''result_file''])> 5242880){' || chr(13) || ' $this->body .= ''sur le lien de téléchargement suivant :<br/><a href="''.$this->aObjects["oOrder"]->aFields[''result_url''] . ''">Télécharger le résultat</a></p>'';' || chr(13) || ' } else {' || chr(13) || ' $this->body .= ''en pièce jointe.</p>'';' || chr(13) || ' $this->aAttachments[0] = $this->aObjects["oOrder"]->aFields[''result_file''];' || chr(13) || ' }' || chr(13) || ' $this->body .=''<p>Vous en souhaitant bonne réception,</p>' || chr(13) || ' <p>Cordialement,</p>' || chr(13) || ' <p>Le service d\''Information Géographique et Applicatifs Métiers (SIGAM)<br/>' || chr(13) || ' Conseil de Territoire du Pays d\''Aix<br/>' || chr(13) || ' Tel : 04 42 93 83 50<br/>' || chr(13) || ' Mail : <a href="mailto:sig.paysdaix@ampmetropole.fr">sig.paysdaix@ampmetropole.fr</a> </p>' || chr(13) || '' || chr(13) || ' '';' || chr(13) || '}else{' || chr(13) || ' $this->to = '''' . $this->aObjects["oOrder"]->getUser()->aFields[''email''] . '''';' || chr(13) || ' $this->subject = ''[GTF]-'' . $this->aObjects["oOrder"]->getWorkspace()->aFields[''name''] . '' - Echec du traitement'';' || chr(13) || ' $this->body = $image.''<p>Bonjour,</p>'';' || chr(13) || ' $this->body .= ''<p>La demande n°'' . $this->aObjects["oOrder"]->aFields[''order_id''] . '' pour le traitement <strong>'' . $this->aObjects["oOrder"]->getWorkspace()->aFields[''name''] . ''</strong> n\''a pu être exécutée correctement suite à une erreur.<br/> Veuillez contactez votre administrateur.<br/>'';' || chr(13) || ' $this->aAttachments[0] = $this->aObjects["oOrder"]->aFields[''log_file''];' || chr(13) || '}', '1', 'gtf', NULL); - INSERT INTO s_gtf.email_template (name, subject, body, "to", cc, cci, code, use_advanced, rt_emailcontext_id, attachment) VALUES ('Email contrôleur AE soumis', NULL, NULL, NULL, NULL, NULL, 'require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || 'require_once("vmlib/logUtil.inc");' || chr(13) || '$iBoId = $this->aObjects["oBusinessObject"]->aValues[''bo_id''];' || chr(13) || '' || chr(13) || '//$this->to = ''sig.paysdaix@ampmetropole.fr'';' || chr(13) || '$this->to = ''sofian.pujo@veremes.com'';' || chr(13) || '$this->cc = '''';' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[GTF] - Demande N° ''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' - Dépôt de l\''Acte d\''Engagement à valider'';' || chr(13) || '$this->body = ''<p>Bonjour,</p>' || chr(13) || ' <p> </p>' || chr(13) || ' <p>L\''acte d\''engagement correspondant à la demande n°''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($this->aObjects[''oBusinessObject'']->aValues[''creation_date''])).'' a été déposé sur le serveur par le demandeur.</p>' || chr(13) || ' <p></p>' || chr(13) || ' <p>Cordialement,</p>' || chr(13) || ' <p> </p>' || chr(13) || ' <p>L\''application d\''extraction de données de GTF</p>'';' || chr(13) || 'error_log($this->body);' || chr(13) || '$this->aAttachments[0] = '''';' || chr(13) || '', '1', 'gtf', NULL); - INSERT INTO s_gtf.email_template (name, subject, body, "to", cc, cci, code, use_advanced, rt_emailcontext_id, attachment) VALUES ('Email demandeur Extraction refusée', NULL, NULL, NULL, NULL, NULL, 'require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || 'require_once("vmlib/logUtil.inc");' || chr(13) || '$iBoId = $this->aObjects["oBusinessObject"]->aValues[''bo_id''];' || chr(13) || '$sUserLogin = $this->aObjects["oBusinessObject"]->aValues[''requestor''];' || chr(13) || '$sSql = ''SELECT user_id FROM s_vitis.user WHERE login=\''''.$this->aObjects[''oBusinessObject'']->aValues[''requestor''].''\'''';' || chr(13) || '//writeToErrorLog($sSql);' || chr(13) || '$oResult = $oBd->execute($sSql);' || chr(13) || '/*if(!$oBd->erreurRencontree) {' || chr(13) || ' if ($oBd->nombreLigne ($oResult) > 0) {' || chr(13) || ' $this->aObjects[''oUser''] = new User($oBd, $oBd->objetSuivant($oResult)->user_id, $this->aObjects["oBusinessObject"]->aProperties);' || chr(13) || ' }' || chr(13) || '}*/' || chr(13) || '//$this->to = ''sig.paysdaix@ampmetropole.fr'';' || chr(13) || 'error_log(print_r($this->aObjects[''oBusinessObject''], true));' || chr(13) || '//$this->to = $this->aObjects[''oBusinessObject'']->aValues[''email''];' || chr(13) || '$this->cc = '''';' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[PAYS D\''AIX - SIGAM] Demande N° ''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' - Rejet de votre demande d\''extraction de données'';' || chr(13) || '$this->body = ''<p>Bonjour,</p>' || chr(13) || ' <p>Suite à votre demande n°''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($this->aObjects[''oBusinessObject'']->aValues[''creation_date''])).'' pour l\''extraction des données, votre demande a été rejetée pour la ou les raisons suivantes :<br/>'';' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''signed''] == "false"){' || chr(13) || ' $this->body .= '' - L\''acte d\''engagement n\''est pas signé<br/>'';' || chr(13) || '}' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''accepted_by_cpa''] == "false"){' || chr(13) || ' $this->body .= '' - La CPA ne valide pas l\''usage décrit pour les données du cadastre<br/>'';' || chr(13) || '}' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''identification_complete''] == "false"){' || chr(13) || ' $this->body .= '' - Le cadre d\''identification du dépositaire est incomplet</p>'';' || chr(13) || '}' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''definition_complete''] == "false"){' || chr(13) || ' $this->body .= '' - La définition des traitements pour l\''usage du cadastre est non renseignée<br/>'';' || chr(13) || '}' || chr(13) || '$this->body .= $this->aObjects[''oBusinessObject'']->aValues[''comment''].''<br/>'';' || chr(13) || '$this->body .=''<p>Cordialement,</p>' || chr(13) || '<p>Le service d\''Information Géographique et Applicatifs Métiers (SIGAM)<br/>' || chr(13) || 'Territoire du Pays d\''Aix<br/>' || chr(13) || 'Tel : 04 42 93 83 50<br/>' || chr(13) || 'Mail : <a href="mailto:sig.paysdaix@ampmetropole.fr">sig.paysdaix@ampmetropole.fr</a> </p>'';' || chr(13) || '$this->aAttachments[0] = '''';' || chr(13) || '', '1', 'gtf', NULL); - INSERT INTO s_gtf.email_template (name, subject, body, "to", cc, cci, code, use_advanced, rt_emailcontext_id, attachment) VALUES ('Email demandeur données extraites', NULL, NULL, NULL, NULL, NULL, 'require_once("gtf_lib/gtf_object/Order.class.inc");' || chr(13) || 'require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || '$iBoId = $this->aObjects["oMessage"]->getBody(''bo_id'');' || chr(13) || '$sRequest = "SELECT * from s_extraction.extraction where bo_id = ".$iBoId;' || chr(13) || '$oPDOresult = $this->oBd->executeWithParams($sRequest, array());' || chr(13) || '$aBo = $this->oBd->ligneSuivante ($oPDOresult);' || chr(13) || '$iOrderId = $this->aObjects["oMessage"]->getBody(''order_id'');' || chr(13) || '$this->aObjects["oOrder"]= new OrderLib($oBd, $iOrderId, $this->aObjects["oMessage"]->aProperties, "v_order");' || chr(13) || '$sUserLogin = $aBo[''requestor''];' || chr(13) || '$sSql = ''SELECT user_id FROM s_framework.user WHERE login=\''''.$this->aObjects[''oBusinessObject'']->aValues[''requestor''].''\'''';' || chr(13) || '$oResult = $oBd->execute($sSql);' || chr(13) || 'if(!$oBd->erreurRencontree) {' || chr(13) || ' if ($oBd->nombreLigne ($oResult) > 0) {' || chr(13) || ' $this->aObjects[''oUser''] = new User($oBd, $oBd->objetSuivant($oResult)->user_id, $this->aObjects["oMessage"]->aProperties);' || chr(13) || ' }' || chr(13) || '}' || chr(13) || '$this->to = $aBo[''email''];' || chr(13) || '$this->cc = $this->aObjects["oOrder"]->aFields[''email_notifications''];' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[PAYS D\''AIX - SIGAM] Demande N° ''.$aBo[''bo_id''].'' - Données SIG extraites'';' || chr(13) || '$this->body = ''<p>Bonjour</p>' || chr(13) || '<p></p><p>Les données correspondant à votre demande n°''.$aBo[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($aBo[''creation_date''])).'' sont disponibles '';' || chr(13) || ' if (filesize($this->aObjects["oOrder"]->aFields[''result_file''])> 5242880){' || chr(13) || ' $this->body .= ''sur le lien de téléchargement suivant :<br/><a href="https://sigdata.agglo-paysdaix.fr/public/gtf/''.$this->aObjects["oOrder"]->aFields[''result_url''] . ''">Télécharger le résultat</a></p>'';' || chr(13) || ' } else {' || chr(13) || ' $this->body .= ''en pièce jointe.</p>'';' || chr(13) || ' $this->aAttachments[0] = $this->aObjects["oOrder"]->aFields[''result_file''];' || chr(13) || ' }' || chr(13) || '$this->body .=''<p>Vous en souhaitant bonne réception,</p>' || chr(13) || '<p>Cordialement,</p>' || chr(13) || '<p>Le service d\''Information Géographique et Applicatifs Métiers (SIGAM)<br/>' || chr(13) || 'Terriroire du Pays d\''Aix<br/>' || chr(13) || 'Tel : 04 42 93 83 50<br/>' || chr(13) || 'Mail : <a href="mailto:sig.paysdaix@ampmetropole.fr">sig.paysdaix@ampmetropole.fr</a> </p>' || chr(13) || '' || chr(13) || ''';' || chr(13) || '// les résultats de moins de 5 Mo sont envoyés en pièce jointe' || chr(13) || ' ' || chr(13) || '', '1', 'gtf', NULL); - - ]]> - </code> - </query> - <query> - <type>update</type> - <version>2018-00-00</version> - <code> - <![CDATA[ - --Partie pour le module extraction version 2018-00-00 généré par WAB le 22/05/2018 à 09:09:32 - ALTER TABLE s_extraction.rt_layer ADD COLUMN ct_id integer; - UPDATE s_extraction.rt_layer set ct_id = 2; - ALTER TABLE s_extraction.rt_layer DROP CONSTRAINT pk_projet_type; - ALTER TABLE s_extraction.rt_layer ADD COLUMN layer_ct_id serial; - ALTER TABLE s_extraction.rt_layer ADD CONSTRAINT pk_layer_ct PRIMARY KEY (layer_ct_id); - ALTER TABLE s_extraction.rt_layer ADD COLUMN mutualized boolean; - ALTER TABLE s_extraction.rt_feature_model ADD COLUMN ct_id integer; - UPDATE s_extraction.rt_feature_model set ct_id = 2; - ALTER TABLE s_extraction.rt_feature_model ADD COLUMN layer_ct_id integer; - UPDATE s_extraction.rt_feature_model SET layer_ct_id = s_extraction.rt_layer.layer_ct_id FROM s_extraction.rt_layer WHERE rt_feature_model.feature_type = s_extraction.rt_layer.layer_id and rt_feature_model.ct_id = s_extraction.rt_feature_model.ct_id; - ALTER TABLE s_extraction.rt_feature_model DROP COLUMN ct_id; - ALTER TABLE s_extraction.rt_feature_model ALTER COLUMN layer_ct_id SET NOT NULL; - ALTER TABLE s_extraction.rt_layer ADD CONSTRAINT rt_layer_layer_id_ct_id_key UNIQUE (layer_id, ct_id); - ALTER TABLE ONLY s_extraction.rt_feature_model ADD CONSTRAINT fk_layer_ct_id FOREIGN KEY (layer_ct_id) REFERENCES s_extraction.rt_layer(layer_ct_id); - ALTER TABLE s_extraction.rt_feature_model ADD UNIQUE (feature_type, attribute_name, layer_ct_id); - ALTER TABLE s_extraction.extraction ADD COLUMN preco_tech boolean; - ALTER TABLE s_extraction.extraction ADD COLUMN chart_graph boolean; - ALTER TABLE s_extraction.extraction ADD COLUMN metadonnees boolean; - DROP VIEW s_extraction.v_extraction; - CREATE OR REPLACE VIEW s_extraction.v_extraction AS SELECT DISTINCT extraction.bo_id, extraction.status_id, extraction.history, extraction.creation_date, extraction.requestor, extraction.ae, extraction.extent, extraction.company, extraction.layers, extraction.vector_format_id, extraction.vector_format_id AS format_id, extraction.coordsys_id, extraction.raster_format_id, extraction.extent_method, extraction.signed, extraction.accepted_by_cpa, extraction.identification_complete, extraction.definition_complete, extraction.priority_id, extraction.id_com, extraction.id_conseil, extraction.email, extraction.note, extraction.preco_tech, extraction.chart_graph, extraction.metadonnees, rt_extraction_status.progress AS progress_level, rt_extraction_status.name AS status_name, rt_extraction_status.name AS status FROM s_extraction.extraction LEFT JOIN s_extraction.rt_extraction_status ON extraction.status_id = rt_extraction_status.status_id LEFT JOIN s_extraction.rt_extraction_status_group ON rt_extraction_status.status_id = rt_extraction_status_group.status_id LEFT JOIN s_vitis.user_group ON rt_extraction_status_group.group_id = user_group.group_id LEFT JOIN s_vitis."user" ON user_group.user_id = "user".user_id WHERE "user".login::name = "current_user"() AND (extraction.requestor::name = "current_user"() OR rt_extraction_status_group.group_id = 12); - ALTER TABLE s_extraction.v_extraction OWNER TO u_vitis; - GRANT ALL ON TABLE s_extraction.v_extraction TO extraction_user; - GRANT ALL ON TABLE s_extraction.v_extraction TO u_vitis; - GRANT ALL ON TABLE s_extraction.v_extraction TO extraction_admin; - COMMENT ON COLUMN s_extraction.extraction.history is 'deprecated'; - COMMENT ON COLUMN s_extraction.extraction.status is 'deprecated'; - CREATE SEQUENCE s_extraction.ct_ct_id_seq; - ALTER SEQUENCE s_extraction.ct_ct_id_seq OWNER TO u_vitis; - CREATE TABLE s_extraction.ct( ct_id integer NOT NULL DEFAULT nextval('s_extraction.ct_ct_id_seq'::regclass), name character varying(50) COLLATE pg_catalog."default" NOT NULL, format character varying(255) COLLATE pg_catalog."default", namedconnection character varying(255) COLLATE pg_catalog."default", geom geometry(MultiPolygon,2154), CONSTRAINT pk_ct PRIMARY KEY (ct_id) ); - ALTER TABLE s_extraction.ct OWNER to u_vitis; - GRANT SELECT ON TABLE s_extraction.ct TO extraction_admin; - GRANT SELECT ON TABLE s_extraction.ct TO extraction_user; - GRANT ALL ON TABLE s_extraction.ct TO u_vitis; - CREATE INDEX ct_ct_id ON s_extraction.ct USING btree (ct_id); - CREATE TABLE s_extraction.commune (commune_id character(6) COLLATE pg_catalog."default" NOT NULL,ct_id integer, name varchar(255) COLLATE pg_catalog."default" NOT NULL,geom geometry(Polygon,2154) NOT NULL,CONSTRAINT pk_commune PRIMARY KEY (commune_id), CONSTRAINT fk_ct_id FOREIGN KEY (ct_id) REFERENCES s_extraction.ct (ct_id) MATCH SIMPLE ON UPDATE RESTRICT ON DELETE SET NULL); - ALTER TABLE s_extraction.commune OWNER to u_vitis; - GRANT SELECT ON TABLE s_extraction.commune TO extraction_admin; - GRANT SELECT ON TABLE s_extraction.commune TO extraction_user; - GRANT ALL ON TABLE s_extraction.commune TO u_vitis; - --Partie WABSQL générée par WAB le 04/05/2018 à 10:02:22 - -- Ces tables sont normalement prévues dans votre fichier VisualParadigm et sont necessaires pour le fonctionnement de vos objets WAB - -- CREATE TABLE s_extraction.rt_extraction_status (status_id integer NOT NULL DEFAULT nextval('s_dtnet.seq_common'::regclass), name character varying(50) NOT NULL, progress integer NOT NULL, CONSTRAINT rt_extraction_status_pkey PRIMARY KEY (status_id)); - -- CREATE TABLE s_extraction.rt_extraction_status_group (status_id integer NOT NULL, group_id integer NOT NULL, link_id integer NOT NULL DEFAULT nextval('s_dtnet.seq_common'::regclass), CONSTRAINT rt_extraction_status_group_pkey PRIMARY KEY (link_id), CONSTRAINT fk_extraction_status_group FOREIGN KEY (status_id) REFERENCES s_extraction.rt_extraction_status (status_id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION); - -- CREATE TABLE s_extraction.extraction_history (history_id integer NOT NULL DEFAULT nextval('s_extraction.seq_common'::regclass), date timestamp with time zone NOT NULL, login character varying(50) NOT NULL, comment text NOT NULL, bo_id integer NOT NULL, CONSTRAINT extraction_history_pkey PRIMARY KEY (history_id), CONSTRAINT fk_extraction_history FOREIGN KEY (bo_id) REFERENCES s_extraction.extraction (bo_id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION); - -- Vue basique pour vos objets WAB tenant compte de la restriction groupe état - --CREATE VIEW s_extraction.v_extraction AS SELECT extraction.* FROM s_extraction.extraction LEFT JOIN s_extraction.rt_extraction_status ON rt_extraction_status.status_id = extraction.status_id JOIN s_extraction.rt_extraction_status_group ON rt_extraction_status.status_id = rt_extraction_status_group.status_id WHERE (rt_extraction_status_group.group_id IN ( SELECT user_group.group_id FROM s_vitis.user_group LEFT JOIN s_vitis."user" ON user_group.user_id = "user".user_id WHERE "user".login::name = "current_user"())); - -- u_vitis est propriétaire de toutes vos tables - ALTER TABLE s_extraction.rt_extraction_status_group OWNER TO u_vitis; - ALTER TABLE s_extraction.rt_format OWNER TO u_vitis; - ALTER TABLE s_extraction.v_extraction OWNER TO u_vitis; - ALTER TABLE s_extraction.rt_coordsys OWNER TO u_vitis; - ALTER TABLE s_extraction.rt_extraction_status OWNER TO u_vitis; - ALTER TABLE s_extraction.rt_layer OWNER TO u_vitis; - ALTER TABLE s_extraction.rt_feature_model OWNER TO u_vitis; - ALTER TABLE s_extraction.extraction OWNER TO u_vitis; - ALTER TABLE s_extraction.version OWNER TO u_vitis; - -- u_vitis propriétaire sur les tables des objets WAB - --ALTER TABLE s_extraction.rt_extraction_status OWNER to u_vitis; - --ALTER TABLE s_extraction.rt_extraction_status_group OWNER to u_vitis; - --ALTER TABLE s_extraction.extraction_history OWNER to u_vitis; - -- Gestion des droits d'après les méthodes php saisies pour vos objets (annule et remplace) - REVOKE ALL ON TABLE s_extraction.rt_coordsys FROM extraction_admin; - REVOKE ALL ON TABLE s_extraction.v_extraction FROM extraction_user; - REVOKE ALL ON TABLE s_extraction.rt_format FROM extraction_admin; - REVOKE ALL ON TABLE s_extraction.rt_layer FROM extraction_admin; - GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE s_extraction.rt_coordsys TO extraction_admin; - GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE s_extraction.v_extraction TO extraction_user; - GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE s_extraction.rt_format TO extraction_admin; - GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE s_extraction.rt_layer TO extraction_admin; - -- Droits sur les tables des objets WAB - GRANT SELECT ON TABLE s_extraction.rt_extraction_status TO extraction_user; - GRANT SELECT ON TABLE s_extraction.rt_extraction_status_group TO extraction_user; - GRANT SELECT, INSERT ON TABLE s_extraction.extraction_history TO extraction_user; - - - UPDATE s_gtf.email_template SET subject=NULL, body=NULL, "to"=NULL, cc=NULL, cci=NULL, code='$logo = $this->aProperties[''ws_data_dir'']."/gtf/LOGO_AMP.jpg";' || chr(13) || '$base64 = base64_encode(file_get_contents($logo));' || chr(13) || '$image = ''<img src="data:image/png;base64,''.$base64.''">'';' || chr(13) || 'require_once("gtf_lib/gtf_object/Order.class.inc");' || chr(13) || 'require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || '$iBoId = $this->aObjects["oMessage"]->getBody(''bo_id'');' || chr(13) || '$sRequest = "SELECT * from s_extraction.extraction where bo_id = ".$iBoId;' || chr(13) || '$oPDOresult = $this->oBd->executeWithParams($sRequest, array());' || chr(13) || '$aBo = $this->oBd->ligneSuivante ($oPDOresult);' || chr(13) || '$iOrderId = $this->aObjects["oMessage"]->getBody(''order_id'');' || chr(13) || '$this->aObjects["oOrder"]= new orderLib($oBd, $iOrderId, $this->aObjects["oMessage"]->aProperties, "v_order");' || chr(13) || 'error_log( print_r($this->aObjects[''oOrder''], true));' || chr(13) || '$this->aObjects[''oUser''] = new User($oBd, $this->aObjects[''oOrder'']->aFields[''user_id''], $this->aObjects["oMessage"]->aProperties);' || chr(13) || '$this->to = $aBo[''email''];' || chr(13) || '$this->cc = $this->aObjects["oOrder"]->aFields[''email_notifications''];' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[PAYS D\''AIX - SIGAM] Demande N° ''.$aBo[''bo_id''].'' - Acte d\''Engagement pour l\''utilisation des données SIG'';' || chr(13) || '$this->body = $image.''<p>Bonjour</p>' || chr(13) || '<p></p>' || chr(13) || '<p>Suite à votre demande n°''.$aBo[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($aBo[''creation_date''])).'' pour l\''extraction des données, <u>merci de bien vouloir déposer l\''acte d\''engagement</u> ci-joint complété et signé, à l\''adresse suivante:<br/>' || chr(13) || '<A HREF="https://scpa430.cpa.fr/extraction">Application Extraction</A></p>' || chr(13) || '<p>Une fois réceptionné, l\''acte d\''engagement sera soumis à la validation du Territoire du Pays d\''Aix.<br/>' || chr(13) || 'Si celui-ci est validé, vous recevrez les données par mail (taille < 5Mo) ou par lien de téléchargement (taille > 5Mo).</p>' || chr(13) || '<p>Cordialement,</p>' || chr(13) || '<p>Le service d\''Information Géographique et Applicatifs Métiers (SIGAM)<br/>' || chr(13) || 'Territoire du Pays d\''Aix<br/>' || chr(13) || 'Tel : 04 42 93 83 50<br/>' || chr(13) || 'Mail : <a href="mailto:sig.paysdaix@ampmetropole.fr">sig.paysdaix@ampmetropole.fr</a> </p>'';' || chr(13) || '// les résultats de moins de 5 Mo sont envoyés en pièce jointe' || chr(13) || ' if (filesize($this->aObjects["oOrder"]->aFields[''result_file''])> (5*1024*1024)){' || chr(13) || ' $this->body .= ''<p>Le résultat est disponible par téléchargement :<br/><a href="'' . $this->aObjects["oOrder"]->aFields[''result_url''] . ''">Télécharger le résultat</a></p>'';' || chr(13) || ' } else {' || chr(13) || ' $this->aAttachments[0] = $this->aObjects["oOrder"]->aFields[''result_file''];' || chr(13) || ' }' || chr(13) || 'error_log(print_r($this->aObjects["oOrder"]->aFields, true));', use_advanced='1', rt_emailcontext_id='gtf', attachment=NULL WHERE "name"='Email demandeur AE généré'; - UPDATE s_gtf.email_template SET subject=NULL, body=NULL, "to"=NULL, cc=NULL, cci=NULL, code='require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || 'require_once("vmlib/logUtil.inc");' || chr(13) || '$iBoId = $this->aObjects["oBusinessObject"]->aValues[''bo_id''];' || chr(13) || '$sUserLogin = $this->aObjects["oBusinessObject"]->aValues[''requestor''];' || chr(13) || '$sSql = ''SELECT user_id FROM s_framework.user WHERE login=\''''.$this->aObjects[''oBusinessObject'']->aValues[''requestor''].''\'''';' || chr(13) || '//writeToErrorLog($sSql);' || chr(13) || '$oResult = $oBd->execute($sSql);' || chr(13) || 'if(!$oBd->erreurRencontree) {' || chr(13) || ' if ($oBd->nombreLigne ($oResult) > 0) {' || chr(13) || ' $this->aObjects[''oUser''] = new User($oBd, $oBd->objetSuivant($oResult)->user_id, $this->aObjects["oBusinessObject"]->aProperties);' || chr(13) || ' }' || chr(13) || '}' || chr(13) || '//$this->to = ''sig@agglo-paysdaix.fr'';' || chr(13) || '$this->to = $this->aObjects[''oBusinessObject'']->aValues[''email''];' || chr(13) || '$this->cc = '''';' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[PAYS D\''AIX- SIGAM] Demande N° ''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' - Acte d\''engagement non valide'';' || chr(13) || '$this->body = ''<p>Bonjour,</p>' || chr(13) || ' <p>Suite à votre demande n°''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($this->aObjects[''oBusinessObject'']->aValues[''creation_date''])).'' pour l\''extraction des données, votre demande n\''a pas encore été validée pour la ou les raisons suivantes :<br/>'';' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''signed''] == "false"){' || chr(13) || ' $this->body .= '' - L\''acte d\''engagement n\''est pas signé<br/>'';' || chr(13) || '}' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''identification_complete''] == "false"){' || chr(13) || ' $this->body .= '' - Le cadre d\''identification du dépositaire est incomplet<br/>'';' || chr(13) || '}' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''definition_complete''] == "false"){' || chr(13) || ' $this->body .= '' - La définition des traitements pour l\''usage du cadastre est non renseignée<br/>'';' || chr(13) || '}' || chr(13) || 'error_log(print_r($this->aObjects[''oBusinessObject'']->aValues, true));' || chr(13) || '//$this->body .= ''<p>''.$this->aObjects[''oBusinessObject'']->aValues[''comment''].''</p>'';' || chr(13) || '$this->body .=''<p><u>Merci de bien vouloir déposer à nouveau l\''acte d\''engagement</u> à l\''adresse suivante :<br/>' || chr(13) || '<A HREF="https://scpa430.cpa.fr/extraction">Application Extraction</A></p>' || chr(13) || '<p>Une fois réceptionné, l\''acte d\''engagement sera soumis à la validation du Territoire du Pays d\''Aix.<br/>' || chr(13) || 'Si celui-ci est validé, vous recevrez les données par mail (taille < 5Mo) ou par lien de téléchargement (taille > 5Mo).</p>' || chr(13) || '<p>Cordialement,</p>' || chr(13) || '<p>Le service d\''Information Géographique et Applicatifs Métiers (SIGAM)<br/>' || chr(13) || 'Territoire du Pays d\''Aix<br/>' || chr(13) || 'Tel : 04 42 93 83 50<br/>' || chr(13) || 'Mail : <a href="mailto:sig.paysdaix@ampmetropole.fr">sig.paysdaix@ampmetropole.fr</a> </p>'';' || chr(13) || '$this->aAttachments[0] = '''';' || chr(13) || '', use_advanced='1', rt_emailcontext_id='gtf', attachment=NULL WHERE "name"='Email demandeur AE à resoumettre'; - UPDATE s_gtf.email_template SET subject=NULL, body=NULL, "to"=NULL, cc=NULL, cci=NULL, code='require_once("gtf_lib/gtf_object/Order.class.inc");' || chr(13) || 'require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || '$iBoId = $this->aObjects["oMessage"]->getBody(''bo_id'');' || chr(13) || '$sRequest = "SELECT * from s_extraction.extraction where bo_id = ".$iBoId;' || chr(13) || '$oPDOresult = $this->oBd->executeWithParams($sRequest, array());' || chr(13) || '$aBo = $this->oBd->ligneSuivante ($oPDOresult);' || chr(13) || '$iOrderId = $this->aObjects["oMessage"]->getBody(''order_id'');' || chr(13) || '$this->aObjects["oOrder"]= new OrderLib($oBd, $iOrderId, $this->aObjects["oMessage"]->aProperties, "v_order");' || chr(13) || '$this->aObjects[''oUser''] = new User($oBd, $this->aObjects[''oOrder'']->aFields[''user_id''], $this->aObjects["oMessage"]->aProperties);' || chr(13) || '$this->to = ''sig.paysdaix@ampmetropole.fr'';' || chr(13) || '$this->cc = '''';' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[GTF] - Demande N° ''.$aBo[''bo_id''].'' - Extraction des données'';' || chr(13) || '$this->body = ''<p>Les données concernant la demande n°''.$aBo[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($aBo[''creation_date''])).'' ont été envoyées au demandeur.</p>' || chr(13) || '<p>Cordialement,</p>' || chr(13) || '<p>L\''application d\''extraction de données de GTF</p>'';' || chr(13) || '', use_advanced='1', rt_emailcontext_id='gtf', attachment=NULL WHERE "name"='Email controleur données extraites'; - UPDATE s_gtf.email_template SET subject=NULL, body=NULL, "to"=NULL, cc=NULL, cci=NULL, code='$logo = $this->aProperties[''ws_data_dir'']."/gtf/LOGO_AMP.jpg";' || chr(13) || '$base64 = base64_encode(file_get_contents($logo));' || chr(13) || '$image = ''<img src="data:image/png;base64,''.$base64.''">'';' || chr(13) || 'if ($this->aObjects["oOrder"]->aFields[''order_status_id''] == 3) {' || chr(13) || ' $this->to = '''' . $this->aObjects["oOrder"]->getUser()->aFields[''email''] . '''';' || chr(13) || ' $this->cc = '''' . $this->aObjects["oOrder"]->aFields[''email_notifications''] . '''';' || chr(13) || ' $this->cci = '''';' || chr(13) || ' $this->subject = ''[Pays d\''Aix - SIGAM] - Données extraites'';' || chr(13) || ' $this->body = $image.''<p>Bonjour,</p>'';' || chr(13) || ' $this->body .=''<p></p><p>Les données correspondant à votre demande en date du ''.date(''d/m/Y'',strtotime($this->aObjects["oOrder"]->aFields[''order_date''])).'' sont disponibles '';' || chr(13) || ' if (filesize($this->aObjects["oOrder"]->aFields[''result_file''])> 5242880){' || chr(13) || ' $this->body .= ''sur le lien de téléchargement suivant :<br/><a href="''.$this->aObjects["oOrder"]->aFields[''result_url''] . ''">Télécharger le résultat</a></p>'';' || chr(13) || ' } else {' || chr(13) || ' $this->body .= ''en pièce jointe.</p>'';' || chr(13) || ' $this->aAttachments[0] = $this->aObjects["oOrder"]->aFields[''result_file''];' || chr(13) || ' }' || chr(13) || ' $this->body .=''<p>Vous en souhaitant bonne réception,</p>' || chr(13) || ' <p>Cordialement,</p>' || chr(13) || ' <p>Le service d\''Information Géographique et Applicatifs Métiers (SIGAM)<br/>' || chr(13) || ' Conseil de Territoire du Pays d\''Aix<br/>' || chr(13) || ' Tel : 04 42 93 83 50<br/>' || chr(13) || ' Mail : <a href="mailto:sig.paysdaix@ampmetropole.fr">sig.paysdaix@ampmetropole.fr</a> </p>' || chr(13) || '' || chr(13) || ' '';' || chr(13) || '}else{' || chr(13) || ' $this->to = '''' . $this->aObjects["oOrder"]->getUser()->aFields[''email''] . '''';' || chr(13) || ' $this->subject = ''[GTF]-'' . $this->aObjects["oOrder"]->getWorkspace()->aFields[''name''] . '' - Echec du traitement'';' || chr(13) || ' $this->body = $image.''<p>Bonjour,</p>'';' || chr(13) || ' $this->body .= ''<p>La demande n°'' . $this->aObjects["oOrder"]->aFields[''order_id''] . '' pour le traitement <strong>'' . $this->aObjects["oOrder"]->getWorkspace()->aFields[''name''] . ''</strong> n\''a pu être exécutée correctement suite à une erreur.<br/> Veuillez contactez votre administrateur.<br/>'';' || chr(13) || ' $this->aAttachments[0] = $this->aObjects["oOrder"]->aFields[''log_file''];' || chr(13) || '}', use_advanced='1', rt_emailcontext_id='gtf', attachment=NULL WHERE "name"='public'; - UPDATE s_gtf.email_template SET subject=NULL, body=NULL, "to"=NULL, cc=NULL, cci=NULL, code='require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || 'require_once("vmlib/logUtil.inc");' || chr(13) || '$iBoId = $this->aObjects["oBusinessObject"]->aValues[''bo_id''];' || chr(13) || '' || chr(13) || '//$this->to = ''sig.paysdaix@ampmetropole.fr'';' || chr(13) || '$this->to = ''sofian.pujo@veremes.com'';' || chr(13) || '$this->cc = '''';' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[GTF] - Demande N° ''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' - Dépôt de l\''Acte d\''Engagement à valider'';' || chr(13) || '$this->body = ''<p>Bonjour,</p>' || chr(13) || ' <p> </p>' || chr(13) || ' <p>L\''acte d\''engagement correspondant à la demande n°''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($this->aObjects[''oBusinessObject'']->aValues[''creation_date''])).'' a été déposé sur le serveur par le demandeur.</p>' || chr(13) || ' <p></p>' || chr(13) || ' <p>Cordialement,</p>' || chr(13) || ' <p> </p>' || chr(13) || ' <p>L\''application d\''extraction de données de GTF</p>'';' || chr(13) || 'error_log($this->body);' || chr(13) || '$this->aAttachments[0] = '''';' || chr(13) || '', use_advanced='1', rt_emailcontext_id='gtf', attachment=NULL WHERE "name"='Email contrôleur AE soumis'; - UPDATE s_gtf.email_template SET subject=NULL, body=NULL, "to"=NULL, cc=NULL, cci=NULL, code='require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || 'require_once("vmlib/logUtil.inc");' || chr(13) || '$iBoId = $this->aObjects["oBusinessObject"]->aValues[''bo_id''];' || chr(13) || '$sUserLogin = $this->aObjects["oBusinessObject"]->aValues[''requestor''];' || chr(13) || '$sSql = ''SELECT user_id FROM s_vitis.user WHERE login=\''''.$this->aObjects[''oBusinessObject'']->aValues[''requestor''].''\'''';' || chr(13) || '//writeToErrorLog($sSql);' || chr(13) || '$oResult = $oBd->execute($sSql);' || chr(13) || '/*if(!$oBd->erreurRencontree) {' || chr(13) || ' if ($oBd->nombreLigne ($oResult) > 0) {' || chr(13) || ' $this->aObjects[''oUser''] = new User($oBd, $oBd->objetSuivant($oResult)->user_id, $this->aObjects["oBusinessObject"]->aProperties);' || chr(13) || ' }' || chr(13) || '}*/' || chr(13) || '//$this->to = ''sig.paysdaix@ampmetropole.fr'';' || chr(13) || 'error_log(print_r($this->aObjects[''oBusinessObject''], true));' || chr(13) || '//$this->to = $this->aObjects[''oBusinessObject'']->aValues[''email''];' || chr(13) || '$this->cc = '''';' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[PAYS D\''AIX - SIGAM] Demande N° ''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' - Rejet de votre demande d\''extraction de données'';' || chr(13) || '$this->body = ''<p>Bonjour,</p>' || chr(13) || ' <p>Suite à votre demande n°''.$this->aObjects[''oBusinessObject'']->aValues[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($this->aObjects[''oBusinessObject'']->aValues[''creation_date''])).'' pour l\''extraction des données, votre demande a été rejetée pour la ou les raisons suivantes :<br/>'';' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''signed''] == "false"){' || chr(13) || ' $this->body .= '' - L\''acte d\''engagement n\''est pas signé<br/>'';' || chr(13) || '}' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''accepted_by_cpa''] == "false"){' || chr(13) || ' $this->body .= '' - La CPA ne valide pas l\''usage décrit pour les données du cadastre<br/>'';' || chr(13) || '}' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''identification_complete''] == "false"){' || chr(13) || ' $this->body .= '' - Le cadre d\''identification du dépositaire est incomplet</p>'';' || chr(13) || '}' || chr(13) || 'if($this->aObjects[''oBusinessObject'']->aValues[''definition_complete''] == "false"){' || chr(13) || ' $this->body .= '' - La définition des traitements pour l\''usage du cadastre est non renseignée<br/>'';' || chr(13) || '}' || chr(13) || '$this->body .= $this->aObjects[''oBusinessObject'']->aValues[''comment''].''<br/>'';' || chr(13) || '$this->body .=''<p>Cordialement,</p>' || chr(13) || '<p>Le service d\''Information Géographique et Applicatifs Métiers (SIGAM)<br/>' || chr(13) || 'Territoire du Pays d\''Aix<br/>' || chr(13) || 'Tel : 04 42 93 83 50<br/>' || chr(13) || 'Mail : <a href="mailto:sig.paysdaix@ampmetropole.fr">sig.paysdaix@ampmetropole.fr</a> </p>'';' || chr(13) || '$this->aAttachments[0] = '''';' || chr(13) || '', use_advanced='1', rt_emailcontext_id='gtf', attachment=NULL WHERE "name"='Email demandeur Extraction refusée'; - UPDATE s_gtf.email_template SET subject=NULL, body=NULL, "to"=NULL, cc=NULL, cci=NULL, code='require_once("gtf_lib/gtf_object/Order.class.inc");' || chr(13) || 'require_once("gtf_lib/gtf_object/User.class.inc");' || chr(13) || '$iBoId = $this->aObjects["oMessage"]->getBody(''bo_id'');' || chr(13) || '$sRequest = "SELECT * from s_extraction.extraction where bo_id = ".$iBoId;' || chr(13) || '$oPDOresult = $this->oBd->executeWithParams($sRequest, array());' || chr(13) || '$aBo = $this->oBd->ligneSuivante ($oPDOresult);' || chr(13) || '$iOrderId = $this->aObjects["oMessage"]->getBody(''order_id'');' || chr(13) || '$this->aObjects["oOrder"]= new OrderLib($oBd, $iOrderId, $this->aObjects["oMessage"]->aProperties, "v_order");' || chr(13) || '$sUserLogin = $aBo[''requestor''];' || chr(13) || '$sSql = ''SELECT user_id FROM s_framework.user WHERE login=\''''.$this->aObjects[''oBusinessObject'']->aValues[''requestor''].''\'''';' || chr(13) || '$oResult = $oBd->execute($sSql);' || chr(13) || 'if(!$oBd->erreurRencontree) {' || chr(13) || ' if ($oBd->nombreLigne ($oResult) > 0) {' || chr(13) || ' $this->aObjects[''oUser''] = new User($oBd, $oBd->objetSuivant($oResult)->user_id, $this->aObjects["oMessage"]->aProperties);' || chr(13) || ' }' || chr(13) || '}' || chr(13) || '$this->to = $aBo[''email''];' || chr(13) || '$this->cc = $this->aObjects["oOrder"]->aFields[''email_notifications''];' || chr(13) || '$this->cci = '''';' || chr(13) || '$this->subject = ''[PAYS D\''AIX - SIGAM] Demande N° ''.$aBo[''bo_id''].'' - Données SIG extraites'';' || chr(13) || '$this->body = ''<p>Bonjour</p>' || chr(13) || '<p></p><p>Les données correspondant à votre demande n°''.$aBo[''bo_id''].'' en date du ''.date(''d/m/Y'',strtotime($aBo[''creation_date''])).'' sont disponibles '';' || chr(13) || ' if (filesize($this->aObjects["oOrder"]->aFields[''result_file''])> 5242880){' || chr(13) || ' $this->body .= ''sur le lien de téléchargement suivant :<br/><a href="https://sigdata.agglo-paysdaix.fr/public/gtf/''.$this->aObjects["oOrder"]->aFields[''result_url''] . ''">Télécharger le résultat</a></p>'';' || chr(13) || ' } else {' || chr(13) || ' $this->body .= ''en pièce jointe.</p>'';' || chr(13) || ' $this->aAttachments[0] = $this->aObjects["oOrder"]->aFields[''result_file''];' || chr(13) || ' }' || chr(13) || '$this->body .=''<p>Vous en souhaitant bonne réception,</p>' || chr(13) || '<p>Cordialement,</p>' || chr(13) || '<p>Le service d\''Information Géographique et Applicatifs Métiers (SIGAM)<br/>' || chr(13) || 'Terriroire du Pays d\''Aix<br/>' || chr(13) || 'Tel : 04 42 93 83 50<br/>' || chr(13) || 'Mail : <a href="mailto:sig.paysdaix@ampmetropole.fr">sig.paysdaix@ampmetropole.fr</a> </p>' || chr(13) || '' || chr(13) || ''';' || chr(13) || '// les résultats de moins de 5 Mo sont envoyés en pièce jointe' || chr(13) || ' ' || chr(13) || '', use_advanced='1', rt_emailcontext_id='gtf', attachment=NULL WHERE "name"='Email demandeur données extraites'; - DELETE FROM s_gtf.messageclass_action WHERE messageclass LIKE 'extraction_%'; - INSERT INTO s_gtf.messageclass_action (messageclass_action_id, messageclass, actionclass, index, parameters) VALUES ((SELECT nextval('s_gtf.seq_common'::regclass)),'AE Généré','BoAction',0,'bo_id_attribute=''bo_id''|method=''trGenerer''|class=''Extractions''|module=''extraction'''); - INSERT INTO s_gtf.messageclass_action (messageclass_action_id, messageclass, actionclass, index, parameters) VALUES ((SELECT nextval('s_gtf.seq_common'::regclass)),'AE Généré','EmailAction',1,'template_id = ' || (SELECT email_template_id FROM s_gtf.email_template WHERE name = 'Email demandeur AE généré')); - INSERT INTO s_gtf.messageclass_action (messageclass_action_id, messageclass, actionclass, index, parameters) VALUES ((SELECT nextval('s_gtf.seq_common'::regclass)),'Extraction Aix','EmailAction',1,'template_id = ' || (SELECT email_template_id FROM s_gtf.email_template WHERE name = 'Email controleur données extraites')); - INSERT INTO s_gtf.messageclass_action (messageclass_action_id, messageclass, actionclass, index, parameters) VALUES ((SELECT nextval('s_gtf.seq_common'::regclass)),'Extraction Aix','EmailAction',2,'template_id = ' || (SELECT email_template_id FROM s_gtf.email_template WHERE name = 'Email demandeur données extraites')); - INSERT INTO s_gtf.messageclass_action (messageclass_action_id, messageclass, actionclass, index, parameters) VALUES ((SELECT nextval('s_gtf.seq_common'::regclass)),'Extraction Aix','BoAction',0,'bo_id_attribute=''bo_id''|method=''trTerminerExtraction''|class=''Extractions''|module=''extraction'''); - --Partie s_vitis généré par WAB le 22/05/2018 à 09:09:31 - DELETE FROM s_vitis.vm_section WHERE label_id ~ '^extraction_([0-9]+)$'; - DELETE FROM s_vitis.vm_table_field WHERE label_id ~ '^extraction_([0-9]+)$'; - DELETE FROM s_vitis.vm_table_button WHERE label_id ~ '^extraction_([0-9]+)$'; - DELETE FROM s_vitis.vm_module WHERE module_id='extraction'; - DELETE FROM s_vitis.vm_string WHERE string_id ~ '^extraction_([0-9]+)$'; - INSERT INTO s_vitis.vm_module (module_id, description, version, label) VALUES ('extraction','Module Extraction CG34',0.1,'Module Extraction'); - INSERT INTO s_vitis.group (group_id, name) SELECT (SELECT nextval('s_vitis.seq_common'::regclass)), 'demandeur' WHERE NOT EXISTS (SELECT group_id FROM s_vitis.group WHERE name='demandeur'); - INSERT INTO s_vitis.group (group_id, name) SELECT (SELECT nextval('s_vitis.seq_common'::regclass)), 'controleur' WHERE NOT EXISTS (SELECT group_id FROM s_vitis.group WHERE name='controleur'); - INSERT INTO s_vitis.privileges (rolname, description) SELECT 'extraction_admin', 'administrateur extraction' WHERE NOT EXISTS (SELECT rolname FROM s_vitis.privileges WHERE rolname='extraction_admin'); - INSERT INTO s_vitis.privileges (rolname, description) SELECT 'extraction_user', 'utilisateur extraction' WHERE NOT EXISTS (SELECT rolname FROM s_vitis.privileges WHERE rolname='extraction_user'); - SELECT s_vitis.create_role_if_not_exists('extraction_admin', 'NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION'); - SELECT s_vitis.create_role_if_not_exists('extraction_user', 'NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Section General', 'extraction_1'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field bo_id', 'extraction_4'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field status', 'extraction_6'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('objet extraction_extraction', 'extraction_0'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field progress_level', 'extraction_7'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Supprimer', 'extraction_2'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field company', 'extraction_8'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Ajout', 'extraction_3'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field requestor', 'extraction_5'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field layers', 'extraction_9'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('objet extraction_coordsys', 'extraction_10'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Section General', 'extraction_11'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Supprimer', 'extraction_12'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Ajout', 'extraction_13'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('objet extraction_format', 'extraction_14'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Section General', 'extraction_15'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Supprimer', 'extraction_16'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Ajout', 'extraction_17'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('objet extraction_layer', 'extraction_18'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Section General', 'extraction_19'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Supprimer', 'extraction_20'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Ajout', 'extraction_21'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field coordsys_id', 'extraction_22'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field coordsys', 'extraction_23'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field format_id', 'extraction_24'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field format', 'extraction_25'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field use_for_raster', 'extraction_26'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field use_for_vector', 'extraction_27'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field layer_id', 'extraction_28'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field layer', 'extraction_29'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field category', 'extraction_30'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field restriction', 'extraction_31'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field unused_attributes', 'extraction_32'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Section General', 'extraction_33'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Supprimer', 'extraction_34'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Ajout', 'extraction_35'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Section General', 'extraction_36'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Supprimer', 'extraction_37'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Ajout', 'extraction_38'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Section General', 'extraction_39'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Supprimer', 'extraction_40'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Ajout', 'extraction_41'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Section General', 'extraction_42'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Supprimer', 'extraction_43'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Boutton Ajout', 'extraction_44'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field bo_id', 'extraction_45'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field status', 'extraction_46'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field requestor', 'extraction_47'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field company', 'extraction_48'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field layers', 'extraction_49'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field coordsys_id', 'extraction_50'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field coordsys', 'extraction_51'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field format_id', 'extraction_52'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field format', 'extraction_53'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field use_for_raster', 'extraction_54'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field use_for_vector', 'extraction_55'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field layer_id', 'extraction_56'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field layer', 'extraction_57'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field category', 'extraction_58'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field restriction', 'extraction_59'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('field unused_attributes', 'extraction_60'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('section extractionConfig', 'extraction_61'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_1','fr','Informations générales'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_1','en','General'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_4','fr','ID'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_4','en','ID'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_6','en','Status'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_6','fr','Etat'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_0','en','Extraction'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_0','fr','Extraction'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_7','en','Progress level'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_7','fr','Avancement'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_2','en','Supprimer les plans'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_2','fr','Supprimer les plans'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_8','en','Company'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_8','fr','Organisme'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_3','en','Ajouter une extraction'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_3','fr','Ajouter une extraction'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_5','fr','Demandeur'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_5','en','Demandeur'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_9','en','Layers'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_9','fr','Couches'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_10','fr','Systèmes de coordonnées'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_10','en','Coordinate systems'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_11','fr','Informations générales'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_11','en','General'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_12','fr','Supprimer les systèmes de coordonnées'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_12','en','Delete coordinate systems'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_13','fr','Ajouter un système de coordonnées'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_13','en','Add coordinate systems'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_14','fr','Formats'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_14','en','Formats'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_15','fr','Informations générales'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_15','en','General'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_16','fr','Supprimer les formats'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_16','en','Delete formats'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_17','fr','Ajouter un format'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_17','en','Add format'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_18','fr','Couches'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_18','en','Layers'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_19','fr','Informations générales'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_19','en','General'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_20','fr','Supprimer les couches'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_20','en','Delete layers'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_21','fr','Ajouter une couche'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_21','en','Add layer'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_22','fr','ID'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_22','en','ID'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_23','fr','Nom'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_23','en','Name'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_24','en','ID'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_24','fr','ID'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_25','fr','Nom'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_25','en','Name'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_26','fr','Raster'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_26','en','Raster'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_27','fr','Vecteur'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_27','en','Vector'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_28','fr','ID'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_28','en','ID'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_29','fr','Nom'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_29','en','Name'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_30','fr','Catégorie'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_30','en','Category'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_31','fr','Restriction'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_31','en','Restriction'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_32','fr','Attributs inutilisés'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('extraction_32','en','Unused attributes'); - INSERT INTO s_vitis.vm_mode (mode_id, module_id) VALUES ('extraction','extraction'); - INSERT INTO s_vitis.vm_mode (mode_id, module_id) VALUES ('extraction_ref','extraction'); - INSERT INTO s_vitis.vm_mode_rolname (index,mode_id, rolname) VALUES (0,'extraction','extraction_user'); - INSERT INTO s_vitis.vm_mode_rolname (index,mode_id, rolname) VALUES (1,'extraction_ref','extraction_admin'); - INSERT INTO s_vitis.vm_tab (tab_id, event, index, mode_id, label_id, ressource_id, edit_column, show_column, sorted_by, sorted_dir, name) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)),'loadList()', 1, 'extraction_ref', 'extraction_14', 'extraction/formats', 'editSectionForm', 'showSectionForm', 'format_id', 'ASC', 'extraction_format'); - INSERT INTO s_vitis.vm_tab (tab_id, event, index, mode_id, label_id, ressource_id, edit_column, show_column, sorted_by, sorted_dir, name) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)),'loadList()', 0, 'extraction_ref', 'extraction_10', 'extraction/coordsyss', 'editSectionForm', 'showSectionForm', 'coordsys_id', 'ASC', 'extraction_coordsys'); - INSERT INTO s_vitis.vm_tab (tab_id, event, index, mode_id, label_id, ressource_id, edit_column, show_column, sorted_by, sorted_dir, name) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)),'loadList()', 2, 'extraction_ref', 'extraction_18', 'extraction/layers', 'editSectionForm', 'showSectionForm', 'layer_id', 'ASC', 'extraction_layer'); - INSERT INTO s_vitis.vm_tab (tab_id, event, index, mode_id, label_id, ressource_id, edit_column, show_column, sorted_by, sorted_dir, name) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)),'loadList()', 0, 'extraction', 'extraction_0', 'extraction/extractions', 'editSectionForm', 'showSectionForm', 'bo_id', 'ASC', 'extraction_extraction'); - INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('add_smallFlexigrid',(SELECT nextval('s_vitis.seq_vm'::regclass)), 'AddSectionForm', 'extraction_21', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'), (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer')); - INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('deleteFlexigrid',(SELECT nextval('s_vitis.seq_vm'::regclass)), 'DeleteSelection', 'extraction_2', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction')); - INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('add_smallFlexigrid',(SELECT nextval('s_vitis.seq_vm'::regclass)), 'AddSectionForm', 'extraction_3', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction')); - INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('deleteFlexigrid',(SELECT nextval('s_vitis.seq_vm'::regclass)), 'DeleteSelection', 'extraction_12', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys'), (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys')); - INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('add_smallFlexigrid',(SELECT nextval('s_vitis.seq_vm'::regclass)), 'AddSectionForm', 'extraction_13', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys'), (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys')); - INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('deleteFlexigrid',(SELECT nextval('s_vitis.seq_vm'::regclass)), 'DeleteSelection', 'extraction_16', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'), (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format')); - INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('add_smallFlexigrid',(SELECT nextval('s_vitis.seq_vm'::regclass)), 'AddSectionForm', 'extraction_17', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'), (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format')); - INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('deleteFlexigrid',(SELECT nextval('s_vitis.seq_vm'::regclass)), 'DeleteSelection', 'extraction_20', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'), (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer')); - INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'bo_id', '1', '1', 0, 50, 'left', 'extraction_4', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction')); - INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'status', '1', '1', 2, 150, 'left', 'extraction_6', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction')); - INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'progress_level', '1', '1', 4, 150, 'center', 'extraction_7', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), '<div data-app-navbar data-mode="info" data-hidevalue data-striped data-active></div>',(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction')); - INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'company', '1', '1', 3, 200, 'left', 'extraction_8', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction')); - INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'requestor', '1', '1', 1, 200, 'left', 'extraction_5', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction')); - INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'layers', '1', '1', 5, 60, 'left', 'extraction_9', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), '<div data-app-extraction-layers-column="{{row.entity[col.field]}}"></div>',(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction')); - INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'coordsys_id', '1', '1', 0, 200, 'left', 'extraction_22', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys')); - INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'coordsys', '1', '1', 1, 200, 'left', 'extraction_23', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys')); - INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'format_id', '1', '1', 0, 100, 'left', 'extraction_24', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format')); - INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'format', '1', '1', 1, 200, 'left', 'extraction_25', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format')); - INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'use_for_raster', '1', '1', 2, 100, 'left', 'extraction_26', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'), '<div data-app-set-boolean-icon-column="{{row.entity[col.field]}}"></div>',(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format')); - INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'use_for_vector', '1', '1', 3, 100, 'left', 'extraction_27', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'), '<div data-app-set-boolean-icon-column="{{row.entity[col.field]}}"></div>',(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format')); - INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'layer_id', '1', '1', 0, 150, 'left', 'extraction_28', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer')); - INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'layer', '1', '1', 1, 150, 'left', 'extraction_29', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer')); - INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'category', '1', '1', 2, 150, 'left', 'extraction_30', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer')); - INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'restriction', '1', '1', 3, 100, 'left', 'extraction_31', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'), NULL,(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer')); - INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, ressource_id, template, tab_id) VALUES ((SELECT nextval('s_vitis.seq_vm'::regclass)), 'unused_attributes', '1', '1', 4, 110, 'left', 'extraction_32', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'), '<div data-app-extraction-ref-unused-attributes-column="{{row.entity[col.field]}}"></div>',(SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer')); - INSERT INTO s_vitis.vm_section (label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ('extraction_15', 'general', 1, 'Javascript:loadSectionForm', (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'), 'workspaceListTpl.html', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_format'), 'extraction'); - INSERT INTO s_vitis.vm_section (label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ('extraction_11', 'general', 1, 'Javascript:loadSectionForm', (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys'), 'workspaceListTpl.html', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_coordsys'), 'extraction'); - INSERT INTO s_vitis.vm_section (label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ('extraction_19', 'general', 1, 'Javascript:loadSectionForm', (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'), 'workspaceListTpl.html', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_layer'), 'extraction'); - INSERT INTO s_vitis.vm_section (label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ('extraction_1', 'general', 1, 'Javascript:loadSectionForm', (SELECT tab_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), 'workspaceListTpl.html', (SELECT ressource_id FROM s_vitis.vm_tab WHERE vm_tab.name = 'extraction_extraction'), 'extraction'); - SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','START', 0); - SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','Nouveau', 10); - SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','AE Généré', 30); - SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','AE Soumis', 40); - SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','AE Demandé', 20); - SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','Dépôt terminé', 100); - SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','Fichier déposé', 90); - SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','Autorisée', 60); - SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','Fichier accepté', 100); - SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','Fichier invalidé', 80); - SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','Extraction terminée', 80); - SELECT s_vitis.wabInsertState('s_extraction', 'rt_extraction_status','Refusée', 100); - TRUNCATE s_extraction.rt_extraction_status_group; - INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='START'), (SELECT group_id FROM s_vitis."group" WHERE "name"='demandeur'), 1); - INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='Nouveau'), (SELECT group_id FROM s_vitis."group" WHERE "name"='demandeur'), 2); - INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='AE Demandé'), (SELECT group_id FROM s_vitis."group" WHERE "name"='demandeur'), 3); - INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='AE Généré'), (SELECT group_id FROM s_vitis."group" WHERE "name"='demandeur'), 4); - INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='AE Soumis'), (SELECT group_id FROM s_vitis."group" WHERE "name"='controleur'), 5); - INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='AE Soumis'), (SELECT group_id FROM s_vitis."group" WHERE "name"='demandeur'), 6); - INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='Autorisée'), (SELECT group_id FROM s_vitis."group" WHERE "name"='demandeur'), 7); - INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='Autorisée'), (SELECT group_id FROM s_vitis."group" WHERE "name"='controleur'), 8); - INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='Refusée'), (SELECT group_id FROM s_vitis."group" WHERE "name"='controleur'), 9); - INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='Refusée'), (SELECT group_id FROM s_vitis."group" WHERE "name"='demandeur'), 10); - INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='Extraction terminée'), (SELECT group_id FROM s_vitis."group" WHERE "name"='controleur'), 11); - INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='Fichier déposé'), (SELECT group_id FROM s_vitis."group" WHERE "name"='demandeur'), 12); - INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='Fichier invalidé'), (SELECT group_id FROM s_vitis."group" WHERE "name"='demandeur'), 13); - INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='Fichier accepté'), (SELECT group_id FROM s_vitis."group" WHERE "name"='demandeur'), 14); - INSERT INTO s_extraction.rt_extraction_status_group (status_id, group_id, link_id) VALUES ((SELECT status_id FROM s_extraction.rt_extraction_status WHERE "name"='Dépôt terminé'), (SELECT group_id FROM s_vitis."group" WHERE "name"='controleur'), 15); - - ]]> - </code> - </query> - </queriesCollection> -</sqlQueries> \ No newline at end of file diff --git a/src/module_extraction/web_service/ws/Coordsys.class.inc b/src/module_extraction/web_service/ws/Coordsys.class.inc deleted file mode 100755 index 7e76be5b..00000000 --- a/src/module_extraction/web_service/ws/Coordsys.class.inc +++ /dev/null @@ -1,91 +0,0 @@ -<?php - -require_once __DIR__ . '/ExtractionExtraction.class.inc'; -require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc'; - -/** - * \file Coordsys.class.inc - * \class Coordsys - * - * \author WAB <support.wab@veremes.com>. - * - * \brief This file contains the Coordsys php class - * - * This class defines operation for one Coordsys - * - */ -class Coordsys extends ExtractionExtraction { - - public $oError; - - /** - * construct - * @param type $aPath url of the request - * @param type $aValues parameters of the request - * @param type $properties properties - * @param type $bShortcut false to reinit variables - * @param type $oConnection connection object - */ - function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false){ - parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection); - } - -/** - * @SWG\Get(path="/coordsyss/{id_coordsys}", - * tags={"Coordsyss"}, - * summary="Get Coordsys", - * description="Request to get Coordsys by id", - * operationId="GET", - * produces={"application/xml", "application/json"}, - * @SWG\Parameter( - * name="token", - * in="query", - * description="user token", - * required=true, - * type="string" - * ), - * @SWG\Parameter( - * name="id_coordsys", - * in="path", - * description="id_coordsys", - * required=true, - * type="integer", - * format="int32" - * ), - * @SWG\Parameter( - * name="attributs", - * in="query", - * description="list of attributs", - * required=false, - * type="string" - * ), - * @SWG\Response( - * response=200, - * description="Coordsys Response", - * @SWG\Schema(ref="#/definitions/coordsyss") - * ) - * ) - */ - - /** - * get informations about mode - */ - function GET() { - $this->aFields = $this->getFields($this->aProperties['schema_extraction'], "rt_coordsys", "coordsys_id"); - } - -/** - * delete a Point_situation - */ - function DELETE() { - $this->oConnection->oBd->delete($this->aProperties['schema_extraction'], 'rt_coordsys', 'coordsys_id', $this->aValues["my_vitis_id"], 'integer'); - if ($this->oConnection->oBd->enErreur()) { - $this->oError = new Error(1, $this->oConnection->oBd->getBDMessage()); - } else { - $this->aFields["coordsys_id"] = $this->aValues["my_vitis_id"]; - } - } - -} - -?> \ No newline at end of file diff --git a/src/module_extraction/web_service/ws/Coordsyss.class.inc b/src/module_extraction/web_service/ws/Coordsyss.class.inc deleted file mode 100755 index 2ff99408..00000000 --- a/src/module_extraction/web_service/ws/Coordsyss.class.inc +++ /dev/null @@ -1,268 +0,0 @@ -<?php - -/** - * \file Coordsyss.class.inc - * \class Coordsyss - * - * \author WAB <support.wab@veremes.com>. - * - * \brief This file contains the Coordsyss php class - * - * This class defines Rest Api to Vitis Coordsyss - * - */ -require_once __DIR__ . '/ExtractionExtraction.class.inc'; -require_once 'Coordsys.class.inc'; - - -class Coordsyss extends ExtractionExtraction { - /** - * @SWG\Definition( - * definition="/coordsyss", - * allOf={ - * @SWG\Schema(ref="#/definitions/coordsyss") - * } - * ) - * * @SWG\Tag( - * name="Coordsyss", - * description="Operations about Coordsyss" - * ) - */ - - /** - * construct - * @param type $aPath url of the request - * @param type $aValues parameters of the request - * @param type $properties properties - * @param type $bShortcut false to reinit variables - * @param type $oConnection connection object - */ - function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false){ - parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection); - } - -/** - * @SWG\Get(path="/coordsyss", - * tags={"Coordsyss"}, - * summary="Get Coordsyss", - * description="Request to get Coordsyss", - * operationId="GET", - * produces={"application/xml", "application/json", "application/x-vm-json"}, - * @SWG\Parameter( - * name="token", - * in="query", - * description="user token", - * required=true, - * type="string" - * ), - * @SWG\Parameter( - * name="order_by", - * in="query", - * description="list of ordering fields", - * required=false, - * type="string" - * ), - * @SWG\Parameter( - * name="sort_order", - * in="query", - * description="sort_order", - * required=false, - * type="string" - * ), - * @SWG\Parameter( - * name="limit", - * in="query", - * description="number of element", - * required=false, - * type="integer", - * format="int32" - * ), - * @SWG\Parameter( - * name="offset", - * in="query", - * description="index of first element", - * required=false, - * type="string", - * format="int32" - * ), - * @SWG\Parameter( - * name="attributs", - * in="query", - * description="list of attributs", - * required=false, - * type="string" - * ), - * @SWG\Parameter( - * name="filter", - * in="query", - * description="filter results", - * required=false, - * type="string" - * ), - * @SWG\Parameter( - * name="distinct", - * in="query", - * description="delete duplicates", - * required=false, - * type="boolean" - * ), - * @SWG\Response( - * response=200, - * description="coordsys Response", - * @SWG\Schema(ref="#/definitions/coordsyss") - * ) - * ) - */ - - /** - * get Coordsyss - * @return Coordsyss - */ - function GET() { - $aReturn = $this->genericGet($this->aProperties['schema_extraction'], "rt_coordsys", "coordsys_id"); - $sMessage = $aReturn['sMessage']; - return $sMessage; - } - -/** - * @SWG\Post(path="/coordsyss", - * tags={"Coordsyss"}, - * summary="Add coordsys", - * description="Request to add Coordsyss", - * operationId="POST", - * produces={"application/xml", "application/json"}, - * @SWG\Parameter( - * name="token", - * in="query", - * description="user token", - * required=true, - * type="string" - * ), - * @SWG\Response( - * response=200, - * description="coordsys Response", - * @SWG\Schema(ref="#/definitions/coordsyss") - * ) - * ) - */ - - /** - * insert coordsys - * @return id of the coordsys created - */ - function POST() { - $aReturn = $this->genericPost($this->aProperties['schema_extraction'], 'rt_coordsys', '', 'coordsys_id'); - return $aReturn['sMessage']; - } - -/** - * @SWG\Put(path="/coordsyss/{id_coordsys}", - * tags={"Coordsyss"}, - * summary="update Coordsyss", - * description="Request to update Coordsyss", - * operationId="PUT", - * produces={"application/xml", "application/json"}, - * @SWG\Parameter( - * name="token", - * in="query", - * description="Coordsys token", - * required=true, - * type="string" - * ), - * * @SWG\Parameter( - * name="id_coordsys", - * in="path", - * description="id of the Coordsyss", - * required=true, - * type="integer", - * format = "int32" - * ), - * @SWG\Response( - * response=200, - * description="Poprerties Response", - * @SWG\Schema(ref="#/definitions/coordsyss") - * ) - * ) - */ - - /** - * update coordsyss - * @return id of coordsyss updated or error object if a coordsyss is not updated - */ - function PUT() { - $aReturn = $this->genericPut($this->aProperties['schema_extraction'], 'rt_coordsys', 'coordsys_id'); - - return $aReturn['sMessage']; - } - -/** - * @SWG\Delete(path="/coordsyss", - * tags={"Coordsyss"}, - * summary="delete Coordsyss", - * description="Request to delete Coordsyss", - * operationId="DELETE", - * produces={"application/xml", "application/json"}, - * @SWG\Parameter( - * name="token", - * in="query", - * description="token", - * required=true, - * type="string" - * ), - * * @SWG\Parameter( - * name="idList", - * in="query", - * description="id of the coordsys", - * required=true, - * type="string" - * ), - * @SWG\Response( - * response=200, - * description="coordsys Response", - * @SWG\Schema(ref="#/definitions/coordsyss") - * ) - * ) - */ - /** - * @SWG\Delete(path="/coordsyss/{id_coordsys}", - * tags={"Coordsyss"}, - * summary="delete Coordsyss", - * description="Request to delete Coordsyss", - * operationId="DELETE", - * produces={"application/xml", "application/json"}, - * @SWG\Parameter( - * name="token", - * in="query", - * description="Coordsys token", - * required=true, - * type="string" - * ), - * * @SWG\Parameter( - * name="id_coordsys", - * in="path", - * description="id of the Coordsyss", - * required=true, - * type="integer", - * format = "int32" - * ), - * @SWG\Response( - * response=200, - * description="Poprerties Response", - * @SWG\Schema(ref="#/definitions/coordsyss") - * ) - * ) - */ - - /** - * delete coordsyss - * @return id of coordsyss deleted or error object if a coordsyss is not deleted - */ - function DELETE() { - $aReturn = $this->genericDelete($this->aProperties['schema_extraction'], 'rt_coordsys', 'coordsys_id'); - return $aReturn['sMessage']; - } - - -} - -?> \ No newline at end of file diff --git a/src/module_extraction/web_service/ws/Extraction.class.inc b/src/module_extraction/web_service/ws/Extraction.class.inc deleted file mode 100755 index f1c76f9d..00000000 --- a/src/module_extraction/web_service/ws/Extraction.class.inc +++ /dev/null @@ -1,147 +0,0 @@ -<?php - -require_once __DIR__ . '/ExtractionExtraction.class.inc'; -require_once __DIR__. '/../../class/vitis_lib/Connection.class.inc'; - -/** - * \file Extraction.class.inc - * \class Extraction - * - * \author WAB <support.wab@veremes.com>. - * - * \brief This file contains the Extraction php class - * - * This class defines operation for one Extraction - * - */ -class Extraction extends ExtractionExtraction -{ - - public $oError; - - /** - * construct - * @param type $aPath url of the request - * @param type $aValues parameters of the request - * @param type $properties properties - * @param type $bShortcut false to reinit variables - * @param type $oConnection connection object - */ - public function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) - { - parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection); - } - -/** - * @SWG\Get(path="/extractions/{id_extraction}", - * tags={"Extractions"}, - * summary="Get Extraction", - * description="Request to get Extraction by id", - * operationId="GET", - * produces={"application/xml", "application/json"}, - * @SWG\Parameter( - * name="token", - * in="query", - * description="user token", - * required=true, - * type="string" - * ), - * @SWG\Parameter( - * name="id_extraction", - * in="path", - * description="id_extraction", - * required=true, - * type="integer", - * format="int32" - * ), - * @SWG\Parameter( - * name="attributs", - * in="query", - * description="list of attributs", - * required=false, - * type="string" - * ), - * @SWG\Response( - * response=200, - * description="Extraction Response", - * @SWG\Schema(ref="#/definitions/extractions") - * ) - * ) - */ - - /** - * get informations about mode - */ - public function GET() - { - require $this->sRessourcesFile; - $this->aFields = $this->getFields($this->aProperties['schema_extraction'], "v_extraction", "bo_id"); - // Url vers l'acte d'engagement. - if (!empty($this->aFields['ae'])) { - $this->aFields['ae'] = $this->aProperties['web_server_name'] . '/' . $this->aProperties['ws_data_alias'] . '/extraction/extraction_extraction_extraction/documents/' . $this->aValues["my_vitis_id"] . '/ae/' . $this->aFields['ae']; - } - - // Date au format Français. - if ($this->aProperties["language"] == 'fr') { - $oDate = new DateTime($this->aFields['creation_date']); - $this->aFields['creation_date'] = $oDate->format('d/m/Y'); - } - - // Libellés du champ "Commune". - if (!empty($this->aFields['id_com'])) { - //On donne les paramètres à remplacer dans la requête - $aSQLParams = array( - 'id_com' => array('value' => $this->aFields['id_com'], 'type' => 'group'), - ); - - $sSql = $aSql['getCommuneLabel']; - - $oPDOresult = $this->oConnection->oBd->executeWithParams($sSql, $aSQLParams); - if (!$this->oConnection->oBd->enErreur()) { - while ($aLine = $this->oConnection->oBd->ligneSuivante($oPDOresult)) { - $aCommune[] = $aLine['nom_com']; - } - $this->aFields['id_com_label'] = implode(',', $aCommune); - } - } - - // Libellés du champ "Conseil de Territoire". - if (!empty($this->aFields['id_conseil'])) { - - $aSQLParams = array( - 'id_conseil' => array('value' => $this->aFields['id_conseil'], 'type' => 'group'), - ); - //$sSql = str_replace('[id_conseil]', str_replace('|', ',', $this->aFields['id_conseil']), $aSql['getConseilLabel']); - $aConseil = []; - $sSql = $aSql['getConseilLabel']; - $oPDOresult = $this->oConnection->oBd->executeWithParams($sSql, $aSQLParams); - if (!$this->oConnection->oBd->enErreur()) { - while ($aLine = $this->oConnection->oBd->ligneSuivante($oPDOresult)) { - $aConseil[] = $aLine['nom_epci']; - } - if (is_array($aConseil)) { - $this->aFields['id_conseil_label'] = implode(',', $aConseil); - } else { - $this->aFields['id_conseil_label'][0] = $aConseil; - } - } - } - - // Nom de l'état de l'extraction. - $this->aFields['status_name'] = $this->aFields['status']; - } - -/** - * delete a Point_situation - */ - public function DELETE() - { - $this->oConnection->oBd->delete($this->aProperties['schema_extraction'], 'extraction', 'bo_id', $this->aValues["my_vitis_id"], 'integer'); - if ($this->oConnection->oBd->enErreur()) { - $this->oError = new Error(1, $this->oConnection->oBd->getBDMessage()); - } else { - $this->aFields["bo_id"] = $this->aValues["my_vitis_id"]; - } - } - -} diff --git a/src/module_extraction/web_service/ws/ExtractionExtraction.class.inc b/src/module_extraction/web_service/ws/ExtractionExtraction.class.inc deleted file mode 100755 index 770729dd..00000000 --- a/src/module_extraction/web_service/ws/ExtractionExtraction.class.inc +++ /dev/null @@ -1,44 +0,0 @@ -<?php - require_once __DIR__ . "/../../class/vitis_lib/DbClass.class.inc"; - require_once __DIR__ . '/../vitis/Vitis.class.inc'; -require_once 'vmlib/logUtil.inc'; - -class ExtractionExtraction extends Vitis -{ - - //Chemin du fichier de ressources contenant les requêtes SQL - public $sRessourcesFile = 'ws/extraction/ExtractionExtraction.class.sql.inc'; - - /** - * Upload un document dans le ws_data du module Extraction. - * @param type $sIndex - * @param type $sFolder - */ - public function uploadDocument($sIndex, $sFolder) - { - // Crée le répertoire si inexistant. - $sDirPath = $this->aProperties['ws_data_dir'] . '/extraction/' . $sFolder . '/documents/' . $this->aValues["my_vitis_id"] . '/' . $sIndex . '/'; - if (!is_dir($sDirPath)) { - mkdir($sDirPath, 0777, true); - } - - // Ecrit le fichier. - if (!empty($_FILES[$sIndex])) { - $sErrorMessage = uploadFile($sIndex, "", $sDirPath . $_FILES[$sIndex]["name"], $_FILES[$sIndex]['size'] + 1); - if ($sErrorMessage != "") { - writeToErrorLog($sErrorMessage); - } - - } else { - $sfileContentIndex = $sIndex . '_file'; - $sfileNameIndex = $sIndex . '_name'; - if (!empty($this->aValues[$sfileContentIndex])) { - - $this->aValues[$sIndex] = $this->aValues[$sfileNameIndex]; - $fp = fopen($sDirPath . $this->aValues[$sfileNameIndex], "w"); - fwrite($fp, $this->aValues[$sfileContentIndex]); - fclose($fp); - } - } - } -} diff --git a/src/module_extraction/web_service/ws/ExtractionExtraction.class.sql.inc b/src/module_extraction/web_service/ws/ExtractionExtraction.class.sql.inc deleted file mode 100755 index bf92c6ac..00000000 --- a/src/module_extraction/web_service/ws/ExtractionExtraction.class.sql.inc +++ /dev/null @@ -1,22 +0,0 @@ -<?php -//Définition des requêtes de l'api Vitis -$aSql['checkIP'] = "SELECT user_id, ip_constraint FROM [sSchemaFramework].user WHERE login ='[sLogin]'"; -$aSql['getGroups'] = "SELECT group_id FROM [sSchemaFramework].user_group WHERE user_id = [user_id]"; -$aSql['loginUnique'] = 'SELECT UPPER("login") FROM [sSchemaFramework]."user" WHERE UPPER("login")=UPPER(\'sLoginUser\')'; -$aSql['getLoginbyId'] = 'SELECT "login" FROM [sSchemaFramework]."user" WHERE user_id=[user_id]'; -$aSql['getTableColumn'] = 'SELECT column_name FROM INFORMATION_SCHEMA.COLUMNS WHERE table_schema = \'[sSchemaFramework]\' and table_name= \'[sTable]\''; -$aSql['getUserPrivileges'] = 'SELECT groname FROM pg_user s LEFT OUTER JOIN pg_group g on (s.usesysid = any(g.grolist) )inner join [sSchemaFramework].user on "user".login = usename WHERE user_id = [user_id]'; -$aSql['listDomain'] = 'SELECT distinct domain, alias FROM [sSchemaFramework].domain WHERE "type" = \'AD\''; -$aSql['createRolname'] = 'CREATE ROLE "vitis_[sDomain]" NOSUPERUSER INHERIT NOCREATEDB CREATEROLE;'; -$aSql['getInfoRolname'] = 'SELECT * FROM pg_catalog.pg_roles WHERE rolname = \'vitis_[sDomain]\''; -// Extraction -$aSql['getCommuneLabel'] = 'SELECT nom_com FROM public.ref_cpa_limadm_commune WHERE id_com IN([id_com])'; -$aSql['getConseilLabel'] = 'SELECT nom_epci FROM public.ref_amp_lim_ct WHERE objectid IN([id_conseil])'; -$aSql['getCtId'] = 'SELECT distinct ct_id from [schema_extraction].commune'; -$aSql['getRtLayerWithCtId'] = 'SELECT distinct layer_id, layer, category, mutualized, statistique FROM [schema_extraction].rt_layer INNER JOIN s_extraction.commune ON rt_layer.ct_id = commune.ct_id WHERE (rt_layer."ct_id" IN ([aCtId]))'; -$aSql['getRtLayer'] = 'SELECT distinct layer_id, layer, category, mutualized, statistique FROM [schema_extraction].rt_layer INNER JOIN s_extraction.commune ON rt_layer.ct_id = commune.ct_id'; - -$aSql['getUserGroups'] = 'SELECT name FROM [schema_framework]."group",[schema_framework].user_group WHERE "group".group_id = user_group.group_id AND user_group.user_id = [user_id]'; - -$aSql['getFormat'] = 'SELECT id_format FROM q_control."format" WHERE "format".extensions like [extension]'; -?> \ No newline at end of file diff --git a/src/module_extraction/web_service/ws/Extraction_depot.class.inc b/src/module_extraction/web_service/ws/Extraction_depot.class.inc deleted file mode 100755 index 51e0c62e..00000000 --- a/src/module_extraction/web_service/ws/Extraction_depot.class.inc +++ /dev/null @@ -1,81 +0,0 @@ -<?php - -require_once __DIR__ . '/ExtractionExtraction.class.inc'; -require_once __DIR__ . '/../../class/vitis_lib/Connection.class.inc'; - -/** - * \file Extraction_depot.class.inc - * \class Extraction_depot - * - * \author WAB <support.wab@veremes.com>. - * - * \brief This file contains the Extraction_depot php class - * - * This class defines operation for one Extraction_depot - * - */ -class Extraction_depot extends ExtractionExtraction { - - public $oError; - - /** - * construct - * @param type $aPath url of the request - * @param type $aValues parameters of the request - * @param type $properties properties - * @param type $bShortcut false to reinit variables - * @param type $oConnection connection object - */ - function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false){ - parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection); - } - - /** - * @SWG\Get(path="/extraction_depots/{id_extraction_depot}", - * tags={"Extraction_depots"}, - * summary="Get Extraction_depot", - * description="Request to get Extraction_depot by id", - * operationId="GET", - * produces={"application/xml", "application/json"}, - * @SWG\Parameter( - * name="token", - * in="query", - * description="user token", - * required=true, - * type="string" - * ), - * @SWG\Parameter( - * name="id_extraction_depot", - * in="path", - * description="id_extraction_depot", - * required=true, - * type="integer", - * format="int32" - * ), - * @SWG\Parameter( - * name="attributs", - * in="query", - * description="list of attributs", - * required=false, - * type="string" - * ), - * @SWG\Response( - * response=200, - * description="Extraction_depot Response", - * @SWG\Schema(ref="#/definitions/extraction_depots") - * ) - * ) - */ - - /** - * get informations about mode - */ - function GET() { - $this->aFields = $this->getFields($this->aProperties['schema_extraction'], "", ""); - } - - - -} - -?> \ No newline at end of file diff --git a/src/module_extraction/web_service/ws/Extraction_depots.class.inc b/src/module_extraction/web_service/ws/Extraction_depots.class.inc deleted file mode 100755 index e424f2ce..00000000 --- a/src/module_extraction/web_service/ws/Extraction_depots.class.inc +++ /dev/null @@ -1,440 +0,0 @@ -<?php - -/** - * \file Extraction_depots.class.inc - * \class Extraction_depots - * - * \author WAB <support.wab@veremes.com>. - * - * \brief This file contains the Extraction_depots php class - * - * This class defines Rest Api to Vitis Extraction_depots - * - */ -require_once __DIR__ . '/ExtractionExtraction.class.inc'; -require_once 'Extraction_depot.class.inc'; -require_once __DIR__ . '/../../class/wab_lib/BusinessObject.class.inc'; -require_once __DIR__ . '/Extractions.class.inc'; - -class Extraction_depots extends ExtractionExtraction -{ - /** - * @SWG\Definition( - * definition="/extraction_depots", - * allOf={ - * @SWG\Schema(ref="#/definitions/extraction_depots") - * } - * ) - * * @SWG\Tag( - * name="Extraction_depots", - * description="Operations about Extraction_depots" - * ) - */ - - /** - * construct - * @param type $aPath url of the request - * @param type $aValues parameters of the request - * @param type $properties properties - * @param type $bShortcut false to reinit variables - * @param type $oConnection connection object - */ - public function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) - { - parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection); - } - - /** - * @SWG\Get(path="/extraction_depots", - * tags={"Extraction_depots"}, - * summary="Get Extraction_depots", - * description="Request to get Extraction_depots", - * operationId="GET", - * produces={"application/xml", "application/json", "application/x-vm-json"}, - * @SWG\Parameter( - * name="token", - * in="query", - * description="user token", - * required=true, - * type="string" - * ), - * @SWG\Parameter( - * name="order_by", - * in="query", - * description="list of ordering fields", - * required=false, - * type="string" - * ), - * @SWG\Parameter( - * name="sort_order", - * in="query", - * description="sort_order", - * required=false, - * type="string" - * ), - * @SWG\Parameter( - * name="limit", - * in="query", - * description="number of element", - * required=false, - * type="integer", - * format="int32" - * ), - * @SWG\Parameter( - * name="offset", - * in="query", - * description="index of first element", - * required=false, - * type="string", - * format="int32" - * ), - * @SWG\Parameter( - * name="attributs", - * in="query", - * description="list of attributs", - * required=false, - * type="string" - * ), - * @SWG\Parameter( - * name="filter", - * in="query", - * description="filter results", - * required=false, - * type="string" - * ), - * @SWG\Parameter( - * name="distinct", - * in="query", - * description="delete duplicates", - * required=false, - * type="boolean" - * ), - * @SWG\Response( - * response=200, - * description="extraction_depot Response", - * @SWG\Schema(ref="#/definitions/extraction_depots") - * ) - * ) - */ - - /** - * get Extraction_depots - * @return Extraction_depots - */ - public function GET() - { - if (!empty($this->aPath[2])) { - if ($this->aPath[2] == "Tree") { - $sDirPath = $this->aProperties['ws_data_dir'] . '/extraction/extraction_depot'; - //Création du dossier extraction_depot - if (!is_dir($sDirPath)) { - //Création du dossier du demandeur - if (!mkdir($sDirPath)) { - //Mettre une erreur dans le log d'erreur - } - } - $sDirPath = $this->aProperties['ws_data_dir'] . '/extraction/extraction_depot/' . $_SERVER["REMOTE_ADDR"]; - if (!is_dir($sDirPath)) { - if (!mkdir($sDirPath)) { - //Mettre une erreur dans le log d'erreur - } - } - $sDirPath = $this->aProperties['ws_data_dir'] . '/extraction/extraction_depot/' . $_SERVER["REMOTE_ADDR"] . "/Fichiers déposés"; - if (!is_dir($sDirPath)) { - if (!mkdir($sDirPath)) { - //Mettre une erreur dans le log d'erreur - } - } - $sDirPath = $this->aProperties['ws_data_dir'] . '/extraction/extraction_depot/' . $_SERVER["REMOTE_ADDR"] . "/Résultats"; - if (!is_dir($sDirPath)) { - if (!mkdir($sDirPath)) { - //Mettre une erreur dans le log d'erreur - } - } - $sDirPath = $this->aProperties['ws_data_dir'] . '/extraction/extraction_depot/' . $_SERVER["REMOTE_ADDR"]; - return json_encode($this->getFolderInfos($sDirPath)); - } elseif ($this->aPath[2] == "File") { - $this->getWorkspaceFile(); - } - } - } - - /** - * Get file. - */ - public function getWorkspaceFile() - { - $aReturn = array('status' => 1, 'message' => ''); - $sFilePath = $this->aProperties['ws_data_dir'] . '/extraction/extraction_depot/' . $_SERVER["REMOTE_ADDR"] . "/" . $this->aValues['file_name']; - // Le fichier existe ? - if (file_exists($sFilePath)) { - header("Content-Type: application/octet-stream"); - header("Content-Transfer-Encoding: Binary"); - header("Content-disposition: attachment; filename=\"" . $this->aValues['file_name'] . "\""); - header('Content-Length: ' . filesize($sFilePath)); - error_log(readfile($sFilePath)); - } - } - - /** - * - * @param string $sDirectoryPath - * @return array $aTree - */ - public function getFolderInfos($sDirectoryPath) - { - - if (is_dir($sDirectoryPath)) { - $aContentDir = scandir($sDirectoryPath); - $aTree = $this->getFileInfos($sDirectoryPath); - $aDir = array(); - for ($i = 0; $i < count($aContentDir); $i++) { - if ($aContentDir[$i] !== "." && $aContentDir[$i] !== "..") { - array_push($aDir, $this->getFolderInfos($sDirectoryPath . "/" . $aContentDir[$i])); - } - } - - $aTree["content"] = $aDir; - $aTree["status"] = 1; - return $aTree; - } else { - return $this->getFileInfos($sDirectoryPath); - } - } - - /** - * - * @param string $sFilePath - * @return array - */ - public function getFileInfos($sFilePath) - { - $iFileSize = filesize($sFilePath); - - $sFileSize = $iFileSize . "octets"; - if ($iFileSize > 1024) { - if ($iFileSize > 1024 * 1024) { - if ($iFileSize > 1024 * 1024 * 1024) { - $sFileSize = "-"; - } else { - $sFileSize = (ceil($iFileSize / (1024 * 1024))) . "Mo"; - } - } else { - $sFileSize = (ceil($iFileSize / 1024)) . "Ko"; - } - } - - $aFileName = explode(DIRECTORY_SEPARATOR, $sFilePath); - - return array("filename" => $aFileName[count($aFileName) - 1], "size" => $sFileSize, "lastModification" => date("d/m/Y H:i:s", filemtime($sFilePath))); - } - - /** - * @SWG\Delete(path="/[Class_name]s", - * tags={"[Class_name_upper]s"}, - * summary="delete [Class_name_upper]s", - * description="Request to delete [Class_name_upper]s", - * operationId="DELETE", - * produces={"application/xml", "application/json"}, - * @SWG\Parameter( - * name="token", - * in="query", - * description="token", - * required=true, - * type="string" - * ), - * * @SWG\Parameter( - * name="idList", - * in="query", - * description="id of the [Class_name]", - * required=true, - * type="string" - * ), - * @SWG\Response( - * response=200, - * description="[Class_name] Response", - * @SWG\Schema(ref="#/definitions/[Class_name]s") - * ) - * ) - */ - /** - * @SWG\Delete(path="/[Class_name]s/{id_[Class_name]}", - * tags={"[Class_name_upper]s"}, - * summary="delete [Class_name_upper]s", - * description="Request to delete [Class_name_upper]s", - * operationId="DELETE", - * produces={"application/xml", "application/json"}, - * @SWG\Parameter( - * name="token", - * in="query", - * description="[Class_name_upper] token", - * required=true, - * type="string" - * ), - * * @SWG\Parameter( - * name="id_[Class_name]", - * in="path", - * description="id of the [Class_name_upper]s", - * required=true, - * type="integer", - * format = "int32" - * ), - * @SWG\Response( - * response=200, - * description="Poprerties Response", - * @SWG\Schema(ref="#/definitions/[Class_name]s") - * ) - * ) - */ - - /** - * delete [Class_name]s - * @return id of [Class_name]s deleted or error object if a [Class_name]s is not deleted - */ - public function DELETES() - { - $sDirPath = $this->aProperties['ws_data_dir'] . '/extraction/extraction_depot/' . $_SERVER["REMOTE_ADDR"]; - //On supprime le fichier - $sMessage = unlink($sDirPath . "/" . $this->aValues['file_name']); - return $sMessage; - } - - /** - * @SWG\Put(path="/[Class_name]s/{id_[Class_name]}", - * tags={"[Class_name_upper]s"}, - * summary="update [Class_name_upper]s", - * description="Request to update [Class_name_upper]s", - * operationId="PUT", - * produces={"application/xml", "application/json"}, - * @SWG\Parameter( - * name="token", - * in="query", - * description="[Class_name_upper] token", - * required=true, - * type="string" - * ), - * * @SWG\Parameter( - * name="id_[Class_name]", - * in="path", - * description="id of the [Class_name_upper]s", - * required=true, - * type="integer", - * format = "int32" - * ), - * @SWG\Response( - * response=200, - * description="Poprerties Response", - * @SWG\Schema(ref="#/definitions/[Class_name]s") - * ) - * ) - */ - - /** - * update [Class_name]s - * @return id of [Class_name]s updated or error object if a [Class_name]s is not updated - */ - public function PUT() - { - if (!empty($this->aValues["action"]) && $this->aValues["action"] == "Metadata") { - $aReturn = $this->reintegrateMetadata(); - - $aXmlRacineAttribute['status'] = $aReturn['status']; - $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], true, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); - } else { - $sDirName = $this->aProperties['ws_data_dir'] . '/extraction/extraction_depot/' . $_SERVER["REMOTE_ADDR"]; - $error_message = ""; - - // Si le dossier {id} n'existe pas (Important pour gérer les erreurs) - if (!is_dir($sDirName)) { - $error_message .= $sDirName . " does not exist"; - writeToErrorLog("WARNING: " . $error_message); - - $aXmlRacineAttribute['status'] = 0; - $this->aFields = array(); - $this->aFields['errorMessage'] = $error_message; - $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], true, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); - return $sMessage; - } - // Si le dossier {id}/Fichiers déposés n'existe pas (Important pour gérer les erreurs) - if (!is_dir($sDirName . "/Fichiers déposés")) { - $error_message .= $sDirName . "/Fichiers déposés does not exist"; - writeToErrorLog("WARNING: " . $error_message); - - $aXmlRacineAttribute['status'] = 0; - $this->aFields = array(); - $this->aFields['errorMessage'] = $error_message; - $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], true, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); - return $sMessage; - } - - // Si le dossier {id}/form n'existe pas il est crée - if (!is_dir($sDirName . "/Résultats")) { - writeToErrorLog("WARNING: " . $sDirName . "/Résultats"); - @mkdir($sDirName . "/Résultats"); - } - - if (!empty($this->aValues["control_file_file"])) { - $this->aValues["control_file"] = $this->aValues["control_file_name"]; - } - if (!empty($this->aValues["control_file_file"])) { - //if ($aReturn['sStatus'] == 1) { - $aXmlRacineAttribute['status'] = 1; - $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], true, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); - $sDirPath = $this->aProperties["upload_dir"] . "/" . getUniqRandomId(); - while (is_dir($sDirPath)) { - $sDirPath = $this->aProperties["upload_dir"] . "/" . getUniqRandomId(); - } - if (!mkdir($sDirPath)) { - return false; - } - // Sauvegarde le nouveau fichier. - $fp = fopen($sDirPath . '/' . utf8_decode($this->aValues["control_file_name"]), "w"); - fwrite($fp, $this->aValues["control_file_file"]); - fclose($fp); - - $sExtension = '*.' . end(explode(".", $this->aValues["control_file_name"])); - if (in_array($sExtension, explode("|", $this->aProperties['sig'])) or in_array($sExtension, explode("|", $this->aProperties['dao']))) { - $sSchemaContrainte = ""; - if (in_array($sExtension, explode("|", $this->aProperties['sig']))) { - $sSchemaContrainte = $this->aProperties["schema_sig"]; - } elseif (in_array($sExtension, explode("|", $this->aProperties['dao']))) { - $sSchemaContrainte = $this->aProperties["schema_dao"]; - } - - $this->sRessourcesFile = "ExtractionExtraction.class.sql.inc"; - require $this->sRessourcesFile; - $sSql = $aSql['getFormat']; - $aSQLParams = array( - 'extension' => array('type' => 'quoted_string', 'value' => '%' . $sExtension . '%'), - ); - - $oPDOresult = $this->oConnection->oBd->executeWithParams($sSql, $aSQLParams); - $sFormat = ""; - if (!$this->oConnection->oBd->enErreur()) { - $aResult = $this->oConnection->oBd->getResultTableAssoc($oPDOresult); - foreach ($aResult as $sFormats) { - $sFormat = $sFormats['id_format']; - } - } - - $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']); - //$this->oBO->insertOrder('EM0160AYYTK48', 'bo_id=' . $this->aValues["bo_id"] . '|sourceDir=' . end(explode("/", $sDirPath)) . '/' . $this->aValues["control_file_name"] . '|sourceMotif=' . $sExtension . '|schema=' . $sSchemaContrainte . '|format=ACAD|destDir=' . $this->aProperties['ws_data_dir'] . '/extraction/extraction_depot/' . $_SERVER["REMOTE_ADDR"] . "/Fichiers déposés"); - $this->oBO->insertOrder('EM0160AYYTK48', 'bo_id=' . $this->aValues["bo_id"] . '|sourceDir=' . $sDirPath . '/' . $this->aValues["control_file_name"] . '|sourceMotif=' . $sExtension . '|schema=' . $sSchemaContrainte . '|format='.$sFormat.'|depotDir=' . $this->aProperties['ws_data_dir'] . '/extraction/extraction_depot/' . $_SERVER["REMOTE_ADDR"] . '/Fichiers déposés/' . $this->aValues["control_file_name"]); - } else { - //Si l'extension n'est pas bonne - $error_message .= $this->aValues["control_file_name"] . " format is not authaurized (" . $sExtension . ")"; - writeToErrorLog("WARNING: " . $error_message); - - $aXmlRacineAttribute['status'] = 0; - $this->aFields = array(); - $this->aFields['errorMessage'] = $error_message; - $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], true, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); - return $sMessage; - } - } - } - - return $sMessage; - } - -} diff --git a/src/module_extraction/web_service/ws/Extractions.class.inc b/src/module_extraction/web_service/ws/Extractions.class.inc deleted file mode 100755 index 20ba20bb..00000000 --- a/src/module_extraction/web_service/ws/Extractions.class.inc +++ /dev/null @@ -1,650 +0,0 @@ -<?php - -/** - * \file Extractions.class.inc - * \class Extractions - * - * \author WAB <support.wab@veremes.com>. - * - * \brief This file contains the Extractions php class - * - * This class defines Rest Api to Vitis Extractions - * - */ -require_once __DIR__ . '/ExtractionExtraction.class.inc'; -require_once 'Extraction.class.inc'; - -require_once __DIR__ . '/../../class/wab_lib/BusinessObject.class.inc'; - -class Extractions extends ExtractionExtraction -{ - - protected $iIdExtraction; - /** - * @SWG\Definition( - * definition="/extractions", - * allOf={ - * @SWG\Schema(ref="#/definitions/extractions") - * } - * ) - * * @SWG\Tag( - * name="Extractions", - * description="Operations about Extractions" - * ) - */ - - /** - * construct - * @param type $aPath url of the request - * @param type $aValues parameters of the request - * @param type $properties properties - * @param type $bShortcut false to reinit variables - * @param type $oConnection connection object - */ - public function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false) - { - parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection); - } - -/** - * @SWG\Get(path="/extractions", - * tags={"Extractions"}, - * summary="Get Extractions", - * description="Request to get Extractions", - * operationId="GET", - * produces={"application/xml", "application/json", "application/x-vm-json"}, - * @SWG\Parameter( - * name="token", - * in="query", - * description="user token", - * required=true, - * type="string" - * ), - * @SWG\Parameter( - * name="order_by", - * in="query", - * description="list of ordering fields", - * required=false, - * type="string" - * ), - * @SWG\Parameter( - * name="sort_order", - * in="query", - * description="sort_order", - * required=false, - * type="string" - * ), - * @SWG\Parameter( - * name="limit", - * in="query", - * description="number of element", - * required=false, - * type="integer", - * format="int32" - * ), - * @SWG\Parameter( - * name="offset", - * in="query", - * description="index of first element", - * required=false, - * type="string", - * format="int32" - * ), - * @SWG\Parameter( - * name="attributs", - * in="query", - * description="list of attributs", - * required=false, - * type="string" - * ), - * @SWG\Parameter( - * name="filter", - * in="query", - * description="filter results", - * required=false, - * type="string" - * ), - * @SWG\Parameter( - * name="distinct", - * in="query", - * description="delete duplicates", - * required=false, - * type="boolean" - * ), - * @SWG\Response( - * response=200, - * description="extraction Response", - * @SWG\Schema(ref="#/definitions/extractions") - * ) - * ) - */ - /** - * @SWG\Get(path="/extractions/Layers", - * tags={"Extractions"}, - * summary="Get extraction layers", - * description="Request to get the layers of the extractions", - * operationId="GET", - * produces={"application/xml", "application/json", "application/x-vm-json"}, - * @SWG\Parameter( - * name="token", - * in="query", - * description="user token", - * required=true, - * type="string" - * ), - * @SWG\Response( - * response=200, - * description="Poprerties Response", - * @SWG\Schema(ref="#/definitions/extractions") - * ) - * ) - */ - - /** - * get Extractions - * @return Extractions - */ - public function GET() - { - if (!empty($this->aPath[2]) && $this->aPath[2] == "Layers") { - $sMessage = $this->getLayers(); - } else { - $aReturn = $this->genericGet($this->aProperties['schema_extraction'], "v_extraction", "bo_id"); - $sMessage = $aReturn['sMessage']; - } - return $sMessage; - } - -/** - * @SWG\Post(path="/extractions", - * tags={"Extractions"}, - * summary="Add extraction", - * description="Request to add Extractions", - * operationId="POST", - * produces={"application/xml", "application/json"}, - * @SWG\Parameter( - * name="token", - * in="query", - * description="user token", - * required=true, - * type="string" - * ), - * @SWG\Response( - * response=200, - * description="extraction Response", - * @SWG\Schema(ref="#/definitions/extractions") - * ) - * ) - */ - - /** - * insert extraction - * @return id of the extraction created - */ - public function POST() - { - $aReturn = $this->genericPost($this->aProperties['schema_extraction'], 'extraction', $this->aProperties['schema_extraction'] . '.bo_id_extraction_seq', 'bo_id'); - $this->aValues["bo_id"] = $this->aValues['my_vitis_id']; - eval('$this->' . $this->aValues['tr_status_method'] . '();'); - return $aReturn['sMessage']; - } - -/** - * @SWG\Put(path="/extractions/{id_extraction}", - * tags={"Extractions"}, - * summary="update Extractions", - * description="Request to update Extractions", - * operationId="PUT", - * produces={"application/xml", "application/json"}, - * @SWG\Parameter( - * name="token", - * in="query", - * description="Extraction token", - * required=true, - * type="string" - * ), - * * @SWG\Parameter( - * name="id_extraction", - * in="path", - * description="id of the Extractions", - * required=true, - * type="integer", - * format = "int32" - * ), - * @SWG\Response( - * response=200, - * description="Poprerties Response", - * @SWG\Schema(ref="#/definitions/extractions") - * ) - * ) - */ - - /** - * update extractions - * @return id of extractions updated or error object if a extractions is not updated - */ - public function PUT() - { - // Upload l'acte d'engagement. - $this->uploadDocument('ae', 'extraction_extraction_extraction'); - // - $aReturn = $this->genericPut($this->aProperties['schema_extraction'], 'extraction', 'bo_id'); - $this->aValues["bo_id"] = $this->aValues['my_vitis_id']; - - //On vérifie que le fichier existe et ne soit pas vide - if (!empty($this->aValues['input_deposit_file'])) { - //On va déplacer le fichier dans un dossier temporaire - $aXmlRacineAttribute['status'] = 1; - $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], true, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); - $sDirPath = $this->aProperties["upload_dir"] . "/" . getUniqRandomId(); - //Récupération de sDirPath pour trDéposer - $this->sDirPath = $sDirPath; - - $sExtension = '*.' . end(explode(".", $this->aValues["input_deposit_name"])); - - //Si l'extension est autorisée - if (in_array($sExtension, explode("|", $this->aProperties['sig'])) || in_array($sExtension, explode("|", $this->aProperties['dao']))) { - - // Méthode de transition. - if (!empty($this->aValues['tr_status_method'])) { - eval('$this->' . $this->aValues['tr_status_method'] . '();'); - } - - $sSchemaContrainte = ""; - if (in_array($sExtension, explode("|", $this->aProperties['sig']))) { - $sSchemaContrainte = $this->aProperties["schema_sig"]; - } elseif (in_array($sExtension, explode("|", $this->aProperties['dao']))) { - $sSchemaContrainte = $this->aProperties["schema_dao"]; - } - - while (is_dir($sDirPath)) { - $sDirPath = $this->aProperties["upload_dir"] . "/" . getUniqRandomId(); - } - if (!mkdir($sDirPath)) { - return false; - } - // Sauvegarde le nouveau fichier. - $fp = fopen($sDirPath . '/' . utf8_decode($this->aValues["input_deposit_name"]), "w"); - fwrite($fp, $this->aValues["input_deposit_file"]); - fclose($fp); - - $this->sRessourcesFile = "ExtractionExtraction.class.sql.inc"; - require $this->sRessourcesFile; - $sSql = $aSql['getFormat']; - $aSQLParams = array( - 'extension' => array('type' => 'quoted_string', 'value' => '%' . $sExtension . '%'), - ); - - $oPDOresult = $this->oConnection->oBd->executeWithParams($sSql, $aSQLParams); - $sFormat = ""; - if (!$this->oConnection->oBd->enErreur()) { - $aResult = $this->oConnection->oBd->getResultTableAssoc($oPDOresult); - foreach ($aResult as $sFormats) { - $sFormat = $sFormats['id_format']; - } - } - - //Demande GTF - $this->oBO->insertOrder('EM0160AYYTK48', 'bo_id=' . $this->aValues["bo_id"] . '|sourceDir=' . end(explode("/", $sDirPath)) . '/' . $this->aValues["input_deposit_name"] . '|sourceMotif=' . $sExtension . '|depotDir=' . $sSchemaContrainte . '|format=' . $sFormat . '|depotDir=' . $this->aProperties['ws_data_dir'] . '/extraction/extraction_depot/' . $_SERVER["REMOTE_ADDR"] . "/Fichiers déposés/" . $this->aValues["input_deposit_name"]); - } else { - //Si l'extension n'est pas bonne - $error_message .= $this->aValues["input_deposit_name"] . " format is not authaurized (" . $sExtension . ")"; - writeToErrorLog("WARNING: " . $error_message); - - $aXmlRacineAttribute['status'] = 0; - $this->aFields = array(); - $this->aFields['errorMessage'] = $error_message; - $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], true, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); - return $sMessage; - } - } - return $aReturn['sMessage']; - } - -/** - * @SWG\Delete(path="/extractions", - * tags={"Extractions"}, - * summary="delete Extractions", - * description="Request to delete Extractions", - * operationId="DELETE", - * produces={"application/xml", "application/json"}, - * @SWG\Parameter( - * name="token", - * in="query", - * description="token", - * required=true, - * type="string" - * ), - * * @SWG\Parameter( - * name="idList", - * in="query", - * description="id of the extraction", - * required=true, - * type="string" - * ), - * @SWG\Response( - * response=200, - * description="extraction Response", - * @SWG\Schema(ref="#/definitions/extractions") - * ) - * ) - */ - /** - * @SWG\Delete(path="/extractions/{id_extraction}", - * tags={"Extractions"}, - * summary="delete Extractions", - * description="Request to delete Extractions", - * operationId="DELETE", - * produces={"application/xml", "application/json"}, - * @SWG\Parameter( - * name="token", - * in="query", - * description="Extraction token", - * required=true, - * type="string" - * ), - * * @SWG\Parameter( - * name="id_extraction", - * in="path", - * description="id of the Extractions", - * required=true, - * type="integer", - * format = "int32" - * ), - * @SWG\Response( - * response=200, - * description="Poprerties Response", - * @SWG\Schema(ref="#/definitions/extractions") - * ) - * ) - */ - - /** - * delete extractions - * @return id of extractions deleted or error object if a extractions is not deleted - */ - public function DELETE() - { - $aReturn = $this->genericDelete($this->aProperties['schema_extraction'], 'extraction', 'bo_id'); - return $aReturn['sMessage']; - } - - /** - * Liste des couches. - */ - public function getLayers() - { - require $this->sRessourcesFile; - //On décode le json récupéré via le filtre - if (!empty($this->aValues["filter"])) { - $decode = $this->decodeJSONFilter($this->aValues["filter"], $this->aProperties['schema_extraction'], $this->aValues["table"]); - } - - if (is_object($this->aValues) || is_array($this->aValues)) { - $sJSONFilter = json_encode($this->aValues); - } - - if (!empty($sJSONFilter)) { - $aJSONFilter = json_decode($sJSONFilter, true); - - if (!empty($aJSONFilter["filter"])) { - if (is_object($aJSONFilter["filter"]) || is_array($aJSONFilter["filter"])) { - $sJSONFilter = json_encode($aJSONFilter["filter"]); - } - } - } - $aSQLParams = array( - 'schema_framework' => array('value' => $this->aProperties['schema_framework'], 'type' => 'schema_name'), - 'user_id' => array('value' => $_SESSION['ses_user_id'], 'type' => 'string'), - ); - - $sSql = $aSql['getUserGroups']; - $oPDOresult = $this->oConnection->oBd->executeWithParams($sSql, $aSQLParams); - if (!$this->oConnection->oBd->enErreur()) { - $aResult = $this->oConnection->oBd->getResultTableAssoc($oPDOresult); - foreach ($aResult as $aUserGroup) { - $aUserGroups[] = $aUserGroup['name']; - } - - if (!empty($aValues["filter"])) { - $aSQLParams = array( - 'schema_extraction' => array('value' => $this->aProperties['schema_extraction'], 'type' => 'schema_name'), - ); - - $sSql = $aSql['getCtId']; - //On donne la condition - if ($decode["request"]) { - $sSql .= " WHERE "; - $sSql .= $decode["request"]; - $sSql .= 'ORDER BY ct_id;'; - } - //error_log(print_r($sSql, true)); - $merge = array_merge($aSQLParams, $decode["params"]); - - $oPDOresult = $this->oConnection->oBd->executeWithParams($sSql, $merge); - - $aCtResult = $this->oConnection->oBd->getResultTableAssoc($oPDOresult); - } - // Restriction de l'utilisateur suivant ses groupes. - if (in_array('interne', $aUserGroups)) { - $sSqlParams = " ORDER BY category, layer_id;"; - } else if (in_array('restreint', $aUserGroups)) { - $sSqlParams = " AND restriction <> 'interne' ORDER BY category, layer_id;"; - } else { - $sSqlParams = " AND restriction = 'public' ORDER BY category, layer_id;"; - } - - // Liste des cartes. - $this->aFields['treeview_layers'] = array(); - - //Requête pour récupérer les couches - if (!empty($aValues["filter"])) { - $sSql = $aSql['getRtLayerWithCtId'] . $sSqlParams; - } else { - $sSql = $aSql['getRtLayer'] . $sSqlParams; - } - $ct_id; - if (!empty($aCtResult)) { - for ($i = 0; $i < sizeof($aCtResult); $i++) { - $ct_id .= $aCtResult[$i]["ct_id"] . "|"; - } - //On retire la dernière pipe qui ne sert à rien - $ct_idToSend = substr($ct_id, 0, -1); - } else { - //On donne un id qui n'existe pas pour éviter une erreur dans la requête SQL - $ct_idToSend = -1; - } - //error_log(print_r($aCtResult[$i]["ct_id"], true)); - $aSQLParams = array( - 'schema_extraction' => array('value' => $this->aProperties['schema_extraction'], 'type' => 'schema_name'), - 'aCtId' => array('value' => $ct_idToSend, 'type' => 'group'), - ); - $oPDOresult = $this->oConnection->oBd->executeWithParams($sSql, $aSQLParams); - if (!$this->oConnection->oBd->enErreur()) { - $aRtLayer = $this->oConnection->oBd->getResultTableAssoc($oPDOresult); - $aLayers = array(); - if (!empty($aRtLayer)) { - foreach ($aRtLayer as $aLayer) { - - $aLayers[$aLayer['category']][] = array("text" => $aLayer['layer'], "value" => $aLayer['layer_id'], "mutualized" => $aLayer['mutualized'], "statistique" => $aLayer['statistique']); - - } - } - $this->aFields['layers'] = $aLayers; - $aXmlRacineAttribute['status'] = 1; - $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], true, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); - } else { - $aXmlRacineAttribute['status'] = 0; - $this->aFields['error'] = "Request error."; - $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], true, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); - } - } else { - $aXmlRacineAttribute['status'] = 0; - $this->aFields['error'] = "Request error."; - $sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], true, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']); - } - //error_log(print_r($sMessage, true)); - return $sMessage; - } - - /** - * Transition Method trNouveau - */ - public function trNouveau() - { - $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']); - - // Check si la table existe si oui change l'état - $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "Nouveau"); - - } - - /** - * Transition Method trGenerer - */ - public function trGenerer() - { - $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']); - // Check si la table existe si oui change l'état - $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "AE Généré"); - - } - - /** - * Transition Method trResoumettre - */ - public function trResoumettre() - { - $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']); - - // Check si la table existe si oui change l'état - $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "AE Généré"); - //$this->sendmail(9904); - $this->sendmail(171); - } - - /** - * Transition Method trSoumettre - */ - public function trSoumettre() - { - $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']); - - // Check si la table existe si oui change l'état - $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "AE Soumis"); - //$this->oBO->sendmail(39); - $this->oBO->sendmail(174); - } - - /** - * Transition Method trDemander - */ - public function trDemander() - { - $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']); - $this->oBO->insertOrder('832HZ8J2PTCSG', 'bo_id=' . $this->aValues['bo_id']); - // Check si la table existe si oui change l'état - $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "AE Demandé"); - - } - - /** - * Transition Method trReception - */ - public function trReception() - { - $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']); - - // Check si la table existe si oui change l'état - $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "Dépôt terminé"); - - } - - /** - * Transition Method trDeposer - */ - public function trDeposer() - { - $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']); - // Check si la table existe si oui change l'état - $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "Fichier déposé"); - - } - - /** - * Transition Method trAutoriser - */ - public function trAutoriser() - { - $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']); - $this->oBO->insertOrder('8BCP8WGIOW4KO', 'bo_id=' . $this->aValues['bo_id']); - // Check si la table existe si oui change l'état - $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "Autorisée"); - - } - - /** - * Transition Method trAccepter - */ - public function trAccepter() - { - $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']); - // Check si la table existe si oui change l'état - $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "Fichier accepté"); - - //$this->oBO->sendmail(id_du_mail_pour_dire_que_le_fichier_est_accepté); - $this->trReception(); - - } - - /** - * Transition Method trInvalider - */ - public function trInvalider() - { - $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']); - - // Check si la table existe si oui change l'état - $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "Fichier invalidé"); - $this->oBO->sendmail(1057); - $this->trRetour(); - - } - - /** - * Transition Method trRetour - */ - public function trRetour() - { - $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']); - - // Check si la table existe si oui change l'état - $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "Extraction terminée"); - - } - - /** - * Transition Method trTerminerExtraction - */ - public function trTerminerExtraction() - { - $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']); - // Check si la table existe si oui change l'état - $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "Extraction terminée"); - - } - - /** - * Transition Method trRefuser - */ - public function trRefuser() - { - $this->oBO = new WabBusinessObject($this->oConnection->oBd, array(), $this->aValues, $this->aProperties, 'extraction', $this->aValues['bo_id']); - - // Check si la table existe si oui change l'état - $this->oBO->wabSetStatus($this->aProperties["schema_extraction"], "extraction", "bo_id", $this->aValues["bo_id"], "Refusée"); -//$this->sendmail(9902); - $this->oBO->sendmail(175); - } - -} diff --git a/src/module_extraction/web_service/ws/Format.class.inc b/src/module_extraction/web_service/ws/Format.class.inc deleted file mode 100755 index 6c9d733b..00000000 --- a/src/module_extraction/web_service/ws/Format.class.inc +++ /dev/null @@ -1,91 +0,0 @@ -<?php - -require_once __DIR__ . '/ExtractionExtraction.class.inc'; -require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc'; - -/** - * \file Format.class.inc - * \class Format - * - * \author WAB <support.wab@veremes.com>. - * - * \brief This file contains the Format php class - * - * This class defines operation for one Format - * - */ -class Format extends ExtractionExtraction { - - public $oError; - - /** - * construct - * @param type $aPath url of the request - * @param type $aValues parameters of the request - * @param type $properties properties - * @param type $bShortcut false to reinit variables - * @param type $oConnection connection object - */ - function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false){ - parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection); - } - -/** - * @SWG\Get(path="/formats/{id_format}", - * tags={"Formats"}, - * summary="Get Format", - * description="Request to get Format by id", - * operationId="GET", - * produces={"application/xml", "application/json"}, - * @SWG\Parameter( - * name="token", - * in="query", - * description="user token", - * required=true, - * type="string" - * ), - * @SWG\Parameter( - * name="id_format", - * in="path", - * description="id_format", - * required=true, - * type="integer", - * format="int32" - * ), - * @SWG\Parameter( - * name="attributs", - * in="query", - * description="list of attributs", - * required=false, - * type="string" - * ), - * @SWG\Response( - * response=200, - * description="Format Response", - * @SWG\Schema(ref="#/definitions/formats") - * ) - * ) - */ - - /** - * get informations about mode - */ - function GET() { - $this->aFields = $this->getFields($this->aProperties['schema_extraction'], "rt_format", "format_id"); - } - -/** - * delete a Point_situation - */ - function DELETE() { - $this->oConnection->oBd->delete($this->aProperties['schema_extraction'], 'rt_format', 'format_id', $this->aValues["my_vitis_id"], 'integer'); - if ($this->oConnection->oBd->enErreur()) { - $this->oError = new Error(1, $this->oConnection->oBd->getBDMessage()); - } else { - $this->aFields["format_id"] = $this->aValues["my_vitis_id"]; - } - } - -} - -?> \ No newline at end of file diff --git a/src/module_extraction/web_service/ws/Formats.class.inc b/src/module_extraction/web_service/ws/Formats.class.inc deleted file mode 100755 index 141f0fd4..00000000 --- a/src/module_extraction/web_service/ws/Formats.class.inc +++ /dev/null @@ -1,269 +0,0 @@ -<?php - -/** - * \file Formats.class.inc - * \class Formats - * - * \author WAB <support.wab@veremes.com>. - * - * \brief This file contains the Formats php class - * - * This class defines Rest Api to Vitis Formats - * - */ -require_once __DIR__ . '/ExtractionExtraction.class.inc'; -require_once 'Format.class.inc'; - - -class Formats extends ExtractionExtraction { - /** - * @SWG\Definition( - * definition="/formats", - * allOf={ - * @SWG\Schema(ref="#/definitions/formats") - * } - * ) - * * @SWG\Tag( - * name="Formats", - * description="Operations about Formats" - * ) - */ - - /** - * construct - * @param type $aPath url of the request - * @param type $aValues parameters of the request - * @param type $properties properties - * @param type $bShortcut false to reinit variables - * @param type $oConnection connection object - */ - function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false){ - parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection); - } - -/** - * @SWG\Get(path="/formats", - * tags={"Formats"}, - * summary="Get Formats", - * description="Request to get Formats", - * operationId="GET", - * produces={"application/xml", "application/json", "application/x-vm-json"}, - * @SWG\Parameter( - * name="token", - * in="query", - * description="user token", - * required=true, - * type="string" - * ), - * @SWG\Parameter( - * name="order_by", - * in="query", - * description="list of ordering fields", - * required=false, - * type="string" - * ), - * @SWG\Parameter( - * name="sort_order", - * in="query", - * description="sort_order", - * required=false, - * type="string" - * ), - * @SWG\Parameter( - * name="limit", - * in="query", - * description="number of element", - * required=false, - * type="integer", - * format="int32" - * ), - * @SWG\Parameter( - * name="offset", - * in="query", - * description="index of first element", - * required=false, - * type="string", - * format="int32" - * ), - * @SWG\Parameter( - * name="attributs", - * in="query", - * description="list of attributs", - * required=false, - * type="string" - * ), - * @SWG\Parameter( - * name="filter", - * in="query", - * description="filter results", - * required=false, - * type="string" - * ), - * @SWG\Parameter( - * name="distinct", - * in="query", - * description="delete duplicates", - * required=false, - * type="boolean" - * ), - * @SWG\Response( - * response=200, - * description="format Response", - * @SWG\Schema(ref="#/definitions/formats") - * ) - * ) - */ - - /** - * get Formats - * @return Formats - */ - function GET() { - $aReturn = $this->genericGet($this->aProperties['schema_extraction'], "rt_format", "format_id"); - $sMessage = $aReturn['sMessage']; - return $sMessage; - } - -/** - * @SWG\Post(path="/formats", - * tags={"Formats"}, - * summary="Add format", - * description="Request to add Formats", - * operationId="POST", - * produces={"application/xml", "application/json"}, - * @SWG\Parameter( - * name="token", - * in="query", - * description="user token", - * required=true, - * type="string" - * ), - * @SWG\Response( - * response=200, - * description="format Response", - * @SWG\Schema(ref="#/definitions/formats") - * ) - * ) - */ - - /** - * insert format - * @return id of the format created - */ - function POST() { - $aReturn = $this->genericPost($this->aProperties['schema_extraction'], 'rt_format', '', 'format_id'); - - return $aReturn['sMessage']; - } - -/** - * @SWG\Put(path="/formats/{id_format}", - * tags={"Formats"}, - * summary="update Formats", - * description="Request to update Formats", - * operationId="PUT", - * produces={"application/xml", "application/json"}, - * @SWG\Parameter( - * name="token", - * in="query", - * description="Format token", - * required=true, - * type="string" - * ), - * * @SWG\Parameter( - * name="id_format", - * in="path", - * description="id of the Formats", - * required=true, - * type="integer", - * format = "int32" - * ), - * @SWG\Response( - * response=200, - * description="Poprerties Response", - * @SWG\Schema(ref="#/definitions/formats") - * ) - * ) - */ - - /** - * update formats - * @return id of formats updated or error object if a formats is not updated - */ - function PUT() { - $aReturn = $this->genericPut($this->aProperties['schema_extraction'], 'rt_format', 'format_id'); - - return $aReturn['sMessage']; - } - -/** - * @SWG\Delete(path="/formats", - * tags={"Formats"}, - * summary="delete Formats", - * description="Request to delete Formats", - * operationId="DELETE", - * produces={"application/xml", "application/json"}, - * @SWG\Parameter( - * name="token", - * in="query", - * description="token", - * required=true, - * type="string" - * ), - * * @SWG\Parameter( - * name="idList", - * in="query", - * description="id of the format", - * required=true, - * type="string" - * ), - * @SWG\Response( - * response=200, - * description="format Response", - * @SWG\Schema(ref="#/definitions/formats") - * ) - * ) - */ - /** - * @SWG\Delete(path="/formats/{id_format}", - * tags={"Formats"}, - * summary="delete Formats", - * description="Request to delete Formats", - * operationId="DELETE", - * produces={"application/xml", "application/json"}, - * @SWG\Parameter( - * name="token", - * in="query", - * description="Format token", - * required=true, - * type="string" - * ), - * * @SWG\Parameter( - * name="id_format", - * in="path", - * description="id of the Formats", - * required=true, - * type="integer", - * format = "int32" - * ), - * @SWG\Response( - * response=200, - * description="Poprerties Response", - * @SWG\Schema(ref="#/definitions/formats") - * ) - * ) - */ - - /** - * delete formats - * @return id of formats deleted or error object if a formats is not deleted - */ - function DELETE() { - $aReturn = $this->genericDelete($this->aProperties['schema_extraction'], 'rt_format', 'format_id'); - return $aReturn['sMessage']; - } - - -} - -?> \ No newline at end of file diff --git a/src/module_extraction/web_service/ws/Layer.class.inc b/src/module_extraction/web_service/ws/Layer.class.inc deleted file mode 100755 index af7d4af1..00000000 --- a/src/module_extraction/web_service/ws/Layer.class.inc +++ /dev/null @@ -1,91 +0,0 @@ -<?php - -require_once __DIR__ . '/ExtractionExtraction.class.inc'; -require_once dirname($_SERVER['SCRIPT_FILENAME']) . '/class/vitis_lib/Connection.class.inc'; - -/** - * \file Layer.class.inc - * \class Layer - * - * \author WAB <support.wab@veremes.com>. - * - * \brief This file contains the Layer php class - * - * This class defines operation for one Layer - * - */ -class Layer extends ExtractionExtraction { - - public $oError; - - /** - * construct - * @param type $aPath url of the request - * @param type $aValues parameters of the request - * @param type $properties properties - * @param type $bShortcut false to reinit variables - * @param type $oConnection connection object - */ - function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false){ - parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection); - } - -/** - * @SWG\Get(path="/layers/{id_layer}", - * tags={"Layers"}, - * summary="Get Layer", - * description="Request to get Layer by id", - * operationId="GET", - * produces={"application/xml", "application/json"}, - * @SWG\Parameter( - * name="token", - * in="query", - * description="user token", - * required=true, - * type="string" - * ), - * @SWG\Parameter( - * name="id_layer", - * in="path", - * description="id_layer", - * required=true, - * type="integer", - * format="int32" - * ), - * @SWG\Parameter( - * name="attributs", - * in="query", - * description="list of attributs", - * required=false, - * type="string" - * ), - * @SWG\Response( - * response=200, - * description="Layer Response", - * @SWG\Schema(ref="#/definitions/layers") - * ) - * ) - */ - - /** - * get informations about mode - */ - function GET() { - $this->aFields = $this->getFields($this->aProperties['schema_extraction'], "rt_layer", "layer_id"); - } - -/** - * delete a Point_situation - */ - function DELETE() { - $this->oConnection->oBd->delete($this->aProperties['schema_extraction'], 'rt_layer', 'layer_id', $this->aValues["my_vitis_id"], 'integer'); - if ($this->oConnection->oBd->enErreur()) { - $this->oError = new Error(1, $this->oConnection->oBd->getBDMessage()); - } else { - $this->aFields["layer_id"] = $this->aValues["my_vitis_id"]; - } - } - -} - -?> \ No newline at end of file diff --git a/src/module_extraction/web_service/ws/Layers.class.inc b/src/module_extraction/web_service/ws/Layers.class.inc deleted file mode 100755 index 0cdb17b2..00000000 --- a/src/module_extraction/web_service/ws/Layers.class.inc +++ /dev/null @@ -1,269 +0,0 @@ -<?php - -/** - * \file Layers.class.inc - * \class Layers - * - * \author WAB <support.wab@veremes.com>. - * - * \brief This file contains the Layers php class - * - * This class defines Rest Api to Vitis Layers - * - */ -require_once __DIR__ . '/ExtractionExtraction.class.inc'; -require_once 'Layer.class.inc'; - - -class Layers extends ExtractionExtraction { - /** - * @SWG\Definition( - * definition="/layers", - * allOf={ - * @SWG\Schema(ref="#/definitions/layers") - * } - * ) - * * @SWG\Tag( - * name="Layers", - * description="Operations about Layers" - * ) - */ - - /** - * construct - * @param type $aPath url of the request - * @param type $aValues parameters of the request - * @param type $properties properties - * @param type $bShortcut false to reinit variables - * @param type $oConnection connection object - */ - function __construct($aPath, $aValues, $properties, $bShortcut = false, $oConnection = false){ - parent::__construct($aPath, $aValues, $properties, $bShortcut, $oConnection); - } - -/** - * @SWG\Get(path="/layers", - * tags={"Layers"}, - * summary="Get Layers", - * description="Request to get Layers", - * operationId="GET", - * produces={"application/xml", "application/json", "application/x-vm-json"}, - * @SWG\Parameter( - * name="token", - * in="query", - * description="user token", - * required=true, - * type="string" - * ), - * @SWG\Parameter( - * name="order_by", - * in="query", - * description="list of ordering fields", - * required=false, - * type="string" - * ), - * @SWG\Parameter( - * name="sort_order", - * in="query", - * description="sort_order", - * required=false, - * type="string" - * ), - * @SWG\Parameter( - * name="limit", - * in="query", - * description="number of element", - * required=false, - * type="integer", - * format="int32" - * ), - * @SWG\Parameter( - * name="offset", - * in="query", - * description="index of first element", - * required=false, - * type="string", - * format="int32" - * ), - * @SWG\Parameter( - * name="attributs", - * in="query", - * description="list of attributs", - * required=false, - * type="string" - * ), - * @SWG\Parameter( - * name="filter", - * in="query", - * description="filter results", - * required=false, - * type="string" - * ), - * @SWG\Parameter( - * name="distinct", - * in="query", - * description="delete duplicates", - * required=false, - * type="boolean" - * ), - * @SWG\Response( - * response=200, - * description="layer Response", - * @SWG\Schema(ref="#/definitions/layers") - * ) - * ) - */ - - /** - * get Layers - * @return Layers - */ - function GET() { - $aReturn = $this->genericGet($this->aProperties['schema_extraction'], $this->aValues["table"], $this->aValues["filter"]["column"]); - $sMessage = $aReturn['sMessage']; - return $sMessage; - } - -/** - * @SWG\Post(path="/layers", - * tags={"Layers"}, - * summary="Add layer", - * description="Request to add Layers", - * operationId="POST", - * produces={"application/xml", "application/json"}, - * @SWG\Parameter( - * name="token", - * in="query", - * description="user token", - * required=true, - * type="string" - * ), - * @SWG\Response( - * response=200, - * description="layer Response", - * @SWG\Schema(ref="#/definitions/layers") - * ) - * ) - */ - - /** - * insert layer - * @return id of the layer created - */ - function POST() { - $aReturn = $this->genericPost($this->aProperties['schema_extraction'], 'rt_layer', '', 'layer_id'); - - return $aReturn['sMessage']; - } - -/** - * @SWG\Put(path="/layers/{id_layer}", - * tags={"Layers"}, - * summary="update Layers", - * description="Request to update Layers", - * operationId="PUT", - * produces={"application/xml", "application/json"}, - * @SWG\Parameter( - * name="token", - * in="query", - * description="Layer token", - * required=true, - * type="string" - * ), - * * @SWG\Parameter( - * name="id_layer", - * in="path", - * description="id of the Layers", - * required=true, - * type="integer", - * format = "int32" - * ), - * @SWG\Response( - * response=200, - * description="Poprerties Response", - * @SWG\Schema(ref="#/definitions/layers") - * ) - * ) - */ - - /** - * update layers - * @return id of layers updated or error object if a layers is not updated - */ - function PUT() { - $aReturn = $this->genericPut($this->aProperties['schema_extraction'], 'rt_layer', 'layer_id'); - - return $aReturn['sMessage']; - } - -/** - * @SWG\Delete(path="/layers", - * tags={"Layers"}, - * summary="delete Layers", - * description="Request to delete Layers", - * operationId="DELETE", - * produces={"application/xml", "application/json"}, - * @SWG\Parameter( - * name="token", - * in="query", - * description="token", - * required=true, - * type="string" - * ), - * * @SWG\Parameter( - * name="idList", - * in="query", - * description="id of the layer", - * required=true, - * type="string" - * ), - * @SWG\Response( - * response=200, - * description="layer Response", - * @SWG\Schema(ref="#/definitions/layers") - * ) - * ) - */ - /** - * @SWG\Delete(path="/layers/{id_layer}", - * tags={"Layers"}, - * summary="delete Layers", - * description="Request to delete Layers", - * operationId="DELETE", - * produces={"application/xml", "application/json"}, - * @SWG\Parameter( - * name="token", - * in="query", - * description="Layer token", - * required=true, - * type="string" - * ), - * * @SWG\Parameter( - * name="id_layer", - * in="path", - * description="id of the Layers", - * required=true, - * type="integer", - * format = "int32" - * ), - * @SWG\Response( - * response=200, - * description="Poprerties Response", - * @SWG\Schema(ref="#/definitions/layers") - * ) - * ) - */ - - /** - * delete layers - * @return id of layers deleted or error object if a layers is not deleted - */ - function DELETE() { - $aReturn = $this->genericDelete($this->aProperties['schema_extraction'], 'rt_layer', 'layer_id'); - return $aReturn['sMessage']; - } - - -} - -?> \ No newline at end of file diff --git a/src/module_extraction/web_service/ws/overview.phtml b/src/module_extraction/web_service/ws/overview.phtml deleted file mode 100755 index 27e165d3..00000000 --- a/src/module_extraction/web_service/ws/overview.phtml +++ /dev/null @@ -1,24 +0,0 @@ -<?php -/** - * @SWG\Swagger( - * basePath="/[service_alias]/extraction", - * host="[server]", - * schemes={"[protocol]"}, - * produces={ - * "application/json", - "application/xml", - "text/html" - * }, - * @SWG\Info( - * version="1.0.0", - * title="Extraction Test Rest", - * description="All fetaures to access server operation for extraction", - * ) - * ) - */ -?> - -<h1 class="titleOverview">Service Extraction</h1> -<p> - <a class="linkOverview" href="javascript:sService='extraction';LoadApi()">Extraction</a>: this is the most comprehensive service which should be used as a preference when developing applications communicating with Extraction. Those services allow you to administrate Extraction applications. -</p> \ No newline at end of file diff --git a/src/vitis/.gitignore b/src/vitis/.gitignore deleted file mode 100644 index e69de29b..00000000 diff --git a/src/vitis/README.md b/src/vitis/README.md deleted file mode 100644 index 73a21c98..00000000 --- a/src/vitis/README.md +++ /dev/null @@ -1 +0,0 @@ -Vitis framework \ No newline at end of file diff --git a/src/vitis/_install/client/fileToDelete.txt b/src/vitis/_install/client/fileToDelete.txt deleted file mode 100644 index ca3a9114..00000000 --- a/src/vitis/_install/client/fileToDelete.txt +++ /dev/null @@ -1,4 +0,0 @@ -javascript/externs/formreader/formreader.js -javascript/externs/formreader/formreaderCtrl.js -javascript/externs/formreader/formreaderDrtv.js -javascript/externs/formreader/formreaderSrvc.js \ No newline at end of file diff --git a/src/vitis/_install/client/folderToDelete.txt b/src/vitis/_install/client/folderToDelete.txt deleted file mode 100644 index a0e7984d..00000000 --- a/src/vitis/_install/client/folderToDelete.txt +++ /dev/null @@ -1,8 +0,0 @@ -javascript/app -javascript/require -javascript/test -javascript/externs/openLayers/ol -javascript/externs/openLayers/ol.ext -javascript/externs/studio/properties -javascript/externs/studio/javascript -modules/vitis/javascript \ No newline at end of file diff --git a/src/vitis/_install/client/listModuleApache.txt b/src/vitis/_install/client/listModuleApache.txt deleted file mode 100644 index 2c0309e3..00000000 --- a/src/vitis/_install/client/listModuleApache.txt +++ /dev/null @@ -1,5 +0,0 @@ -alias -deflate -headers -rewrite -ssl \ No newline at end of file diff --git a/src/vitis/_install/vas/apache.conf b/src/vitis/_install/vas/apache.conf deleted file mode 100644 index 2281b2e2..00000000 --- a/src/vitis/_install/vas/apache.conf +++ /dev/null @@ -1,70 +0,0 @@ -PassEnv TEMP -Alias /rest[ENV] "[VASDIRECTORY]/rest" - <Directory "[VASDIRECTORY]/rest"> - <FilesMatch ".+\.ph(p[345]?|t|tml)$"> - SetHandler application/x-httpd-php_vitis[ENV] - </FilesMatch> - AllowOverride FileInfo - Options FollowSymLinks - Require all granted - <Files ~ "\.(map|log|inc|php)$"> - Order allow,deny - Deny from all - </Files> - </Directory> - -Alias /doc[ENV] "[VASDIRECTORY]/doc" - <Directory "[VASDIRECTORY]/doc"> - <FilesMatch ".+\.ph(p[345]?|t|tml)$"> - SetHandler application/x-httpd-php_vitis[ENV] - </FilesMatch> - AllowOverride FileInfo - Options FollowSymLinks - Require all granted - </Directory> - -Alias /public[ENV] "[VASDIRECTORY]/public" - <Directory "[VASDIRECTORY]/public"> - AllowOverride FileInfo - Options FollowSymLinks - Require all granted - <Files ~ "\.(map|inc|php)$"> - Order allow,deny - Deny from all - </Files> - SetHandler application/x-download - </Directory> -Alias /ws_data[ENV] "[VASDIRECTORY]/ws_data" - <Directory "[VASDIRECTORY]/ws_data"> - AllowOverride All - Options FollowSymLinks - Require all granted - <Files ~ "\.(map|log|inc|php)$"> - Order allow,deny - Deny from all - </Files> - SetHandler application/x-download - </Directory> -Alias /proxy[ENV] "[VASDIRECTORY]/util/proxy" - <Directory "[VASDIRECTORY]/util/proxy"> - <FilesMatch ".+\.ph(p[345]?|t|tml)$"> - SetHandler application/x-httpd-php_vitis[ENV] - </FilesMatch> - AllowOverride FileInfo - Options FollowSymLinks - Require all granted - <Files ~ "\.(map|log|inc)$"> - Order allow,deny - Deny from all - </Files> - </Directory> -Alias /printserver[ENV] "[VASDIRECTORY]/util/printserver" - <Directory "[VASDIRECTORY]/util/printserver"> - AllowOverride FileInfo - Options FollowSymLinks - Require all granted - <Files ~ "\.(map|log|inc|php)$"> - Order allow,deny - Deny from all - </Files> - </Directory> \ No newline at end of file diff --git a/src/vitis/_install/vas/listModuleApache.txt b/src/vitis/_install/vas/listModuleApache.txt deleted file mode 100644 index c2626d94..00000000 --- a/src/vitis/_install/vas/listModuleApache.txt +++ /dev/null @@ -1,16 +0,0 @@ -actions -alias -cgi -deflate -headers -ldap -rewrite -ssl -proxy -proxy_ajp -proxy_connect -proxy_fcgi -proxy_ftp -proxy_http -proxy_scgi -proxy_wstunnel \ No newline at end of file diff --git a/src/vitis/vas/rest/class/.htaccess b/src/vitis/vas/rest/class/.htaccess deleted file mode 100755 index 3418e55a..00000000 --- a/src/vitis/vas/rest/class/.htaccess +++ /dev/null @@ -1 +0,0 @@ -deny from all \ No newline at end of file diff --git a/src/vitis/vas/rest/class/Ldap.class.inc b/src/vitis/vas/rest/class/Ldap.class.inc deleted file mode 100755 index a9c691ea..00000000 --- a/src/vitis/vas/rest/class/Ldap.class.inc +++ /dev/null @@ -1,347 +0,0 @@ -<?php - header('Content-Type: text/html; charset=UTF-8;'); - // require_once("../properties.inc"); - require_once(__DIR__.'/vmlib/phpUtil.inc'); - require_once(__DIR__.'/vmlib/logUtil.inc'); - require_once(__DIR__.'/vmlib/cryptUtil.inc'); -class Ldap { - - // Tableau des informations de l'AD - public $aLdap = array(); - public $userprincipalname = ''; - private $sDcLdap = ''; - - public function __construct($sLdap) { - $this->aLdap = unserialize($sLdap); - $aTmp = explode('.',$this->aLdap['sLdapName']); - foreach($aTmp as $sDomain){ - if($this->sDcLdap=="") - $this->sDcLdap .= "dc=".$sDomain; - else - $this->sDcLdap .= ",dc=".$sDomain; - } - - if($this->aLdap['sType'] == 'AD') - $this->userprincipalname = 'userprincipalname'; - else - $this->userprincipalname = 'uid'; - } - - /* - * Permet la connexion au serveur AD - */ - public function connectLdap(){ - $sLdapConn = ldap_connect($this->aLdap['sServer'], $this->aLdap['sPort']) or die(writeToErrorLog("Could not connect to LDAP server.")); - if ($sLdapConn) { // Si la connexion s'est bien déroulée - ldap_set_option($sLdapConn, LDAP_OPT_PROTOCOL_VERSION, 3); - ldap_set_option($sLdapConn, LDAP_OPT_REFERRALS, 0); - //Authentification - $sPwdLdap =utf8_encode(trim(des (rtrim(utf8_decode($this->aLdap['sLoginLdap'])), hexToString(rtrim($this->aLdap['sPwdLdap'])), 0, 0, null))); - $sLoginLdap = mb_strtolower($this->aLdap['sLoginLdap'], 'UTF-8'); - $sLoginLdap = str_replace(array('à', 'â', 'ä', 'á', 'ã', 'å','î', 'ï', 'ì', 'í', 'ô', 'ö', 'ò', 'ó', 'õ', 'ø', 'ù', 'û', 'ü', 'ú', 'é', 'è', 'ê', 'ë', 'ç', 'ÿ', 'ñ'), array('a', 'a', 'a', 'a', 'a', 'a', 'i', 'i', 'i', 'i', 'o', 'o', 'o', 'o', 'o', 'o', 'u', 'u', 'u', 'u', 'e', 'e', 'e', 'e', 'c', 'y', 'n', ), $sLoginLdap); - $sLdapBind = ldap_bind($sLdapConn,$sLoginLdap,$sPwdLdap); - return $sLdapConn; - } - return "Could not connect to LDAP server."; - } - - /* - * Permet la déconnexion au serveur AD - */ - public function closeLdap($sLdapConn) { - ldap_close($sLdapConn); - } - /** - * Retourne la liste des OU du noeud - */ - - public function getOU($sLdapConn, $sDn) { - $sFilter = "(|(objectclass=organizationalUnit)(objectClass=container))"; - $aOUList = array(); - - if($sDn == null){ - if($this->aLdap['sDnResearch'] == 'null'){ - $sDn = $this->sDcLdap; - }else{ - $sDn = $this->aLdap['sDnResearch'].",".$this->sDcLdap; - $aOUList[] = $sDn; - return $aOUList; - } - } - $oSearch= ldap_list($sLdapConn, $sDn, $sFilter); - $aInfo = ldap_get_entries($sLdapConn, $oSearch); - $i=0; - for ($i=0;$i<$aInfo['count'];$i++) { - $aOUList[] = $aInfo[$i]['dn']; - } - natcasesort($aOUList); - - return $aOUList; - } - - /** - * Retourne la liste des utilisateurs du noeud - */ - public function getUsers($sLdapConn, $sDn) { - $sFilter = "objectclass=person"; - $aUserList = array(); - $oSearch= ldap_list($sLdapConn, $sDn, $sFilter); - $aInfo = ldap_get_entries($sLdapConn, $oSearch); - $i=0; - for ($i=0;$i<$aInfo['count'];$i++) { - //company et department non tester sur openldap car pas de données pour ses attibuts - if($aInfo[$i][$this->userprincipalname][0]!='') { - $aUser = array('userprincipalname'=>'', 'displayname'=>'', 'email'=>'', 'company'=>'', 'department'=>''); - if (!empty($aInfo[$i][$this->userprincipalname])) - $aUser['userprincipalname'] = $aInfo[$i][$this->userprincipalname][0]; - if (!empty($aInfo[$i]['cn'])) - $aUser['displayname'] = $aInfo[$i]['cn'][0]; - if (!empty($aInfo[$i]['mail'])) - $aUser['email'] = $aInfo[$i]['mail'][0]; - if (!empty($aInfo[$i]['company'])) - $aUser['company'] = $aInfo[$i]['company'][0]; - if (!empty($aInfo[$i]['department'])) - $aUser['department'] = $aInfo[$i]['department'][0]; - $aUserList[] = $aUser; - } - } - - if(count($aUserList)>1){ - // Permet de trier le tableau par rapport à "displayname" (insensible à la casse) - foreach ($aUserList as $key => $row) - $displayname[$key] = strtolower($row['displayname']); - array_multisort($displayname, $aUserList); - } - - return $aUserList; - } - function explode_dn($dn, $with_attributes=0) { - $result = ldap_explode_dn($dn, $with_attributes); - //translate hex code into ascii again - foreach($result as $key => $value) $result[$key] = preg_replace("/\\\([0-9A-Fa-f]{2})/e", "''.chr(hexdec('\\1')).''", $value); - return $result; - } - - public function getCriteria($sLdapConn, $sDn, $sFilter, $sObject) { - $aUserList = array(); - $oSearch= ldap_search($sLdapConn, $sDn, $sFilter); - $aInfo = ldap_get_entries($sLdapConn, $oSearch); - $i=0; - for ($i=0;$i<$aInfo['count'];$i++) { - if ($sObject == "person"){ - if(!empty($aInfo[$i][$this->userprincipalname][0]) && $aInfo[$i][$this->userprincipalname][0] != '') { - $aUser = array('userprincipalname'=>'', 'displayname'=>'', 'email'=>'', 'company'=>'', 'department'=>''); - if (!empty($aInfo[$i][$this->userprincipalname])) - $aUser['userprincipalname'] = $aInfo[$i][$this->userprincipalname][0]; - if (!empty($aInfo[$i]['cn'])) - $aUser['displayname'] = $aInfo[$i]['cn'][0]; - if (!empty($aInfo[$i]['mail'])) - $aUser['email'] = $aInfo[$i]['mail'][0]; - if (!empty($aInfo[$i]['company'])) - $aUser['company'] = $aInfo[$i]['company'][0]; - if (!empty($aInfo[$i]['department'])) - $aUser['department'] = $aInfo[$i]['department'][0]; - $aUserList[] = $aUser; - } - }else{ - $aUserList[] = array('name'=>$aInfo[$i]['name'][0]); - } - } - - if(count($aUserList)>1){ - if ($sObject == "person"){ - // Permet de trier le tableau par rapport à "displayname" (insensible à la casse) - foreach ($aUserList as $key => $row) - $displayname[$key] = strtolower($row['displayname']); - array_multisort($displayname, $aUserList); - }else{ - // Permet de trier le tableau par rapport à "name" (insensible à la casse) - foreach ($aUserList as $key => $row) - if (!empty($row['cn'])) - $name[$key] = strtolower($row['cn']); - if (!empty($name)) - array_multisort($name, $aUserList); - } - } - - return $aUserList; - } - - function get_members($sLdapConn, $sDn, $group, $sLogin, $sDepartment) { - $results = ldap_search($sLdapConn,$sDn, "cn=" . $group); - $member_list = ldap_get_entries($sLdapConn, $results); - $dirty = 0; - $aUserList = array(); - if(count($member_list[0]['member'])>0){ - foreach($member_list[0]['member'] as $member) { - if($dirty == 0) { - $dirty = 1; - } else { - $member_dn = $this->explode_dn($member); - $member_cn = str_ireplace("cn=","",$member_dn[0]); - $member_search = ldap_search($sLdapConn,$sDn, "(cn=" . $member_cn . ")"); - $member_details = ldap_get_entries($sLdapConn, $member_search); - $bGet = true; - if ($sLogin != ""){ - if (!($this->startsWith($member_details[0][$this->userprincipalname][0],$sLogin))){ - $bGet = false; - } - } - if ($sDepartment != ""){ - if (!($this->startsWith($member_details[0]['department'][0],$sDepartment))){ - $bGet = false; - } - } - if ($bGet){ - $aUserList[] = array('userprincipalname'=>$member_details[0][$this->userprincipalname][0], 'displayname'=>$member_details[0]['cn'][0], 'email'=>$member_details[0]['mail'][0], 'company'=>$member_details[0]['company'][0], 'department'=>$member_details[0]['department'][0]); - } - } - } - } - return $aUserList; - } - - function startsWith($haystack, $needle) { - return $needle === "" || strpos($haystack, $needle) === 0; - } - - public function getGroups($sLdapConn, $sDn) { - $sFilter = "(&(|(objectClass=groupOfNames)(objectClass=groupOfUniqueNames)(objectClass=group))(!(objectClass=person)))"; - $aGroupList = array(); - $oSearch= ldap_list($sLdapConn, $sDn, $sFilter); - $aInfo = ldap_get_entries($sLdapConn, $oSearch); - $i=0; - for ($i=0;$i<$aInfo['count'];$i++) { - if($aInfo[$i]['cn'][0]!='') - $aGroupList[] = array('name'=>$aInfo[$i]['cn'][0]); - } - - if(count($aGroupList)>1){ - // Permet de trier le tableau par rapport à "name" (insensible à la casse) - foreach ($aGroupList as $key => $row) - if (!empty($row['cn'])) - $name[$key] = strtolower($row['cn']); - if (!empty($name)) - array_multisort($name, $aGroupList); - } - - return $aGroupList; - } - - public function getGroupInfo($sLdapConn, $sDn, $group) { - $sFilter = '(&(objectClass=group)(name='.$group.'))'; - //Recherche de la personne dans l'AD - $oSearch = ldap_search($sLdapConn, $sDn, $sFilter); - $aInfo = ldap_first_entry($sLdapConn, $oSearch); - $objectSid = ldap_get_values($sLdapConn,$aInfo,"objectSid"); - $hex_Sid= $this->getTextSID($objectSid[0]); - //Récupération des autres groupes de l'utilisateur - $aPrimaryGroupId = explode('-',$hex_Sid); - $iPrimaryGroupId = $aPrimaryGroupId[count($aPrimaryGroupId) - 1]; - return $iPrimaryGroupId; - } - - /* - * Retourne les groupes de l'utilisateur - */ - function getGroup($sLdapConn, $userprincipalname){ - if($this->aLdap['sType'] == 'AD') - $sFilter = "userprincipalname=".$userprincipalname; - else - $sFilter = "(&(|(objectClass=groupOfNames)(objectClass=groupOfUniqueNames))(member=".$sDn."))"; - - $aGroupList = array(); - //Recherche de la personne dans l'AD - if($this->aLdap['sDnResearch'] == '') - $sDn = $this->sDcLdap; - else - $sDn = $this->aLdap['sDnResearch'].",".$this->sDcLdap; - - $oSearch = ldap_search($sLdapConn, $sDn, $sFilter); - $aInfo = ldap_get_entries($sLdapConn, $oSearch); - if($this->aLdap['sType'] == 'AD'){ - //Récupération de son groupe principal - $aGroupList[] = $this->getPrimaryGroup($sLdapConn,$aInfo[0]["primarygroupid"][0], $aInfo[0]["objectsid"][0]); - //Récupération des autres groupes de l'utilisateur - if(!empty($aInfo[0]["memberof"])){ - foreach ($aInfo[0]["memberof"] as $sGroup){ - $sGroup = explode(',',$sGroup); - $aGroupList[] = substr($sGroup[0],3); - } - } - }else{ - foreach ($aInfo as $aGroupInfo){ - $aGroupList[] = $aGroupInfo["cn"][0]; - } - } - natcasesort($aGroupList); - return $aGroupList; - } - - /* - * Retourne le DN d'une personne à partir de son uid - */ - function getDN($sLdapConn, $sUid){ - $sFilter = $this->userprincipalname."=".$sUid; - $sDn = "dc=cpa,dc=fr"; - $oSearch = ldap_search($sLdapConn, $sDn, $sFilter); - $aInfo = ldap_get_entries($sLdapConn, $oSearch); - return $aInfo[0]["dn"]; - } - - /* - * Retourne le groupe principal de l'utilisateur - */ - function getPrimaryGroup($sLdapConn, $iGid, $sUsersId){ - if ($iGid === NULL || $sUsersId === NULL) { return false; } - $oSearch = false; - //Plusieurs calculs pour retrouver les sid du groupe principal - $sGsid = substr_replace($sUsersId, pack('V',$iGid), strlen($sUsersId)-4,4); - - $sFilter = '(&(objectClass=group)(objectsid='.$this->getTextSID($sGsid).'))'; - - // Recherche sur le serveur du SID du groupe - // if($this->aLdap['sDnResearch'] == ''){ - $sDn = $this->sDcLdap; - // } - // else{ - // $sDn = $this->aLdap['sDnResearch'].",".$this->sDcLdap; - // } - - $oSearch= ldap_search($sLdapConn, $sDn, $sFilter); - $aInfo = ldap_get_entries($sLdapConn, $oSearch); - if (isset($aInfo[0]['name'][0])) { - return $aInfo[0]['name'][0]; - } - return false; - } - - /* - * Les 2 fonctions suivantes servent à calculer le SID du groupe principal - */ - function getTextSID($binsid){ - $hex_sid = bin2hex($binsid); - $rev = hexdec(substr($hex_sid, 0, 2)); - $subcount = hexdec(substr($hex_sid, 2, 2)); - $auth = hexdec(substr($hex_sid, 4, 12)); - $result = "$rev-$auth"; - for ($x=0;$x < $subcount; $x++) { - $subauth[$x] = hexdec($this->littleEndian(substr($hex_sid, 16 + ($x * 8), 8))); - $result .= "-" . $subauth[$x]; - } - return 'S-' . $result; - } - function littleEndian($hex){ - $result = ''; - for ($x = strlen($hex) - 2; $x >= 0; $x = $x - 2) { - $result .= substr($hex, $x, 2); - } - return $result; - } - - function getDcLdap(){ - return $this->sDcLdap; - } - -} -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/Autoloader.php b/src/vitis/vas/rest/class/PEAR/Autoloader.php deleted file mode 100755 index 07c4de10..00000000 --- a/src/vitis/vas/rest/class/PEAR/Autoloader.php +++ /dev/null @@ -1,223 +0,0 @@ -<?php -/** - * Class auto-loader - * - * PHP versions 4 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Stig Bakken <ssb@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Autoloader.php,v 1.14 2008/01/03 20:26:34 cellog Exp $ - * @link http://pear.php.net/manual/en/core.ppm.php#core.ppm.pear-autoloader - * @since File available since Release 0.1 - * @deprecated File deprecated in Release 1.4.0a1 - */ - -// /* vim: set expandtab tabstop=4 shiftwidth=4: */ - -if (!extension_loaded("overload")) { - // die hard without ext/overload - die("Rebuild PHP with the `overload' extension to use PEAR_Autoloader"); -} - -/** - * Include for PEAR_Error and PEAR classes - */ -require_once "PEAR.php"; - -/** - * This class is for objects where you want to separate the code for - * some methods into separate classes. This is useful if you have a - * class with not-frequently-used methods that contain lots of code - * that you would like to avoid always parsing. - * - * The PEAR_Autoloader class provides autoloading and aggregation. - * The autoloading lets you set up in which classes the separated - * methods are found. Aggregation is the technique used to import new - * methods, an instance of each class providing separated methods is - * stored and called every time the aggregated method is called. - * - * @category pear - * @package PEAR - * @author Stig Bakken <ssb@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/manual/en/core.ppm.php#core.ppm.pear-autoloader - * @since File available since Release 0.1 - * @deprecated File deprecated in Release 1.4.0a1 - */ -class PEAR_Autoloader extends PEAR -{ - // {{{ properties - - /** - * Map of methods and classes where they are defined - * - * @var array - * - * @access private - */ - var $_autoload_map = array(); - - /** - * Map of methods and aggregate objects - * - * @var array - * - * @access private - */ - var $_method_map = array(); - - // }}} - // {{{ addAutoload() - - /** - * Add one or more autoload entries. - * - * @param string $method which method to autoload - * - * @param string $classname (optional) which class to find the method in. - * If the $method parameter is an array, this - * parameter may be omitted (and will be ignored - * if not), and the $method parameter will be - * treated as an associative array with method - * names as keys and class names as values. - * - * @return void - * - * @access public - */ - function addAutoload($method, $classname = null) - { - if (is_array($method)) { - array_walk($method, create_function('$a,&$b', '$b = strtolower($b);')); - $this->_autoload_map = array_merge($this->_autoload_map, $method); - } else { - $this->_autoload_map[strtolower($method)] = $classname; - } - } - - // }}} - // {{{ removeAutoload() - - /** - * Remove an autoload entry. - * - * @param string $method which method to remove the autoload entry for - * - * @return bool TRUE if an entry was removed, FALSE if not - * - * @access public - */ - function removeAutoload($method) - { - $method = strtolower($method); - $ok = isset($this->_autoload_map[$method]); - unset($this->_autoload_map[$method]); - return $ok; - } - - // }}} - // {{{ addAggregateObject() - - /** - * Add an aggregate object to this object. If the specified class - * is not defined, loading it will be attempted following PEAR's - * file naming scheme. All the methods in the class will be - * aggregated, except private ones (name starting with an - * underscore) and constructors. - * - * @param string $classname what class to instantiate for the object. - * - * @return void - * - * @access public - */ - function addAggregateObject($classname) - { - $classname = strtolower($classname); - if (!class_exists($classname)) { - $include_file = preg_replace('/[^a-z0-9]/i', '_', $classname); - include_once $include_file; - } - $obj =& new $classname; - $methods = get_class_methods($classname); - foreach ($methods as $method) { - // don't import priviate methods and constructors - if ($method{0} != '_' && $method != $classname) { - $this->_method_map[$method] = $obj; - } - } - } - - // }}} - // {{{ removeAggregateObject() - - /** - * Remove an aggregate object. - * - * @param string $classname the class of the object to remove - * - * @return bool TRUE if an object was removed, FALSE if not - * - * @access public - */ - function removeAggregateObject($classname) - { - $ok = false; - $classname = strtolower($classname); - reset($this->_method_map); - while (list($method, $obj) = each($this->_method_map)) { - if (is_a($obj, $classname)) { - unset($this->_method_map[$method]); - $ok = true; - } - } - return $ok; - } - - // }}} - // {{{ __call() - - /** - * Overloaded object call handler, called each time an - * undefined/aggregated method is invoked. This method repeats - * the call in the right aggregate object and passes on the return - * value. - * - * @param string $method which method that was called - * - * @param string $args An array of the parameters passed in the - * original call - * - * @return mixed The return value from the aggregated method, or a PEAR - * error if the called method was unknown. - */ - function __call($method, $args, &$retval) - { - $method = strtolower($method); - if (empty($this->_method_map[$method]) && isset($this->_autoload_map[$method])) { - $this->addAggregateObject($this->_autoload_map[$method]); - } - if (isset($this->_method_map[$method])) { - $retval = call_user_func_array(array($this->_method_map[$method], $method), $args); - return true; - } - return false; - } - - // }}} -} - -overload("PEAR_Autoloader"); - -?> diff --git a/src/vitis/vas/rest/class/PEAR/Builder.php b/src/vitis/vas/rest/class/PEAR/Builder.php deleted file mode 100755 index f7986c00..00000000 --- a/src/vitis/vas/rest/class/PEAR/Builder.php +++ /dev/null @@ -1,486 +0,0 @@ -<?php -/** - * PEAR_Builder for building PHP extensions (PECL packages) - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Stig Bakken <ssb@php.net> - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Builder.php,v 1.34 2008/05/12 23:43:21 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 0.1 - * - * TODO: log output parameters in PECL command line - * TODO: msdev path in configuration - */ - -/** - * Needed for extending PEAR_Builder - */ -require_once 'PEAR/Common.php'; -require_once 'PEAR/PackageFile.php'; -/** - * Class to handle building (compiling) extensions. - * - * @category pear - * @package PEAR - * @author Stig Bakken <ssb@php.net> - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since PHP 4.0.2 - * @see http://pear.php.net/manual/en/core.ppm.pear-builder.php - */ -class PEAR_Builder extends PEAR_Common -{ - // {{{ properties - - var $php_api_version = 0; - var $zend_module_api_no = 0; - var $zend_extension_api_no = 0; - - var $extensions_built = array(); - - /** - * @var string Used for reporting when it is not possible to pass function - * via extra parameter, e.g. log, msdevCallback - */ - var $current_callback = null; - - // used for msdev builds - var $_lastline = null; - var $_firstline = null; - // }}} - // {{{ constructor - - /** - * PEAR_Builder constructor. - * - * @param object $ui user interface object (instance of PEAR_Frontend_*) - * - * @access public - */ - function PEAR_Builder(&$ui) - { - parent::PEAR_Common(); - $this->setFrontendObject($ui); - } - - // }}} - - // {{{ _build_win32() - - /** - * Build an extension from source on windows. - * requires msdev - */ - function _build_win32($descfile, $callback = null) - { - if (is_object($descfile)) { - $pkg = $descfile; - $descfile = $pkg->getPackageFile(); - } else { - $pf = &new PEAR_PackageFile($this->config, $this->debug); - $pkg = &$pf->fromPackageFile($descfile, PEAR_VALIDATE_NORMAL); - if (PEAR::isError($pkg)) { - return $pkg; - } - } - $dir = dirname($descfile); - $old_cwd = getcwd(); - - if (!file_exists($dir) || !is_dir($dir) || !chdir($dir)) { - return $this->raiseError("could not chdir to $dir"); - } - // packages that were in a .tar have the packagefile in this directory - $vdir = $pkg->getPackage() . '-' . $pkg->getVersion(); - if (file_exists($dir) && is_dir($vdir)) { - if (chdir($vdir)) { - $dir = getcwd(); - } else { - return $this->raiseError("could not chdir to " . realpath($vdir)); - } - } - - $this->log(2, "building in $dir"); - - $dsp = $pkg->getPackage().'.dsp'; - if (!file_exists("$dir/$dsp")) { - return $this->raiseError("The DSP $dsp does not exist."); - } - // XXX TODO: make release build type configurable - $command = 'msdev '.$dsp.' /MAKE "'.$pkg->getPackage(). ' - Release"'; - - $err = $this->_runCommand($command, array(&$this, 'msdevCallback')); - if (PEAR::isError($err)) { - return $err; - } - - // figure out the build platform and type - $platform = 'Win32'; - $buildtype = 'Release'; - if (preg_match('/.*?'.$pkg->getPackage().'\s-\s(\w+)\s(.*?)-+/i',$this->_firstline,$matches)) { - $platform = $matches[1]; - $buildtype = $matches[2]; - } - - if (preg_match('/(.*)?\s-\s(\d+).*?(\d+)/',$this->_lastline,$matches)) { - if ($matches[2]) { - // there were errors in the build - return $this->raiseError("There were errors during compilation."); - } - $out = $matches[1]; - } else { - return $this->raiseError("Did not understand the completion status returned from msdev.exe."); - } - - // msdev doesn't tell us the output directory :/ - // open the dsp, find /out and use that directory - $dsptext = join(file($dsp),''); - - // this regex depends on the build platform and type having been - // correctly identified above. - $regex ='/.*?!IF\s+"\$\(CFG\)"\s+==\s+("'. - $pkg->getPackage().'\s-\s'. - $platform.'\s'. - $buildtype.'").*?'. - '\/out:"(.*?)"/is'; - - if ($dsptext && preg_match($regex,$dsptext,$matches)) { - // what we get back is a relative path to the output file itself. - $outfile = realpath($matches[2]); - } else { - return $this->raiseError("Could not retrieve output information from $dsp."); - } - // realpath returns false if the file doesn't exist - if ($outfile && copy($outfile, "$dir/$out")) { - $outfile = "$dir/$out"; - } - - $built_files[] = array( - 'file' => "$outfile", - 'php_api' => $this->php_api_version, - 'zend_mod_api' => $this->zend_module_api_no, - 'zend_ext_api' => $this->zend_extension_api_no, - ); - - return $built_files; - } - // }}} - - // {{{ msdevCallback() - function msdevCallback($what, $data) - { - if (!$this->_firstline) - $this->_firstline = $data; - $this->_lastline = $data; - call_user_func($this->current_callback, $what, $data); - } - // }}} - - // {{{ _harventInstDir - /** - * @param string - * @param string - * @param array - * @access private - */ - function _harvestInstDir($dest_prefix, $dirname, &$built_files) - { - $d = opendir($dirname); - if (!$d) - return false; - - $ret = true; - while (($ent = readdir($d)) !== false) { - if ($ent{0} == '.') - continue; - - $full = $dirname . DIRECTORY_SEPARATOR . $ent; - if (is_dir($full)) { - if (!$this->_harvestInstDir( - $dest_prefix . DIRECTORY_SEPARATOR . $ent, - $full, $built_files)) { - $ret = false; - break; - } - } else { - $dest = $dest_prefix . DIRECTORY_SEPARATOR . $ent; - $built_files[] = array( - 'file' => $full, - 'dest' => $dest, - 'php_api' => $this->php_api_version, - 'zend_mod_api' => $this->zend_module_api_no, - 'zend_ext_api' => $this->zend_extension_api_no, - ); - } - } - closedir($d); - return $ret; - } - - // }}} - - // {{{ build() - - /** - * Build an extension from source. Runs "phpize" in the source - * directory, but compiles in a temporary directory - * (/var/tmp/pear-build-USER/PACKAGE-VERSION). - * - * @param string|PEAR_PackageFile_v* $descfile path to XML package description file, or - * a PEAR_PackageFile object - * - * @param mixed $callback callback function used to report output, - * see PEAR_Builder::_runCommand for details - * - * @return array an array of associative arrays with built files, - * format: - * array( array( 'file' => '/path/to/ext.so', - * 'php_api' => YYYYMMDD, - * 'zend_mod_api' => YYYYMMDD, - * 'zend_ext_api' => YYYYMMDD ), - * ... ) - * - * @access public - * - * @see PEAR_Builder::_runCommand - */ - function build($descfile, $callback = null) - { - $this->current_callback = $callback; - if (PEAR_OS == "Windows") { - return $this->_build_win32($descfile,$callback); - } - if (PEAR_OS != 'Unix') { - return $this->raiseError("building extensions not supported on this platform"); - } - if (is_object($descfile)) { - $pkg = $descfile; - $descfile = $pkg->getPackageFile(); - if (is_a($pkg, 'PEAR_PackageFile_v1')) { - $dir = dirname($descfile); - } else { - $dir = $pkg->_config->get('temp_dir') . '/' . $pkg->getName(); - // automatically delete at session end - $this->addTempFile($dir); - } - } else { - $pf = &new PEAR_PackageFile($this->config); - $pkg = &$pf->fromPackageFile($descfile, PEAR_VALIDATE_NORMAL); - if (PEAR::isError($pkg)) { - return $pkg; - } - $dir = dirname($descfile); - } - $old_cwd = getcwd(); - if (!file_exists($dir) || !is_dir($dir) || !chdir($dir)) { - return $this->raiseError("could not chdir to $dir"); - } - $vdir = $pkg->getPackage() . '-' . $pkg->getVersion(); - if (is_dir($vdir)) { - chdir($vdir); - } - $dir = getcwd(); - $this->log(2, "building in $dir"); - putenv('PATH=' . $this->config->get('bin_dir') . ':' . getenv('PATH')); - $err = $this->_runCommand("phpize", array(&$this, 'phpizeCallback')); - if (PEAR::isError($err)) { - return $err; - } - if (!$err) { - return $this->raiseError("`phpize' failed"); - } - - // {{{ start of interactive part - $configure_command = "$dir/configure"; - $configure_options = $pkg->getConfigureOptions(); - if ($configure_options) { - foreach ($configure_options as $o) { - $default = array_key_exists('default', $o) ? $o['default'] : null; - list($r) = $this->ui->userDialog('build', - array($o['prompt']), - array('text'), - array($default)); - if (substr($o['name'], 0, 5) == 'with-' && - ($r == 'yes' || $r == 'autodetect')) { - $configure_command .= " --$o[name]"; - } else { - $configure_command .= " --$o[name]=".trim($r); - } - } - } - // }}} end of interactive part - - // FIXME make configurable - if(!$user=getenv('USER')){ - $user='defaultuser'; - } - $build_basedir = "/var/tmp/pear-build-$user"; - $build_dir = "$build_basedir/$vdir"; - $inst_dir = "$build_basedir/install-$vdir"; - $this->log(1, "building in $build_dir"); - if (is_dir($build_dir)) { - System::rm(array('-rf', $build_dir)); - } - if (!System::mkDir(array('-p', $build_dir))) { - return $this->raiseError("could not create build dir: $build_dir"); - } - $this->addTempFile($build_dir); - if (!System::mkDir(array('-p', $inst_dir))) { - return $this->raiseError("could not create temporary install dir: $inst_dir"); - } - $this->addTempFile($inst_dir); - - if (getenv('MAKE')) { - $make_command = getenv('MAKE'); - } else { - $make_command = 'make'; - } - $to_run = array( - $configure_command, - $make_command, - "$make_command INSTALL_ROOT=\"$inst_dir\" install", - "find \"$inst_dir\" | xargs ls -dils" - ); - if (!file_exists($build_dir) || !is_dir($build_dir) || !chdir($build_dir)) { - return $this->raiseError("could not chdir to $build_dir"); - } - putenv('PHP_PEAR_VERSION=1.7.2'); - foreach ($to_run as $cmd) { - $err = $this->_runCommand($cmd, $callback); - if (PEAR::isError($err)) { - chdir($old_cwd); - return $err; - } - if (!$err) { - chdir($old_cwd); - return $this->raiseError("`$cmd' failed"); - } - } - if (!($dp = opendir("modules"))) { - chdir($old_cwd); - return $this->raiseError("no `modules' directory found"); - } - $built_files = array(); - $prefix = exec("php-config --prefix"); - $this->_harvestInstDir($prefix, $inst_dir . DIRECTORY_SEPARATOR . $prefix, $built_files); - chdir($old_cwd); - return $built_files; - } - - // }}} - // {{{ phpizeCallback() - - /** - * Message callback function used when running the "phpize" - * program. Extracts the API numbers used. Ignores other message - * types than "cmdoutput". - * - * @param string $what the type of message - * @param mixed $data the message - * - * @return void - * - * @access public - */ - function phpizeCallback($what, $data) - { - if ($what != 'cmdoutput') { - return; - } - $this->log(1, rtrim($data)); - if (preg_match('/You should update your .aclocal.m4/', $data)) { - return; - } - $matches = array(); - if (preg_match('/^\s+(\S[^:]+):\s+(\d{8})/', $data, $matches)) { - $member = preg_replace('/[^a-z]/', '_', strtolower($matches[1])); - $apino = (int)$matches[2]; - if (isset($this->$member)) { - $this->$member = $apino; - //$msg = sprintf("%-22s : %d", $matches[1], $apino); - //$this->log(1, $msg); - } - } - } - - // }}} - // {{{ _runCommand() - - /** - * Run an external command, using a message callback to report - * output. The command will be run through popen and output is - * reported for every line with a "cmdoutput" message with the - * line string, including newlines, as payload. - * - * @param string $command the command to run - * - * @param mixed $callback (optional) function to use as message - * callback - * - * @return bool whether the command was successful (exit code 0 - * means success, any other means failure) - * - * @access private - */ - function _runCommand($command, $callback = null) - { - $this->log(1, "running: $command"); - $pp = popen("$command 2>&1", "r"); - if (!$pp) { - return $this->raiseError("failed to run `$command'"); - } - if ($callback && $callback[0]->debug == 1) { - $olddbg = $callback[0]->debug; - $callback[0]->debug = 2; - } - - while ($line = fgets($pp, 1024)) { - if ($callback) { - call_user_func($callback, 'cmdoutput', $line); - } else { - $this->log(2, rtrim($line)); - } - } - if ($callback && isset($olddbg)) { - $callback[0]->debug = $olddbg; - } - if (is_resource($pp)) { - $exitcode = pclose($pp); - } else { - $exitcode = -1; - } - return ($exitcode == 0); - } - - // }}} - // {{{ log() - - function log($level, $msg) - { - if ($this->current_callback) { - if ($this->debug >= $level) { - call_user_func($this->current_callback, 'output', $msg); - } - return; - } - return PEAR_Common::log($level, $msg); - } - - // }}} -} - -?> diff --git a/src/vitis/vas/rest/class/PEAR/ChannelFile.php b/src/vitis/vas/rest/class/PEAR/ChannelFile.php deleted file mode 100755 index 46dd691b..00000000 --- a/src/vitis/vas/rest/class/PEAR/ChannelFile.php +++ /dev/null @@ -1,1615 +0,0 @@ -<?php -/** - * PEAR_ChannelFile, the channel handling class - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: ChannelFile.php,v 1.80 2008/01/03 20:26:34 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 1.4.0a1 - */ - -/** - * Needed for error handling - */ -require_once 'PEAR/ErrorStack.php'; -require_once 'PEAR/XMLParser.php'; -require_once 'PEAR/Common.php'; - -/** - * Error code if the channel.xml <channel> tag does not contain a valid version - */ -define('PEAR_CHANNELFILE_ERROR_NO_VERSION', 1); -/** - * Error code if the channel.xml <channel> tag version is not supported (version 1.0 is the only supported version, - * currently - */ -define('PEAR_CHANNELFILE_ERROR_INVALID_VERSION', 2); - -/** - * Error code if parsing is attempted with no xml extension - */ -define('PEAR_CHANNELFILE_ERROR_NO_XML_EXT', 3); - -/** - * Error code if creating the xml parser resource fails - */ -define('PEAR_CHANNELFILE_ERROR_CANT_MAKE_PARSER', 4); - -/** - * Error code used for all sax xml parsing errors - */ -define('PEAR_CHANNELFILE_ERROR_PARSER_ERROR', 5); - -/**#@+ - * Validation errors - */ -/** - * Error code when channel name is missing - */ -define('PEAR_CHANNELFILE_ERROR_NO_NAME', 6); -/** - * Error code when channel name is invalid - */ -define('PEAR_CHANNELFILE_ERROR_INVALID_NAME', 7); -/** - * Error code when channel summary is missing - */ -define('PEAR_CHANNELFILE_ERROR_NO_SUMMARY', 8); -/** - * Error code when channel summary is multi-line - */ -define('PEAR_CHANNELFILE_ERROR_MULTILINE_SUMMARY', 9); -/** - * Error code when channel server is missing for xmlrpc or soap protocol - */ -define('PEAR_CHANNELFILE_ERROR_NO_HOST', 10); -/** - * Error code when channel server is invalid for xmlrpc or soap protocol - */ -define('PEAR_CHANNELFILE_ERROR_INVALID_HOST', 11); -/** - * Error code when a mirror name is invalid - */ -define('PEAR_CHANNELFILE_ERROR_INVALID_MIRROR', 21); -/** - * Error code when a mirror type is invalid - */ -define('PEAR_CHANNELFILE_ERROR_INVALID_MIRRORTYPE', 22); -/** - * Error code when an attempt is made to generate xml, but the parsed content is invalid - */ -define('PEAR_CHANNELFILE_ERROR_INVALID', 23); -/** - * Error code when an empty package name validate regex is passed in - */ -define('PEAR_CHANNELFILE_ERROR_EMPTY_REGEX', 24); -/** - * Error code when a <function> tag has no version - */ -define('PEAR_CHANNELFILE_ERROR_NO_FUNCTIONVERSION', 25); -/** - * Error code when a <function> tag has no name - */ -define('PEAR_CHANNELFILE_ERROR_NO_FUNCTIONNAME', 26); -/** - * Error code when a <validatepackage> tag has no name - */ -define('PEAR_CHANNELFILE_ERROR_NOVALIDATE_NAME', 27); -/** - * Error code when a <validatepackage> tag has no version attribute - */ -define('PEAR_CHANNELFILE_ERROR_NOVALIDATE_VERSION', 28); -/** - * Error code when a mirror does not exist but is called for in one of the set* - * methods. - */ -define('PEAR_CHANNELFILE_ERROR_MIRROR_NOT_FOUND', 32); -/** - * Error code when a server port is not numeric - */ -define('PEAR_CHANNELFILE_ERROR_INVALID_PORT', 33); -/** - * Error code when <static> contains no version attribute - */ -define('PEAR_CHANNELFILE_ERROR_NO_STATICVERSION', 34); -/** - * Error code when <baseurl> contains no type attribute in a <rest> protocol definition - */ -define('PEAR_CHANNELFILE_ERROR_NOBASEURLTYPE', 35); -/** - * Error code when a mirror is defined and the channel.xml represents the __uri pseudo-channel - */ -define('PEAR_CHANNELFILE_URI_CANT_MIRROR', 36); -/** - * Error code when ssl attribute is present and is not "yes" - */ -define('PEAR_CHANNELFILE_ERROR_INVALID_SSL', 37); -/**#@-*/ - -/** - * Mirror types allowed. Currently only internet servers are recognized. - */ -$GLOBALS['_PEAR_CHANNELS_MIRROR_TYPES'] = array('server'); - - -/** - * The Channel handling class - * - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 1.4.0a1 - */ -class PEAR_ChannelFile { - /** - * @access private - * @var PEAR_ErrorStack - * @access private - */ - var $_stack; - - /** - * Supported channel.xml versions, for parsing - * @var array - * @access private - */ - var $_supportedVersions = array('1.0'); - - /** - * Parsed channel information - * @var array - * @access private - */ - var $_channelInfo; - - /** - * index into the subchannels array, used for parsing xml - * @var int - * @access private - */ - var $_subchannelIndex; - - /** - * index into the mirrors array, used for parsing xml - * @var int - * @access private - */ - var $_mirrorIndex; - - /** - * Flag used to determine the validity of parsed content - * @var boolean - * @access private - */ - var $_isValid = false; - - function PEAR_ChannelFile() - { - $this->_stack = &new PEAR_ErrorStack('PEAR_ChannelFile'); - $this->_stack->setErrorMessageTemplate($this->_getErrorMessage()); - $this->_isValid = false; - } - - /** - * @return array - * @access protected - */ - function _getErrorMessage() - { - return - array( - PEAR_CHANNELFILE_ERROR_INVALID_VERSION => - 'While parsing channel.xml, an invalid version number "%version% was passed in, expecting one of %versions%', - PEAR_CHANNELFILE_ERROR_NO_VERSION => - 'No version number found in <channel> tag', - PEAR_CHANNELFILE_ERROR_NO_XML_EXT => - '%error%', - PEAR_CHANNELFILE_ERROR_CANT_MAKE_PARSER => - 'Unable to create XML parser', - PEAR_CHANNELFILE_ERROR_PARSER_ERROR => - '%error%', - PEAR_CHANNELFILE_ERROR_NO_NAME => - 'Missing channel name', - PEAR_CHANNELFILE_ERROR_INVALID_NAME => - 'Invalid channel %tag% "%name%"', - PEAR_CHANNELFILE_ERROR_NO_SUMMARY => - 'Missing channel summary', - PEAR_CHANNELFILE_ERROR_MULTILINE_SUMMARY => - 'Channel summary should be on one line, but is multi-line', - PEAR_CHANNELFILE_ERROR_NO_HOST => - 'Missing channel server for %type% server', - PEAR_CHANNELFILE_ERROR_INVALID_HOST => - 'Server name "%server%" is invalid for %type% server', - PEAR_CHANNELFILE_ERROR_INVALID_MIRROR => - 'Invalid mirror name "%name%", mirror type %type%', - PEAR_CHANNELFILE_ERROR_INVALID_MIRRORTYPE => - 'Invalid mirror type "%type%"', - PEAR_CHANNELFILE_ERROR_INVALID => - 'Cannot generate xml, contents are invalid', - PEAR_CHANNELFILE_ERROR_EMPTY_REGEX => - 'packagenameregex cannot be empty', - PEAR_CHANNELFILE_ERROR_NO_FUNCTIONVERSION => - '%parent% %protocol% function has no version', - PEAR_CHANNELFILE_ERROR_NO_FUNCTIONNAME => - '%parent% %protocol% function has no name', - PEAR_CHANNELFILE_ERROR_NOBASEURLTYPE => - '%parent% rest baseurl has no type', - PEAR_CHANNELFILE_ERROR_NOVALIDATE_NAME => - 'Validation package has no name in <validatepackage> tag', - PEAR_CHANNELFILE_ERROR_NOVALIDATE_VERSION => - 'Validation package "%package%" has no version', - PEAR_CHANNELFILE_ERROR_MIRROR_NOT_FOUND => - 'Mirror "%mirror%" does not exist', - PEAR_CHANNELFILE_ERROR_INVALID_PORT => - 'Port "%port%" must be numeric', - PEAR_CHANNELFILE_ERROR_NO_STATICVERSION => - '<static> tag must contain version attribute', - PEAR_CHANNELFILE_URI_CANT_MIRROR => - 'The __uri pseudo-channel cannot have mirrors', - PEAR_CHANNELFILE_ERROR_INVALID_SSL => - '%server% has invalid ssl attribute "%ssl%" can only be yes or not present', - ); - } - - /** - * @param string contents of package.xml file - * @return bool success of parsing - */ - function fromXmlString($data) - { - if (preg_match('/<channel\s+version="([0-9]+\.[0-9]+)"/', $data, $channelversion)) { - if (!in_array($channelversion[1], $this->_supportedVersions)) { - $this->_stack->push(PEAR_CHANNELFILE_ERROR_INVALID_VERSION, 'error', - array('version' => $channelversion[1])); - return false; - } - $parser = new PEAR_XMLParser; - $result = $parser->parse($data); - if ($result !== true) { - if ($result->getCode() == 1) { - $this->_stack->push(PEAR_CHANNELFILE_ERROR_NO_XML_EXT, 'error', - array('error' => $result->getMessage())); - } else { - $this->_stack->push(PEAR_CHANNELFILE_ERROR_CANT_MAKE_PARSER, 'error'); - } - return false; - } - $this->_channelInfo = $parser->getData(); - return true; - } else { - $this->_stack->push(PEAR_CHANNELFILE_ERROR_NO_VERSION, 'error', array('xml' => $data)); - return false; - } - } - - /** - * @return array - */ - function toArray() - { - if (!$this->_isValid && !$this->validate()) { - return false; - } - return $this->_channelInfo; - } - - /** - * @param array - * @static - * @return PEAR_ChannelFile|false false if invalid - */ - function &fromArray($data, $compatibility = false, $stackClass = 'PEAR_ErrorStack') - { - $a = new PEAR_ChannelFile($compatibility, $stackClass); - $a->_fromArray($data); - if (!$a->validate()) { - $a = false; - return $a; - } - return $a; - } - - /** - * Unlike {@link fromArray()} this does not do any validation - * @param array - * @static - * @return PEAR_ChannelFile - */ - function &fromArrayWithErrors($data, $compatibility = false, - $stackClass = 'PEAR_ErrorStack') - { - $a = new PEAR_ChannelFile($compatibility, $stackClass); - $a->_fromArray($data); - return $a; - } - - /** - * @param array - * @access private - */ - function _fromArray($data) - { - $this->_channelInfo = $data; - } - - /** - * Wrapper to {@link PEAR_ErrorStack::getErrors()} - * @param boolean determines whether to purge the error stack after retrieving - * @return array - */ - function getErrors($purge = false) - { - return $this->_stack->getErrors($purge); - } - - /** - * Unindent given string (?) - * - * @param string $str The string that has to be unindented. - * @return string - * @access private - */ - function _unIndent($str) - { - // remove leading newlines - $str = preg_replace('/^[\r\n]+/', '', $str); - // find whitespace at the beginning of the first line - $indent_len = strspn($str, " \t"); - $indent = substr($str, 0, $indent_len); - $data = ''; - // remove the same amount of whitespace from following lines - foreach (explode("\n", $str) as $line) { - if (substr($line, 0, $indent_len) == $indent) { - $data .= substr($line, $indent_len) . "\n"; - } - } - return $data; - } - - /** - * Parse a channel.xml file. Expects the name of - * a channel xml file as input. - * - * @param string $descfile name of channel xml file - * @return bool success of parsing - */ - function fromXmlFile($descfile) - { - if (!file_exists($descfile) || !is_file($descfile) || !is_readable($descfile) || - (!$fp = fopen($descfile, 'r'))) { - require_once 'PEAR.php'; - return PEAR::raiseError("Unable to open $descfile"); - } - - // read the whole thing so we only get one cdata callback - // for each block of cdata - fclose($fp); - $data = file_get_contents($descfile); - return $this->fromXmlString($data); - } - - /** - * Parse channel information from different sources - * - * This method is able to extract information about a channel - * from an .xml file or a string - * - * @access public - * @param string Filename of the source or the source itself - * @return bool - */ - function fromAny($info) - { - if (is_string($info) && file_exists($info) && strlen($info) < 255) { - $tmp = substr($info, -4); - if ($tmp == '.xml') { - $info = $this->fromXmlFile($info); - } else { - $fp = fopen($info, "r"); - $test = fread($fp, 5); - fclose($fp); - if ($test == "<?xml") { - $info = $this->fromXmlFile($info); - } - } - if (PEAR::isError($info)) { - require_once 'PEAR.php'; - return PEAR::raiseError($info); - } - } - if (is_string($info)) { - $info = $this->fromXmlString($info); - } - return $info; - } - - /** - * Return an XML document based on previous parsing and modifications - * - * @return string XML data - * - * @access public - */ - function toXml() - { - if (!$this->_isValid && !$this->validate()) { - $this->_validateError(PEAR_CHANNELFILE_ERROR_INVALID); - return false; - } - if (!isset($this->_channelInfo['attribs']['version'])) { - $this->_channelInfo['attribs']['version'] = '1.0'; - } - $channelInfo = $this->_channelInfo; - $ret = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\n"; - $ret .= "<channel version=\"" . - $channelInfo['attribs']['version'] . "\" xmlns=\"http://pear.php.net/channel-1.0\" - xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" - xsi:schemaLocation=\"http://pear.php.net/dtd/channel-" - . $channelInfo['attribs']['version'] . " http://pear.php.net/dtd/channel-" . - $channelInfo['attribs']['version'] . ".xsd\"> - <name>$channelInfo[name]</name> - <summary>" . htmlspecialchars($channelInfo['summary'])."</summary> -"; - if (isset($channelInfo['suggestedalias'])) { - $ret .= ' <suggestedalias>' . $channelInfo['suggestedalias'] . "</suggestedalias>\n"; - } - if (isset($channelInfo['validatepackage'])) { - $ret .= ' <validatepackage version="' . - $channelInfo['validatepackage']['attribs']['version']. '">' . - htmlspecialchars($channelInfo['validatepackage']['_content']) . - "</validatepackage>\n"; - } - $ret .= " <servers>\n"; - $ret .= ' <primary'; - if (isset($channelInfo['servers']['primary']['attribs']['ssl'])) { - $ret .= ' ssl="' . $channelInfo['servers']['primary']['attribs']['ssl'] . '"'; - } - if (isset($channelInfo['servers']['primary']['attribs']['port'])) { - $ret .= ' port="' . $channelInfo['servers']['primary']['attribs']['port'] . '"'; - } - $ret .= ">\n"; - if (isset($channelInfo['servers']['primary']['xmlrpc'])) { - $ret .= $this->_makeXmlrpcXml($channelInfo['servers']['primary']['xmlrpc'], ' '); - } - if (isset($channelInfo['servers']['primary']['rest'])) { - $ret .= $this->_makeRestXml($channelInfo['servers']['primary']['rest'], ' '); - } - if (isset($channelInfo['servers']['primary']['soap'])) { - $ret .= $this->_makeSoapXml($channelInfo['servers']['primary']['soap'], ' '); - } - $ret .= " </primary>\n"; - if (isset($channelInfo['servers']['mirror'])) { - $ret .= $this->_makeMirrorsXml($channelInfo); - } - $ret .= " </servers>\n"; - $ret .= "</channel>"; - return str_replace("\r", "\n", str_replace("\r\n", "\n", $ret)); - } - - /** - * Generate the <xmlrpc> tag - * @access private - */ - function _makeXmlrpcXml($info, $indent) - { - $ret = $indent . "<xmlrpc"; - if (isset($info['attribs']['path'])) { - $ret .= ' path="' . htmlspecialchars($info['attribs']['path']) . '"'; - } - $ret .= ">\n"; - $ret .= $this->_makeFunctionsXml($info['function'], "$indent "); - $ret .= $indent . "</xmlrpc>\n"; - return $ret; - } - - /** - * Generate the <soap> tag - * @access private - */ - function _makeSoapXml($info, $indent) - { - $ret = $indent . "<soap"; - if (isset($info['attribs']['path'])) { - $ret .= ' path="' . htmlspecialchars($info['attribs']['path']) . '"'; - } - $ret .= ">\n"; - $ret .= $this->_makeFunctionsXml($info['function'], "$indent "); - $ret .= $indent . "</soap>\n"; - return $ret; - } - - /** - * Generate the <rest> tag - * @access private - */ - function _makeRestXml($info, $indent) - { - $ret = $indent . "<rest>\n"; - if (!isset($info['baseurl'][0])) { - $info['baseurl'] = array($info['baseurl']); - } - foreach ($info['baseurl'] as $url) { - $ret .= "$indent <baseurl type=\"" . $url['attribs']['type'] . "\""; - $ret .= ">" . $url['_content'] . "</baseurl>\n"; - } - $ret .= $indent . "</rest>\n"; - return $ret; - } - - /** - * Generate the <mirrors> tag - * @access private - */ - function _makeMirrorsXml($channelInfo) - { - $ret = ""; - if (!isset($channelInfo['servers']['mirror'][0])) { - $channelInfo['servers']['mirror'] = array($channelInfo['servers']['mirror']); - } - foreach ($channelInfo['servers']['mirror'] as $mirror) { - $ret .= ' <mirror host="' . $mirror['attribs']['host'] . '"'; - if (isset($mirror['attribs']['port'])) { - $ret .= ' port="' . $mirror['attribs']['port'] . '"'; - } - if (isset($mirror['attribs']['ssl'])) { - $ret .= ' ssl="' . $mirror['attribs']['ssl'] . '"'; - } - $ret .= ">\n"; - if (isset($mirror['xmlrpc']) || isset($mirror['soap'])) { - if (isset($mirror['xmlrpc'])) { - $ret .= $this->_makeXmlrpcXml($mirror['xmlrpc'], ' '); - } - if (isset($mirror['rest'])) { - $ret .= $this->_makeRestXml($mirror['rest'], ' '); - } - if (isset($mirror['soap'])) { - $ret .= $this->_makeSoapXml($mirror['soap'], ' '); - } - $ret .= " </mirror>\n"; - } else { - $ret .= "/>\n"; - } - } - return $ret; - } - - /** - * Generate the <functions> tag - * @access private - */ - function _makeFunctionsXml($functions, $indent, $rest = false) - { - $ret = ''; - if (!isset($functions[0])) { - $functions = array($functions); - } - foreach ($functions as $function) { - $ret .= "$indent<function version=\"" . $function['attribs']['version'] . "\""; - if ($rest) { - $ret .= ' uri="' . $function['attribs']['uri'] . '"'; - } - $ret .= ">" . $function['_content'] . "</function>\n"; - } - return $ret; - } - - /** - * Validation error. Also marks the object contents as invalid - * @param error code - * @param array error information - * @access private - */ - function _validateError($code, $params = array()) - { - $this->_stack->push($code, 'error', $params); - $this->_isValid = false; - } - - /** - * Validation warning. Does not mark the object contents invalid. - * @param error code - * @param array error information - * @access private - */ - function _validateWarning($code, $params = array()) - { - $this->_stack->push($code, 'warning', $params); - } - - /** - * Validate parsed file. - * - * @access public - * @return boolean - */ - function validate() - { - $this->_isValid = true; - $info = $this->_channelInfo; - if (empty($info['name'])) { - $this->_validateError(PEAR_CHANNELFILE_ERROR_NO_NAME); - } elseif (!$this->validChannelServer($info['name'])) { - if ($info['name'] != '__uri') { - $this->_validateError(PEAR_CHANNELFILE_ERROR_INVALID_NAME, array('tag' => 'name', - 'name' => $info['name'])); - } - } - if (empty($info['summary'])) { - $this->_validateError(PEAR_CHANNELFILE_ERROR_NO_SUMMARY); - } elseif (strpos(trim($info['summary']), "\n") !== false) { - $this->_validateWarning(PEAR_CHANNELFILE_ERROR_MULTILINE_SUMMARY, - array('summary' => $info['summary'])); - } - if (isset($info['suggestedalias'])) { - if (!$this->validChannelServer($info['suggestedalias'])) { - $this->_validateError(PEAR_CHANNELFILE_ERROR_INVALID_NAME, - array('tag' => 'suggestedalias', 'name' =>$info['suggestedalias'])); - } - } - if (isset($info['localalias'])) { - if (!$this->validChannelServer($info['localalias'])) { - $this->_validateError(PEAR_CHANNELFILE_ERROR_INVALID_NAME, - array('tag' => 'localalias', 'name' =>$info['localalias'])); - } - } - if (isset($info['validatepackage'])) { - if (!isset($info['validatepackage']['_content'])) { - $this->_validateError(PEAR_CHANNELFILE_ERROR_NOVALIDATE_NAME); - } - if (!isset($info['validatepackage']['attribs']['version'])) { - $content = isset($info['validatepackage']['_content']) ? - $info['validatepackage']['_content'] : - null; - $this->_validateError(PEAR_CHANNELFILE_ERROR_NOVALIDATE_VERSION, - array('package' => $content)); - } - } - if (isset($info['servers']['primary']['attribs']['port']) && - !is_numeric($info['servers']['primary']['attribs']['port'])) { - $this->_validateError(PEAR_CHANNELFILE_ERROR_INVALID_PORT, - array('port' => $info['servers']['primary']['attribs']['port'])); - } - if (isset($info['servers']['primary']['attribs']['ssl']) && - $info['servers']['primary']['attribs']['ssl'] != 'yes') { - $this->_validateError(PEAR_CHANNELFILE_ERROR_INVALID_SSL, - array('ssl' => $info['servers']['primary']['attribs']['ssl'], - 'server' => $info['name'])); - } - - if (isset($info['servers']['primary']['xmlrpc']) && - isset($info['servers']['primary']['xmlrpc']['function'])) { - $this->_validateFunctions('xmlrpc', $info['servers']['primary']['xmlrpc']['function']); - } - if (isset($info['servers']['primary']['soap']) && - isset($info['servers']['primary']['soap']['function'])) { - $this->_validateFunctions('soap', $info['servers']['primary']['soap']['function']); - } - if (isset($info['servers']['primary']['rest']) && - isset($info['servers']['primary']['rest']['baseurl'])) { - $this->_validateFunctions('rest', $info['servers']['primary']['rest']['baseurl']); - } - if (isset($info['servers']['mirror'])) { - if ($this->_channelInfo['name'] == '__uri') { - $this->_validateError(PEAR_CHANNELFILE_URI_CANT_MIRROR); - } - if (!isset($info['servers']['mirror'][0])) { - $info['servers']['mirror'] = array($info['servers']['mirror']); - } - foreach ($info['servers']['mirror'] as $mirror) { - if (!isset($mirror['attribs']['host'])) { - $this->_validateError(PEAR_CHANNELFILE_ERROR_NO_HOST, - array('type' => 'mirror')); - } elseif (!$this->validChannelServer($mirror['attribs']['host'])) { - $this->_validateError(PEAR_CHANNELFILE_ERROR_INVALID_HOST, - array('server' => $mirror['attribs']['host'], 'type' => 'mirror')); - } - if (isset($mirror['attribs']['ssl']) && $mirror['attribs']['ssl'] != 'yes') { - $this->_validateError(PEAR_CHANNELFILE_ERROR_INVALID_SSL, - array('ssl' => $info['ssl'], 'server' => $mirror['attribs']['host'])); - } - if (isset($mirror['xmlrpc'])) { - $this->_validateFunctions('xmlrpc', - $mirror['xmlrpc']['function'], $mirror['attribs']['host']); - } - if (isset($mirror['soap'])) { - $this->_validateFunctions('soap', $mirror['soap']['function'], - $mirror['attribs']['host']); - } - if (isset($mirror['rest'])) { - $this->_validateFunctions('rest', $mirror['rest']['baseurl'], - $mirror['attribs']['host']); - } - } - } - return $this->_isValid; - } - - /** - * @param string xmlrpc or soap - protocol name this function applies to - * @param array the functions - * @param string the name of the parent element (mirror name, for instance) - */ - function _validateFunctions($protocol, $functions, $parent = '') - { - if (!isset($functions[0])) { - $functions = array($functions); - } - foreach ($functions as $function) { - if (!isset($function['_content']) || empty($function['_content'])) { - $this->_validateError(PEAR_CHANNELFILE_ERROR_NO_FUNCTIONNAME, - array('parent' => $parent, 'protocol' => $protocol)); - } - if ($protocol == 'rest') { - if (!isset($function['attribs']['type']) || - empty($function['attribs']['type'])) { - $this->_validateError(PEAR_CHANNELFILE_ERROR_NO_BASEURLTYPE, - array('parent' => $parent, 'protocol' => $protocol)); - } - } else { - if (!isset($function['attribs']['version']) || - empty($function['attribs']['version'])) { - $this->_validateError(PEAR_CHANNELFILE_ERROR_NO_FUNCTIONVERSION, - array('parent' => $parent, 'protocol' => $protocol)); - } - } - } - } - - /** - * Test whether a string contains a valid channel server. - * @param string $ver the package version to test - * @return bool - */ - function validChannelServer($server) - { - if ($server == '__uri') { - return true; - } - return (bool) preg_match(PEAR_CHANNELS_SERVER_PREG, $server); - } - - /** - * @return string|false - */ - function getName() - { - if (isset($this->_channelInfo['name'])) { - return $this->_channelInfo['name']; - } else { - return false; - } - } - - /** - * @return string|false - */ - function getServer() - { - if (isset($this->_channelInfo['name'])) { - return $this->_channelInfo['name']; - } else { - return false; - } - } - - /** - * @return int|80 port number to connect to - */ - function getPort($mirror = false) - { - if ($mirror) { - if ($mir = $this->getMirror($mirror)) { - if (isset($mir['attribs']['port'])) { - return $mir['attribs']['port']; - } else { - if ($this->getSSL($mirror)) { - return 443; - } - return 80; - } - } - return false; - } - if (isset($this->_channelInfo['servers']['primary']['attribs']['port'])) { - return $this->_channelInfo['servers']['primary']['attribs']['port']; - } - if ($this->getSSL()) { - return 443; - } - return 80; - } - - /** - * @return bool Determines whether secure sockets layer (SSL) is used to connect to this channel - */ - function getSSL($mirror = false) - { - if ($mirror) { - if ($mir = $this->getMirror($mirror)) { - if (isset($mir['attribs']['ssl'])) { - return true; - } else { - return false; - } - } - return false; - } - if (isset($this->_channelInfo['servers']['primary']['attribs']['ssl'])) { - return true; - } - return false; - } - - /** - * @return string|false - */ - function getSummary() - { - if (isset($this->_channelInfo['summary'])) { - return $this->_channelInfo['summary']; - } else { - return false; - } - } - - /** - * @param string xmlrpc or soap - * @param string|false mirror name or false for primary server - */ - function getPath($protocol, $mirror = false) - { - if (!in_array($protocol, array('xmlrpc', 'soap'))) { - return false; - } - if ($mirror) { - if (!($mir = $this->getMirror($mirror))) { - return false; - } - if (isset($mir[$protocol]['attribs']['path'])) { - return $mir[$protocol]['attribs']['path']; - } else { - return $protocol . '.php'; - } - } elseif (isset($this->_channelInfo['servers']['primary'][$protocol]['attribs']['path'])) { - return $this->_channelInfo['servers']['primary'][$protocol]['attribs']['path']; - } - return $protocol . '.php'; - } - - /** - * @param string protocol type (xmlrpc, soap) - * @param string Mirror name - * @return array|false - */ - function getFunctions($protocol, $mirror = false) - { - if ($this->getName() == '__uri') { - return false; - } - if ($protocol == 'rest') { - $function = 'baseurl'; - } else { - $function = 'function'; - } - if ($mirror) { - if ($mir = $this->getMirror($mirror)) { - if (isset($mir[$protocol][$function])) { - return $mir[$protocol][$function]; - } - } - return false; - } - if (isset($this->_channelInfo['servers']['primary'][$protocol][$function])) { - return $this->_channelInfo['servers']['primary'][$protocol][$function]; - } else { - return false; - } - } - - /** - * @param string Protocol type - * @param string Function name (null to return the - * first protocol of the type requested) - * @param string Mirror name, if any - * @return array - */ - function getFunction($type, $name = null, $mirror = false) - { - $protocols = $this->getFunctions($type, $mirror); - if (!$protocols) { - return false; - } - foreach ($protocols as $protocol) { - if ($name === null) { - return $protocol; - } - if ($protocol['_content'] != $name) { - continue; - } - return $protocol; - } - return false; - } - - /** - * @param string protocol type - * @param string protocol name - * @param string version - * @param string mirror name - * @return boolean - */ - function supports($type, $name = null, $mirror = false, $version = '1.0') - { - $protocols = $this->getFunctions($type, $mirror); - if (!$protocols) { - return false; - } - foreach ($protocols as $protocol) { - if ($protocol['attribs']['version'] != $version) { - continue; - } - if ($name === null) { - return true; - } - if ($protocol['_content'] != $name) { - continue; - } - return true; - } - return false; - } - - /** - * Determines whether a channel supports Representational State Transfer (REST) protocols - * for retrieving channel information - * @param string - * @return bool - */ - function supportsREST($mirror = false) - { - if ($mirror == $this->_channelInfo['name']) { - $mirror = false; - } - if ($mirror) { - if ($mir = $this->getMirror($mirror)) { - return isset($mir['rest']); - } - return false; - } - return isset($this->_channelInfo['servers']['primary']['rest']); - } - - /** - * Get the URL to access a base resource. - * - * Hyperlinks in the returned xml will be used to retrieve the proper information - * needed. This allows extreme extensibility and flexibility in implementation - * @param string Resource Type to retrieve - */ - function getBaseURL($resourceType, $mirror = false) - { - if ($mirror == $this->_channelInfo['name']) { - $mirror = false; - } - if ($mirror) { - if ($mir = $this->getMirror($mirror)) { - $rest = $mir['rest']; - } else { - return false; - } - } else { - $rest = $this->_channelInfo['servers']['primary']['rest']; - } - if (!isset($rest['baseurl'][0])) { - $rest['baseurl'] = array($rest['baseurl']); - } - foreach ($rest['baseurl'] as $baseurl) { - if (strtolower($baseurl['attribs']['type']) == strtolower($resourceType)) { - return $baseurl['_content']; - } - } - return false; - } - - /** - * Since REST does not implement RPC, provide this as a logical wrapper around - * resetFunctions for REST - * @param string|false mirror name, if any - */ - function resetREST($mirror = false) - { - return $this->resetFunctions('rest', $mirror); - } - - /** - * Empty all protocol definitions - * @param string protocol type (xmlrpc, soap) - * @param string|false mirror name, if any - */ - function resetFunctions($type, $mirror = false) - { - if ($mirror) { - if (isset($this->_channelInfo['servers']['mirror'])) { - $mirrors = $this->_channelInfo['servers']['mirror']; - if (!isset($mirrors[0])) { - $mirrors = array($mirrors); - } - foreach ($mirrors as $i => $mir) { - if ($mir['attribs']['host'] == $mirror) { - if (isset($this->_channelInfo['servers']['mirror'][$i][$type])) { - unset($this->_channelInfo['servers']['mirror'][$i][$type]); - } - return true; - } - } - return false; - } else { - return false; - } - } else { - if (isset($this->_channelInfo['servers']['primary'][$type])) { - unset($this->_channelInfo['servers']['primary'][$type]); - } - return true; - } - } - - /** - * Set a channel's protocols to the protocols supported by pearweb - */ - function setDefaultPEARProtocols($version = '1.0', $mirror = false) - { - switch ($version) { - case '1.0' : - $this->resetFunctions('xmlrpc', $mirror); - $this->resetFunctions('soap', $mirror); - $this->resetREST($mirror); - $this->addFunction('xmlrpc', '1.0', 'logintest', $mirror); - $this->addFunction('xmlrpc', '1.0', 'package.listLatestReleases', $mirror); - $this->addFunction('xmlrpc', '1.0', 'package.listAll', $mirror); - $this->addFunction('xmlrpc', '1.0', 'package.info', $mirror); - $this->addFunction('xmlrpc', '1.0', 'package.getDownloadURL', $mirror); - $this->addFunction('xmlrpc', '1.1', 'package.getDownloadURL', $mirror); - $this->addFunction('xmlrpc', '1.0', 'package.getDepDownloadURL', $mirror); - $this->addFunction('xmlrpc', '1.1', 'package.getDepDownloadURL', $mirror); - $this->addFunction('xmlrpc', '1.0', 'package.search', $mirror); - $this->addFunction('xmlrpc', '1.0', 'channel.listAll', $mirror); - return true; - break; - default : - return false; - break; - } - } - - /** - * @return array - */ - function getMirrors() - { - if (isset($this->_channelInfo['servers']['mirror'])) { - $mirrors = $this->_channelInfo['servers']['mirror']; - if (!isset($mirrors[0])) { - $mirrors = array($mirrors); - } - return $mirrors; - } else { - return array(); - } - } - - /** - * Get the unserialized XML representing a mirror - * @return array|false - */ - function getMirror($server) - { - foreach ($this->getMirrors() as $mirror) { - if ($mirror['attribs']['host'] == $server) { - return $mirror; - } - } - return false; - } - - /** - * @param string - * @return string|false - * @error PEAR_CHANNELFILE_ERROR_NO_NAME - * @error PEAR_CHANNELFILE_ERROR_INVALID_NAME - */ - function setName($name) - { - return $this->setServer($name); - } - - /** - * Set the socket number (port) that is used to connect to this channel - * @param integer - * @param string|false name of the mirror server, or false for the primary - */ - function setPort($port, $mirror = false) - { - if ($mirror) { - if (!isset($this->_channelInfo['servers']['mirror'])) { - $this->_validateError(PEAR_CHANNELFILE_ERROR_MIRROR_NOT_FOUND, - array('mirror' => $mirror)); - return false; - } - if (isset($this->_channelInfo['servers']['mirror'][0])) { - foreach ($this->_channelInfo['servers']['mirror'] as $i => $mir) { - if ($mirror == $mir['attribs']['host']) { - $this->_channelInfo['servers']['mirror'][$i]['attribs']['port'] = $port; - return true; - } - } - return false; - } elseif ($this->_channelInfo['servers']['mirror']['attribs']['host'] == $mirror) { - $this->_channelInfo['servers']['mirror']['attribs']['port'] = $port; - $this->_isValid = false; - return true; - } - } - $this->_channelInfo['servers']['primary']['attribs']['port'] = $port; - $this->_isValid = false; - return true; - } - - /** - * Set the socket number (port) that is used to connect to this channel - * @param bool Determines whether to turn on SSL support or turn it off - * @param string|false name of the mirror server, or false for the primary - */ - function setSSL($ssl = true, $mirror = false) - { - if ($mirror) { - if (!isset($this->_channelInfo['servers']['mirror'])) { - $this->_validateError(PEAR_CHANNELFILE_ERROR_MIRROR_NOT_FOUND, - array('mirror' => $mirror)); - return false; - } - if (isset($this->_channelInfo['servers']['mirror'][0])) { - foreach ($this->_channelInfo['servers']['mirror'] as $i => $mir) { - if ($mirror == $mir['attribs']['host']) { - if (!$ssl) { - if (isset($this->_channelInfo['servers']['mirror'][$i] - ['attribs']['ssl'])) { - unset($this->_channelInfo['servers']['mirror'][$i]['attribs']['ssl']); - } - } else { - $this->_channelInfo['servers']['mirror'][$i]['attribs']['ssl'] = 'yes'; - } - return true; - } - } - return false; - } elseif ($this->_channelInfo['servers']['mirror']['attribs']['host'] == $mirror) { - if (!$ssl) { - if (isset($this->_channelInfo['servers']['mirror']['attribs']['ssl'])) { - unset($this->_channelInfo['servers']['mirror']['attribs']['ssl']); - } - } else { - $this->_channelInfo['servers']['mirror']['attribs']['ssl'] = 'yes'; - } - $this->_isValid = false; - return true; - } - } - if ($ssl) { - $this->_channelInfo['servers']['primary']['attribs']['ssl'] = 'yes'; - } else { - if (isset($this->_channelInfo['servers']['primary']['attribs']['ssl'])) { - unset($this->_channelInfo['servers']['primary']['attribs']['ssl']); - } - } - $this->_isValid = false; - return true; - } - - /** - * Set the socket number (port) that is used to connect to this channel - * @param integer - * @param string|false name of the mirror server, or false for the primary - */ - function setPath($protocol, $path, $mirror = false) - { - if (!in_array($protocol, array('xmlrpc', 'soap'))) { - return false; - } - if ($mirror) { - if (!isset($this->_channelInfo['servers']['mirror'])) { - $this->_validateError(PEAR_CHANNELFILE_ERROR_MIRROR_NOT_FOUND, - array('mirror' => $mirror)); - return false; - } - if (isset($this->_channelInfo['servers']['mirror'][0])) { - foreach ($this->_channelInfo['servers']['mirror'] as $i => $mir) { - if ($mirror == $mir['attribs']['host']) { - $this->_channelInfo['servers']['mirror'][$i][$protocol]['attribs']['path'] = - $path; - return true; - } - } - $this->_validateError(PEAR_CHANNELFILE_ERROR_MIRROR_NOT_FOUND, - array('mirror' => $mirror)); - return false; - } elseif ($this->_channelInfo['servers']['mirror']['attribs']['host'] == $mirror) { - $this->_channelInfo['servers']['mirror'][$protocol]['attribs']['path'] = $path; - $this->_isValid = false; - return true; - } - } - $this->_channelInfo['servers']['primary'][$protocol]['attribs']['path'] = $path; - $this->_isValid = false; - return true; - } - - /** - * @param string - * @return string|false - * @error PEAR_CHANNELFILE_ERROR_NO_SERVER - * @error PEAR_CHANNELFILE_ERROR_INVALID_SERVER - */ - function setServer($server, $mirror = false) - { - if (empty($server)) { - $this->_validateError(PEAR_CHANNELFILE_ERROR_NO_SERVER); - return false; - } elseif (!$this->validChannelServer($server)) { - $this->_validateError(PEAR_CHANNELFILE_ERROR_INVALID_NAME, - array('tag' => 'name', 'name' => $server)); - return false; - } - if ($mirror) { - $found = false; - foreach ($this->_channelInfo['servers']['mirror'] as $i => $mir) { - if ($mirror == $mir['attribs']['host']) { - $found = true; - break; - } - } - if (!$found) { - $this->_validateError(PEAR_CHANNELFILE_ERROR_MIRROR_NOT_FOUND, - array('mirror' => $mirror)); - return false; - } - $this->_channelInfo['mirror'][$i]['attribs']['host'] = $server; - return true; - } - $this->_channelInfo['name'] = $server; - return true; - } - - /** - * @param string - * @return boolean success - * @error PEAR_CHANNELFILE_ERROR_NO_SUMMARY - * @warning PEAR_CHANNELFILE_ERROR_MULTILINE_SUMMARY - */ - function setSummary($summary) - { - if (empty($summary)) { - $this->_validateError(PEAR_CHANNELFILE_ERROR_NO_SUMMARY); - return false; - } elseif (strpos(trim($summary), "\n") !== false) { - $this->_validateWarning(PEAR_CHANNELFILE_ERROR_MULTILINE_SUMMARY, - array('summary' => $summary)); - } - $this->_channelInfo['summary'] = $summary; - return true; - } - - /** - * @param string - * @param boolean determines whether the alias is in channel.xml or local - * @return boolean success - */ - function setAlias($alias, $local = false) - { - if (!$this->validChannelServer($alias)) { - $this->_validateError(PEAR_CHANNELFILE_ERROR_INVALID_NAME, - array('tag' => 'suggestedalias', 'name' => $alias)); - return false; - } - if ($local) { - $this->_channelInfo['localalias'] = $alias; - } else { - $this->_channelInfo['suggestedalias'] = $alias; - } - return true; - } - - /** - * @return string - */ - function getAlias() - { - if (isset($this->_channelInfo['localalias'])) { - return $this->_channelInfo['localalias']; - } - if (isset($this->_channelInfo['suggestedalias'])) { - return $this->_channelInfo['suggestedalias']; - } - if (isset($this->_channelInfo['name'])) { - return $this->_channelInfo['name']; - } - return ''; - } - - /** - * Set the package validation object if it differs from PEAR's default - * The class must be includeable via changing _ in the classname to path separator, - * but no checking of this is made. - * @param string|false pass in false to reset to the default packagename regex - * @return boolean success - */ - function setValidationPackage($validateclass, $version) - { - if (empty($validateclass)) { - unset($this->_channelInfo['validatepackage']); - } - $this->_channelInfo['validatepackage'] = array('_content' => $validateclass); - $this->_channelInfo['validatepackage']['attribs'] = array('version' => $version); - } - - /** - * Add a protocol to the provides section - * @param string protocol type - * @param string protocol version - * @param string protocol name, if any - * @param string mirror name, if this is a mirror's protocol - * @return bool - */ - function addFunction($type, $version, $name = '', $mirror = false) - { - if ($mirror) { - return $this->addMirrorFunction($mirror, $type, $version, $name); - } - $set = array('attribs' => array('version' => $version), '_content' => $name); - if (!isset($this->_channelInfo['servers']['primary'][$type]['function'])) { - if (!isset($this->_channelInfo['servers'])) { - $this->_channelInfo['servers'] = array('primary' => - array($type => array())); - } elseif (!isset($this->_channelInfo['servers']['primary'])) { - $this->_channelInfo['servers']['primary'] = array($type => array()); - } - $this->_channelInfo['servers']['primary'][$type]['function'] = $set; - $this->_isValid = false; - return true; - } elseif (!isset($this->_channelInfo['servers']['primary'][$type]['function'][0])) { - $this->_channelInfo['servers']['primary'][$type]['function'] = array( - $this->_channelInfo['servers']['primary'][$type]['function']); - } - $this->_channelInfo['servers']['primary'][$type]['function'][] = $set; - return true; - } - /** - * Add a protocol to a mirror's provides section - * @param string mirror name (server) - * @param string protocol type - * @param string protocol version - * @param string protocol name, if any - */ - function addMirrorFunction($mirror, $type, $version, $name = '') - { - if (!isset($this->_channelInfo['servers']['mirror'])) { - $this->_validateError(PEAR_CHANNELFILE_ERROR_MIRROR_NOT_FOUND, - array('mirror' => $mirror)); - return false; - } - $setmirror = false; - if (isset($this->_channelInfo['servers']['mirror'][0])) { - foreach ($this->_channelInfo['servers']['mirror'] as $i => $mir) { - if ($mirror == $mir['attribs']['host']) { - $setmirror = &$this->_channelInfo['servers']['mirror'][$i]; - break; - } - } - } else { - if ($this->_channelInfo['servers']['mirror']['attribs']['host'] == $mirror) { - $setmirror = &$this->_channelInfo['servers']['mirror']; - } - } - if (!$setmirror) { - $this->_validateError(PEAR_CHANNELFILE_ERROR_MIRROR_NOT_FOUND, - array('mirror' => $mirror)); - return false; - } - $set = array('attribs' => array('version' => $version), '_content' => $name); - if (!isset($setmirror[$type]['function'])) { - $setmirror[$type]['function'] = $set; - $this->_isValid = false; - return true; - } elseif (!isset($setmirror[$type]['function'][0])) { - $setmirror[$type]['function'] = array($setmirror[$type]['function']); - } - $setmirror[$type]['function'][] = $set; - $this->_isValid = false; - return true; - } - - /** - * @param string Resource Type this url links to - * @param string URL - * @param string|false mirror name, if this is not a primary server REST base URL - */ - function setBaseURL($resourceType, $url, $mirror = false) - { - if ($mirror) { - if (!isset($this->_channelInfo['servers']['mirror'])) { - $this->_validateError(PEAR_CHANNELFILE_ERROR_MIRROR_NOT_FOUND, - array('mirror' => $mirror)); - return false; - } - $setmirror = false; - if (isset($this->_channelInfo['servers']['mirror'][0])) { - foreach ($this->_channelInfo['servers']['mirror'] as $i => $mir) { - if ($mirror == $mir['attribs']['host']) { - $setmirror = &$this->_channelInfo['servers']['mirror'][$i]; - break; - } - } - } else { - if ($this->_channelInfo['servers']['mirror']['attribs']['host'] == $mirror) { - $setmirror = &$this->_channelInfo['servers']['mirror']; - } - } - } else { - $setmirror = &$this->_channelInfo['servers']['primary']; - } - $set = array('attribs' => array('type' => $resourceType), '_content' => $url); - if (!isset($setmirror['rest'])) { - $setmirror['rest'] = array(); - } - if (!isset($setmirror['rest']['baseurl'])) { - $setmirror['rest']['baseurl'] = $set; - $this->_isValid = false; - return true; - } elseif (!isset($setmirror['rest']['baseurl'][0])) { - $setmirror['rest']['baseurl'] = array($setmirror['rest']['baseurl']); - } - foreach ($setmirror['rest']['baseurl'] as $i => $url) { - if ($url['attribs']['type'] == $resourceType) { - $this->_isValid = false; - $setmirror['rest']['baseurl'][$i] = $set; - return true; - } - } - $setmirror['rest']['baseurl'][] = $set; - $this->_isValid = false; - return true; - } - - /** - * @param string mirror server - * @param int mirror http port - * @return boolean - */ - function addMirror($server, $port = null) - { - if ($this->_channelInfo['name'] == '__uri') { - return false; // the __uri channel cannot have mirrors by definition - } - $set = array('attribs' => array('host' => $server)); - if (is_numeric($port)) { - $set['attribs']['port'] = $port; - } - if (!isset($this->_channelInfo['servers']['mirror'])) { - $this->_channelInfo['servers']['mirror'] = $set; - return true; - } else { - if (!isset($this->_channelInfo['servers']['mirror'][0])) { - $this->_channelInfo['servers']['mirror'] = - array($this->_channelInfo['servers']['mirror']); - } - } - $this->_channelInfo['servers']['mirror'][] = $set; - return true; - } - - /** - * Retrieve the name of the validation package for this channel - * @return string|false - */ - function getValidationPackage() - { - if (!$this->_isValid && !$this->validate()) { - return false; - } - if (!isset($this->_channelInfo['validatepackage'])) { - return array('attribs' => array('version' => 'default'), - '_content' => 'PEAR_Validate'); - } - return $this->_channelInfo['validatepackage']; - } - - /** - * Retrieve the object that can be used for custom validation - * @param string|false the name of the package to validate. If the package is - * the channel validation package, PEAR_Validate is returned - * @return PEAR_Validate|false false is returned if the validation package - * cannot be located - */ - function &getValidationObject($package = false) - { - if (!class_exists('PEAR_Validate')) { - require_once 'PEAR/Validate.php'; - } - if (!$this->_isValid) { - if (!$this->validate()) { - $a = false; - return $a; - } - } - if (isset($this->_channelInfo['validatepackage'])) { - if ($package == $this->_channelInfo['validatepackage']) { - // channel validation packages are always validated by PEAR_Validate - $val = &new PEAR_Validate; - return $val; - } - if (!class_exists(str_replace('.', '_', - $this->_channelInfo['validatepackage']['_content']))) { - if ($this->isIncludeable(str_replace('_', '/', - $this->_channelInfo['validatepackage']['_content']) . '.php')) { - include_once str_replace('_', '/', - $this->_channelInfo['validatepackage']['_content']) . '.php'; - $vclass = str_replace('.', '_', - $this->_channelInfo['validatepackage']['_content']); - $val = &new $vclass; - } else { - $a = false; - return $a; - } - } else { - $vclass = str_replace('.', '_', - $this->_channelInfo['validatepackage']['_content']); - $val = &new $vclass; - } - } else { - $val = &new PEAR_Validate; - } - return $val; - } - - function isIncludeable($path) - { - $possibilities = explode(PATH_SEPARATOR, ini_get('include_path')); - foreach ($possibilities as $dir) { - if (file_exists($dir . DIRECTORY_SEPARATOR . $path) - && is_readable($dir . DIRECTORY_SEPARATOR . $path)) { - return true; - } - } - return false; - } - - /** - * This function is used by the channel updater and retrieves a value set by - * the registry, or the current time if it has not been set - * @return string - */ - function lastModified() - { - if (isset($this->_channelInfo['_lastmodified'])) { - return $this->_channelInfo['_lastmodified']; - } - return time(); - } -} -?> diff --git a/src/vitis/vas/rest/class/PEAR/ChannelFile/Parser.php b/src/vitis/vas/rest/class/PEAR/ChannelFile/Parser.php deleted file mode 100755 index 88402439..00000000 --- a/src/vitis/vas/rest/class/PEAR/ChannelFile/Parser.php +++ /dev/null @@ -1,73 +0,0 @@ -<?php -/** - * PEAR_ChannelFile_Parser for parsing channel.xml - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Parser.php,v 1.5 2008/01/03 20:26:36 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 1.4.0a1 - */ - -/** - * base xml parser class - */ -require_once 'PEAR/XMLParser.php'; -require_once 'PEAR/ChannelFile.php'; -/** - * Parser for channel.xml - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 1.4.0a1 - */ -class PEAR_ChannelFile_Parser extends PEAR_XMLParser -{ - var $_config; - var $_logger; - var $_registry; - - function setConfig(&$c) - { - $this->_config = &$c; - $this->_registry = &$c->getRegistry(); - } - - function setLogger(&$l) - { - $this->_logger = &$l; - } - - function parse($data, $file) - { - if (PEAR::isError($err = parent::parse($data, $file))) { - return $err; - } - $ret = new PEAR_ChannelFile; - $ret->setConfig($this->_config); - if (isset($this->_logger)) { - $ret->setLogger($this->_logger); - } - $ret->fromArray($this->_unserializedData); - // make sure the filelist is in the easy to read format needed - $ret->flattenFilelist(); - $ret->setPackagefile($file, $archive); - return $ret; - } -} -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/Command.php b/src/vitis/vas/rest/class/PEAR/Command.php deleted file mode 100755 index 38fe69c9..00000000 --- a/src/vitis/vas/rest/class/PEAR/Command.php +++ /dev/null @@ -1,416 +0,0 @@ -<?php -/** - * PEAR_Command, command pattern class - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Stig Bakken <ssb@php.net> - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Command.php,v 1.39 2008/01/03 20:26:34 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 0.1 - */ - -/** - * Needed for error handling - */ -require_once 'PEAR.php'; -require_once 'PEAR/Frontend.php'; -require_once 'PEAR/XMLParser.php'; - -/** - * List of commands and what classes they are implemented in. - * @var array command => implementing class - */ -$GLOBALS['_PEAR_Command_commandlist'] = array(); - -/** - * List of commands and their descriptions - * @var array command => description - */ -$GLOBALS['_PEAR_Command_commanddesc'] = array(); - -/** - * List of shortcuts to common commands. - * @var array shortcut => command - */ -$GLOBALS['_PEAR_Command_shortcuts'] = array(); - -/** - * Array of command objects - * @var array class => object - */ -$GLOBALS['_PEAR_Command_objects'] = array(); - -/** - * PEAR command class, a simple factory class for administrative - * commands. - * - * How to implement command classes: - * - * - The class must be called PEAR_Command_Nnn, installed in the - * "PEAR/Common" subdir, with a method called getCommands() that - * returns an array of the commands implemented by the class (see - * PEAR/Command/Install.php for an example). - * - * - The class must implement a run() function that is called with three - * params: - * - * (string) command name - * (array) assoc array with options, freely defined by each - * command, for example: - * array('force' => true) - * (array) list of the other parameters - * - * The run() function returns a PEAR_CommandResponse object. Use - * these methods to get information: - * - * int getStatus() Returns PEAR_COMMAND_(SUCCESS|FAILURE|PARTIAL) - * *_PARTIAL means that you need to issue at least - * one more command to complete the operation - * (used for example for validation steps). - * - * string getMessage() Returns a message for the user. Remember, - * no HTML or other interface-specific markup. - * - * If something unexpected happens, run() returns a PEAR error. - * - * - DON'T OUTPUT ANYTHING! Return text for output instead. - * - * - DON'T USE HTML! The text you return will be used from both Gtk, - * web and command-line interfaces, so for now, keep everything to - * plain text. - * - * - DON'T USE EXIT OR DIE! Always use pear errors. From static - * classes do PEAR::raiseError(), from other classes do - * $this->raiseError(). - * @category pear - * @package PEAR - * @author Stig Bakken <ssb@php.net> - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 0.1 - */ -class PEAR_Command -{ - // {{{ factory() - - /** - * Get the right object for executing a command. - * - * @param string $command The name of the command - * @param object $config Instance of PEAR_Config object - * - * @return object the command object or a PEAR error - * - * @access public - * @static - */ - function &factory($command, &$config) - { - if (empty($GLOBALS['_PEAR_Command_commandlist'])) { - PEAR_Command::registerCommands(); - } - if (isset($GLOBALS['_PEAR_Command_shortcuts'][$command])) { - $command = $GLOBALS['_PEAR_Command_shortcuts'][$command]; - } - if (!isset($GLOBALS['_PEAR_Command_commandlist'][$command])) { - $a = PEAR::raiseError("unknown command `$command'"); - return $a; - } - $class = $GLOBALS['_PEAR_Command_commandlist'][$command]; - if (!class_exists($class)) { - require_once $GLOBALS['_PEAR_Command_objects'][$class]; - } - if (!class_exists($class)) { - $a = PEAR::raiseError("unknown command `$command'"); - return $a; - } - $ui =& PEAR_Command::getFrontendObject(); - $obj = &new $class($ui, $config); - return $obj; - } - - // }}} - // {{{ & getObject() - function &getObject($command) - { - $class = $GLOBALS['_PEAR_Command_commandlist'][$command]; - if (!class_exists($class)) { - require_once $GLOBALS['_PEAR_Command_objects'][$class]; - } - if (!class_exists($class)) { - return PEAR::raiseError("unknown command `$command'"); - } - $ui =& PEAR_Command::getFrontendObject(); - $config = &PEAR_Config::singleton(); - $obj = &new $class($ui, $config); - return $obj; - } - - // }}} - // {{{ & getFrontendObject() - - /** - * Get instance of frontend object. - * - * @return object|PEAR_Error - * @static - */ - function &getFrontendObject() - { - $a = &PEAR_Frontend::singleton(); - return $a; - } - - // }}} - // {{{ & setFrontendClass() - - /** - * Load current frontend class. - * - * @param string $uiclass Name of class implementing the frontend - * - * @return object the frontend object, or a PEAR error - * @static - */ - function &setFrontendClass($uiclass) - { - $a = &PEAR_Frontend::setFrontendClass($uiclass); - return $a; - } - - // }}} - // {{{ setFrontendType() - - /** - * Set current frontend. - * - * @param string $uitype Name of the frontend type (for example "CLI") - * - * @return object the frontend object, or a PEAR error - * @static - */ - function setFrontendType($uitype) - { - $uiclass = 'PEAR_Frontend_' . $uitype; - return PEAR_Command::setFrontendClass($uiclass); - } - - // }}} - // {{{ registerCommands() - - /** - * Scan through the Command directory looking for classes - * and see what commands they implement. - * - * @param bool (optional) if FALSE (default), the new list of - * commands should replace the current one. If TRUE, - * new entries will be merged with old. - * - * @param string (optional) where (what directory) to look for - * classes, defaults to the Command subdirectory of - * the directory from where this file (__FILE__) is - * included. - * - * @return bool TRUE on success, a PEAR error on failure - * - * @access public - * @static - */ - function registerCommands($merge = false, $dir = null) - { - $parser = new PEAR_XMLParser; - if ($dir === null) { - $dir = dirname(__FILE__) . '/Command'; - } - if (!is_dir($dir)) { - return PEAR::raiseError("registerCommands: opendir($dir) '$dir' does not exist or is not a directory"); - } - $dp = @opendir($dir); - if (empty($dp)) { - return PEAR::raiseError("registerCommands: opendir($dir) failed"); - } - if (!$merge) { - $GLOBALS['_PEAR_Command_commandlist'] = array(); - } - while ($entry = readdir($dp)) { - if ($entry{0} == '.' || substr($entry, -4) != '.xml') { - continue; - } - $class = "PEAR_Command_".substr($entry, 0, -4); - $file = "$dir/$entry"; - $parser->parse(file_get_contents($file)); - $implements = $parser->getData(); - // List of commands - if (empty($GLOBALS['_PEAR_Command_objects'][$class])) { - $GLOBALS['_PEAR_Command_objects'][$class] = "$dir/" . substr($entry, 0, -4) . - '.php'; - } - foreach ($implements as $command => $desc) { - if ($command == 'attribs') { - continue; - } - if (isset($GLOBALS['_PEAR_Command_commandlist'][$command])) { - return PEAR::raiseError('Command "' . $command . '" already registered in ' . - 'class "' . $GLOBALS['_PEAR_Command_commandlist'][$command] . '"'); - } - $GLOBALS['_PEAR_Command_commandlist'][$command] = $class; - $GLOBALS['_PEAR_Command_commanddesc'][$command] = $desc['summary']; - if (isset($desc['shortcut'])) { - $shortcut = $desc['shortcut']; - if (isset($GLOBALS['_PEAR_Command_shortcuts'][$shortcut])) { - return PEAR::raiseError('Command shortcut "' . $shortcut . '" already ' . - 'registered to command "' . $command . '" in class "' . - $GLOBALS['_PEAR_Command_commandlist'][$command] . '"'); - } - $GLOBALS['_PEAR_Command_shortcuts'][$shortcut] = $command; - } - if (isset($desc['options']) && $desc['options']) { - foreach ($desc['options'] as $oname => $option) { - if (isset($option['shortopt']) && strlen($option['shortopt']) > 1) { - return PEAR::raiseError('Option "' . $oname . '" short option "' . - $option['shortopt'] . '" must be ' . - 'only 1 character in Command "' . $command . '" in class "' . - $class . '"'); - } - } - } - } - } - ksort($GLOBALS['_PEAR_Command_shortcuts']); - ksort($GLOBALS['_PEAR_Command_commandlist']); - @closedir($dp); - return true; - } - - // }}} - // {{{ getCommands() - - /** - * Get the list of currently supported commands, and what - * classes implement them. - * - * @return array command => implementing class - * - * @access public - * @static - */ - function getCommands() - { - if (empty($GLOBALS['_PEAR_Command_commandlist'])) { - PEAR_Command::registerCommands(); - } - return $GLOBALS['_PEAR_Command_commandlist']; - } - - // }}} - // {{{ getShortcuts() - - /** - * Get the list of command shortcuts. - * - * @return array shortcut => command - * - * @access public - * @static - */ - function getShortcuts() - { - if (empty($GLOBALS['_PEAR_Command_shortcuts'])) { - PEAR_Command::registerCommands(); - } - return $GLOBALS['_PEAR_Command_shortcuts']; - } - - // }}} - // {{{ getGetoptArgs() - - /** - * Compiles arguments for getopt. - * - * @param string $command command to get optstring for - * @param string $short_args (reference) short getopt format - * @param array $long_args (reference) long getopt format - * - * @return void - * - * @access public - * @static - */ - function getGetoptArgs($command, &$short_args, &$long_args) - { - if (empty($GLOBALS['_PEAR_Command_commandlist'])) { - PEAR_Command::registerCommands(); - } - if (isset($GLOBALS['_PEAR_Command_shortcuts'][$command])) { - $command = $GLOBALS['_PEAR_Command_shortcuts'][$command]; - } - if (!isset($GLOBALS['_PEAR_Command_commandlist'][$command])) { - return null; - } - $obj = &PEAR_Command::getObject($command); - return $obj->getGetoptArgs($command, $short_args, $long_args); - } - - // }}} - // {{{ getDescription() - - /** - * Get description for a command. - * - * @param string $command Name of the command - * - * @return string command description - * - * @access public - * @static - */ - function getDescription($command) - { - if (!isset($GLOBALS['_PEAR_Command_commanddesc'][$command])) { - return null; - } - return $GLOBALS['_PEAR_Command_commanddesc'][$command]; - } - - // }}} - // {{{ getHelp() - - /** - * Get help for command. - * - * @param string $command Name of the command to return help for - * - * @access public - * @static - */ - function getHelp($command) - { - $cmds = PEAR_Command::getCommands(); - if (isset($GLOBALS['_PEAR_Command_shortcuts'][$command])) { - $command = $GLOBALS['_PEAR_Command_shortcuts'][$command]; - } - if (isset($cmds[$command])) { - $obj = &PEAR_Command::getObject($command); - return $obj->getHelp($command); - } - return false; - } - // }}} -} - -?> diff --git a/src/vitis/vas/rest/class/PEAR/Command/Auth.php b/src/vitis/vas/rest/class/PEAR/Command/Auth.php deleted file mode 100755 index 005235b6..00000000 --- a/src/vitis/vas/rest/class/PEAR/Command/Auth.php +++ /dev/null @@ -1,203 +0,0 @@ -<?php -/** - * PEAR_Command_Auth (login, logout commands) - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Stig Bakken <ssb@php.net> - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Auth.php,v 1.31 2008/01/03 20:26:36 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 0.1 - */ - -/** - * base class - */ -require_once 'PEAR/Command/Common.php'; -require_once 'PEAR/Config.php'; - -/** - * PEAR commands for login/logout - * - * @category pear - * @package PEAR - * @author Stig Bakken <ssb@php.net> - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 0.1 - */ -class PEAR_Command_Auth extends PEAR_Command_Common -{ - // {{{ properties - - var $commands = array( - 'login' => array( - 'summary' => 'Connects and authenticates to remote server', - 'shortcut' => 'li', - 'function' => 'doLogin', - 'options' => array(), - 'doc' => '<channel name> -Log in to a remote channel server. If <channel name> is not supplied, -the default channel is used. To use remote functions in the installer -that require any kind of privileges, you need to log in first. The -username and password you enter here will be stored in your per-user -PEAR configuration (~/.pearrc on Unix-like systems). After logging -in, your username and password will be sent along in subsequent -operations on the remote server.', - ), - 'logout' => array( - 'summary' => 'Logs out from the remote server', - 'shortcut' => 'lo', - 'function' => 'doLogout', - 'options' => array(), - 'doc' => ' -Logs out from the remote server. This command does not actually -connect to the remote server, it only deletes the stored username and -password from your user configuration.', - ) - - ); - - // }}} - - // {{{ constructor - - /** - * PEAR_Command_Auth constructor. - * - * @access public - */ - function PEAR_Command_Auth(&$ui, &$config) - { - parent::PEAR_Command_Common($ui, $config); - } - - // }}} - - // {{{ doLogin() - - /** - * Execute the 'login' command. - * - * @param string $command command name - * - * @param array $options option_name => value - * - * @param array $params list of additional parameters - * - * @return bool TRUE on success or - * a PEAR error on failure - * - * @access public - */ - function doLogin($command, $options, $params) - { - $reg = &$this->config->getRegistry(); - - // If a parameter is supplied, use that as the channel to log in to - if (isset($params[0])) { - $channel = $params[0]; - } else { - $channel = $this->config->get('default_channel'); - } - - $chan = $reg->getChannel($channel); - if (PEAR::isError($chan)) { - return $this->raiseError($chan); - } - $server = $this->config->get('preferred_mirror', null, $channel); - $remote = &$this->config->getRemote(); - $username = $this->config->get('username', null, $channel); - if (empty($username)) { - $username = isset($_ENV['USER']) ? $_ENV['USER'] : null; - } - $this->ui->outputData("Logging in to $server.", $command); - - list($username, $password) = $this->ui->userDialog( - $command, - array('Username', 'Password'), - array('text', 'password'), - array($username, '') - ); - $username = trim($username); - $password = trim($password); - - $ourfile = $this->config->getConfFile('user'); - if (!$ourfile) { - $ourfile = $this->config->getConfFile('system'); - } - - $this->config->set('username', $username, 'user', $channel); - $this->config->set('password', $password, 'user', $channel); - - if ($chan->supportsREST()) { - $ok = true; - } else { - $remote->expectError(401); - $ok = $remote->call('logintest'); - $remote->popExpect(); - } - if ($ok === true) { - $this->ui->outputData("Logged in.", $command); - // avoid changing any temporary settings changed with -d - $ourconfig = new PEAR_Config($ourfile, $ourfile); - $ourconfig->set('username', $username, 'user', $channel); - $ourconfig->set('password', $password, 'user', $channel); - $ourconfig->store(); - } else { - return $this->raiseError("Login failed!"); - } - return true; - } - - // }}} - // {{{ doLogout() - - /** - * Execute the 'logout' command. - * - * @param string $command command name - * - * @param array $options option_name => value - * - * @param array $params list of additional parameters - * - * @return bool TRUE on success or - * a PEAR error on failure - * - * @access public - */ - function doLogout($command, $options, $params) - { - $reg = &$this->config->getRegistry(); - $channel = $this->config->get('default_channel'); - $chan = $reg->getChannel($channel); - if (PEAR::isError($chan)) { - return $this->raiseError($chan); - } - $server = $this->config->get('preferred_mirror'); - $this->ui->outputData("Logging out from $server.", $command); - $this->config->remove('username'); - $this->config->remove('password'); - $this->config->store(); - return true; - } - - // }}} -} - -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/Command/Auth.xml b/src/vitis/vas/rest/class/PEAR/Command/Auth.xml deleted file mode 100755 index 17e3b34c..00000000 --- a/src/vitis/vas/rest/class/PEAR/Command/Auth.xml +++ /dev/null @@ -1,26 +0,0 @@ -<commands version="1.0"> - <login> - <summary>Connects and authenticates to remote server</summary> - <shortcut>li</shortcut> - <function>doLogin</function> - <options /> - <doc><channel name> -Log in to a remote channel server. <channel name> is not supplied, -the default channel is used. To use remote functions in the installer -that require any kind of privileges, you need to log in first. The -username and password you enter here will be stored in your per-user -PEAR configuration (~/.pearrc on Unix-like systems). After logging -in, your username and password will be sent along in subsequent -operations on the remote server.</doc> - </login> - <logout> - <summary>Logs out from the remote server</summary> - <shortcut>lo</shortcut> - <function>doLogout</function> - <options /> - <doc> -Logs out from the remote server. This command does not actually -connect to the remote server, it only deletes the stored username and -password from your user configuration.</doc> - </logout> -</commands> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/Command/Build.php b/src/vitis/vas/rest/class/PEAR/Command/Build.php deleted file mode 100755 index d6773100..00000000 --- a/src/vitis/vas/rest/class/PEAR/Command/Build.php +++ /dev/null @@ -1,104 +0,0 @@ -<?php -/** - * PEAR_Command_Auth (build command) - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Stig Bakken <ssb@php.net> - * @author Tomas V.V.Cox <cox@idecnet.com> - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Build.php,v 1.14 2008/01/03 20:26:36 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 0.1 - */ - -/** - * base class - */ -require_once 'PEAR/Command/Common.php'; - -/** - * PEAR commands for building extensions. - * - * @category pear - * @package PEAR - * @author Stig Bakken <ssb@php.net> - * @author Tomas V.V.Cox <cox@idecnet.com> - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 0.1 - */ -class PEAR_Command_Build extends PEAR_Command_Common -{ - // {{{ properties - - var $commands = array( - 'build' => array( - 'summary' => 'Build an Extension From C Source', - 'function' => 'doBuild', - 'shortcut' => 'b', - 'options' => array(), - 'doc' => '[package.xml] -Builds one or more extensions contained in a package.' - ), - ); - - // }}} - - // {{{ constructor - - /** - * PEAR_Command_Build constructor. - * - * @access public - */ - function PEAR_Command_Build(&$ui, &$config) - { - parent::PEAR_Command_Common($ui, $config); - } - - // }}} - - // {{{ doBuild() - - function doBuild($command, $options, $params) - { - require_once 'PEAR/Builder.php'; - if (sizeof($params) < 1) { - $params[0] = 'package.xml'; - } - $builder = &new PEAR_Builder($this->ui); - $this->debug = $this->config->get('verbose'); - $err = $builder->build($params[0], array(&$this, 'buildCallback')); - if (PEAR::isError($err)) { - return $err; - } - return true; - } - - // }}} - // {{{ buildCallback() - - function buildCallback($what, $data) - { - if (($what == 'cmdoutput' && $this->debug > 1) || - ($what == 'output' && $this->debug > 0)) { - $this->ui->outputData(rtrim($data), 'build'); - } - } - - // }}} -} diff --git a/src/vitis/vas/rest/class/PEAR/Command/Build.xml b/src/vitis/vas/rest/class/PEAR/Command/Build.xml deleted file mode 100755 index ec4e6f55..00000000 --- a/src/vitis/vas/rest/class/PEAR/Command/Build.xml +++ /dev/null @@ -1,10 +0,0 @@ -<commands version="1.0"> - <build> - <summary>Build an Extension From C Source</summary> - <function>doBuild</function> - <shortcut>b</shortcut> - <options /> - <doc>[package.xml] -Builds one or more extensions contained in a package.</doc> - </build> -</commands> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/Command/Channels.php b/src/vitis/vas/rest/class/PEAR/Command/Channels.php deleted file mode 100755 index 5de0d39b..00000000 --- a/src/vitis/vas/rest/class/PEAR/Command/Channels.php +++ /dev/null @@ -1,737 +0,0 @@ -<?php -// /* vim: set expandtab tabstop=4 shiftwidth=4: */ -/** - * PEAR_Command_Channels (list-channels, update-channels, channel-delete, channel-add, - * channel-update, channel-info, channel-alias, channel-discover commands) - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Stig Bakken <ssb@php.net> - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Channels.php,v 1.57 2008/01/03 20:26:36 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 1.4.0a1 - */ - -/** - * base class - */ -require_once 'PEAR/Command/Common.php'; - -/** - * PEAR commands for managing channels. - * - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 1.4.0a1 - */ -class PEAR_Command_Channels extends PEAR_Command_Common -{ - // {{{ properties - - var $commands = array( - 'list-channels' => array( - 'summary' => 'List Available Channels', - 'function' => 'doList', - 'shortcut' => 'lc', - 'options' => array(), - 'doc' => ' -List all available channels for installation. -', - ), - 'update-channels' => array( - 'summary' => 'Update the Channel List', - 'function' => 'doUpdateAll', - 'shortcut' => 'uc', - 'options' => array(), - 'doc' => ' -List all installed packages in all channels. -' - ), - 'channel-delete' => array( - 'summary' => 'Remove a Channel From the List', - 'function' => 'doDelete', - 'shortcut' => 'cde', - 'options' => array(), - 'doc' => '<channel name> -Delete a channel from the registry. You may not -remove any channel that has installed packages. -' - ), - 'channel-add' => array( - 'summary' => 'Add a Channel', - 'function' => 'doAdd', - 'shortcut' => 'ca', - 'options' => array(), - 'doc' => '<channel.xml> -Add a private channel to the channel list. Note that all -public channels should be synced using "update-channels". -Parameter may be either a local file or remote URL to a -channel.xml. -' - ), - 'channel-update' => array( - 'summary' => 'Update an Existing Channel', - 'function' => 'doUpdate', - 'shortcut' => 'cu', - 'options' => array( - 'force' => array( - 'shortopt' => 'f', - 'doc' => 'will force download of new channel.xml if an existing channel name is used', - ), - 'channel' => array( - 'shortopt' => 'c', - 'arg' => 'CHANNEL', - 'doc' => 'will force download of new channel.xml if an existing channel name is used', - ), -), - 'doc' => '[<channel.xml>|<channel name>] -Update a channel in the channel list directly. Note that all -public channels can be synced using "update-channels". -Parameter may be a local or remote channel.xml, or the name of -an existing channel. -' - ), - 'channel-info' => array( - 'summary' => 'Retrieve Information on a Channel', - 'function' => 'doInfo', - 'shortcut' => 'ci', - 'options' => array(), - 'doc' => '<package> -List the files in an installed package. -' - ), - 'channel-alias' => array( - 'summary' => 'Specify an alias to a channel name', - 'function' => 'doAlias', - 'shortcut' => 'cha', - 'options' => array(), - 'doc' => '<channel> <alias> -Specify a specific alias to use for a channel name. -The alias may not be an existing channel name or -alias. -' - ), - 'channel-discover' => array( - 'summary' => 'Initialize a Channel from its server', - 'function' => 'doDiscover', - 'shortcut' => 'di', - 'options' => array(), - 'doc' => '[<channel.xml>|<channel name>] -Initialize a channel from its server and create a local channel.xml. -If <channel name> is in the format "<username>:<password>@<channel>" then -<username> and <password> will be set as the login username/password for -<channel>. Use caution when passing the username/password in this way, as -it may allow other users on your computer to briefly view your username/ -password via the system\'s process list. -' - ), - ); - - // }}} - // {{{ constructor - - /** - * PEAR_Command_Registry constructor. - * - * @access public - */ - function PEAR_Command_Channels(&$ui, &$config) - { - parent::PEAR_Command_Common($ui, $config); - } - - // }}} - - // {{{ doList() - - function _sortChannels($a, $b) - { - return strnatcasecmp($a->getName(), $b->getName()); - } - - function doList($command, $options, $params) - { - $reg = &$this->config->getRegistry(); - $registered = $reg->getChannels(); - usort($registered, array(&$this, '_sortchannels')); - $i = $j = 0; - $data = array( - 'caption' => 'Registered Channels:', - 'border' => true, - 'headline' => array('Channel', 'Summary') - ); - foreach ($registered as $channel) { - $data['data'][] = array($channel->getName(), - $channel->getSummary()); - } - if (count($registered)==0) { - $data = '(no registered channels)'; - } - $this->ui->outputData($data, $command); - return true; - } - - function doUpdateAll($command, $options, $params) - { - $reg = &$this->config->getRegistry(); - $channels = $reg->getChannels(); - - $success = true; - foreach ($channels as $channel) { - if ($channel->getName() != '__uri') { - PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); - $err = $this->doUpdate('channel-update', - $options, - array($channel->getName())); - if (PEAR::isError($err)) { - $this->ui->outputData($err->getMessage(), $command); - $success = false; - } else { - $success &= $err; - } - } - } - return $success; - } - - function doInfo($command, $options, $params) - { - if (sizeof($params) != 1) { - return $this->raiseError("No channel specified"); - } - $reg = &$this->config->getRegistry(); - $channel = strtolower($params[0]); - if ($reg->channelExists($channel)) { - $chan = $reg->getChannel($channel); - if (PEAR::isError($chan)) { - return $this->raiseError($chan); - } - } else { - if (strpos($channel, '://')) { - $downloader = &$this->getDownloader(); - $tmpdir = $this->config->get('temp_dir'); - PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); - $loc = $downloader->downloadHttp($channel, $this->ui, $tmpdir); - PEAR::staticPopErrorHandling(); - if (PEAR::isError($loc)) { - return $this->raiseError('Cannot open "' . $channel . - '" (' . $loc->getMessage() . ')'); - } else { - $contents = implode('', file($loc)); - } - } else { - if (file_exists($params[0])) { - $fp = fopen($params[0], 'r'); - if (!$fp) { - return $this->raiseError('Cannot open "' . $params[0] . '"'); - } - } else { - return $this->raiseError('Unknown channel "' . $channel . '"'); - } - $contents = ''; - while (!feof($fp)) { - $contents .= fread($fp, 1024); - } - fclose($fp); - } - if (!class_exists('PEAR_ChannelFile')) { - require_once 'PEAR/ChannelFile.php'; - } - $chan = new PEAR_ChannelFile; - $chan->fromXmlString($contents); - $chan->validate(); - if ($errs = $chan->getErrors(true)) { - foreach ($errs as $err) { - $this->ui->outputData($err['level'] . ': ' . $err['message']); - } - return $this->raiseError('Channel file "' . $params[0] . '" is not valid'); - } - } - if ($chan) { - $channel = $chan->getName(); - $caption = 'Channel ' . $channel . ' Information:'; - $data1 = array( - 'caption' => $caption, - 'border' => true); - $data1['data']['server'] = array('Name and Server', $chan->getName()); - if ($chan->getAlias() != $chan->getName()) { - $data1['data']['alias'] = array('Alias', $chan->getAlias()); - } - $data1['data']['summary'] = array('Summary', $chan->getSummary()); - $validate = $chan->getValidationPackage(); - $data1['data']['vpackage'] = array('Validation Package Name', $validate['_content']); - $data1['data']['vpackageversion'] = - array('Validation Package Version', $validate['attribs']['version']); - $d = array(); - $d['main'] = $data1; - - $data['data'] = array(); - $data['caption'] = 'Server Capabilities'; - $data['headline'] = array('Type', 'Version/REST type', 'Function Name/REST base'); - $capabilities = $chan->getFunctions('xmlrpc'); - $soaps = $chan->getFunctions('soap'); - if ($capabilities || $soaps || $chan->supportsREST()) { - if ($capabilities) { - if (!isset($capabilities[0])) { - $capabilities = array($capabilities); - } - foreach ($capabilities as $protocol) { - $data['data'][] = array('xmlrpc', $protocol['attribs']['version'], - $protocol['_content']); - } - } - if ($soaps) { - if (!isset($soaps[0])) { - $soaps = array($soaps); - } - foreach ($soaps as $protocol) { - $data['data'][] = array('soap', $protocol['attribs']['version'], - $protocol['_content']); - } - } - if ($chan->supportsREST()) { - $funcs = $chan->getFunctions('rest'); - if (!isset($funcs[0])) { - $funcs = array($funcs); - } - foreach ($funcs as $protocol) { - $data['data'][] = array('rest', $protocol['attribs']['type'], - $protocol['_content']); - } - } - } else { - $data['data'][] = array('No supported protocols'); - } - $d['protocols'] = $data; - $data['data'] = array(); - $mirrors = $chan->getMirrors(); - if ($mirrors) { - $data['caption'] = 'Channel ' . $channel . ' Mirrors:'; - unset($data['headline']); - foreach ($mirrors as $mirror) { - $data['data'][] = array($mirror['attribs']['host']); - $d['mirrors'] = $data; - } - foreach ($mirrors as $i => $mirror) { - $data['data'] = array(); - $data['caption'] = 'Mirror ' . $mirror['attribs']['host'] . ' Capabilities'; - $data['headline'] = array('Type', 'Version/REST type', 'Function Name/REST base'); - $capabilities = $chan->getFunctions('xmlrpc', $mirror['attribs']['host']); - $soaps = $chan->getFunctions('soap', $mirror['attribs']['host']); - if ($capabilities || $soaps || $chan->supportsREST($mirror['attribs']['host'])) { - if ($capabilities) { - if (!isset($capabilities[0])) { - $capabilities = array($capabilities); - } - foreach ($capabilities as $protocol) { - $data['data'][] = array('xmlrpc', $protocol['attribs']['version'], - $protocol['_content']); - } - } - if ($soaps) { - if (!isset($soaps[0])) { - $soaps = array($soaps); - } - foreach ($soaps as $protocol) { - $data['data'][] = array('soap', $protocol['attribs']['version'], - $protocol['_content']); - } - } - if ($chan->supportsREST($mirror['attribs']['host'])) { - $funcs = $chan->getFunctions('rest', $mirror['attribs']['host']); - if (!isset($funcs[0])) { - $funcs = array($funcs); - } - foreach ($funcs as $protocol) { - $data['data'][] = array('rest', $protocol['attribs']['type'], - $protocol['_content']); - } - } - } else { - $data['data'][] = array('No supported protocols'); - } - $d['mirrorprotocols' . $i] = $data; - } - } - $this->ui->outputData($d, 'channel-info'); - } else { - return $this->raiseError('Serious error: Channel "' . $params[0] . - '" has a corrupted registry entry'); - } - } - - // }}} - - function doDelete($command, $options, $params) - { - if (sizeof($params) != 1) { - return $this->raiseError('channel-delete: no channel specified'); - } - $reg = &$this->config->getRegistry(); - if (!$reg->channelExists($params[0])) { - return $this->raiseError('channel-delete: channel "' . $params[0] . '" does not exist'); - } - $channel = $reg->channelName($params[0]); - if ($channel == 'pear.php.net') { - return $this->raiseError('Cannot delete the pear.php.net channel'); - } - if ($channel == 'pecl.php.net') { - return $this->raiseError('Cannot delete the pecl.php.net channel'); - } - if ($channel == '__uri') { - return $this->raiseError('Cannot delete the __uri pseudo-channel'); - } - if (PEAR::isError($err = $reg->listPackages($channel))) { - return $err; - } - if (count($err)) { - return $this->raiseError('Channel "' . $channel . - '" has installed packages, cannot delete'); - } - if (!$reg->deleteChannel($channel)) { - return $this->raiseError('Channel "' . $channel . '" deletion failed'); - } else { - $this->config->deleteChannel($channel); - $this->ui->outputData('Channel "' . $channel . '" deleted', $command); - } - } - - function doAdd($command, $options, $params) - { - if (sizeof($params) != 1) { - return $this->raiseError('channel-add: no channel file specified'); - } - if (strpos($params[0], '://')) { - $downloader = &$this->getDownloader(); - $tmpdir = $this->config->get('temp_dir'); - if (!file_exists($tmpdir)) { - require_once 'System.php'; - PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); - $err = System::mkdir(array('-p', $tmpdir)); - PEAR::staticPopErrorHandling(); - if (PEAR::isError($err)) { - return $this->raiseError('channel-add: temp_dir does not exist: "' . - $tmpdir . - '" - You can change this location with "pear config-set temp_dir"'); - } - } - if (!is_writable($tmpdir)) { - return $this->raiseError('channel-add: temp_dir is not writable: "' . - $tmpdir . - '" - You can change this location with "pear config-set temp_dir"'); - } - PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); - $loc = $downloader->downloadHttp($params[0], $this->ui, $tmpdir, null, false); - PEAR::staticPopErrorHandling(); - if (PEAR::isError($loc)) { - return $this->raiseError('channel-add: Cannot open "' . $params[0] . - '" (' . $loc->getMessage() . ')'); - } else { - list($loc, $lastmodified) = $loc; - $contents = implode('', file($loc)); - } - } else { - $lastmodified = $fp = false; - if (file_exists($params[0])) { - $fp = fopen($params[0], 'r'); - } - if (!$fp) { - return $this->raiseError('channel-add: cannot open "' . $params[0] . '"'); - } - $contents = ''; - while (!feof($fp)) { - $contents .= fread($fp, 1024); - } - fclose($fp); - } - if (!class_exists('PEAR_ChannelFile')) { - require_once 'PEAR/ChannelFile.php'; - } - $channel = new PEAR_ChannelFile; - PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); - $result = $channel->fromXmlString($contents); - PEAR::staticPopErrorHandling(); - if (!$result) { - $exit = false; - if (count($errors = $channel->getErrors(true))) { - foreach ($errors as $error) { - $this->ui->outputData(ucfirst($error['level'] . ': ' . $error['message'])); - if (!$exit) { - $exit = $error['level'] == 'error' ? true : false; - } - } - if ($exit) { - return $this->raiseError('channel-add: invalid channel.xml file'); - } - } - } - $reg = &$this->config->getRegistry(); - if ($reg->channelExists($channel->getName())) { - return $this->raiseError('channel-add: Channel "' . $channel->getName() . - '" exists, use channel-update to update entry'); - } - $ret = $reg->addChannel($channel, $lastmodified); - if (PEAR::isError($ret)) { - return $ret; - } - if (!$ret) { - return $this->raiseError('channel-add: adding Channel "' . $channel->getName() . - '" to registry failed'); - } - $this->config->setChannels($reg->listChannels()); - $this->config->writeConfigFile(); - $this->ui->outputData('Adding Channel "' . $channel->getName() . '" succeeded', $command); - } - - function doUpdate($command, $options, $params) - { - $tmpdir = $this->config->get('temp_dir'); - if (!file_exists($tmpdir)) { - require_once 'System.php'; - PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); - $err = System::mkdir(array('-p', $tmpdir)); - PEAR::staticPopErrorHandling(); - if (PEAR::isError($err)) { - return $this->raiseError('channel-add: temp_dir does not exist: "' . - $tmpdir . - '" - You can change this location with "pear config-set temp_dir"'); - } - } - if (!is_writable($tmpdir)) { - return $this->raiseError('channel-add: temp_dir is not writable: "' . - $tmpdir . - '" - You can change this location with "pear config-set temp_dir"'); - } - $reg = &$this->config->getRegistry(); - if (sizeof($params) != 1) { - return $this->raiseError("No channel file specified"); - } - $lastmodified = false; - if ((!file_exists($params[0]) || is_dir($params[0])) - && $reg->channelExists(strtolower($params[0]))) { - $c = $reg->getChannel(strtolower($params[0])); - if (PEAR::isError($c)) { - return $this->raiseError($c); - } - $this->ui->outputData("Updating channel \"$params[0]\"", $command); - $dl = &$this->getDownloader(array()); - // if force is specified, use a timestamp of "1" to force retrieval - $lastmodified = isset($options['force']) ? false : $c->lastModified(); - PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); - $contents = $dl->downloadHttp('http://' . $c->getName() . '/channel.xml', - $this->ui, $tmpdir, null, $lastmodified); - PEAR::staticPopErrorHandling(); - if (PEAR::isError($contents)) { - return $this->raiseError('Cannot retrieve channel.xml for channel "' . - $c->getName() . '" (' . $contents->getMessage() . ')'); - } - list($contents, $lastmodified) = $contents; - if (!$contents) { - $this->ui->outputData("Channel \"$params[0]\" is up to date"); - return; - } - $contents = implode('', file($contents)); - if (!class_exists('PEAR_ChannelFile')) { - require_once 'PEAR/ChannelFile.php'; - } - $channel = new PEAR_ChannelFile; - $channel->fromXmlString($contents); - if (!$channel->getErrors()) { - // security check: is the downloaded file for the channel we got it from? - if (strtolower($channel->getName()) != strtolower($c->getName())) { - if (isset($options['force'])) { - $this->ui->log(0, 'WARNING: downloaded channel definition file' . - ' for channel "' . $channel->getName() . '" from channel "' . - strtolower($c->getName()) . '"'); - } else { - return $this->raiseError('ERROR: downloaded channel definition file' . - ' for channel "' . $channel->getName() . '" from channel "' . - strtolower($c->getName()) . '"'); - } - } - } - } else { - if (strpos($params[0], '://')) { - $dl = &$this->getDownloader(); - PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); - $loc = $dl->downloadHttp($params[0], - $this->ui, $tmpdir, null, $lastmodified); - PEAR::staticPopErrorHandling(); - if (PEAR::isError($loc)) { - return $this->raiseError("Cannot open " . $params[0] . - ' (' . $loc->getMessage() . ')'); - } else { - list($loc, $lastmodified) = $loc; - $contents = implode('', file($loc)); - } - } else { - $fp = false; - if (file_exists($params[0])) { - $fp = fopen($params[0], 'r'); - } - if (!$fp) { - return $this->raiseError("Cannot open " . $params[0]); - } - $contents = ''; - while (!feof($fp)) { - $contents .= fread($fp, 1024); - } - fclose($fp); - } - if (!class_exists('PEAR_ChannelFile')) { - require_once 'PEAR/ChannelFile.php'; - } - $channel = new PEAR_ChannelFile; - $channel->fromXmlString($contents); - } - $exit = false; - if (count($errors = $channel->getErrors(true))) { - foreach ($errors as $error) { - $this->ui->outputData(ucfirst($error['level'] . ': ' . $error['message'])); - if (!$exit) { - $exit = $error['level'] == 'error' ? true : false; - } - } - if ($exit) { - return $this->raiseError('Invalid channel.xml file'); - } - } - if (!$reg->channelExists($channel->getName())) { - return $this->raiseError('Error: Channel "' . $channel->getName() . - '" does not exist, use channel-add to add an entry'); - } - $ret = $reg->updateChannel($channel, $lastmodified); - if (PEAR::isError($ret)) { - return $ret; - } - if (!$ret) { - return $this->raiseError('Updating Channel "' . $channel->getName() . - '" in registry failed'); - } - $this->config->setChannels($reg->listChannels()); - $this->config->writeConfigFile(); - $this->ui->outputData('Update of Channel "' . $channel->getName() . '" succeeded'); - } - - function &getDownloader() - { - if (!class_exists('PEAR_Downloader')) { - require_once 'PEAR/Downloader.php'; - } - $a = new PEAR_Downloader($this->ui, array(), $this->config); - return $a; - } - - function doAlias($command, $options, $params) - { - $reg = &$this->config->getRegistry(); - if (sizeof($params) == 1) { - return $this->raiseError('No channel alias specified'); - } - if (sizeof($params) != 2) { - return $this->raiseError( - 'Invalid format, correct is: channel-alias channel alias'); - } - if (!$reg->channelExists($params[0], true)) { - if ($reg->isAlias($params[0])) { - $extra = ' (use "channel-alias ' . $reg->channelName($params[0]) . ' ' . - strtolower($params[1]) . '")'; - } else { - $extra = ''; - } - return $this->raiseError('"' . $params[0] . '" is not a valid channel' . $extra); - } - if ($reg->isAlias($params[1])) { - return $this->raiseError('Channel "' . $reg->channelName($params[1]) . '" is ' . - 'already aliased to "' . strtolower($params[1]) . '", cannot re-alias'); - } - $chan = &$reg->getChannel($params[0]); - if (PEAR::isError($chan)) { - return $this->raiseError('Corrupt registry? Error retrieving channel "' . $params[0] . - '" information (' . $chan->getMessage() . ')'); - } - // make it a local alias - if (!$chan->setAlias(strtolower($params[1]), true)) { - return $this->raiseError('Alias "' . strtolower($params[1]) . - '" is not a valid channel alias'); - } - $reg->updateChannel($chan); - $this->ui->outputData('Channel "' . $chan->getName() . '" aliased successfully to "' . - strtolower($params[1]) . '"'); - } - - /** - * The channel-discover command - * - * @param string $command command name - * @param array $options option_name => value - * @param array $params list of additional parameters. - * $params[0] should contain a string with either: - * - <channel name> or - * - <username>:<password>@<channel name> - * @return null|PEAR_Error - */ - function doDiscover($command, $options, $params) - { - $reg = &$this->config->getRegistry(); - if (sizeof($params) != 1) { - return $this->raiseError("No channel server specified"); - } - - // Look for the possible input format "<username>:<password>@<channel>" - if (preg_match('/^(.+):(.+)@(.+)\\z/', $params[0], $matches)) { - $username = $matches[1]; - $password = $matches[2]; - $channel = $matches[3]; - } else { - $channel = $params[0]; - } - - if ($reg->channelExists($channel)) { - if ($reg->isAlias($channel)) { - return $this->raiseError("A channel alias named \"$channel\" " . - 'already exists, aliasing channel "' . $reg->channelName($channel) - . '"'); - } else { - return $this->raiseError("Channel \"$channel\" is already initialized"); - } - } - $this->pushErrorHandling(PEAR_ERROR_RETURN); - $err = $this->doAdd($command, $options, array('http://' . $channel . '/channel.xml')); - $this->popErrorHandling(); - if (PEAR::isError($err)) { - return $this->raiseError("Discovery of channel \"$channel\" failed (" . - $err->getMessage() . ')'); - } - - // Store username/password if they were given - // Arguably we should do a logintest on the channel here, but since - // that's awkward on a REST-based channel (even "pear login" doesn't - // do it for those), and XML-RPC is deprecated, it's fairly pointless. - if (isset($username)) { - $this->config->set('username', $username, 'user', $channel); - $this->config->set('password', $password, 'user', $channel); - $this->config->store(); - $this->ui->outputData("Stored login for channel \"$channel\" using username \"$username\"", $command); - } - - $this->ui->outputData("Discovery of channel \"$channel\" succeeded", $command); - } -} -?> diff --git a/src/vitis/vas/rest/class/PEAR/Command/Channels.xml b/src/vitis/vas/rest/class/PEAR/Command/Channels.xml deleted file mode 100755 index e7c7b7fe..00000000 --- a/src/vitis/vas/rest/class/PEAR/Command/Channels.xml +++ /dev/null @@ -1,98 +0,0 @@ -<commands version="1.0"> - <list-channels> - <summary>List Available Channels</summary> - <function>doList</function> - <shortcut>lc</shortcut> - <options /> - <doc> -List all available channels for installation. -</doc> - </list-channels> - <update-channels> - <summary>Update the Channel List</summary> - <function>doUpdateAll</function> - <shortcut>uc</shortcut> - <options /> - <doc> -List all installed packages in all channels. -</doc> - </update-channels> - <channel-delete> - <summary>Remove a Channel From the List</summary> - <function>doDelete</function> - <shortcut>cde</shortcut> - <options /> - <doc><channel name> -Delete a channel from the registry. You may not -remove any channel that has installed packages. -</doc> - </channel-delete> - <channel-add> - <summary>Add a Channel</summary> - <function>doAdd</function> - <shortcut>ca</shortcut> - <options /> - <doc><channel.xml> -Add a private channel to the channel list. Note that all -public channels should be synced using "update-channels". -Parameter may be either a local file or remote URL to a -channel.xml. -</doc> - </channel-add> - <channel-update> - <summary>Update an Existing Channel</summary> - <function>doUpdate</function> - <shortcut>cu</shortcut> - <options> - <force> - <shortopt>f</shortopt> - <doc>will force download of new channel.xml if an existing channel name is used</doc> - </force> - <channel> - <shortopt>c</shortopt> - <arg>CHANNEL</arg> - <doc>will force download of new channel.xml if an existing channel name is used</doc> - </channel> - </options> - <doc>[<channel.xml>|<channel name>] -Update a channel in the channel list directly. Note that all -public channels can be synced using "update-channels". -Parameter may be a local or remote channel.xml, or the name of -an existing channel. -</doc> - </channel-update> - <channel-info> - <summary>Retrieve Information on a Channel</summary> - <function>doInfo</function> - <shortcut>ci</shortcut> - <options /> - <doc><package> -List the files in an installed package. -</doc> - </channel-info> - <channel-alias> - <summary>Specify an alias to a channel name</summary> - <function>doAlias</function> - <shortcut>cha</shortcut> - <options /> - <doc><channel> <alias> -Specify a specific alias to use for a channel name. -The alias may not be an existing channel name or -alias. -</doc> - </channel-alias> - <channel-discover> - <summary>Initialize a Channel from its server</summary> - <function>doDiscover</function> - <shortcut>di</shortcut> - <options /> - <doc>[<channel.xml>|<channel name>] -Initialize a channel from its server and create a local channel.xml. -If <channel name> is in the format "<username>:<password>@<channel>" then -<username> and <password> will be set as the login username/password for -<channel>. Use caution when passing the username/password in this way, as -it may allow other users on your computer to briefly view your username/ -password via the system's process list. -</doc> - </channel-discover> -</commands> diff --git a/src/vitis/vas/rest/class/PEAR/Command/Common.php b/src/vitis/vas/rest/class/PEAR/Command/Common.php deleted file mode 100755 index 41595403..00000000 --- a/src/vitis/vas/rest/class/PEAR/Command/Common.php +++ /dev/null @@ -1,291 +0,0 @@ -<?php -/** - * PEAR_Command_Common base class - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Stig Bakken <ssb@php.net> - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Common.php,v 1.36 2008/01/03 20:26:36 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 0.1 - */ - -/** - * base class - */ -require_once 'PEAR.php'; - -/** - * PEAR commands base class - * - * @category pear - * @package PEAR - * @author Stig Bakken <ssb@php.net> - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 0.1 - */ -class PEAR_Command_Common extends PEAR -{ - // {{{ properties - - /** - * PEAR_Config object used to pass user system and configuration - * on when executing commands - * - * @var PEAR_Config - */ - var $config; - /** - * @var PEAR_Registry - * @access protected - */ - var $_registry; - - /** - * User Interface object, for all interaction with the user. - * @var object - */ - var $ui; - - var $_deps_rel_trans = array( - 'lt' => '<', - 'le' => '<=', - 'eq' => '=', - 'ne' => '!=', - 'gt' => '>', - 'ge' => '>=', - 'has' => '==' - ); - - var $_deps_type_trans = array( - 'pkg' => 'package', - 'ext' => 'extension', - 'php' => 'PHP', - 'prog' => 'external program', - 'ldlib' => 'external library for linking', - 'rtlib' => 'external runtime library', - 'os' => 'operating system', - 'websrv' => 'web server', - 'sapi' => 'SAPI backend' - ); - - // }}} - // {{{ constructor - - /** - * PEAR_Command_Common constructor. - * - * @access public - */ - function PEAR_Command_Common(&$ui, &$config) - { - parent::PEAR(); - $this->config = &$config; - $this->ui = &$ui; - } - - // }}} - - // {{{ getCommands() - - /** - * Return a list of all the commands defined by this class. - * @return array list of commands - * @access public - */ - function getCommands() - { - $ret = array(); - foreach (array_keys($this->commands) as $command) { - $ret[$command] = $this->commands[$command]['summary']; - } - return $ret; - } - - // }}} - // {{{ getShortcuts() - - /** - * Return a list of all the command shortcuts defined by this class. - * @return array shortcut => command - * @access public - */ - function getShortcuts() - { - $ret = array(); - foreach (array_keys($this->commands) as $command) { - if (isset($this->commands[$command]['shortcut'])) { - $ret[$this->commands[$command]['shortcut']] = $command; - } - } - return $ret; - } - - // }}} - // {{{ getOptions() - - function getOptions($command) - { - $shortcuts = $this->getShortcuts(); - if (isset($shortcuts[$command])) { - $command = $shortcuts[$command]; - } - if (isset($this->commands[$command]) && - isset($this->commands[$command]['options'])) { - return $this->commands[$command]['options']; - } else { - return null; - } - } - - // }}} - // {{{ getGetoptArgs() - - function getGetoptArgs($command, &$short_args, &$long_args) - { - $short_args = ""; - $long_args = array(); - if (empty($this->commands[$command]) || empty($this->commands[$command]['options'])) { - return; - } - reset($this->commands[$command]['options']); - while (list($option, $info) = each($this->commands[$command]['options'])) { - $larg = $sarg = ''; - if (isset($info['arg'])) { - if ($info['arg']{0} == '(') { - $larg = '=='; - $sarg = '::'; - $arg = substr($info['arg'], 1, -1); - } else { - $larg = '='; - $sarg = ':'; - $arg = $info['arg']; - } - } - if (isset($info['shortopt'])) { - $short_args .= $info['shortopt'] . $sarg; - } - $long_args[] = $option . $larg; - } - } - - // }}} - // {{{ getHelp() - /** - * Returns the help message for the given command - * - * @param string $command The command - * @return mixed A fail string if the command does not have help or - * a two elements array containing [0]=>help string, - * [1]=> help string for the accepted cmd args - */ - function getHelp($command) - { - $config = &PEAR_Config::singleton(); - if (!isset($this->commands[$command])) { - return "No such command \"$command\""; - } - $help = null; - if (isset($this->commands[$command]['doc'])) { - $help = $this->commands[$command]['doc']; - } - if (empty($help)) { - // XXX (cox) Fallback to summary if there is no doc (show both?) - if (!isset($this->commands[$command]['summary'])) { - return "No help for command \"$command\""; - } - $help = $this->commands[$command]['summary']; - } - if (preg_match_all('/{config\s+([^\}]+)}/e', $help, $matches)) { - foreach($matches[0] as $k => $v) { - $help = preg_replace("/$v/", $config->get($matches[1][$k]), $help); - } - } - return array($help, $this->getHelpArgs($command)); - } - - // }}} - // {{{ getHelpArgs() - /** - * Returns the help for the accepted arguments of a command - * - * @param string $command - * @return string The help string - */ - function getHelpArgs($command) - { - if (isset($this->commands[$command]['options']) && - count($this->commands[$command]['options'])) - { - $help = "Options:\n"; - foreach ($this->commands[$command]['options'] as $k => $v) { - if (isset($v['arg'])) { - if ($v['arg'][0] == '(') { - $arg = substr($v['arg'], 1, -1); - $sapp = " [$arg]"; - $lapp = "[=$arg]"; - } else { - $sapp = " $v[arg]"; - $lapp = "=$v[arg]"; - } - } else { - $sapp = $lapp = ""; - } - if (isset($v['shortopt'])) { - $s = $v['shortopt']; - $help .= " -$s$sapp, --$k$lapp\n"; - } else { - $help .= " --$k$lapp\n"; - } - $p = " "; - $doc = rtrim(str_replace("\n", "\n$p", $v['doc'])); - $help .= " $doc\n"; - } - return $help; - } - return null; - } - - // }}} - // {{{ run() - - function run($command, $options, $params) - { - if (empty($this->commands[$command]['function'])) { - // look for shortcuts - foreach (array_keys($this->commands) as $cmd) { - if (isset($this->commands[$cmd]['shortcut']) && $this->commands[$cmd]['shortcut'] == $command) { - if (empty($this->commands[$cmd]['function'])) { - return $this->raiseError("unknown command `$command'"); - } else { - $func = $this->commands[$cmd]['function']; - } - $command = $cmd; - break; - } - } - } else { - $func = $this->commands[$command]['function']; - } - return $this->$func($command, $options, $params); - } - - // }}} -} - -?> diff --git a/src/vitis/vas/rest/class/PEAR/Command/Config.php b/src/vitis/vas/rest/class/PEAR/Command/Config.php deleted file mode 100755 index d8179d3a..00000000 --- a/src/vitis/vas/rest/class/PEAR/Command/Config.php +++ /dev/null @@ -1,422 +0,0 @@ -<?php -/** - * PEAR_Command_Config (config-show, config-get, config-set, config-help, config-create commands) - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Stig Bakken <ssb@php.net> - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Config.php,v 1.56 2008/01/03 20:26:36 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 0.1 - */ - -/** - * base class - */ -require_once 'PEAR/Command/Common.php'; - -/** - * PEAR commands for managing configuration data. - * - * @category pear - * @package PEAR - * @author Stig Bakken <ssb@php.net> - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 0.1 - */ -class PEAR_Command_Config extends PEAR_Command_Common -{ - // {{{ properties - - var $commands = array( - 'config-show' => array( - 'summary' => 'Show All Settings', - 'function' => 'doConfigShow', - 'shortcut' => 'csh', - 'options' => array( - 'channel' => array( - 'shortopt' => 'c', - 'doc' => 'show configuration variables for another channel', - 'arg' => 'CHAN', - ), -), - 'doc' => '[layer] -Displays all configuration values. An optional argument -may be used to tell which configuration layer to display. Valid -configuration layers are "user", "system" and "default". To display -configurations for different channels, set the default_channel -configuration variable and run config-show again. -', - ), - 'config-get' => array( - 'summary' => 'Show One Setting', - 'function' => 'doConfigGet', - 'shortcut' => 'cg', - 'options' => array( - 'channel' => array( - 'shortopt' => 'c', - 'doc' => 'show configuration variables for another channel', - 'arg' => 'CHAN', - ), -), - 'doc' => '<parameter> [layer] -Displays the value of one configuration parameter. The -first argument is the name of the parameter, an optional second argument -may be used to tell which configuration layer to look in. Valid configuration -layers are "user", "system" and "default". If no layer is specified, a value -will be picked from the first layer that defines the parameter, in the order -just specified. The configuration value will be retrieved for the channel -specified by the default_channel configuration variable. -', - ), - 'config-set' => array( - 'summary' => 'Change Setting', - 'function' => 'doConfigSet', - 'shortcut' => 'cs', - 'options' => array( - 'channel' => array( - 'shortopt' => 'c', - 'doc' => 'show configuration variables for another channel', - 'arg' => 'CHAN', - ), -), - 'doc' => '<parameter> <value> [layer] -Sets the value of one configuration parameter. The first argument is -the name of the parameter, the second argument is the new value. Some -parameters are subject to validation, and the command will fail with -an error message if the new value does not make sense. An optional -third argument may be used to specify in which layer to set the -configuration parameter. The default layer is "user". The -configuration value will be set for the current channel, which -is controlled by the default_channel configuration variable. -', - ), - 'config-help' => array( - 'summary' => 'Show Information About Setting', - 'function' => 'doConfigHelp', - 'shortcut' => 'ch', - 'options' => array(), - 'doc' => '[parameter] -Displays help for a configuration parameter. Without arguments it -displays help for all configuration parameters. -', - ), - 'config-create' => array( - 'summary' => 'Create a Default configuration file', - 'function' => 'doConfigCreate', - 'shortcut' => 'coc', - 'options' => array( - 'windows' => array( - 'shortopt' => 'w', - 'doc' => 'create a config file for a windows install', - ), - ), - 'doc' => '<root path> <filename> -Create a default configuration file with all directory configuration -variables set to subdirectories of <root path>, and save it as <filename>. -This is useful especially for creating a configuration file for a remote -PEAR installation (using the --remoteconfig option of install, upgrade, -and uninstall). -', - ), - ); - - // }}} - // {{{ constructor - - /** - * PEAR_Command_Config constructor. - * - * @access public - */ - function PEAR_Command_Config(&$ui, &$config) - { - parent::PEAR_Command_Common($ui, $config); - } - - // }}} - - // {{{ doConfigShow() - - function doConfigShow($command, $options, $params) - { - if (is_array($params)) { - $layer = isset($params[0]) ? $params[0] : NULL; - } else { - $layer = NULL; - } - - // $params[0] -> the layer - if ($error = $this->_checkLayer($layer)) { - return $this->raiseError("config-show:$error"); - } - $keys = $this->config->getKeys(); - sort($keys); - $channel = isset($options['channel']) ? $options['channel'] : - $this->config->get('default_channel'); - $reg = &$this->config->getRegistry(); - if (!$reg->channelExists($channel)) { - return $this->raiseError('Channel "' . $channel . '" does not exist'); - } - $data = array('caption' => 'Configuration (channel ' . $channel . '):'); - foreach ($keys as $key) { - $type = $this->config->getType($key); - $value = $this->config->get($key, $layer, $channel); - if ($type == 'password' && $value) { - $value = '********'; - } - if ($value === false) { - $value = 'false'; - } elseif ($value === true) { - $value = 'true'; - } - $data['data'][$this->config->getGroup($key)][] = array($this->config->getPrompt($key) , $key, $value); - } - foreach ($this->config->getLayers() as $layer) { - $data['data']['Config Files'][] = array(ucfirst($layer) . ' Configuration File', 'Filename' , $this->config->getConfFile($layer)); - } - - $this->ui->outputData($data, $command); - return true; - } - - // }}} - // {{{ doConfigGet() - - function doConfigGet($command, $options, $params) - { - if (!is_array($params)) { - $args_cnt = 0; - } else { - $args_cnt = count($params); - } - - switch ($args_cnt) { - case 1: - $config_key = $params[0]; - $layer = NULL; - break; - case 2: - $config_key = $params[0]; - $layer = $params[1]; - if ($error = $this->_checkLayer($layer)) { - return $this->raiseError("config-get:$error"); - } - break; - case 0: - default: - return $this->raiseError("config-get expects 1 or 2 parameters"); - } - - $channel = isset($options['channel']) ? $options['channel'] : $this->config->get('default_channel'); - $reg = &$this->config->getRegistry(); - - if (!$reg->channelExists($channel)) { - return $this->raiseError('Channel "' . $channel . '" does not exist'); - } - - $this->ui->outputData($this->config->get($config_key, $layer, $channel), $command); - - return true; - } - - // }}} - // {{{ doConfigSet() - - function doConfigSet($command, $options, $params) - { - // $param[0] -> a parameter to set - // $param[1] -> the value for the parameter - // $param[2] -> the layer - $failmsg = ''; - if (sizeof($params) < 2 || sizeof($params) > 3) { - $failmsg .= "config-set expects 2 or 3 parameters"; - return PEAR::raiseError($failmsg); - } - if (isset($params[2]) && ($error = $this->_checkLayer($params[2]))) { - $failmsg .= $error; - return PEAR::raiseError("config-set:$failmsg"); - } - $channel = isset($options['channel']) ? $options['channel'] : - $this->config->get('default_channel'); - $reg = &$this->config->getRegistry(); - if (!$reg->channelExists($channel)) { - return $this->raiseError('Channel "' . $channel . '" does not exist'); - } - if ($params[0] == 'default_channel') { - if (!$reg->channelExists($params[1])) { - return $this->raiseError('Channel "' . $params[1] . '" does not exist'); - } - } - if (count($params) == 2) { - array_push($params, 'user'); - $layer = 'user'; - } else { - $layer = $params[2]; - } - array_push($params, $channel); - if (!call_user_func_array(array(&$this->config, 'set'), $params)) - { - array_pop($params); - $failmsg = "config-set (" . implode(", ", $params) . ") failed, channel $channel"; - } else { - $this->config->store($layer); - } - if ($failmsg) { - return $this->raiseError($failmsg); - } - $this->ui->outputData('config-set succeeded', $command); - return true; - } - - // }}} - // {{{ doConfigHelp() - - function doConfigHelp($command, $options, $params) - { - if (empty($params)) { - $params = $this->config->getKeys(); - } - $data['caption'] = "Config help" . ((count($params) == 1) ? " for $params[0]" : ''); - $data['headline'] = array('Name', 'Type', 'Description'); - $data['border'] = true; - foreach ($params as $name) { - $type = $this->config->getType($name); - $docs = $this->config->getDocs($name); - if ($type == 'set') { - $docs = rtrim($docs) . "\nValid set: " . - implode(' ', $this->config->getSetValues($name)); - } - $data['data'][] = array($name, $type, $docs); - } - $this->ui->outputData($data, $command); - } - - // }}} - // {{{ doConfigCreate() - - function doConfigCreate($command, $options, $params) - { - if (count($params) != 2) { - return PEAR::raiseError('config-create: must have 2 parameters, root path and ' . - 'filename to save as'); - } - $root = $params[0]; - // Clean up the DIRECTORY_SEPARATOR mess - $ds2 = DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR; - $root = preg_replace(array('!\\\\+!', '!/+!', "!$ds2+!"), - array('/', '/', '/'), - $root); - if ($root{0} != '/') { - if (isset($options['windows'])) { - if (!preg_match('/^[A-Za-z]:/', $root)) { - return PEAR::raiseError('Root directory must be an absolute path beginning ' . - 'with "\\" or "C:\\", was: "' . $root . '"'); - } - } else { - return PEAR::raiseError('Root directory must be an absolute path beginning ' . - 'with "/", was: "' . $root . '"'); - } - } - $windows = isset($options['windows']); - if ($windows) { - $root = str_replace('/', '\\', $root); - } - if (!file_exists($params[1])) { - if (!@touch($params[1])) { - return PEAR::raiseError('Could not create "' . $params[1] . '"'); - } - } - $params[1] = realpath($params[1]); - $config = &new PEAR_Config($params[1], '#no#system#config#', false, false); - if ($root{strlen($root) - 1} == '/') { - $root = substr($root, 0, strlen($root) - 1); - } - $config->noRegistry(); - $config->set('php_dir', $windows ? "$root\\pear\\php" : "$root/pear/php", 'user'); - $config->set('data_dir', $windows ? "$root\\pear\\data" : "$root/pear/data"); - $config->set('www_dir', $windows ? "$root\\pear\\www" : "$root/pear/www"); - $config->set('cfg_dir', $windows ? "$root\\pear\\cfg" : "$root/pear/cfg"); - $config->set('ext_dir', $windows ? "$root\\pear\\ext" : "$root/pear/ext"); - $config->set('doc_dir', $windows ? "$root\\pear\\docs" : "$root/pear/docs"); - $config->set('test_dir', $windows ? "$root\\pear\\tests" : "$root/pear/tests"); - $config->set('cache_dir', $windows ? "$root\\pear\\cache" : "$root/pear/cache"); - $config->set('download_dir', $windows ? "$root\\pear\\download" : "$root/pear/download"); - $config->set('temp_dir', $windows ? "$root\\pear\\temp" : "$root/pear/temp"); - $config->set('bin_dir', $windows ? "$root\\pear" : "$root/pear"); - $config->writeConfigFile(); - $this->_showConfig($config); - $this->ui->outputData('Successfully created default configuration file "' . $params[1] . '"', - $command); - } - - // }}} - - function _showConfig(&$config) - { - $params = array('user'); - $keys = $config->getKeys(); - sort($keys); - $channel = 'pear.php.net'; - $data = array('caption' => 'Configuration (channel ' . $channel . '):'); - foreach ($keys as $key) { - $type = $config->getType($key); - $value = $config->get($key, 'user', $channel); - if ($type == 'password' && $value) { - $value = '********'; - } - if ($value === false) { - $value = 'false'; - } elseif ($value === true) { - $value = 'true'; - } - $data['data'][$config->getGroup($key)][] = - array($config->getPrompt($key) , $key, $value); - } - foreach ($config->getLayers() as $layer) { - $data['data']['Config Files'][] = - array(ucfirst($layer) . ' Configuration File', 'Filename' , - $config->getConfFile($layer)); - } - - $this->ui->outputData($data, 'config-show'); - return true; - } - // {{{ _checkLayer() - - /** - * Checks if a layer is defined or not - * - * @param string $layer The layer to search for - * @return mixed False on no error or the error message - */ - function _checkLayer($layer = null) - { - if (!empty($layer) && $layer != 'default') { - $layers = $this->config->getLayers(); - if (!in_array($layer, $layers)) { - return " only the layers: \"" . implode('" or "', $layers) . "\" are supported"; - } - } - return false; - } - - // }}} -} - -?> diff --git a/src/vitis/vas/rest/class/PEAR/Command/Config.xml b/src/vitis/vas/rest/class/PEAR/Command/Config.xml deleted file mode 100755 index f64a925f..00000000 --- a/src/vitis/vas/rest/class/PEAR/Command/Config.xml +++ /dev/null @@ -1,92 +0,0 @@ -<commands version="1.0"> - <config-show> - <summary>Show All Settings</summary> - <function>doConfigShow</function> - <shortcut>csh</shortcut> - <options> - <channel> - <shortopt>c</shortopt> - <doc>show configuration variables for another channel</doc> - <arg>CHAN</arg> - </channel> - </options> - <doc>[layer] -Displays all configuration values. An optional argument -may be used to tell which configuration layer to display. Valid -configuration layers are "user", "system" and "default". To display -configurations for different channels, set the default_channel -configuration variable and run config-show again. -</doc> - </config-show> - <config-get> - <summary>Show One Setting</summary> - <function>doConfigGet</function> - <shortcut>cg</shortcut> - <options> - <channel> - <shortopt>c</shortopt> - <doc>show configuration variables for another channel</doc> - <arg>CHAN</arg> - </channel> - </options> - <doc><parameter> [layer] -Displays the value of one configuration parameter. The -first argument is the name of the parameter, an optional second argument -may be used to tell which configuration layer to look in. Valid configuration -layers are "user", "system" and "default". If no layer is specified, a value -will be picked from the first layer that defines the parameter, in the order -just specified. The configuration value will be retrieved for the channel -specified by the default_channel configuration variable. -</doc> - </config-get> - <config-set> - <summary>Change Setting</summary> - <function>doConfigSet</function> - <shortcut>cs</shortcut> - <options> - <channel> - <shortopt>c</shortopt> - <doc>show configuration variables for another channel</doc> - <arg>CHAN</arg> - </channel> - </options> - <doc><parameter> <value> [layer] -Sets the value of one configuration parameter. The first argument is -the name of the parameter, the second argument is the new value. Some -parameters are subject to validation, and the command will fail with -an error message if the new value does not make sense. An optional -third argument may be used to specify in which layer to set the -configuration parameter. The default layer is "user". The -configuration value will be set for the current channel, which -is controlled by the default_channel configuration variable. -</doc> - </config-set> - <config-help> - <summary>Show Information About Setting</summary> - <function>doConfigHelp</function> - <shortcut>ch</shortcut> - <options /> - <doc>[parameter] -Displays help for a configuration parameter. Without arguments it -displays help for all configuration parameters. -</doc> - </config-help> - <config-create> - <summary>Create a Default configuration file</summary> - <function>doConfigCreate</function> - <shortcut>coc</shortcut> - <options> - <windows> - <shortopt>w</shortopt> - <doc>create a config file for a windows install</doc> - </windows> - </options> - <doc><root path> <filename> -Create a default configuration file with all directory configuration -variables set to subdirectories of <root path>, and save it as <filename>. -This is useful especially for creating a configuration file for a remote -PEAR installation (using the --remoteconfig option of install, upgrade, -and uninstall). -</doc> - </config-create> -</commands> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/Command/Install.php b/src/vitis/vas/rest/class/PEAR/Command/Install.php deleted file mode 100755 index fba43820..00000000 --- a/src/vitis/vas/rest/class/PEAR/Command/Install.php +++ /dev/null @@ -1,1188 +0,0 @@ -<?php -/** - * PEAR_Command_Install (install, upgrade, upgrade-all, uninstall, bundle, run-scripts commands) - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Stig Bakken <ssb@php.net> - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Install.php,v 1.141 2008/05/13 18:32:29 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 0.1 - */ - -/** - * base class - */ -require_once 'PEAR/Command/Common.php'; - -/** - * PEAR commands for installation or deinstallation/upgrading of - * packages. - * - * @category pear - * @package PEAR - * @author Stig Bakken <ssb@php.net> - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 0.1 - */ -class PEAR_Command_Install extends PEAR_Command_Common -{ - // {{{ properties - - var $commands = array( - 'install' => array( - 'summary' => 'Install Package', - 'function' => 'doInstall', - 'shortcut' => 'i', - 'options' => array( - 'force' => array( - 'shortopt' => 'f', - 'doc' => 'will overwrite newer installed packages', - ), - 'loose' => array( - 'shortopt' => 'l', - 'doc' => 'do not check for recommended dependency version', - ), - 'nodeps' => array( - 'shortopt' => 'n', - 'doc' => 'ignore dependencies, install anyway', - ), - 'register-only' => array( - 'shortopt' => 'r', - 'doc' => 'do not install files, only register the package as installed', - ), - 'soft' => array( - 'shortopt' => 's', - 'doc' => 'soft install, fail silently, or upgrade if already installed', - ), - 'nobuild' => array( - 'shortopt' => 'B', - 'doc' => 'don\'t build C extensions', - ), - 'nocompress' => array( - 'shortopt' => 'Z', - 'doc' => 'request uncompressed files when downloading', - ), - 'installroot' => array( - 'shortopt' => 'R', - 'arg' => 'DIR', - 'doc' => 'root directory used when installing files (ala PHP\'s INSTALL_ROOT), use packagingroot for RPM', - ), - 'packagingroot' => array( - 'shortopt' => 'P', - 'arg' => 'DIR', - 'doc' => 'root directory used when packaging files, like RPM packaging', - ), - 'ignore-errors' => array( - 'doc' => 'force install even if there were errors', - ), - 'alldeps' => array( - 'shortopt' => 'a', - 'doc' => 'install all required and optional dependencies', - ), - 'onlyreqdeps' => array( - 'shortopt' => 'o', - 'doc' => 'install all required dependencies', - ), - 'offline' => array( - 'shortopt' => 'O', - 'doc' => 'do not attempt to download any urls or contact channels', - ), - 'pretend' => array( - 'shortopt' => 'p', - 'doc' => 'Only list the packages that would be downloaded', - ), - ), - 'doc' => '[channel/]<package> ... -Installs one or more PEAR packages. You can specify a package to -install in four ways: - -"Package-1.0.tgz" : installs from a local file - -"http://example.com/Package-1.0.tgz" : installs from -anywhere on the net. - -"package.xml" : installs the package described in -package.xml. Useful for testing, or for wrapping a PEAR package in -another package manager such as RPM. - -"Package[-version/state][.tar]" : queries your default channel\'s server -({config master_server}) and downloads the newest package with -the preferred quality/state ({config preferred_state}). - -To retrieve Package version 1.1, use "Package-1.1," to retrieve -Package state beta, use "Package-beta." To retrieve an uncompressed -file, append .tar (make sure there is no file by the same name first) - -To download a package from another channel, prefix with the channel name like -"channel/Package" - -More than one package may be specified at once. It is ok to mix these -four ways of specifying packages. -'), - 'upgrade' => array( - 'summary' => 'Upgrade Package', - 'function' => 'doInstall', - 'shortcut' => 'up', - 'options' => array( - 'force' => array( - 'shortopt' => 'f', - 'doc' => 'overwrite newer installed packages', - ), - 'loose' => array( - 'shortopt' => 'l', - 'doc' => 'do not check for recommended dependency version', - ), - 'nodeps' => array( - 'shortopt' => 'n', - 'doc' => 'ignore dependencies, upgrade anyway', - ), - 'register-only' => array( - 'shortopt' => 'r', - 'doc' => 'do not install files, only register the package as upgraded', - ), - 'nobuild' => array( - 'shortopt' => 'B', - 'doc' => 'don\'t build C extensions', - ), - 'nocompress' => array( - 'shortopt' => 'Z', - 'doc' => 'request uncompressed files when downloading', - ), - 'installroot' => array( - 'shortopt' => 'R', - 'arg' => 'DIR', - 'doc' => 'root directory used when installing files (ala PHP\'s INSTALL_ROOT)', - ), - 'ignore-errors' => array( - 'doc' => 'force install even if there were errors', - ), - 'alldeps' => array( - 'shortopt' => 'a', - 'doc' => 'install all required and optional dependencies', - ), - 'onlyreqdeps' => array( - 'shortopt' => 'o', - 'doc' => 'install all required dependencies', - ), - 'offline' => array( - 'shortopt' => 'O', - 'doc' => 'do not attempt to download any urls or contact channels', - ), - 'pretend' => array( - 'shortopt' => 'p', - 'doc' => 'Only list the packages that would be downloaded', - ), - ), - 'doc' => '<package> ... -Upgrades one or more PEAR packages. See documentation for the -"install" command for ways to specify a package. - -When upgrading, your package will be updated if the provided new -package has a higher version number (use the -f option if you need to -upgrade anyway). - -More than one package may be specified at once. -'), - 'upgrade-all' => array( - 'summary' => 'Upgrade All Packages', - 'function' => 'doUpgradeAll', - 'shortcut' => 'ua', - 'options' => array( - 'nodeps' => array( - 'shortopt' => 'n', - 'doc' => 'ignore dependencies, upgrade anyway', - ), - 'register-only' => array( - 'shortopt' => 'r', - 'doc' => 'do not install files, only register the package as upgraded', - ), - 'nobuild' => array( - 'shortopt' => 'B', - 'doc' => 'don\'t build C extensions', - ), - 'nocompress' => array( - 'shortopt' => 'Z', - 'doc' => 'request uncompressed files when downloading', - ), - 'installroot' => array( - 'shortopt' => 'R', - 'arg' => 'DIR', - 'doc' => 'root directory used when installing files (ala PHP\'s INSTALL_ROOT), use packagingroot for RPM', - ), - 'ignore-errors' => array( - 'doc' => 'force install even if there were errors', - ), - 'loose' => array( - 'doc' => 'do not check for recommended dependency version', - ), - ), - 'doc' => ' -Upgrades all packages that have a newer release available. Upgrades are -done only if there is a release available of the state specified in -"preferred_state" (currently {config preferred_state}), or a state considered -more stable. -'), - 'uninstall' => array( - 'summary' => 'Un-install Package', - 'function' => 'doUninstall', - 'shortcut' => 'un', - 'options' => array( - 'nodeps' => array( - 'shortopt' => 'n', - 'doc' => 'ignore dependencies, uninstall anyway', - ), - 'register-only' => array( - 'shortopt' => 'r', - 'doc' => 'do not remove files, only register the packages as not installed', - ), - 'installroot' => array( - 'shortopt' => 'R', - 'arg' => 'DIR', - 'doc' => 'root directory used when installing files (ala PHP\'s INSTALL_ROOT)', - ), - 'ignore-errors' => array( - 'doc' => 'force install even if there were errors', - ), - 'offline' => array( - 'shortopt' => 'O', - 'doc' => 'do not attempt to uninstall remotely', - ), - ), - 'doc' => '[channel/]<package> ... -Uninstalls one or more PEAR packages. More than one package may be -specified at once. Prefix with channel name to uninstall from a -channel not in your default channel ({config default_channel}) -'), - 'bundle' => array( - 'summary' => 'Unpacks a Pecl Package', - 'function' => 'doBundle', - 'shortcut' => 'bun', - 'options' => array( - 'destination' => array( - 'shortopt' => 'd', - 'arg' => 'DIR', - 'doc' => 'Optional destination directory for unpacking (defaults to current path or "ext" if exists)', - ), - 'force' => array( - 'shortopt' => 'f', - 'doc' => 'Force the unpacking even if there were errors in the package', - ), - ), - 'doc' => '<package> -Unpacks a Pecl Package into the selected location. It will download the -package if needed. -'), - 'run-scripts' => array( - 'summary' => 'Run Post-Install Scripts bundled with a package', - 'function' => 'doRunScripts', - 'shortcut' => 'rs', - 'options' => array( - ), - 'doc' => '<package> -Run post-installation scripts in package <package>, if any exist. -'), - ); - - // }}} - // {{{ constructor - - /** - * PEAR_Command_Install constructor. - * - * @access public - */ - function PEAR_Command_Install(&$ui, &$config) - { - parent::PEAR_Command_Common($ui, $config); - } - - // }}} - - /** - * For unit testing purposes - */ - function &getDownloader(&$ui, $options, &$config) - { - if (!class_exists('PEAR_Downloader')) { - require_once 'PEAR/Downloader.php'; - } - $a = &new PEAR_Downloader($ui, $options, $config); - return $a; - } - - /** - * For unit testing purposes - */ - function &getInstaller(&$ui) - { - if (!class_exists('PEAR_Installer')) { - require_once 'PEAR/Installer.php'; - } - $a = &new PEAR_Installer($ui); - return $a; - } - - function enableExtension($binaries, $type) - { - if (!($phpini = $this->config->get('php_ini', null, 'pear.php.net'))) { - return PEAR::raiseError('configuration option "php_ini" is not set to php.ini location'); - } - $ini = $this->_parseIni($phpini); - if (PEAR::isError($ini)) { - return $ini; - } - $line = 0; - if ($type == 'extsrc' || $type == 'extbin') { - $search = 'extensions'; - $enable = 'extension'; - } else { - $search = 'zend_extensions'; - ob_start(); - phpinfo(INFO_GENERAL); - $info = ob_get_contents(); - ob_end_clean(); - $debug = function_exists('leak') ? '_debug' : ''; - $ts = preg_match('Thread Safety.+enabled', $info) ? '_ts' : ''; - $enable = 'zend_extension' . $debug . $ts; - } - foreach ($ini[$search] as $line => $extension) { - if (in_array($extension, $binaries, true) || in_array( - $ini['extension_dir'] . DIRECTORY_SEPARATOR . $extension, $binaries, true)) { - // already enabled - assume if one is, all are - return true; - } - } - if ($line) { - $newini = array_slice($ini['all'], 0, $line); - } else { - $newini = array(); - } - foreach ($binaries as $binary) { - if ($ini['extension_dir']) { - $binary = basename($binary); - } - $newini[] = $enable . '="' . $binary . '"' . (OS_UNIX ? "\n" : "\r\n"); - } - $newini = array_merge($newini, array_slice($ini['all'], $line)); - $fp = @fopen($phpini, 'wb'); - if (!$fp) { - return PEAR::raiseError('cannot open php.ini "' . $phpini . '" for writing'); - } - foreach ($newini as $line) { - fwrite($fp, $line); - } - fclose($fp); - return true; - } - - function disableExtension($binaries, $type) - { - if (!($phpini = $this->config->get('php_ini', null, 'pear.php.net'))) { - return PEAR::raiseError('configuration option "php_ini" is not set to php.ini location'); - } - $ini = $this->_parseIni($phpini); - if (PEAR::isError($ini)) { - return $ini; - } - $line = 0; - if ($type == 'extsrc' || $type == 'extbin') { - $search = 'extensions'; - $enable = 'extension'; - } else { - $search = 'zend_extensions'; - ob_start(); - phpinfo(INFO_GENERAL); - $info = ob_get_contents(); - ob_end_clean(); - $debug = function_exists('leak') ? '_debug' : ''; - $ts = preg_match('Thread Safety.+enabled', $info) ? '_ts' : ''; - $enable = 'zend_extension' . $debug . $ts; - } - $found = false; - foreach ($ini[$search] as $line => $extension) { - if (in_array($extension, $binaries, true) || in_array( - $ini['extension_dir'] . DIRECTORY_SEPARATOR . $extension, $binaries, true)) { - $found = true; - break; - } - } - if (!$found) { - // not enabled - return true; - } - $fp = @fopen($phpini, 'wb'); - if (!$fp) { - return PEAR::raiseError('cannot open php.ini "' . $phpini . '" for writing'); - } - if ($line) { - $newini = array_slice($ini['all'], 0, $line); - // delete the enable line - $newini = array_merge($newini, array_slice($ini['all'], $line + 1)); - } else { - $newini = array_slice($ini['all'], 1); - } - foreach ($newini as $line) { - fwrite($fp, $line); - } - fclose($fp); - return true; - } - - function _parseIni($filename) - { - if (file_exists($filename)) { - if (filesize($filename) > 300000) { - return PEAR::raiseError('php.ini "' . $filename . '" is too large, aborting'); - } - ob_start(); - phpinfo(INFO_GENERAL); - $info = ob_get_contents(); - ob_end_clean(); - $debug = function_exists('leak') ? '_debug' : ''; - $ts = preg_match('/Thread Safety.+enabled/', $info) ? '_ts' : ''; - $zend_extension_line = 'zend_extension' . $debug . $ts; - $all = @file($filename); - if (!$all) { - return PEAR::raiseError('php.ini "' . $filename .'" could not be read'); - } - $zend_extensions = $extensions = array(); - // assume this is right, but pull from the php.ini if it is found - $extension_dir = ini_get('extension_dir'); - foreach ($all as $linenum => $line) { - $line = trim($line); - if (!$line) { - continue; - } - if ($line[0] == ';') { - continue; - } - if (strtolower(substr($line, 0, 13)) == 'extension_dir') { - $line = trim(substr($line, 13)); - if ($line[0] == '=') { - $x = trim(substr($line, 1)); - $x = explode(';', $x); - $extension_dir = str_replace('"', '', array_shift($x)); - continue; - } - } - if (strtolower(substr($line, 0, 9)) == 'extension') { - $line = trim(substr($line, 9)); - if ($line[0] == '=') { - $x = trim(substr($line, 1)); - $x = explode(';', $x); - $extensions[$linenum] = str_replace('"', '', array_shift($x)); - continue; - } - } - if (strtolower(substr($line, 0, strlen($zend_extension_line))) == - $zend_extension_line) { - $line = trim(substr($line, strlen($zend_extension_line))); - if ($line[0] == '=') { - $x = trim(substr($line, 1)); - $x = explode(';', $x); - $zend_extensions[$linenum] = str_replace('"', '', array_shift($x)); - continue; - } - } - } - return array( - 'extensions' => $extensions, - 'zend_extensions' => $zend_extensions, - 'extension_dir' => $extension_dir, - 'all' => $all, - ); - } else { - return PEAR::raiseError('php.ini "' . $filename . '" does not exist'); - } - } - - // {{{ doInstall() - - function doInstall($command, $options, $params) - { - if (!class_exists('PEAR_PackageFile')) { - require_once 'PEAR/PackageFile.php'; - } - if (empty($this->installer)) { - $this->installer = &$this->getInstaller($this->ui); - } - if ($command == 'upgrade' || $command == 'upgrade-all') { - $options['upgrade'] = true; - } else { - $packages = $params; - } - if (isset($options['installroot']) && isset($options['packagingroot'])) { - return $this->raiseError('ERROR: cannot use both --installroot and --packagingroot'); - } - $reg = &$this->config->getRegistry(); - $instreg = &$reg; // instreg used to check if package is installed - if (isset($options['packagingroot']) && !isset($options['upgrade'])) { - $packrootphp_dir = $this->installer->_prependPath( - $this->config->get('php_dir', null, 'pear.php.net'), - $options['packagingroot']); - $instreg = new PEAR_Registry($packrootphp_dir); // other instreg! - - if ($this->config->get('verbose') > 2) { - $this->ui->outputData('using package root: ' . $options['packagingroot']); - } - } - $abstractpackages = array(); - $otherpackages = array(); - // parse params - PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); - foreach($params as $param) { - if (strpos($param, 'http://') === 0) { - $otherpackages[] = $param; - continue; - } - if (strpos($param, 'channel://') === false && @file_exists($param)) { - if (isset($options['force'])) { - $otherpackages[] = $param; - continue; - } - $pkg = new PEAR_PackageFile($this->config); - $pf = $pkg->fromAnyFile($param, PEAR_VALIDATE_DOWNLOADING); - if (PEAR::isError($pf)) { - $otherpackages[] = $param; - continue; - } - if ($reg->packageExists($pf->getPackage(), $pf->getChannel()) && - version_compare($pf->getVersion(), - $reg->packageInfo($pf->getPackage(), 'version', $pf->getChannel()), - '<=')) { - if ($this->config->get('verbose')) { - $this->ui->outputData('Ignoring installed package ' . - $reg->parsedPackageNameToString( - array('package' => $pf->getPackage(), - 'channel' => $pf->getChannel()), true)); - } - continue; - } - $otherpackages[] = $param; - continue; - } - $e = $reg->parsePackageName($param, $this->config->get('default_channel')); - if (PEAR::isError($e)) { - $otherpackages[] = $param; - } else { - $abstractpackages[] = $e; - } - } - PEAR::staticPopErrorHandling(); - - // if there are any local package .tgz or remote static url, we can't - // filter. The filter only works for abstract packages - if (count($abstractpackages) && !isset($options['force'])) { - // when not being forced, only do necessary upgrades/installs - if (isset($options['upgrade'])) { - $abstractpackages = $this->_filterUptodatePackages($abstractpackages, - $command); - } else { - foreach ($abstractpackages as $i => $package) { - if (isset($package['group'])) { - // do not filter out install groups - continue; - } - if ($instreg->packageExists($package['package'], $package['channel'])) { - if ($this->config->get('verbose')) { - $this->ui->outputData('Ignoring installed package ' . - $reg->parsedPackageNameToString($package, true)); - } - unset($abstractpackages[$i]); - } - } - } - $abstractpackages = - array_map(array($reg, 'parsedPackageNameToString'), $abstractpackages); - } elseif (count($abstractpackages)) { - $abstractpackages = - array_map(array($reg, 'parsedPackageNameToString'), $abstractpackages); - } - - - $packages = array_merge($abstractpackages, $otherpackages); - if (!count($packages)) { - $this->ui->outputData('Nothing to ' . $command); - return true; - } - - $this->downloader = &$this->getDownloader($this->ui, $options, $this->config); - $errors = array(); - $binaries = array(); - $downloaded = array(); - $downloaded = &$this->downloader->download($packages); - if (PEAR::isError($downloaded)) { - return $this->raiseError($downloaded); - } - $errors = $this->downloader->getErrorMsgs(); - if (count($errors)) { - $err = array(); - $err['data'] = array(); - foreach ($errors as $error) { - $err['data'][] = array($error); - } - $err['headline'] = 'Install Errors'; - $this->ui->outputData($err); - if (!count($downloaded)) { - return $this->raiseError("$command failed"); - } - } - $data = array( - 'headline' => 'Packages that would be Installed' - ); - if (isset($options['pretend'])) { - foreach ($downloaded as $package) { - $data['data'][] = array($reg->parsedPackageNameToString($package->getParsedPackage())); - } - $this->ui->outputData($data, 'pretend'); - return true; - } - $this->installer->setOptions($options); - $this->installer->sortPackagesForInstall($downloaded); - if (PEAR::isError($err = $this->installer->setDownloadedPackages($downloaded))) { - $this->raiseError($err->getMessage()); - return true; - } - $extrainfo = array(); - $binaries = array(); - foreach ($downloaded as $param) { - PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); - $info = $this->installer->install($param, $options); - PEAR::staticPopErrorHandling(); - if (PEAR::isError($info)) { - $oldinfo = $info; - $pkg = &$param->getPackageFile(); - if ($info->getCode() != PEAR_INSTALLER_NOBINARY) { - if (!($info = $pkg->installBinary($this->installer))) { - $this->ui->outputData('ERROR: ' .$oldinfo->getMessage()); - continue; - } - // we just installed a different package than requested, - // let's change the param and info so that the rest of this works - $param = $info[0]; - $info = $info[1]; - } - } - if (is_array($info)) { - if ($param->getPackageType() == 'extsrc' || - $param->getPackageType() == 'extbin' || - $param->getPackageType() == 'zendextsrc' || - $param->getPackageType() == 'zendextbin') { - $pkg = &$param->getPackageFile(); - if ($instbin = $pkg->getInstalledBinary()) { - $instpkg = &$instreg->getPackage($instbin, $pkg->getChannel()); - } else { - $instpkg = &$instreg->getPackage($pkg->getPackage(), $pkg->getChannel()); - } - - foreach ($instpkg->getFilelist() as $name => $atts) { - $pinfo = pathinfo($atts['installed_as']); - if (!isset($pinfo['extension']) || - in_array($pinfo['extension'], array('c', 'h'))) { - continue; // make sure we don't match php_blah.h - } - if ((strpos($pinfo['basename'], 'php_') === 0 && - $pinfo['extension'] == 'dll') || - // most unices - $pinfo['extension'] == 'so' || - // hp-ux - $pinfo['extension'] == 'sl') { - $binaries[] = array($atts['installed_as'], $pinfo); - break; - } - } - if (count($binaries)) { - foreach ($binaries as $pinfo) { - PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); - $ret = $this->enableExtension(array($pinfo[0]), $param->getPackageType()); - PEAR::staticPopErrorHandling(); - if (PEAR::isError($ret)) { - $extrainfo[] = $ret->getMessage(); - if ($param->getPackageType() == 'extsrc' || - $param->getPackageType() == 'extbin') { - $exttype = 'extension'; - } else { - ob_start(); - phpinfo(INFO_GENERAL); - $info = ob_get_contents(); - ob_end_clean(); - $debug = function_exists('leak') ? '_debug' : ''; - $ts = preg_match('Thread Safety.+enabled', $info) ? '_ts' : ''; - $exttype = 'zend_extension' . $debug . $ts; - } - $extrainfo[] = 'You should add "' . $exttype . '=' . - $pinfo[1]['basename'] . '" to php.ini'; - } else { - $extrainfo[] = 'Extension ' . $instpkg->getProvidesExtension() . - ' enabled in php.ini'; - } - } - } - } - if ($this->config->get('verbose') > 0) { - $channel = $param->getChannel(); - $label = $reg->parsedPackageNameToString( - array( - 'channel' => $channel, - 'package' => $param->getPackage(), - 'version' => $param->getVersion(), - )); - $out = array('data' => "$command ok: $label"); - if (isset($info['release_warnings'])) { - $out['release_warnings'] = $info['release_warnings']; - } - $this->ui->outputData($out, $command); - if (!isset($options['register-only']) && !isset($options['offline'])) { - if ($this->config->isDefinedLayer('ftp')) { - PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); - $info = $this->installer->ftpInstall($param); - PEAR::staticPopErrorHandling(); - if (PEAR::isError($info)) { - $this->ui->outputData($info->getMessage()); - $this->ui->outputData("remote install failed: $label"); - } else { - $this->ui->outputData("remote install ok: $label"); - } - } - } - } - $deps = $param->getDeps(); - if ($deps) { - if (isset($deps['group'])) { - $groups = $deps['group']; - if (!isset($groups[0])) { - $groups = array($groups); - } - foreach ($groups as $group) { - if ($group['attribs']['name'] == 'default') { - // default group is always installed, unless the user - // explicitly chooses to install another group - continue; - } - $extrainfo[] = $param->getPackage() . ': Optional feature ' . - $group['attribs']['name'] . ' available (' . - $group['attribs']['hint'] . ')'; - } - $extrainfo[] = $param->getPackage() . - ': To install optional features use "pear install ' . - $reg->parsedPackageNameToString( - array('package' => $param->getPackage(), - 'channel' => $param->getChannel()), true) . - '#featurename"'; - } - } - $pkg = &$instreg->getPackage($param->getPackage(), $param->getChannel()); - // $pkg may be NULL if install is a 'fake' install via --packagingroot - if (is_object($pkg)) { - $pkg->setConfig($this->config); - if ($list = $pkg->listPostinstallScripts()) { - $pn = $reg->parsedPackageNameToString(array('channel' => - $param->getChannel(), 'package' => $param->getPackage()), true); - $extrainfo[] = $pn . ' has post-install scripts:'; - foreach ($list as $file) { - $extrainfo[] = $file; - } - $extrainfo[] = $param->getPackage() . - ': Use "pear run-scripts ' . $pn . '" to finish setup.'; - $extrainfo[] = 'DO NOT RUN SCRIPTS FROM UNTRUSTED SOURCES'; - } - } - } else { - return $this->raiseError("$command failed"); - } - } - if (count($extrainfo)) { - foreach ($extrainfo as $info) { - $this->ui->outputData($info); - } - } - return true; - } - - // }}} - // {{{ doUpgradeAll() - - function doUpgradeAll($command, $options, $params) - { - $reg = &$this->config->getRegistry(); - $toUpgrade = array(); - foreach ($reg->listChannels() as $channel) { - if ($channel == '__uri') { - continue; - } - - // parse name with channel - foreach ($reg->listPackages($channel) as $name) { - $toUpgrade[] = $reg->parsedPackageNameToString(array( - 'channel' => $channel, - 'package' => $name - )); - } - } - - $err = $this->doInstall('upgrade-all', $options, $toUpgrade); - if (PEAR::isError($err)) { - $this->ui->outputData($err->getMessage(), $command); - } - } - - // }}} - // {{{ doUninstall() - - function doUninstall($command, $options, $params) - { - if (empty($this->installer)) { - $this->installer = &$this->getInstaller($this->ui); - } - if (isset($options['remoteconfig'])) { - $e = $this->config->readFTPConfigFile($options['remoteconfig']); - if (!PEAR::isError($e)) { - $this->installer->setConfig($this->config); - } - } - if (sizeof($params) < 1) { - return $this->raiseError("Please supply the package(s) you want to uninstall"); - } - $reg = &$this->config->getRegistry(); - $newparams = array(); - $binaries = array(); - $badparams = array(); - foreach ($params as $pkg) { - $channel = $this->config->get('default_channel'); - PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); - $parsed = $reg->parsePackageName($pkg, $channel); - PEAR::staticPopErrorHandling(); - if (!$parsed || PEAR::isError($parsed)) { - $badparams[] = $pkg; - continue; - } - $package = $parsed['package']; - $channel = $parsed['channel']; - $info = &$reg->getPackage($package, $channel); - if ($info === null && - ($channel == 'pear.php.net' || $channel == 'pecl.php.net')) { - // make sure this isn't a package that has flipped from pear to pecl but - // used a package.xml 1.0 - $testc = ($channel == 'pear.php.net') ? 'pecl.php.net' : 'pear.php.net'; - $info = &$reg->getPackage($package, $testc); - if ($info !== null) { - $channel = $testc; - } - } - if ($info === null) { - $badparams[] = $pkg; - } else { - $newparams[] = &$info; - // check for binary packages (this is an alias for those packages if so) - if ($installedbinary = $info->getInstalledBinary()) { - $this->ui->log('adding binary package ' . - $reg->parsedPackageNameToString(array('channel' => $channel, - 'package' => $installedbinary), true)); - $newparams[] = &$reg->getPackage($installedbinary, $channel); - } - // add the contents of a dependency group to the list of installed packages - if (isset($parsed['group'])) { - $group = $info->getDependencyGroup($parsed['group']); - if ($group) { - $installed = $reg->getInstalledGroup($group); - if ($installed) { - foreach ($installed as $i => $p) { - $newparams[] = &$installed[$i]; - } - } - } - } - } - } - $err = $this->installer->sortPackagesForUninstall($newparams); - if (PEAR::isError($err)) { - $this->ui->outputData($err->getMessage(), $command); - return true; - } - $params = $newparams; - // twist this to use it to check on whether dependent packages are also being uninstalled - // for circular dependencies like subpackages - $this->installer->setUninstallPackages($newparams); - $params = array_merge($params, $badparams); - $binaries = array(); - foreach ($params as $pkg) { - $this->installer->pushErrorHandling(PEAR_ERROR_RETURN); - if ($err = $this->installer->uninstall($pkg, $options)) { - $this->installer->popErrorHandling(); - if (PEAR::isError($err)) { - $this->ui->outputData($err->getMessage(), $command); - continue; - } - if ($pkg->getPackageType() == 'extsrc' || - $pkg->getPackageType() == 'extbin' || - $pkg->getPackageType() == 'zendextsrc' || - $pkg->getPackageType() == 'zendextbin') { - if ($instbin = $pkg->getInstalledBinary()) { - continue; // this will be uninstalled later - } - - foreach ($pkg->getFilelist() as $name => $atts) { - $pinfo = pathinfo($atts['installed_as']); - if (!isset($pinfo['extension']) || - in_array($pinfo['extension'], array('c', 'h'))) { - continue; // make sure we don't match php_blah.h - } - if ((strpos($pinfo['basename'], 'php_') === 0 && - $pinfo['extension'] == 'dll') || - // most unices - $pinfo['extension'] == 'so' || - // hp-ux - $pinfo['extension'] == 'sl') { - $binaries[] = array($atts['installed_as'], $pinfo); - break; - } - } - if (count($binaries)) { - foreach ($binaries as $pinfo) { - PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); - $ret = $this->disableExtension(array($pinfo[0]), $pkg->getPackageType()); - PEAR::staticPopErrorHandling(); - if (PEAR::isError($ret)) { - $extrainfo[] = $ret->getMessage(); - if ($pkg->getPackageType() == 'extsrc' || - $pkg->getPackageType() == 'extbin') { - $exttype = 'extension'; - } else { - ob_start(); - phpinfo(INFO_GENERAL); - $info = ob_get_contents(); - ob_end_clean(); - $debug = function_exists('leak') ? '_debug' : ''; - $ts = preg_match('Thread Safety.+enabled', $info) ? '_ts' : ''; - $exttype = 'zend_extension' . $debug . $ts; - } - $this->ui->outputData('Unable to remove "' . $exttype . '=' . - $pinfo[1]['basename'] . '" from php.ini', $command); - } else { - $this->ui->outputData('Extension ' . $pkg->getProvidesExtension() . - ' disabled in php.ini', $command); - } - } - } - } - $savepkg = $pkg; - if ($this->config->get('verbose') > 0) { - if (is_object($pkg)) { - $pkg = $reg->parsedPackageNameToString($pkg); - } - $this->ui->outputData("uninstall ok: $pkg", $command); - } - if (!isset($options['offline']) && is_object($savepkg) && - defined('PEAR_REMOTEINSTALL_OK')) { - if ($this->config->isDefinedLayer('ftp')) { - $this->installer->pushErrorHandling(PEAR_ERROR_RETURN); - $info = $this->installer->ftpUninstall($savepkg); - $this->installer->popErrorHandling(); - if (PEAR::isError($info)) { - $this->ui->outputData($info->getMessage()); - $this->ui->outputData("remote uninstall failed: $pkg"); - } else { - $this->ui->outputData("remote uninstall ok: $pkg"); - } - } - } - } else { - $this->installer->popErrorHandling(); - if (is_object($pkg)) { - $pkg = $reg->parsedPackageNameToString($pkg); - } - return $this->raiseError("uninstall failed: $pkg"); - } - } - return true; - } - - // }}} - - - // }}} - // {{{ doBundle() - /* - (cox) It just downloads and untars the package, does not do - any check that the PEAR_Installer::_installFile() does. - */ - - function doBundle($command, $options, $params) - { - $downloader = &$this->getDownloader($this->ui, array('force' => true, 'nodeps' => true, - 'soft' => true, 'downloadonly' => true), $this->config); - $reg = &$this->config->getRegistry(); - if (sizeof($params) < 1) { - return $this->raiseError("Please supply the package you want to bundle"); - } - - if (isset($options['destination'])) { - if (!is_dir($options['destination'])) { - System::mkdir('-p ' . $options['destination']); - } - $dest = realpath($options['destination']); - } else { - $pwd = getcwd(); - if (is_dir($pwd . DIRECTORY_SEPARATOR . 'ext')) { - $dest = $pwd . DIRECTORY_SEPARATOR . 'ext'; - } else { - $dest = $pwd; - } - } - PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); - $err = $downloader->setDownloadDir($dest); - PEAR::staticPopErrorHandling(); - if (PEAR::isError($err)) { - return PEAR::raiseError('download directory "' . $dest . - '" is not writeable.'); - } - $result = &$downloader->download(array($params[0])); - if (PEAR::isError($result)) { - return $result; - } - if (!isset($result[0])) { - return $this->raiseError('unable to unpack ' . $params[0]); - } - $pkgfile = &$result[0]->getPackageFile(); - $pkgname = $pkgfile->getName(); - $pkgversion = $pkgfile->getVersion(); - - // Unpacking ------------------------------------------------- - $dest .= DIRECTORY_SEPARATOR . $pkgname; - $orig = $pkgname . '-' . $pkgversion; - - $tar = &new Archive_Tar($pkgfile->getArchiveFile()); - if (!$tar->extractModify($dest, $orig)) { - return $this->raiseError('unable to unpack ' . $pkgfile->getArchiveFile()); - } - $this->ui->outputData("Package ready at '$dest'"); - // }}} - } - - // }}} - - function doRunScripts($command, $options, $params) - { - if (!isset($params[0])) { - return $this->raiseError('run-scripts expects 1 parameter: a package name'); - } - $reg = &$this->config->getRegistry(); - PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); - $parsed = $reg->parsePackageName($params[0], $this->config->get('default_channel')); - PEAR::staticPopErrorHandling(); - if (PEAR::isError($parsed)) { - return $this->raiseError($parsed); - } - $package = &$reg->getPackage($parsed['package'], $parsed['channel']); - if (is_object($package)) { - $package->setConfig($this->config); - $package->runPostinstallScripts(); - } else { - return $this->raiseError('Could not retrieve package "' . $params[0] . '" from registry'); - } - $this->ui->outputData('Install scripts complete', $command); - return true; - } - - /** - * Given a list of packages, filter out those ones that are already up to date - * - * @param $packages: packages, in parsed array format ! - * @return list of packages that can be upgraded - */ - function _filterUptodatePackages($packages, $command) - { - $reg = &$this->config->getRegistry(); - $latestReleases = array(); - - $ret = array(); - foreach($packages as $package) { - if (isset($package['group'])) { - $ret[] = $package; - continue; - } - $channel = $package['channel']; - $name = $package['package']; - - if (!$reg->packageExists($name, $channel)) { - $ret[] = $package; - continue; - } - if (!isset($latestReleases[$channel])) { - // fill in cache for this channel - $chan = &$reg->getChannel($channel); - if (PEAR::isError($chan)) { - return $this->raiseError($chan); - } - if ($chan->supportsREST($this->config->get('preferred_mirror', - null, $channel)) && - $base = $chan->getBaseURL('REST1.0', - $this->config->get('preferred_mirror', - null, $channel))) - { - $dorest = true; - } else { - $dorest = false; - $remote = &$this->config->getRemote($this->config); - } - PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); - if ($dorest) { - $rest = &$this->config->getREST('1.0', array()); - $installed = array_flip($reg->listPackages($channel)); - $latest = $rest->listLatestUpgrades($base, - $this->config->get('preferred_state', null, $channel), $installed, - $channel, $reg); - } else { - $latest = $remote->call("package.listLatestReleases", - $this->config->get('preferred_state', null, $channel)); - unset($remote); - } - PEAR::staticPopErrorHandling(); - if (PEAR::isError($latest)) { - $this->ui->outputData('Error getting channel info from ' . $channel . - ': ' . $latest->getMessage()); - continue; - } - - $latestReleases[$channel] = array_change_key_case($latest); - } - - // check package for latest release - if (isset($latestReleases[$channel][strtolower($name)])) { - // if not set, up to date - $inst_version = $reg->packageInfo($name, 'version', $channel); - $channel_version = $latestReleases[$channel][strtolower($name)]['version']; - if (version_compare($channel_version, $inst_version, "le")) { - // installed version is up-to-date - continue; - } - // maintain BC - if ($command == 'upgrade-all') { - $this->ui->outputData(array('data' => 'Will upgrade ' . - $reg->parsedPackageNameToString($package)), $command); - } - $ret[] = $package; - } - } - - return $ret; - } - -} -?> diff --git a/src/vitis/vas/rest/class/PEAR/Command/Install.xml b/src/vitis/vas/rest/class/PEAR/Command/Install.xml deleted file mode 100755 index 94044c26..00000000 --- a/src/vitis/vas/rest/class/PEAR/Command/Install.xml +++ /dev/null @@ -1,259 +0,0 @@ -<commands version="1.0"> - <install> - <summary>Install Package</summary> - <function>doInstall</function> - <shortcut>i</shortcut> - <options> - <force> - <shortopt>f</shortopt> - <doc>will overwrite newer installed packages</doc> - </force> - <loose> - <shortopt>l</shortopt> - <doc>do not check for recommended dependency version</doc> - </loose> - <nodeps> - <shortopt>n</shortopt> - <doc>ignore dependencies, install anyway</doc> - </nodeps> - <register-only> - <shortopt>r</shortopt> - <doc>do not install files, only register the package as installed</doc> - </register-only> - <soft> - <shortopt>s</shortopt> - <doc>soft install, fail silently, or upgrade if already installed</doc> - </soft> - <nobuild> - <shortopt>B</shortopt> - <doc>don't build C extensions</doc> - </nobuild> - <nocompress> - <shortopt>Z</shortopt> - <doc>request uncompressed files when downloading</doc> - </nocompress> - <installroot> - <shortopt>R</shortopt> - <arg>DIR</arg> - <doc>root directory used when installing files (ala PHP's INSTALL_ROOT), use packagingroot for RPM</doc> - </installroot> - <packagingroot> - <shortopt>P</shortopt> - <arg>DIR</arg> - <doc>root directory used when packaging files, like RPM packaging</doc> - </packagingroot> - <ignore-errors> - <doc>force install even if there were errors</doc> - </ignore-errors> - <alldeps> - <shortopt>a</shortopt> - <doc>install all required and optional dependencies</doc> - </alldeps> - <onlyreqdeps> - <shortopt>o</shortopt> - <doc>install all required dependencies</doc> - </onlyreqdeps> - <offline> - <shortopt>O</shortopt> - <doc>do not attempt to download any urls or contact channels</doc> - </offline> - <pretend> - <shortopt>p</shortopt> - <doc>Only list the packages that would be downloaded</doc> - </pretend> - </options> - <doc>[channel/]<package> ... -Installs one or more PEAR packages. You can specify a package to -install in four ways: - -"Package-1.0.tgz" : installs from a local file - -"http://example.com/Package-1.0.tgz" : installs from -anywhere on the net. - -"package.xml" : installs the package described in -package.xml. Useful for testing, or for wrapping a PEAR package in -another package manager such as RPM. - -"Package[-version/state][.tar]" : queries your default channel's server -({config master_server}) and downloads the newest package with -the preferred quality/state ({config preferred_state}). - -To retrieve Package version 1.1, use "Package-1.1," to retrieve -Package state beta, use "Package-beta." To retrieve an uncompressed -file, append .tar (make sure there is no file by the same name first) - -To download a package from another channel, prefix with the channel name like -"channel/Package" - -More than one package may be specified at once. It is ok to mix these -four ways of specifying packages. -</doc> - </install> - <upgrade> - <summary>Upgrade Package</summary> - <function>doInstall</function> - <shortcut>up</shortcut> - <options> - <force> - <shortopt>f</shortopt> - <doc>overwrite newer installed packages</doc> - </force> - <loose> - <shortopt>l</shortopt> - <doc>do not check for recommended dependency version</doc> - </loose> - <nodeps> - <shortopt>n</shortopt> - <doc>ignore dependencies, upgrade anyway</doc> - </nodeps> - <register-only> - <shortopt>r</shortopt> - <doc>do not install files, only register the package as upgraded</doc> - </register-only> - <nobuild> - <shortopt>B</shortopt> - <doc>don't build C extensions</doc> - </nobuild> - <nocompress> - <shortopt>Z</shortopt> - <doc>request uncompressed files when downloading</doc> - </nocompress> - <installroot> - <shortopt>R</shortopt> - <arg>DIR</arg> - <doc>root directory used when installing files (ala PHP's INSTALL_ROOT)</doc> - </installroot> - <ignore-errors> - <doc>force install even if there were errors</doc> - </ignore-errors> - <alldeps> - <shortopt>a</shortopt> - <doc>install all required and optional dependencies</doc> - </alldeps> - <onlyreqdeps> - <shortopt>o</shortopt> - <doc>install all required dependencies</doc> - </onlyreqdeps> - <offline> - <shortopt>O</shortopt> - <doc>do not attempt to download any urls or contact channels</doc> - </offline> - <pretend> - <shortopt>p</shortopt> - <doc>Only list the packages that would be downloaded</doc> - </pretend> - </options> - <doc><package> ... -Upgrades one or more PEAR packages. See documentation for the -"install" command for ways to specify a package. - -When upgrading, your package will be updated if the provided new -package has a higher version number (use the -f option if you need to -upgrade anyway). - -More than one package may be specified at once. -</doc> - </upgrade> - <upgrade-all> - <summary>Upgrade All Packages</summary> - <function>doInstall</function> - <shortcut>ua</shortcut> - <options> - <nodeps> - <shortopt>n</shortopt> - <doc>ignore dependencies, upgrade anyway</doc> - </nodeps> - <register-only> - <shortopt>r</shortopt> - <doc>do not install files, only register the package as upgraded</doc> - </register-only> - <nobuild> - <shortopt>B</shortopt> - <doc>don't build C extensions</doc> - </nobuild> - <nocompress> - <shortopt>Z</shortopt> - <doc>request uncompressed files when downloading</doc> - </nocompress> - <installroot> - <shortopt>R</shortopt> - <arg>DIR</arg> - <doc>root directory used when installing files (ala PHP's INSTALL_ROOT)</doc> - </installroot> - <ignore-errors> - <doc>force install even if there were errors</doc> - </ignore-errors> - <loose> - <doc>do not check for recommended dependency version</doc> - </loose> - </options> - <doc> -Upgrades all packages that have a newer release available. Upgrades are -done only if there is a release available of the state specified in -"preferred_state" (currently {config preferred_state}), or a state considered -more stable. -</doc> - </upgrade-all> - <uninstall> - <summary>Un-install Package</summary> - <function>doUninstall</function> - <shortcut>un</shortcut> - <options> - <nodeps> - <shortopt>n</shortopt> - <doc>ignore dependencies, uninstall anyway</doc> - </nodeps> - <register-only> - <shortopt>r</shortopt> - <doc>do not remove files, only register the packages as not installed</doc> - </register-only> - <installroot> - <shortopt>R</shortopt> - <arg>DIR</arg> - <doc>root directory used when installing files (ala PHP's INSTALL_ROOT)</doc> - </installroot> - <ignore-errors> - <doc>force install even if there were errors</doc> - </ignore-errors> - <offline> - <shortopt>O</shortopt> - <doc>do not attempt to uninstall remotely</doc> - </offline> - </options> - <doc>[channel/]<package> ... -Uninstalls one or more PEAR packages. More than one package may be -specified at once. Prefix with channel name to uninstall from a -channel not in your default channel ({config default_channel}) -</doc> - </uninstall> - <bundle> - <summary>Unpacks a Pecl Package</summary> - <function>doBundle</function> - <shortcut>bun</shortcut> - <options> - <destination> - <shortopt>d</shortopt> - <arg>DIR</arg> - <doc>Optional destination directory for unpacking (defaults to current path or "ext" if exists)</doc> - </destination> - <force> - <shortopt>f</shortopt> - <doc>Force the unpacking even if there were errors in the package</doc> - </force> - </options> - <doc><package> -Unpacks a Pecl Package into the selected location. It will download the -package if needed. -</doc> - </bundle> - <run-scripts> - <summary>Run Post-Install Scripts bundled with a package</summary> - <function>doRunScripts</function> - <shortcut>rs</shortcut> - <options /> - <doc><package> -Run post-installation scripts in package <package>, if any exist. -</doc> - </run-scripts> -</commands> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/Command/Mirror.php b/src/vitis/vas/rest/class/PEAR/Command/Mirror.php deleted file mode 100755 index f1256e0a..00000000 --- a/src/vitis/vas/rest/class/PEAR/Command/Mirror.php +++ /dev/null @@ -1,153 +0,0 @@ -<?php -/** - * PEAR_Command_Mirror (download-all command) - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Alexander Merz <alexmerz@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Mirror.php,v 1.20 2008/04/11 01:16:40 dufuz Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 1.2.0 - */ - -/** - * base class - */ -require_once 'PEAR/Command/Common.php'; - -/** - * PEAR commands for providing file mirrors - * - * @category pear - * @package PEAR - * @author Alexander Merz <alexmerz@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 1.2.0 - */ -class PEAR_Command_Mirror extends PEAR_Command_Common -{ - // {{{ properties - - var $commands = array( - 'download-all' => array( - 'summary' => 'Downloads each available package from the default channel', - 'function' => 'doDownloadAll', - 'shortcut' => 'da', - 'options' => array( - 'channel' => - array( - 'shortopt' => 'c', - 'doc' => 'specify a channel other than the default channel', - 'arg' => 'CHAN', - ), - ), - 'doc' => ' -Requests a list of available packages from the default channel ({config default_channel}) -and downloads them to current working directory. Note: only -packages within preferred_state ({config preferred_state}) will be downloaded' - ), - ); - - // }}} - - // {{{ constructor - - /** - * PEAR_Command_Mirror constructor. - * - * @access public - * @param object PEAR_Frontend a reference to an frontend - * @param object PEAR_Config a reference to the configuration data - */ - function PEAR_Command_Mirror(&$ui, &$config) - { - parent::PEAR_Command_Common($ui, $config); - } - - // }}} - - /** - * For unit-testing - */ - function &factory($a) - { - $a = &PEAR_Command::factory($a, $this->config); - return $a; - } - - // {{{ doDownloadAll() - /** - * retrieves a list of avaible Packages from master server - * and downloads them - * - * @access public - * @param string $command the command - * @param array $options the command options before the command - * @param array $params the stuff after the command name - * @return bool true if succesful - * @throw PEAR_Error - */ - function doDownloadAll($command, $options, $params) - { - $savechannel = $this->config->get('default_channel'); - $reg = &$this->config->getRegistry(); - $channel = isset($options['channel']) ? $options['channel'] : - $this->config->get('default_channel'); - if (!$reg->channelExists($channel)) { - $this->config->set('default_channel', $savechannel); - return $this->raiseError('Channel "' . $channel . '" does not exist'); - } - $this->config->set('default_channel', $channel); - $this->ui->outputData('Using Channel ' . $this->config->get('default_channel')); - $chan = $reg->getChannel($channel); - if (PEAR::isError($chan)) { - return $this->raiseError($chan); - } - if ($chan->supportsREST($this->config->get('preferred_mirror')) && - $base = $chan->getBaseURL('REST1.0', $this->config->get('preferred_mirror'))) { - $rest = &$this->config->getREST('1.0', array()); - $remoteInfo = array_flip($rest->listPackages($base, $channel)); - } else { - $remote = &$this->config->getRemote(); - $stable = ($this->config->get('preferred_state') == 'stable'); - $remoteInfo = $remote->call("package.listAll", true, $stable, false); - } - if (PEAR::isError($remoteInfo)) { - return $remoteInfo; - } - $cmd = &$this->factory("download"); - if (PEAR::isError($cmd)) { - return $cmd; - } - $this->ui->outputData('Using Preferred State of ' . - $this->config->get('preferred_state')); - $this->ui->outputData('Gathering release information, please wait...'); - /** - * Error handling not necessary, because already done by - * the download command - */ - PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); - $err = $cmd->run('download', array('downloadonly' => true), array_keys($remoteInfo)); - PEAR::staticPopErrorHandling(); - $this->config->set('default_channel', $savechannel); - if (PEAR::isError($err)) { - $this->ui->outputData($err->getMessage()); - } - return true; - } - - // }}} -} diff --git a/src/vitis/vas/rest/class/PEAR/Command/Mirror.xml b/src/vitis/vas/rest/class/PEAR/Command/Mirror.xml deleted file mode 100755 index fe8be9d0..00000000 --- a/src/vitis/vas/rest/class/PEAR/Command/Mirror.xml +++ /dev/null @@ -1,18 +0,0 @@ -<commands version="1.0"> - <download-all> - <summary>Downloads each available package from the default channel</summary> - <function>doDownloadAll</function> - <shortcut>da</shortcut> - <options> - <channel> - <shortopt>c</shortopt> - <doc>specify a channel other than the default channel</doc> - <arg>CHAN</arg> - </channel> - </options> - <doc> -Requests a list of available packages from the default channel ({config default_channel}) -and downloads them to current working directory. Note: only -packages within preferred_state ({config preferred_state}) will be downloaded</doc> - </download-all> -</commands> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/Command/Package.php b/src/vitis/vas/rest/class/PEAR/Command/Package.php deleted file mode 100755 index 8eb16df7..00000000 --- a/src/vitis/vas/rest/class/PEAR/Command/Package.php +++ /dev/null @@ -1,843 +0,0 @@ -<?php -/** - * PEAR_Command_Package (package, package-validate, cvsdiff, cvstag, package-dependencies, - * sign, makerpm, convert commands) - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Stig Bakken <ssb@php.net> - * @author Martin Jansen <mj@php.net> - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Package.php,v 1.128 2008/03/29 21:06:58 dufuz Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 0.1 - */ - -/** - * base class - */ -require_once 'PEAR/Command/Common.php'; - -/** - * PEAR commands for login/logout - * - * @category pear - * @package PEAR - * @author Stig Bakken <ssb@php.net> - * @author Martin Jansen <mj@php.net> - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: @package_version@ - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 0.1 - */ - -class PEAR_Command_Package extends PEAR_Command_Common -{ - // {{{ properties - - var $commands = array( - 'package' => array( - 'summary' => 'Build Package', - 'function' => 'doPackage', - 'shortcut' => 'p', - 'options' => array( - 'nocompress' => array( - 'shortopt' => 'Z', - 'doc' => 'Do not gzip the package file' - ), - 'showname' => array( - 'shortopt' => 'n', - 'doc' => 'Print the name of the packaged file.', - ), - ), - 'doc' => '[descfile] [descfile2] -Creates a PEAR package from its description file (usually called -package.xml). If a second packagefile is passed in, then -the packager will check to make sure that one is a package.xml -version 1.0, and the other is a package.xml version 2.0. The -package.xml version 1.0 will be saved as "package.xml" in the archive, -and the other as "package2.xml" in the archive" -' - ), - 'package-validate' => array( - 'summary' => 'Validate Package Consistency', - 'function' => 'doPackageValidate', - 'shortcut' => 'pv', - 'options' => array(), - 'doc' => ' -', - ), - 'cvsdiff' => array( - 'summary' => 'Run a "cvs diff" for all files in a package', - 'function' => 'doCvsDiff', - 'shortcut' => 'cd', - 'options' => array( - 'quiet' => array( - 'shortopt' => 'q', - 'doc' => 'Be quiet', - ), - 'reallyquiet' => array( - 'shortopt' => 'Q', - 'doc' => 'Be really quiet', - ), - 'date' => array( - 'shortopt' => 'D', - 'doc' => 'Diff against revision of DATE', - 'arg' => 'DATE', - ), - 'release' => array( - 'shortopt' => 'R', - 'doc' => 'Diff against tag for package release REL', - 'arg' => 'REL', - ), - 'revision' => array( - 'shortopt' => 'r', - 'doc' => 'Diff against revision REV', - 'arg' => 'REV', - ), - 'context' => array( - 'shortopt' => 'c', - 'doc' => 'Generate context diff', - ), - 'unified' => array( - 'shortopt' => 'u', - 'doc' => 'Generate unified diff', - ), - 'ignore-case' => array( - 'shortopt' => 'i', - 'doc' => 'Ignore case, consider upper- and lower-case letters equivalent', - ), - 'ignore-whitespace' => array( - 'shortopt' => 'b', - 'doc' => 'Ignore changes in amount of white space', - ), - 'ignore-blank-lines' => array( - 'shortopt' => 'B', - 'doc' => 'Ignore changes that insert or delete blank lines', - ), - 'brief' => array( - 'doc' => 'Report only whether the files differ, no details', - ), - 'dry-run' => array( - 'shortopt' => 'n', - 'doc' => 'Don\'t do anything, just pretend', - ), - ), - 'doc' => '<package.xml> -Compares all the files in a package. Without any options, this -command will compare the current code with the last checked-in code. -Using the -r or -R option you may compare the current code with that -of a specific release. -', - ), - 'cvstag' => array( - 'summary' => 'Set CVS Release Tag', - 'function' => 'doCvsTag', - 'shortcut' => 'ct', - 'options' => array( - 'quiet' => array( - 'shortopt' => 'q', - 'doc' => 'Be quiet', - ), - 'reallyquiet' => array( - 'shortopt' => 'Q', - 'doc' => 'Be really quiet', - ), - 'slide' => array( - 'shortopt' => 'F', - 'doc' => 'Move (slide) tag if it exists', - ), - 'delete' => array( - 'shortopt' => 'd', - 'doc' => 'Remove tag', - ), - 'dry-run' => array( - 'shortopt' => 'n', - 'doc' => 'Don\'t do anything, just pretend', - ), - ), - 'doc' => '<package.xml> [files...] -Sets a CVS tag on all files in a package. Use this command after you have -packaged a distribution tarball with the "package" command to tag what -revisions of what files were in that release. If need to fix something -after running cvstag once, but before the tarball is released to the public, -use the "slide" option to move the release tag. - -to include files (such as a second package.xml, or tests not included in the -release), pass them as additional parameters. -', - ), - 'package-dependencies' => array( - 'summary' => 'Show package dependencies', - 'function' => 'doPackageDependencies', - 'shortcut' => 'pd', - 'options' => array(), - 'doc' => ' -List all dependencies the package has.' - ), - 'sign' => array( - 'summary' => 'Sign a package distribution file', - 'function' => 'doSign', - 'shortcut' => 'si', - 'options' => array( - 'verbose' => array( - 'shortopt' => 'v', - 'doc' => 'Display GnuPG output', - ), - ), - 'doc' => '<package-file> -Signs a package distribution (.tar or .tgz) file with GnuPG.', - ), - 'makerpm' => array( - 'summary' => 'Builds an RPM spec file from a PEAR package', - 'function' => 'doMakeRPM', - 'shortcut' => 'rpm', - 'options' => array( - 'spec-template' => array( - 'shortopt' => 't', - 'arg' => 'FILE', - 'doc' => 'Use FILE as RPM spec file template' - ), - 'rpm-pkgname' => array( - 'shortopt' => 'p', - 'arg' => 'FORMAT', - 'doc' => 'Use FORMAT as format string for RPM package name, %s is replaced -by the PEAR package name, defaults to "PEAR::%s".', - ), - ), - 'doc' => '<package-file> - -Creates an RPM .spec file for wrapping a PEAR package inside an RPM -package. Intended to be used from the SPECS directory, with the PEAR -package tarball in the SOURCES directory: - -$ pear makerpm ../SOURCES/Net_Socket-1.0.tgz -Wrote RPM spec file PEAR::Net_Geo-1.0.spec -$ rpm -bb PEAR::Net_Socket-1.0.spec -... -Wrote: /usr/src/redhat/RPMS/i386/PEAR::Net_Socket-1.0-1.i386.rpm -', - ), - 'convert' => array( - 'summary' => 'Convert a package.xml 1.0 to package.xml 2.0 format', - 'function' => 'doConvert', - 'shortcut' => 'c2', - 'options' => array( - 'flat' => array( - 'shortopt' => 'f', - 'doc' => 'do not beautify the filelist.', - ), - ), - 'doc' => '[descfile] [descfile2] -Converts a package.xml in 1.0 format into a package.xml -in 2.0 format. The new file will be named package2.xml by default, -and package.xml will be used as the old file by default. -This is not the most intelligent conversion, and should only be -used for automated conversion or learning the format. -' - ), - ); - - var $output; - - // }}} - // {{{ constructor - - /** - * PEAR_Command_Package constructor. - * - * @access public - */ - function PEAR_Command_Package(&$ui, &$config) - { - parent::PEAR_Command_Common($ui, $config); - } - - // }}} - - // {{{ _displayValidationResults() - - function _displayValidationResults($err, $warn, $strict = false) - { - foreach ($err as $e) { - $this->output .= "Error: $e\n"; - } - foreach ($warn as $w) { - $this->output .= "Warning: $w\n"; - } - $this->output .= sprintf('Validation: %d error(s), %d warning(s)'."\n", - sizeof($err), sizeof($warn)); - if ($strict && sizeof($err) > 0) { - $this->output .= "Fix these errors and try again."; - return false; - } - return true; - } - - // }}} - function &getPackager() - { - if (!class_exists('PEAR_Packager')) { - require_once 'PEAR/Packager.php'; - } - $a = &new PEAR_Packager; - return $a; - } - - function &getPackageFile($config, $debug = false, $tmpdir = null) - { - if (!class_exists('PEAR_Common')) { - require_once 'PEAR/Common.php'; - } - if (!class_exists('PEAR_PackageFile')) { - require_once 'PEAR/PackageFile.php'; - } - $a = &new PEAR_PackageFile($config, $debug, $tmpdir); - $common = new PEAR_Common; - $common->ui = $this->ui; - $a->setLogger($common); - return $a; - } - // {{{ doPackage() - - function doPackage($command, $options, $params) - { - $this->output = ''; - $pkginfofile = isset($params[0]) ? $params[0] : 'package.xml'; - $pkg2 = isset($params[1]) ? $params[1] : null; - if (!$pkg2 && !isset($params[0])) { - if (file_exists('package2.xml')) { - $pkg2 = 'package2.xml'; - } - } - $packager = &$this->getPackager(); - $compress = empty($options['nocompress']) ? true : false; - $result = $packager->package($pkginfofile, $compress, $pkg2); - if (PEAR::isError($result)) { - return $this->raiseError($result); - } - // Don't want output, only the package file name just created - if (isset($options['showname'])) { - $this->output = $result; - } - if ($this->output) { - $this->ui->outputData($this->output, $command); - } - return true; - } - - // }}} - // {{{ doPackageValidate() - - function doPackageValidate($command, $options, $params) - { - $this->output = ''; - if (sizeof($params) < 1) { - $params[0] = "package.xml"; - } - $obj = &$this->getPackageFile($this->config, $this->_debug); - $obj->rawReturn(); - PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); - $info = $obj->fromTgzFile($params[0], PEAR_VALIDATE_NORMAL); - if (PEAR::isError($info)) { - $info = $obj->fromPackageFile($params[0], PEAR_VALIDATE_NORMAL); - } else { - $archive = $info->getArchiveFile(); - $tar = &new Archive_Tar($archive); - $tar->extract(dirname($info->getPackageFile())); - $info->setPackageFile(dirname($info->getPackageFile()) . DIRECTORY_SEPARATOR . - $info->getPackage() . '-' . $info->getVersion() . DIRECTORY_SEPARATOR . - basename($info->getPackageFile())); - } - PEAR::staticPopErrorHandling(); - if (PEAR::isError($info)) { - return $this->raiseError($info); - } - $valid = false; - if ($info->getPackagexmlVersion() == '2.0') { - if ($valid = $info->validate(PEAR_VALIDATE_NORMAL)) { - $info->flattenFileList(); - $valid = $info->validate(PEAR_VALIDATE_PACKAGING); - } - } else { - $valid = $info->validate(PEAR_VALIDATE_PACKAGING); - } - $err = $warn = array(); - if ($errors = $info->getValidationWarnings()) { - foreach ($errors as $error) { - if ($error['level'] == 'warning') { - $warn[] = $error['message']; - } else { - $err[] = $error['message']; - } - } - } - $this->_displayValidationResults($err, $warn); - $this->ui->outputData($this->output, $command); - return true; - } - - // }}} - // {{{ doCvsTag() - - function doCvsTag($command, $options, $params) - { - $this->output = ''; - $_cmd = $command; - if (sizeof($params) < 1) { - $help = $this->getHelp($command); - return $this->raiseError("$command: missing parameter: $help[0]"); - } - $obj = &$this->getPackageFile($this->config, $this->_debug); - $info = $obj->fromAnyFile($params[0], PEAR_VALIDATE_NORMAL); - if (PEAR::isError($info)) { - return $this->raiseError($info); - } - $err = $warn = array(); - if (!$info->validate()) { - foreach ($info->getValidationWarnings() as $error) { - if ($error['level'] == 'warning') { - $warn[] = $error['message']; - } else { - $err[] = $error['message']; - } - } - } - if (!$this->_displayValidationResults($err, $warn, true)) { - $this->ui->outputData($this->output, $command); - return $this->raiseError('CVS tag failed'); - } - $version = $info->getVersion(); - $cvsversion = preg_replace('/[^a-z0-9]/i', '_', $version); - $cvstag = "RELEASE_$cvsversion"; - $files = array_keys($info->getFilelist()); - $command = "cvs"; - if (isset($options['quiet'])) { - $command .= ' -q'; - } - if (isset($options['reallyquiet'])) { - $command .= ' -Q'; - } - $command .= ' tag'; - if (isset($options['slide'])) { - $command .= ' -F'; - } - if (isset($options['delete'])) { - $command .= ' -d'; - } - $command .= ' ' . $cvstag . ' ' . escapeshellarg($params[0]); - array_shift($params); - if (count($params)) { - // add in additional files to be tagged - $files = array_merge($files, $params); - } - foreach ($files as $file) { - $command .= ' ' . escapeshellarg($file); - } - if ($this->config->get('verbose') > 1) { - $this->output .= "+ $command\n"; - } - $this->output .= "+ $command\n"; - if (empty($options['dry-run'])) { - $fp = popen($command, "r"); - while ($line = fgets($fp, 1024)) { - $this->output .= rtrim($line)."\n"; - } - pclose($fp); - } - $this->ui->outputData($this->output, $_cmd); - return true; - } - - // }}} - // {{{ doCvsDiff() - - function doCvsDiff($command, $options, $params) - { - $this->output = ''; - if (sizeof($params) < 1) { - $help = $this->getHelp($command); - return $this->raiseError("$command: missing parameter: $help[0]"); - } - $obj = &$this->getPackageFile($this->config, $this->_debug); - $info = $obj->fromAnyFile($params[0], PEAR_VALIDATE_NORMAL); - if (PEAR::isError($info)) { - return $this->raiseError($info); - } - $err = $warn = array(); - if (!$info->validate()) { - foreach ($info->getValidationWarnings() as $error) { - if ($error['level'] == 'warning') { - $warn[] = $error['message']; - } else { - $err[] = $error['message']; - } - } - } - if (!$this->_displayValidationResults($err, $warn, true)) { - $this->ui->outputData($this->output, $command); - return $this->raiseError('CVS diff failed'); - } - $info1 = $info->getFilelist(); - $files = $info1; - $cmd = "cvs"; - if (isset($options['quiet'])) { - $cmd .= ' -q'; - unset($options['quiet']); - } - if (isset($options['reallyquiet'])) { - $cmd .= ' -Q'; - unset($options['reallyquiet']); - } - if (isset($options['release'])) { - $cvsversion = preg_replace('/[^a-z0-9]/i', '_', $options['release']); - $cvstag = "RELEASE_$cvsversion"; - $options['revision'] = $cvstag; - unset($options['release']); - } - $execute = true; - if (isset($options['dry-run'])) { - $execute = false; - unset($options['dry-run']); - } - $cmd .= ' diff'; - // the rest of the options are passed right on to "cvs diff" - foreach ($options as $option => $optarg) { - $arg = $short = false; - if (isset($this->commands[$command]['options'][$option])) { - $arg = $this->commands[$command]['options'][$option]['arg']; - $short = $this->commands[$command]['options'][$option]['shortopt']; - } - $cmd .= $short ? " -$short" : " --$option"; - if ($arg && $optarg) { - $cmd .= ($short ? '' : '=') . escapeshellarg($optarg); - } - } - foreach ($files as $file) { - $cmd .= ' ' . escapeshellarg($file['name']); - } - if ($this->config->get('verbose') > 1) { - $this->output .= "+ $cmd\n"; - } - if ($execute) { - $fp = popen($cmd, "r"); - while ($line = fgets($fp, 1024)) { - $this->output .= rtrim($line)."\n"; - } - pclose($fp); - } - $this->ui->outputData($this->output, $command); - return true; - } - - // }}} - // {{{ doPackageDependencies() - - function doPackageDependencies($command, $options, $params) - { - // $params[0] -> the PEAR package to list its information - if (sizeof($params) != 1) { - return $this->raiseError("bad parameter(s), try \"help $command\""); - } - $obj = &$this->getPackageFile($this->config, $this->_debug); - $info = $obj->fromAnyFile($params[0], PEAR_VALIDATE_NORMAL); - if (PEAR::isError($info)) { - return $this->raiseError($info); - } - $deps = $info->getDeps(); - if (is_array($deps)) { - if ($info->getPackagexmlVersion() == '1.0') { - $data = array( - 'caption' => 'Dependencies for pear/' . $info->getPackage(), - 'border' => true, - 'headline' => array("Required?", "Type", "Name", "Relation", "Version"), - ); - - foreach ($deps as $d) { - if (isset($d['optional'])) { - if ($d['optional'] == 'yes') { - $req = 'No'; - } else { - $req = 'Yes'; - } - } else { - $req = 'Yes'; - } - if (isset($this->_deps_rel_trans[$d['rel']])) { - $rel = $this->_deps_rel_trans[$d['rel']]; - } else { - $rel = $d['rel']; - } - - if (isset($this->_deps_type_trans[$d['type']])) { - $type = ucfirst($this->_deps_type_trans[$d['type']]); - } else { - $type = $d['type']; - } - - if (isset($d['name'])) { - $name = $d['name']; - } else { - $name = ''; - } - - if (isset($d['version'])) { - $version = $d['version']; - } else { - $version = ''; - } - - $data['data'][] = array($req, $type, $name, $rel, $version); - } - } else { // package.xml 2.0 dependencies display - require_once 'PEAR/Dependency2.php'; - $deps = $info->getDependencies(); - $reg = &$this->config->getRegistry(); - if (is_array($deps)) { - $d = new PEAR_Dependency2($this->config, array(), ''); - $data = array( - 'caption' => 'Dependencies for ' . $info->getPackage(), - 'border' => true, - 'headline' => array("Required?", "Type", "Name", 'Versioning', 'Group'), - ); - foreach ($deps as $type => $subd) { - $req = ($type == 'required') ? 'Yes' : 'No'; - if ($type == 'group') { - $group = $subd['attribs']['name']; - } else { - $group = ''; - } - if (!isset($subd[0])) { - $subd = array($subd); - } - foreach ($subd as $groupa) { - foreach ($groupa as $deptype => $depinfo) { - if ($deptype == 'attribs') { - continue; - } - if ($deptype == 'pearinstaller') { - $deptype = 'pear Installer'; - } - if (!isset($depinfo[0])) { - $depinfo = array($depinfo); - } - foreach ($depinfo as $inf) { - $name = ''; - if (isset($inf['channel'])) { - $alias = $reg->channelAlias($inf['channel']); - if (!$alias) { - $alias = '(channel?) ' .$inf['channel']; - } - $name = $alias . '/'; - } - if (isset($inf['name'])) { - $name .= $inf['name']; - } elseif (isset($inf['pattern'])) { - $name .= $inf['pattern']; - } else { - $name .= ''; - } - if (isset($inf['uri'])) { - $name .= ' [' . $inf['uri'] . ']'; - } - if (isset($inf['conflicts'])) { - $ver = 'conflicts'; - } else { - $ver = $d->_getExtraString($inf); - } - $data['data'][] = array($req, ucfirst($deptype), $name, - $ver, $group); - } - } - } - } - } - } - - $this->ui->outputData($data, $command); - return true; - } - - // Fallback - $this->ui->outputData("This package does not have any dependencies.", $command); - } - - // }}} - // {{{ doSign() - - function doSign($command, $options, $params) - { - require_once 'System.php'; - require_once 'Archive/Tar.php'; - // should move most of this code into PEAR_Packager - // so it'll be easy to implement "pear package --sign" - if (sizeof($params) != 1) { - return $this->raiseError("bad parameter(s), try \"help $command\""); - } - if (!file_exists($params[0])) { - return $this->raiseError("file does not exist: $params[0]"); - } - $obj = $this->getPackageFile($this->config, $this->_debug); - $info = $obj->fromTgzFile($params[0], PEAR_VALIDATE_NORMAL); - if (PEAR::isError($info)) { - return $this->raiseError($info); - } - $tar = new Archive_Tar($params[0]); - $tmpdir = System::mktemp('-d pearsign'); - if (!$tar->extractList('package2.xml package.xml package.sig', $tmpdir)) { - return $this->raiseError("failed to extract tar file"); - } - if (file_exists("$tmpdir/package.sig")) { - return $this->raiseError("package already signed"); - } - $packagexml = 'package.xml'; - if (file_exists("$tmpdir/package2.xml")) { - $packagexml = 'package2.xml'; - } - if (file_exists("$tmpdir/package.sig")) { - unlink("$tmpdir/package.sig"); - } - if (!file_exists("$tmpdir/$packagexml")) { - return $this->raiseError("Extracted file $tmpdir/$packagexml not found."); - } - $input = $this->ui->userDialog($command, - array('GnuPG Passphrase'), - array('password')); - if (!isset($input[0])) { - //use empty passphrase - $input[0] = ''; - } - - $devnull = (isset($options['verbose'])) ? '' : ' 2>/dev/null'; - $gpg = popen("gpg --batch --passphrase-fd 0 --armor --detach-sign --output $tmpdir/package.sig $tmpdir/$packagexml" . $devnull, "w"); - if (!$gpg) { - return $this->raiseError("gpg command failed"); - } - fwrite($gpg, "$input[0]\n"); - if (pclose($gpg) || !file_exists("$tmpdir/package.sig")) { - return $this->raiseError("gpg sign failed"); - } - if (!$tar->addModify("$tmpdir/package.sig", '', $tmpdir)) { - return $this->raiseError('failed adding signature to file'); - } - - $this->ui->outputData("Package signed.", $command); - return true; - } - - // }}} - - /** - * For unit testing purposes - */ - function &getInstaller(&$ui) - { - if (!class_exists('PEAR_Installer')) { - require_once 'PEAR/Installer.php'; - } - $a = &new PEAR_Installer($ui); - return $a; - } - - /** - * For unit testing purposes - */ - function &getCommandPackaging(&$ui, &$config) - { - if (!class_exists('PEAR_Command_Packaging')) { - if ($fp = @fopen('PEAR/Command/Packaging.php', 'r', true)) { - fclose($fp); - include_once 'PEAR/Command/Packaging.php'; - } - } - - if (class_exists('PEAR_Command_Packaging')) { - $a = &new PEAR_Command_Packaging($ui, $config); - } else { - $a = null; - } - return $a; - } - - // {{{ doMakeRPM() - - function doMakeRPM($command, $options, $params) - { - - // Check to see if PEAR_Command_Packaging is installed, and - // transparently switch to use the "make-rpm-spec" command from it - // instead, if it does. Otherwise, continue to use the old version - // of "makerpm" supplied with this package (PEAR). - $packaging_cmd = $this->getCommandPackaging($this->ui, $this->config); - if ($packaging_cmd !== null) { - $this->ui->outputData('PEAR_Command_Packaging is installed; using '. - 'newer "make-rpm-spec" command instead'); - return $packaging_cmd->run('make-rpm-spec', $options, $params); - } else { - $this->ui->outputData('WARNING: "pear makerpm" is no longer available; an '. - 'improved version is available via "pear make-rpm-spec", which '. - 'is available by installing PEAR_Command_Packaging'); - } - return true; - } - - function doConvert($command, $options, $params) - { - $packagexml = isset($params[0]) ? $params[0] : 'package.xml'; - $newpackagexml = isset($params[1]) ? $params[1] : dirname($packagexml) . - DIRECTORY_SEPARATOR . 'package2.xml'; - $pkg = &$this->getPackageFile($this->config, $this->_debug); - PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); - $pf = $pkg->fromPackageFile($packagexml, PEAR_VALIDATE_NORMAL); - PEAR::staticPopErrorHandling(); - if (!PEAR::isError($pf)) { - if (is_a($pf, 'PEAR_PackageFile_v2')) { - $this->ui->outputData($packagexml . ' is already a package.xml version 2.0'); - return true; - } - $gen = &$pf->getDefaultGenerator(); - $newpf = &$gen->toV2(); - $newpf->setPackagefile($newpackagexml); - $gen = &$newpf->getDefaultGenerator(); - PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); - $state = (isset($options['flat']) ? PEAR_VALIDATE_PACKAGING : PEAR_VALIDATE_NORMAL); - $saved = $gen->toPackageFile(dirname($newpackagexml), $state, - basename($newpackagexml)); - PEAR::staticPopErrorHandling(); - if (PEAR::isError($saved)) { - if (is_array($saved->getUserInfo())) { - foreach ($saved->getUserInfo() as $warning) { - $this->ui->outputData($warning['message']); - } - } - $this->ui->outputData($saved->getMessage()); - return true; - } - $this->ui->outputData('Wrote new version 2.0 package.xml to "' . $saved . '"'); - return true; - } else { - if (is_array($pf->getUserInfo())) { - foreach ($pf->getUserInfo() as $warning) { - $this->ui->outputData($warning['message']); - } - } - return $this->raiseError($pf); - } - } - - // }}} -} - -?> diff --git a/src/vitis/vas/rest/class/PEAR/Command/Package.xml b/src/vitis/vas/rest/class/PEAR/Command/Package.xml deleted file mode 100755 index e3f6a553..00000000 --- a/src/vitis/vas/rest/class/PEAR/Command/Package.xml +++ /dev/null @@ -1,194 +0,0 @@ -<commands version="1.0"> - <package> - <summary>Build Package</summary> - <function>doPackage</function> - <shortcut>p</shortcut> - <options> - <nocompress> - <shortopt>Z</shortopt> - <doc>Do not gzip the package file</doc> - </nocompress> - <showname> - <shortopt>n</shortopt> - <doc>Print the name of the packaged file.</doc> - </showname> - </options> - <doc>[descfile] [descfile2] -Creates a PEAR package from its description file (usually called -package.xml). If a second packagefile is passed in, then -the packager will check to make sure that one is a package.xml -version 1.0, and the other is a package.xml version 2.0. The -package.xml version 1.0 will be saved as "package.xml" in the archive, -and the other as "package2.xml" in the archive" -</doc> - </package> - <package-validate> - <summary>Validate Package Consistency</summary> - <function>doPackageValidate</function> - <shortcut>pv</shortcut> - <options /> - <doc> -</doc> - </package-validate> - <cvsdiff> - <summary>Run a "cvs diff" for all files in a package</summary> - <function>doCvsDiff</function> - <shortcut>cd</shortcut> - <options> - <quiet> - <shortopt>q</shortopt> - <doc>Be quiet</doc> - </quiet> - <reallyquiet> - <shortopt>Q</shortopt> - <doc>Be really quiet</doc> - </reallyquiet> - <date> - <shortopt>D</shortopt> - <doc>Diff against revision of DATE</doc> - <arg>DATE</arg> - </date> - <release> - <shortopt>R</shortopt> - <doc>Diff against tag for package release REL</doc> - <arg>REL</arg> - </release> - <revision> - <shortopt>r</shortopt> - <doc>Diff against revision REV</doc> - <arg>REV</arg> - </revision> - <context> - <shortopt>c</shortopt> - <doc>Generate context diff</doc> - </context> - <unified> - <shortopt>u</shortopt> - <doc>Generate unified diff</doc> - </unified> - <ignore-case> - <shortopt>i</shortopt> - <doc>Ignore case, consider upper- and lower-case letters equivalent</doc> - </ignore-case> - <ignore-whitespace> - <shortopt>b</shortopt> - <doc>Ignore changes in amount of white space</doc> - </ignore-whitespace> - <ignore-blank-lines> - <shortopt>B</shortopt> - <doc>Ignore changes that insert or delete blank lines</doc> - </ignore-blank-lines> - <brief> - <doc>Report only whether the files differ, no details</doc> - </brief> - <dry-run> - <shortopt>n</shortopt> - <doc>Don't do anything, just pretend</doc> - </dry-run> - </options> - <doc><package.xml> -Compares all the files in a package. Without any options, this -command will compare the current code with the last checked-in code. -Using the -r or -R option you may compare the current code with that -of a specific release. -</doc> - </cvsdiff> - <cvstag> - <summary>Set CVS Release Tag</summary> - <function>doCvsTag</function> - <shortcut>ct</shortcut> - <options> - <quiet> - <shortopt>q</shortopt> - <doc>Be quiet</doc> - </quiet> - <reallyquiet> - <shortopt>Q</shortopt> - <doc>Be really quiet</doc> - </reallyquiet> - <slide> - <shortopt>F</shortopt> - <doc>Move (slide) tag if it exists</doc> - </slide> - <delete> - <shortopt>d</shortopt> - <doc>Remove tag</doc> - </delete> - <dry-run> - <shortopt>n</shortopt> - <doc>Don't do anything, just pretend</doc> - </dry-run> - </options> - <doc><package.xml> -Sets a CVS tag on all files in a package. Use this command after you have -packaged a distribution tarball with the "package" command to tag what -revisions of what files were in that release. If need to fix something -after running cvstag once, but before the tarball is released to the public, -use the "slide" option to move the release tag. -</doc> - </cvstag> - <package-dependencies> - <summary>Show package dependencies</summary> - <function>doPackageDependencies</function> - <shortcut>pd</shortcut> - <options /> - <doc> -List all dependencies the package has.</doc> - </package-dependencies> - <sign> - <summary>Sign a package distribution file</summary> - <function>doSign</function> - <shortcut>si</shortcut> - <options /> - <doc><package-file> -Signs a package distribution (.tar or .tgz) file with GnuPG.</doc> - </sign> - <makerpm> - <summary>Builds an RPM spec file from a PEAR package</summary> - <function>doMakeRPM</function> - <shortcut>rpm</shortcut> - <options> - <spec-template> - <shortopt>t</shortopt> - <arg>FILE</arg> - <doc>Use FILE as RPM spec file template</doc> - </spec-template> - <rpm-pkgname> - <shortopt>p</shortopt> - <arg>FORMAT</arg> - <doc>Use FORMAT as format string for RPM package name, %s is replaced -by the PEAR package name, defaults to "PEAR::%s".</doc> - </rpm-pkgname> - </options> - <doc><package-file> - -Creates an RPM .spec file for wrapping a PEAR package inside an RPM -package. Intended to be used from the SPECS directory, with the PEAR -package tarball in the SOURCES directory: - -$ pear makerpm ../SOURCES/Net_Socket-1.0.tgz -Wrote RPM spec file PEAR::Net_Geo-1.0.spec -$ rpm -bb PEAR::Net_Socket-1.0.spec -... -Wrote: /usr/src/redhat/RPMS/i386/PEAR::Net_Socket-1.0-1.i386.rpm -</doc> - </makerpm> - <convert> - <summary>Convert a package.xml 1.0 to package.xml 2.0 format</summary> - <function>doConvert</function> - <shortcut>c2</shortcut> - <options> - <flat> - <shortopt>f</shortopt> - <doc>do not beautify the filelist.</doc> - </flat> - </options> - <doc>[descfile] [descfile2] -Converts a package.xml in 1.0 format into a package.xml -in 2.0 format. The new file will be named package2.xml by default, -and package.xml will be used as the old file by default. -This is not the most intelligent conversion, and should only be -used for automated conversion or learning the format. -</doc> - </convert> -</commands> diff --git a/src/vitis/vas/rest/class/PEAR/Command/Pickle.php b/src/vitis/vas/rest/class/PEAR/Command/Pickle.php deleted file mode 100755 index d59396ac..00000000 --- a/src/vitis/vas/rest/class/PEAR/Command/Pickle.php +++ /dev/null @@ -1,376 +0,0 @@ -<?php -/** - * PEAR_Command_Pickle (pickle command) - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 2005-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Pickle.php,v 1.8 2008/01/29 03:21:01 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 1.4.1 - */ - -/** - * base class - */ -require_once 'PEAR/Command/Common.php'; - -/** - * PEAR commands for login/logout - * - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 2005-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 1.4.1 - */ - -class PEAR_Command_Pickle extends PEAR_Command_Common -{ - var $commands = array( - 'pickle' => array( - 'summary' => 'Build PECL Package', - 'function' => 'doPackage', - 'shortcut' => 'pi', - 'options' => array( - 'nocompress' => array( - 'shortopt' => 'Z', - 'doc' => 'Do not gzip the package file' - ), - 'showname' => array( - 'shortopt' => 'n', - 'doc' => 'Print the name of the packaged file.', - ), - ), - 'doc' => '[descfile] -Creates a PECL package from its package2.xml file. - -An automatic conversion will be made to a package.xml 1.0 and written out to -disk in the current directory as "package.xml". Note that -only simple package.xml 2.0 will be converted. package.xml 2.0 with: - - - dependency types other than required/optional PECL package/ext/php/pearinstaller - - more than one extsrcrelease or zendextsrcrelease - - zendextbinrelease, extbinrelease, phprelease, or bundle release type - - dependency groups - - ignore tags in release filelist - - tasks other than replace - - custom roles - -will cause pickle to fail, and output an error message. If your package2.xml -uses any of these features, you are best off using PEAR_PackageFileManager to -generate both package.xml. -' - ), - ); - - /** - * PEAR_Command_Package constructor. - * - * @access public - */ - function PEAR_Command_Pickle(&$ui, &$config) - { - parent::PEAR_Command_Common($ui, $config); - } - - - /** - * For unit-testing ease - * - * @return PEAR_Packager - */ - function &getPackager() - { - if (!class_exists('PEAR_Packager')) { - require_once 'PEAR/Packager.php'; - } - $a = &new PEAR_Packager; - return $a; - } - - /** - * For unit-testing ease - * - * @param PEAR_Config $config - * @param bool $debug - * @param string|null $tmpdir - * @return PEAR_PackageFile - */ - function &getPackageFile($config, $debug = false, $tmpdir = null) - { - if (!class_exists('PEAR_Common')) { - require_once 'PEAR/Common.php'; - } - if (!class_exists('PEAR_PackageFile')) { - require_once 'PEAR/PackageFile.php'; - } - $a = &new PEAR_PackageFile($config, $debug, $tmpdir); - $common = new PEAR_Common; - $common->ui = $this->ui; - $a->setLogger($common); - return $a; - } - - function doPackage($command, $options, $params) - { - $this->output = ''; - $pkginfofile = isset($params[0]) ? $params[0] : 'package2.xml'; - $packager = &$this->getPackager(); - if (PEAR::isError($err = $this->_convertPackage($pkginfofile))) { - return $err; - } - $compress = empty($options['nocompress']) ? true : false; - $result = $packager->package($pkginfofile, $compress, 'package.xml'); - if (PEAR::isError($result)) { - return $this->raiseError($result); - } - // Don't want output, only the package file name just created - if (isset($options['showname'])) { - $this->ui->outputData($result, $command); - } - return true; - } - - function _convertPackage($packagexml) - { - $pkg = &$this->getPackageFile($this->config); - $pf2 = &$pkg->fromPackageFile($packagexml, PEAR_VALIDATE_NORMAL); - if (!is_a($pf2, 'PEAR_PackageFile_v2')) { - return $this->raiseError('Cannot process "' . - $packagexml . '", is not a package.xml 2.0'); - } - require_once 'PEAR/PackageFile/v1.php'; - $pf = new PEAR_PackageFile_v1; - $pf->setConfig($this->config); - if ($pf2->getPackageType() != 'extsrc' && $pf2->getPackageType() != 'zendextsrc') { - return $this->raiseError('Cannot safely convert "' . $packagexml . - '", is not an extension source package. Using a PEAR_PackageFileManager-based ' . - 'script is an option'); - } - if (is_array($pf2->getUsesRole())) { - return $this->raiseError('Cannot safely convert "' . $packagexml . - '", contains custom roles. Using a PEAR_PackageFileManager-based script or ' . - 'the convert command is an option'); - } - if (is_array($pf2->getUsesTask())) { - return $this->raiseError('Cannot safely convert "' . $packagexml . - '", contains custom tasks. Using a PEAR_PackageFileManager-based script or ' . - 'the convert command is an option'); - } - $deps = $pf2->getDependencies(); - if (isset($deps['group'])) { - return $this->raiseError('Cannot safely convert "' . $packagexml . - '", contains dependency groups. Using a PEAR_PackageFileManager-based script ' . - 'or the convert command is an option'); - } - if (isset($deps['required']['subpackage']) || - isset($deps['optional']['subpackage'])) { - return $this->raiseError('Cannot safely convert "' . $packagexml . - '", contains subpackage dependencies. Using a PEAR_PackageFileManager-based '. - 'script is an option'); - } - if (isset($deps['required']['os'])) { - return $this->raiseError('Cannot safely convert "' . $packagexml . - '", contains os dependencies. Using a PEAR_PackageFileManager-based '. - 'script is an option'); - } - if (isset($deps['required']['arch'])) { - return $this->raiseError('Cannot safely convert "' . $packagexml . - '", contains arch dependencies. Using a PEAR_PackageFileManager-based '. - 'script is an option'); - } - $pf->setPackage($pf2->getPackage()); - $pf->setSummary($pf2->getSummary()); - $pf->setDescription($pf2->getDescription()); - foreach ($pf2->getMaintainers() as $maintainer) { - $pf->addMaintainer($maintainer['role'], $maintainer['handle'], - $maintainer['name'], $maintainer['email']); - } - $pf->setVersion($pf2->getVersion()); - $pf->setDate($pf2->getDate()); - $pf->setLicense($pf2->getLicense()); - $pf->setState($pf2->getState()); - $pf->setNotes($pf2->getNotes()); - $pf->addPhpDep($deps['required']['php']['min'], 'ge'); - if (isset($deps['required']['php']['max'])) { - $pf->addPhpDep($deps['required']['php']['max'], 'le'); - } - if (isset($deps['required']['package'])) { - if (!isset($deps['required']['package'][0])) { - $deps['required']['package'] = array($deps['required']['package']); - } - foreach ($deps['required']['package'] as $dep) { - if (!isset($dep['channel'])) { - return $this->raiseError('Cannot safely convert "' . $packagexml . '"' . - ' contains uri-based dependency on a package. Using a ' . - 'PEAR_PackageFileManager-based script is an option'); - } - if ($dep['channel'] != 'pear.php.net' && $dep['channel'] != 'pecl.php.net') { - return $this->raiseError('Cannot safely convert "' . $packagexml . '"' . - ' contains dependency on a non-standard channel package. Using a ' . - 'PEAR_PackageFileManager-based script is an option'); - } - if (isset($dep['conflicts'])) { - return $this->raiseError('Cannot safely convert "' . $packagexml . '"' . - ' contains conflicts dependency. Using a ' . - 'PEAR_PackageFileManager-based script is an option'); - } - if (isset($dep['exclude'])) { - $this->ui->outputData('WARNING: exclude tags are ignored in conversion'); - } - if (isset($dep['min'])) { - $pf->addPackageDep($dep['name'], $dep['min'], 'ge'); - } - if (isset($dep['max'])) { - $pf->addPackageDep($dep['name'], $dep['max'], 'le'); - } - } - } - if (isset($deps['required']['extension'])) { - if (!isset($deps['required']['extension'][0])) { - $deps['required']['extension'] = array($deps['required']['extension']); - } - foreach ($deps['required']['extension'] as $dep) { - if (isset($dep['conflicts'])) { - return $this->raiseError('Cannot safely convert "' . $packagexml . '"' . - ' contains conflicts dependency. Using a ' . - 'PEAR_PackageFileManager-based script is an option'); - } - if (isset($dep['exclude'])) { - $this->ui->outputData('WARNING: exclude tags are ignored in conversion'); - } - if (isset($dep['min'])) { - $pf->addExtensionDep($dep['name'], $dep['min'], 'ge'); - } - if (isset($dep['max'])) { - $pf->addExtensionDep($dep['name'], $dep['max'], 'le'); - } - } - } - if (isset($deps['optional']['package'])) { - if (!isset($deps['optional']['package'][0])) { - $deps['optional']['package'] = array($deps['optional']['package']); - } - foreach ($deps['optional']['package'] as $dep) { - if (!isset($dep['channel'])) { - return $this->raiseError('Cannot safely convert "' . $packagexml . '"' . - ' contains uri-based dependency on a package. Using a ' . - 'PEAR_PackageFileManager-based script is an option'); - } - if ($dep['channel'] != 'pear.php.net' && $dep['channel'] != 'pecl.php.net') { - return $this->raiseError('Cannot safely convert "' . $packagexml . '"' . - ' contains dependency on a non-standard channel package. Using a ' . - 'PEAR_PackageFileManager-based script is an option'); - } - if (isset($dep['exclude'])) { - $this->ui->outputData('WARNING: exclude tags are ignored in conversion'); - } - if (isset($dep['min'])) { - $pf->addPackageDep($dep['name'], $dep['min'], 'ge', 'yes'); - } - if (isset($dep['max'])) { - $pf->addPackageDep($dep['name'], $dep['max'], 'le', 'yes'); - } - } - } - if (isset($deps['optional']['extension'])) { - if (!isset($deps['optional']['extension'][0])) { - $deps['optional']['extension'] = array($deps['optional']['extension']); - } - foreach ($deps['optional']['extension'] as $dep) { - if (isset($dep['exclude'])) { - $this->ui->outputData('WARNING: exclude tags are ignored in conversion'); - } - if (isset($dep['min'])) { - $pf->addExtensionDep($dep['name'], $dep['min'], 'ge', 'yes'); - } - if (isset($dep['max'])) { - $pf->addExtensionDep($dep['name'], $dep['max'], 'le', 'yes'); - } - } - } - $contents = $pf2->getContents(); - $release = $pf2->getReleases(); - if (isset($releases[0])) { - return $this->raiseError('Cannot safely process "' . $packagexml . '" contains ' - . 'multiple extsrcrelease/zendextsrcrelease tags. Using a PEAR_PackageFileManager-based script ' . - 'or the convert command is an option'); - } - if ($configoptions = $pf2->getConfigureOptions()) { - foreach ($configoptions as $option) { - $pf->addConfigureOption($option['name'], $option['prompt'], - isset($option['default']) ? $option['default'] : false); - } - } - if (isset($release['filelist']['ignore'])) { - return $this->raiseError('Cannot safely process "' . $packagexml . '" contains ' - . 'ignore tags. Using a PEAR_PackageFileManager-based script or the convert' . - ' command is an option'); - } - if (isset($release['filelist']['install']) && - !isset($release['filelist']['install'][0])) { - $release['filelist']['install'] = array($release['filelist']['install']); - } - if (isset($contents['dir']['attribs']['baseinstalldir'])) { - $baseinstalldir = $contents['dir']['attribs']['baseinstalldir']; - } else { - $baseinstalldir = false; - } - if (!isset($contents['dir']['file'][0])) { - $contents['dir']['file'] = array($contents['dir']['file']); - } - foreach ($contents['dir']['file'] as $file) { - if ($baseinstalldir && !isset($file['attribs']['baseinstalldir'])) { - $file['attribs']['baseinstalldir'] = $baseinstalldir; - } - $processFile = $file; - unset($processFile['attribs']); - if (count($processFile)) { - foreach ($processFile as $name => $task) { - if ($name != $pf2->getTasksNs() . ':replace') { - return $this->raiseError('Cannot safely process "' . $packagexml . - '" contains tasks other than replace. Using a ' . - 'PEAR_PackageFileManager-based script is an option.'); - } - $file['attribs']['replace'][] = $task; - } - } - if (!in_array($file['attribs']['role'], PEAR_Common::getFileRoles())) { - return $this->raiseError('Cannot safely convert "' . $packagexml . - '", contains custom roles. Using a PEAR_PackageFileManager-based script ' . - 'or the convert command is an option'); - } - if (isset($release['filelist']['install'])) { - foreach ($release['filelist']['install'] as $installas) { - if ($installas['attribs']['name'] == $file['attribs']['name']) { - $file['attribs']['install-as'] = $installas['attribs']['as']; - } - } - } - $pf->addFile('/', $file['attribs']['name'], $file['attribs']); - } - if ($pf2->getChangeLog()) { - $this->ui->outputData('WARNING: changelog is not translated to package.xml ' . - '1.0, use PEAR_PackageFileManager-based script if you need changelog-' . - 'translation for package.xml 1.0'); - } - $gen = &$pf->getDefaultGenerator(); - $gen->toPackageFile('.'); - } -} - -?> diff --git a/src/vitis/vas/rest/class/PEAR/Command/Pickle.xml b/src/vitis/vas/rest/class/PEAR/Command/Pickle.xml deleted file mode 100755 index 04c85bc7..00000000 --- a/src/vitis/vas/rest/class/PEAR/Command/Pickle.xml +++ /dev/null @@ -1,40 +0,0 @@ -<commands version="1.0"> - <pickle> - <summary>Build PECL Package</summary> - <function>doPackage</function> - <shortcut>pi</shortcut> - <options> - <nocompress> - <shortopt>Z</shortopt> - <doc>Do not gzip the package file</doc> - </nocompress> - <showname> - <shortopt>n</shortopt> - <doc>Print the name of the packaged file.</doc> - </showname> - </options> - <doc>[descfile] [descfile2] -Creates a PECL package from its description file (usually called -package.xml). If a second packagefile is passed in, then -the packager will check to make sure that one is a package.xml -version 1.0, and the other is a package.xml version 2.0. The -package.xml version 1.0 will be saved as "package.xml" in the archive, -and the other as "package2.xml" in the archive" - -If no second file is passed in, and [descfile] is a package.xml 2.0, -an automatic conversion will be made to a package.xml 1.0. Note that -only simple package.xml 2.0 will be converted. package.xml 2.0 with: - - - dependency types other than required/optional PECL package/ext/php/pearinstaller - - more than one extsrcrelease/zendextsrcrelease - - zendextbinrelease, extbinrelease, phprelease, or bundle release type - - dependency groups - - ignore tags in release filelist - - tasks other than replace - - custom roles - -will cause pickle to fail, and output an error message. If your package2.xml -uses any of these features, you are best off using PEAR_PackageFileManager to -generate both package.xml.</doc> - </pickle> -</commands> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/Command/Registry.php b/src/vitis/vas/rest/class/PEAR/Command/Registry.php deleted file mode 100755 index d2f1dd1b..00000000 --- a/src/vitis/vas/rest/class/PEAR/Command/Registry.php +++ /dev/null @@ -1,1070 +0,0 @@ -<?php -/** - * PEAR_Command_Registry (list, list-files, shell-test, info commands) - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Stig Bakken <ssb@php.net> - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Registry.php,v 1.81 2008/01/03 20:26:36 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 0.1 - */ - -/** - * base class - */ -require_once 'PEAR/Command/Common.php'; - -/** - * PEAR commands for registry manipulation - * - * @category pear - * @package PEAR - * @author Stig Bakken <ssb@php.net> - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 0.1 - */ -class PEAR_Command_Registry extends PEAR_Command_Common -{ - // {{{ properties - - var $commands = array( - 'list' => array( - 'summary' => 'List Installed Packages In The Default Channel', - 'function' => 'doList', - 'shortcut' => 'l', - 'options' => array( - 'channel' => array( - 'shortopt' => 'c', - 'doc' => 'list installed packages from this channel', - 'arg' => 'CHAN', - ), - 'allchannels' => array( - 'shortopt' => 'a', - 'doc' => 'list installed packages from all channels', - ), - 'channelinfo' => array( - 'shortopt' => 'i', - 'doc' => 'output fully channel-aware data, even on failure', - ), - ), - 'doc' => '<package> -If invoked without parameters, this command lists the PEAR packages -installed in your php_dir ({config php_dir}). With a parameter, it -lists the files in a package. -', - ), - 'list-files' => array( - 'summary' => 'List Files In Installed Package', - 'function' => 'doFileList', - 'shortcut' => 'fl', - 'options' => array(), - 'doc' => '<package> -List the files in an installed package. -' - ), - 'shell-test' => array( - 'summary' => 'Shell Script Test', - 'function' => 'doShellTest', - 'shortcut' => 'st', - 'options' => array(), - 'doc' => '<package> [[relation] version] -Tests if a package is installed in the system. Will exit(1) if it is not. - <relation> The version comparison operator. One of: - <, lt, <=, le, >, gt, >=, ge, ==, =, eq, !=, <>, ne - <version> The version to compare with -'), - 'info' => array( - 'summary' => 'Display information about a package', - 'function' => 'doInfo', - 'shortcut' => 'in', - 'options' => array(), - 'doc' => '<package> -Displays information about a package. The package argument may be a -local package file, an URL to a package file, or the name of an -installed package.' - ) - ); - - // }}} - // {{{ constructor - - /** - * PEAR_Command_Registry constructor. - * - * @access public - */ - function PEAR_Command_Registry(&$ui, &$config) - { - parent::PEAR_Command_Common($ui, $config); - } - - // }}} - - // {{{ doList() - - function _sortinfo($a, $b) - { - $apackage = isset($a['package']) ? $a['package'] : $a['name']; - $bpackage = isset($b['package']) ? $b['package'] : $b['name']; - return strcmp($apackage, $bpackage); - } - - function doList($command, $options, $params) - { - $reg = &$this->config->getRegistry(); - $channelinfo = isset($options['channelinfo']); - if (isset($options['allchannels']) && !$channelinfo) { - return $this->doListAll($command, array(), $params); - } - if (isset($options['allchannels']) && $channelinfo) { - // allchannels with $channelinfo - unset($options['allchannels']); - $channels = $reg->getChannels(); - $errors = array(); - PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); - foreach ($channels as $channel) { - $options['channel'] = $channel->getName(); - $ret = $this->doList($command, $options, $params); - - if (PEAR::isError($ret)) { - $errors[] = $ret; - } - } - PEAR::staticPopErrorHandling(); - if (count($errors)) { - // for now, only give first error - return PEAR::raiseError($errors[0]); - } - return true; - } - - if (count($params) == 1) { - return $this->doFileList($command, $options, $params); - } - if (isset($options['channel'])) { - if ($reg->channelExists($options['channel'])) { - $channel = $reg->channelName($options['channel']); - } else { - return $this->raiseError('Channel "' . $options['channel'] .'" does not exist'); - } - } else { - $channel = $this->config->get('default_channel'); - } - $installed = $reg->packageInfo(null, null, $channel); - usort($installed, array(&$this, '_sortinfo')); - - $data = array( - 'caption' => 'Installed packages, channel ' . - $channel . ':', - 'border' => true, - 'headline' => array('Package', 'Version', 'State'), - 'channel' => $channel, - ); - if ($channelinfo) { - $data['headline'] = array('Channel', 'Package', 'Version', 'State'); - } - - if (count($installed) && !isset($data['data'])) { - $data['data'] = array(); - } - - foreach ($installed as $package) { - $pobj = $reg->getPackage(isset($package['package']) ? - $package['package'] : $package['name'], $channel); - if ($channelinfo) { - $packageinfo = array($pobj->getChannel(), $pobj->getPackage(), $pobj->getVersion(), - $pobj->getState() ? $pobj->getState() : null); - } else { - $packageinfo = array($pobj->getPackage(), $pobj->getVersion(), - $pobj->getState() ? $pobj->getState() : null); - } - $data['data'][] = $packageinfo; - } - if (count($installed) == 0) { - if (!$channelinfo) { - $data = '(no packages installed from channel ' . $channel . ')'; - } else { - $data = array( - 'caption' => 'Installed packages, channel ' . - $channel . ':', - 'border' => true, - 'channel' => $channel, - 'data' => '(no packages installed)', - ); - } - } - $this->ui->outputData($data, $command); - return true; - } - - function doListAll($command, $options, $params) - { - // This duplicate code is deprecated over - // list --channelinfo, which gives identical - // output for list and list --allchannels. - $reg = &$this->config->getRegistry(); - $installed = $reg->packageInfo(null, null, null); - foreach ($installed as $channel => $packages) { - usort($packages, array($this, '_sortinfo')); - $data = array( - 'caption' => 'Installed packages, channel ' . $channel . ':', - 'border' => true, - 'headline' => array('Package', 'Version', 'State'), - 'channel' => $channel - ); - foreach ($packages as $package) { - $pobj = $reg->getPackage(isset($package['package']) ? - $package['package'] : $package['name'], $channel); - $data['data'][] = array($pobj->getPackage(), $pobj->getVersion(), - $pobj->getState() ? $pobj->getState() : null); - } - if (count($packages)==0) { - $data = array( - 'caption' => 'Installed packages, channel ' . $channel . ':', - 'border' => true, - 'data' => array(array('(no packages installed)')), - 'channel' => $channel - ); - } - $this->ui->outputData($data, $command); - } - return true; - } - - function doFileList($command, $options, $params) - { - if (count($params) != 1) { - return $this->raiseError('list-files expects 1 parameter'); - } - $reg = &$this->config->getRegistry(); - $fp = false; - if (!is_dir($params[0]) && (file_exists($params[0]) || $fp = @fopen($params[0], - 'r'))) { - if ($fp) { - fclose($fp); - } - if (!class_exists('PEAR_PackageFile')) { - require_once 'PEAR/PackageFile.php'; - } - $pkg = &new PEAR_PackageFile($this->config, $this->_debug); - PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); - $info = &$pkg->fromAnyFile($params[0], PEAR_VALIDATE_NORMAL); - PEAR::staticPopErrorHandling(); - $headings = array('Package File', 'Install Path'); - $installed = false; - } else { - PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); - $parsed = $reg->parsePackageName($params[0], $this->config->get('default_channel')); - PEAR::staticPopErrorHandling(); - if (PEAR::isError($parsed)) { - return $this->raiseError($parsed); - } - $info = &$reg->getPackage($parsed['package'], $parsed['channel']); - $headings = array('Type', 'Install Path'); - $installed = true; - } - if (PEAR::isError($info)) { - return $this->raiseError($info); - } - if ($info === null) { - return $this->raiseError("`$params[0]' not installed"); - } - $list = ($info->getPackagexmlVersion() == '1.0' || $installed) ? - $info->getFilelist() : $info->getContents(); - if ($installed) { - $caption = 'Installed Files For ' . $params[0]; - } else { - $caption = 'Contents of ' . basename($params[0]); - } - $data = array( - 'caption' => $caption, - 'border' => true, - 'headline' => $headings); - if ($info->getPackagexmlVersion() == '1.0' || $installed) { - foreach ($list as $file => $att) { - if ($installed) { - if (empty($att['installed_as'])) { - continue; - } - $data['data'][] = array($att['role'], $att['installed_as']); - } else { - if (isset($att['baseinstalldir']) && !in_array($att['role'], - array('test', 'data', 'doc'))) { - $dest = $att['baseinstalldir'] . DIRECTORY_SEPARATOR . - $file; - } else { - $dest = $file; - } - switch ($att['role']) { - case 'test': - case 'data': - case 'doc': - $role = $att['role']; - if ($role == 'test') { - $role .= 's'; - } - $dest = $this->config->get($role . '_dir') . DIRECTORY_SEPARATOR . - $info->getPackage() . DIRECTORY_SEPARATOR . $dest; - break; - case 'php': - default: - $dest = $this->config->get('php_dir') . DIRECTORY_SEPARATOR . - $dest; - } - $ds2 = DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR; - $dest = preg_replace(array('!\\\\+!', '!/!', "!$ds2+!"), - array(DIRECTORY_SEPARATOR, - DIRECTORY_SEPARATOR, - DIRECTORY_SEPARATOR), - $dest); - $file = preg_replace('!/+!', '/', $file); - $data['data'][] = array($file, $dest); - } - } - } else { // package.xml 2.0, not installed - if (!isset($list['dir']['file'][0])) { - $list['dir']['file'] = array($list['dir']['file']); - } - foreach ($list['dir']['file'] as $att) { - $att = $att['attribs']; - $file = $att['name']; - $role = &PEAR_Installer_Role::factory($info, $att['role'], $this->config); - $role->setup($this, $info, $att, $file); - if (!$role->isInstallable()) { - $dest = '(not installable)'; - } else { - $dest = $role->processInstallation($info, $att, $file, ''); - if (PEAR::isError($dest)) { - $dest = '(Unknown role "' . $att['role'] . ')'; - } else { - list(,, $dest) = $dest; - } - } - $data['data'][] = array($file, $dest); - } - } - $this->ui->outputData($data, $command); - return true; - } - - // }}} - // {{{ doShellTest() - - function doShellTest($command, $options, $params) - { - if (count($params) < 1) { - return PEAR::raiseError('ERROR, usage: pear shell-test packagename [[relation] version]'); - } - PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); - $reg = &$this->config->getRegistry(); - $info = $reg->parsePackageName($params[0], $this->config->get('default_channel')); - if (PEAR::isError($info)) { - exit(1); // invalid package name - } - $package = $info['package']; - $channel = $info['channel']; - // "pear shell-test Foo" - if (!$reg->packageExists($package, $channel)) { - if ($channel == 'pecl.php.net') { - if ($reg->packageExists($package, 'pear.php.net')) { - $channel = 'pear.php.net'; // magically change channels for extensions - } - } - } - if (sizeof($params) == 1) { - if (!$reg->packageExists($package, $channel)) { - exit(1); - } - // "pear shell-test Foo 1.0" - } elseif (sizeof($params) == 2) { - $v = $reg->packageInfo($package, 'version', $channel); - if (!$v || !version_compare("$v", "{$params[1]}", "ge")) { - exit(1); - } - // "pear shell-test Foo ge 1.0" - } elseif (sizeof($params) == 3) { - $v = $reg->packageInfo($package, 'version', $channel); - if (!$v || !version_compare("$v", "{$params[2]}", $params[1])) { - exit(1); - } - } else { - PEAR::staticPopErrorHandling(); - $this->raiseError("$command: expects 1 to 3 parameters"); - exit(1); - } - } - - // }}} - // {{{ doInfo - - function doInfo($command, $options, $params) - { - if (count($params) != 1) { - return $this->raiseError('pear info expects 1 parameter'); - } - $info = $fp = false; - $reg = &$this->config->getRegistry(); - if ((file_exists($params[0]) && is_file($params[0]) && !is_dir($params[0])) || $fp = @fopen($params[0], 'r')) { - if ($fp) { - fclose($fp); - } - if (!class_exists('PEAR_PackageFile')) { - require_once 'PEAR/PackageFile.php'; - } - $pkg = &new PEAR_PackageFile($this->config, $this->_debug); - PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); - $obj = &$pkg->fromAnyFile($params[0], PEAR_VALIDATE_NORMAL); - PEAR::staticPopErrorHandling(); - if (PEAR::isError($obj)) { - $uinfo = $obj->getUserInfo(); - if (is_array($uinfo)) { - foreach ($uinfo as $message) { - if (is_array($message)) { - $message = $message['message']; - } - $this->ui->outputData($message); - } - } - return $this->raiseError($obj); - } - if ($obj->getPackagexmlVersion() == '1.0') { - $info = $obj->toArray(); - } else { - return $this->_doInfo2($command, $options, $params, $obj, false); - } - } else { - $parsed = $reg->parsePackageName($params[0], $this->config->get('default_channel')); - if (PEAR::isError($parsed)) { - return $this->raiseError($parsed); - } - $package = $parsed['package']; - $channel = $parsed['channel']; - $info = $reg->packageInfo($package, null, $channel); - if (isset($info['old'])) { - $obj = $reg->getPackage($package, $channel); - return $this->_doInfo2($command, $options, $params, $obj, true); - } - } - if (PEAR::isError($info)) { - return $info; - } - if (empty($info)) { - $this->raiseError("No information found for `$params[0]'"); - return; - } - unset($info['filelist']); - unset($info['dirtree']); - unset($info['changelog']); - if (isset($info['xsdversion'])) { - $info['package.xml version'] = $info['xsdversion']; - unset($info['xsdversion']); - } - if (isset($info['packagerversion'])) { - $info['packaged with PEAR version'] = $info['packagerversion']; - unset($info['packagerversion']); - } - $keys = array_keys($info); - $longtext = array('description', 'summary'); - foreach ($keys as $key) { - if (is_array($info[$key])) { - switch ($key) { - case 'maintainers': { - $i = 0; - $mstr = ''; - foreach ($info[$key] as $m) { - if ($i++ > 0) { - $mstr .= "\n"; - } - $mstr .= $m['name'] . " <"; - if (isset($m['email'])) { - $mstr .= $m['email']; - } else { - $mstr .= $m['handle'] . '@php.net'; - } - $mstr .= "> ($m[role])"; - } - $info[$key] = $mstr; - break; - } - case 'release_deps': { - $i = 0; - $dstr = ''; - foreach ($info[$key] as $d) { - if (isset($this->_deps_rel_trans[$d['rel']])) { - $rel = $this->_deps_rel_trans[$d['rel']]; - } else { - $rel = $d['rel']; - } - if (isset($this->_deps_type_trans[$d['type']])) { - $type = ucfirst($this->_deps_type_trans[$d['type']]); - } else { - $type = $d['type']; - } - if (isset($d['name'])) { - $name = $d['name'] . ' '; - } else { - $name = ''; - } - if (isset($d['version'])) { - $version = $d['version'] . ' '; - } else { - $version = ''; - } - if (isset($d['optional']) && $d['optional'] == 'yes') { - $optional = ' (optional)'; - } else { - $optional = ''; - } - $dstr .= "$type $name$rel $version$optional\n"; - } - $info[$key] = $dstr; - break; - } - case 'provides' : { - $debug = $this->config->get('verbose'); - if ($debug < 2) { - $pstr = 'Classes: '; - } else { - $pstr = ''; - } - $i = 0; - foreach ($info[$key] as $p) { - if ($debug < 2 && $p['type'] != "class") { - continue; - } - // Only print classes when verbosity mode is < 2 - if ($debug < 2) { - if ($i++ > 0) { - $pstr .= ", "; - } - $pstr .= $p['name']; - } else { - if ($i++ > 0) { - $pstr .= "\n"; - } - $pstr .= ucfirst($p['type']) . " " . $p['name']; - if (isset($p['explicit']) && $p['explicit'] == 1) { - $pstr .= " (explicit)"; - } - } - } - $info[$key] = $pstr; - break; - } - case 'configure_options' : { - foreach ($info[$key] as $i => $p) { - $info[$key][$i] = array_map(null, array_keys($p), array_values($p)); - $info[$key][$i] = array_map(create_function('$a', - 'return join(" = ",$a);'), $info[$key][$i]); - $info[$key][$i] = implode(', ', $info[$key][$i]); - } - $info[$key] = implode("\n", $info[$key]); - break; - } - default: { - $info[$key] = implode(", ", $info[$key]); - break; - } - } - } - if ($key == '_lastmodified') { - $hdate = date('Y-m-d', $info[$key]); - unset($info[$key]); - $info['Last Modified'] = $hdate; - } elseif ($key == '_lastversion') { - $info['Previous Installed Version'] = $info[$key] ? $info[$key] : '- None -'; - unset($info[$key]); - } else { - $info[$key] = trim($info[$key]); - if (in_array($key, $longtext)) { - $info[$key] = preg_replace('/ +/', ' ', $info[$key]); - } - } - } - $caption = 'About ' . $info['package'] . '-' . $info['version']; - $data = array( - 'caption' => $caption, - 'border' => true); - foreach ($info as $key => $value) { - $key = ucwords(trim(str_replace('_', ' ', $key))); - $data['data'][] = array($key, $value); - } - $data['raw'] = $info; - - $this->ui->outputData($data, 'package-info'); - } - - // }}} - - /** - * @access private - */ - function _doInfo2($command, $options, $params, &$obj, $installed) - { - $reg = &$this->config->getRegistry(); - $caption = 'About ' . $obj->getChannel() . '/' .$obj->getPackage() . '-' . - $obj->getVersion(); - $data = array( - 'caption' => $caption, - 'border' => true); - switch ($obj->getPackageType()) { - case 'php' : - $release = 'PEAR-style PHP-based Package'; - break; - case 'extsrc' : - $release = 'PECL-style PHP extension (source code)'; - break; - case 'zendextsrc' : - $release = 'PECL-style Zend extension (source code)'; - break; - case 'extbin' : - $release = 'PECL-style PHP extension (binary)'; - break; - case 'zendextbin' : - $release = 'PECL-style Zend extension (binary)'; - break; - case 'bundle' : - $release = 'Package bundle (collection of packages)'; - break; - } - $extends = $obj->getExtends(); - $extends = $extends ? - $obj->getPackage() . ' (extends ' . $extends . ')' : $obj->getPackage(); - if ($src = $obj->getSourcePackage()) { - $extends .= ' (source package ' . $src['channel'] . '/' . $src['package'] . ')'; - } - $info = array( - 'Release Type' => $release, - 'Name' => $extends, - 'Channel' => $obj->getChannel(), - 'Summary' => preg_replace('/ +/', ' ', $obj->getSummary()), - 'Description' => preg_replace('/ +/', ' ', $obj->getDescription()), - ); - $info['Maintainers'] = ''; - foreach (array('lead', 'developer', 'contributor', 'helper') as $role) { - $leads = $obj->{"get{$role}s"}(); - if (!$leads) { - continue; - } - if (isset($leads['active'])) { - $leads = array($leads); - } - foreach ($leads as $lead) { - if (!empty($info['Maintainers'])) { - $info['Maintainers'] .= "\n"; - } - $info['Maintainers'] .= $lead['name'] . ' <'; - $info['Maintainers'] .= $lead['email'] . "> ($role)"; - } - } - $info['Release Date'] = $obj->getDate(); - if ($time = $obj->getTime()) { - $info['Release Date'] .= ' ' . $time; - } - $info['Release Version'] = $obj->getVersion() . ' (' . $obj->getState() . ')'; - $info['API Version'] = $obj->getVersion('api') . ' (' . $obj->getState('api') . ')'; - $info['License'] = $obj->getLicense(); - $uri = $obj->getLicenseLocation(); - if ($uri) { - if (isset($uri['uri'])) { - $info['License'] .= ' (' . $uri['uri'] . ')'; - } else { - $extra = $obj->getInstalledLocation($info['filesource']); - if ($extra) { - $info['License'] .= ' (' . $uri['filesource'] . ')'; - } - } - } - $info['Release Notes'] = $obj->getNotes(); - if ($compat = $obj->getCompatible()) { - if (!isset($compat[0])) { - $compat = array($compat); - } - $info['Compatible with'] = ''; - foreach ($compat as $package) { - $info['Compatible with'] .= $package['channel'] . '/' . $package['name'] . - "\nVersions >= " . $package['min'] . ', <= ' . $package['max']; - if (isset($package['exclude'])) { - if (is_array($package['exclude'])) { - $package['exclude'] = implode(', ', $package['exclude']); - } - if (!isset($info['Not Compatible with'])) { - $info['Not Compatible with'] = ''; - } else { - $info['Not Compatible with'] .= "\n"; - } - $info['Not Compatible with'] .= $package['channel'] . '/' . - $package['name'] . "\nVersions " . $package['exclude']; - } - } - } - $usesrole = $obj->getUsesrole(); - if ($usesrole) { - if (!isset($usesrole[0])) { - $usesrole = array($usesrole); - } - foreach ($usesrole as $roledata) { - if (isset($info['Uses Custom Roles'])) { - $info['Uses Custom Roles'] .= "\n"; - } else { - $info['Uses Custom Roles'] = ''; - } - if (isset($roledata['package'])) { - $rolepackage = $reg->parsedPackageNameToString($roledata, true); - } else { - $rolepackage = $roledata['uri']; - } - $info['Uses Custom Roles'] .= $roledata['role'] . ' (' . $rolepackage . ')'; - } - } - $usestask = $obj->getUsestask(); - if ($usestask) { - if (!isset($usestask[0])) { - $usestask = array($usestask); - } - foreach ($usestask as $taskdata) { - if (isset($info['Uses Custom Tasks'])) { - $info['Uses Custom Tasks'] .= "\n"; - } else { - $info['Uses Custom Tasks'] = ''; - } - if (isset($taskdata['package'])) { - $taskpackage = $reg->parsedPackageNameToString($taskdata, true); - } else { - $taskpackage = $taskdata['uri']; - } - $info['Uses Custom Tasks'] .= $taskdata['task'] . ' (' . $taskpackage . ')'; - } - } - $deps = $obj->getDependencies(); - $info['Required Dependencies'] = 'PHP version ' . $deps['required']['php']['min']; - if (isset($deps['required']['php']['max'])) { - $info['Required Dependencies'] .= '-' . $deps['required']['php']['max'] . "\n"; - } else { - $info['Required Dependencies'] .= "\n"; - } - if (isset($deps['required']['php']['exclude'])) { - if (!isset($info['Not Compatible with'])) { - $info['Not Compatible with'] = ''; - } else { - $info['Not Compatible with'] .= "\n"; - } - if (is_array($deps['required']['php']['exclude'])) { - $deps['required']['php']['exclude'] = - implode(', ', $deps['required']['php']['exclude']); - } - $info['Not Compatible with'] .= "PHP versions\n " . - $deps['required']['php']['exclude']; - } - $info['Required Dependencies'] .= 'PEAR installer version'; - if (isset($deps['required']['pearinstaller']['max'])) { - $info['Required Dependencies'] .= 's ' . - $deps['required']['pearinstaller']['min'] . '-' . - $deps['required']['pearinstaller']['max']; - } else { - $info['Required Dependencies'] .= ' ' . - $deps['required']['pearinstaller']['min'] . ' or newer'; - } - if (isset($deps['required']['pearinstaller']['exclude'])) { - if (!isset($info['Not Compatible with'])) { - $info['Not Compatible with'] = ''; - } else { - $info['Not Compatible with'] .= "\n"; - } - if (is_array($deps['required']['pearinstaller']['exclude'])) { - $deps['required']['pearinstaller']['exclude'] = - implode(', ', $deps['required']['pearinstaller']['exclude']); - } - $info['Not Compatible with'] .= "PEAR installer\n Versions " . - $deps['required']['pearinstaller']['exclude']; - } - foreach (array('Package', 'Extension') as $type) { - $index = strtolower($type); - if (isset($deps['required'][$index])) { - if (isset($deps['required'][$index]['name'])) { - $deps['required'][$index] = array($deps['required'][$index]); - } - foreach ($deps['required'][$index] as $package) { - if (isset($package['conflicts'])) { - $infoindex = 'Not Compatible with'; - if (!isset($info['Not Compatible with'])) { - $info['Not Compatible with'] = ''; - } else { - $info['Not Compatible with'] .= "\n"; - } - } else { - $infoindex = 'Required Dependencies'; - $info[$infoindex] .= "\n"; - } - if ($index == 'extension') { - $name = $package['name']; - } else { - if (isset($package['channel'])) { - $name = $package['channel'] . '/' . $package['name']; - } else { - $name = '__uri/' . $package['name'] . ' (static URI)'; - } - } - $info[$infoindex] .= "$type $name"; - if (isset($package['uri'])) { - $info[$infoindex] .= "\n Download URI: $package[uri]"; - continue; - } - if (isset($package['max']) && isset($package['min'])) { - $info[$infoindex] .= " \n Versions " . - $package['min'] . '-' . $package['max']; - } elseif (isset($package['min'])) { - $info[$infoindex] .= " \n Version " . - $package['min'] . ' or newer'; - } elseif (isset($package['max'])) { - $info[$infoindex] .= " \n Version " . - $package['max'] . ' or older'; - } - if (isset($package['recommended'])) { - $info[$infoindex] .= "\n Recommended version: $package[recommended]"; - } - if (isset($package['exclude'])) { - if (!isset($info['Not Compatible with'])) { - $info['Not Compatible with'] = ''; - } else { - $info['Not Compatible with'] .= "\n"; - } - if (is_array($package['exclude'])) { - $package['exclude'] = implode(', ', $package['exclude']); - } - $package['package'] = $package['name']; // for parsedPackageNameToString - if (isset($package['conflicts'])) { - $info['Not Compatible with'] .= '=> except '; - } - $info['Not Compatible with'] .= 'Package ' . - $reg->parsedPackageNameToString($package, true); - $info['Not Compatible with'] .= "\n Versions " . $package['exclude']; - } - } - } - } - if (isset($deps['required']['os'])) { - if (isset($deps['required']['os']['name'])) { - $dep['required']['os']['name'] = array($dep['required']['os']['name']); - } - foreach ($dep['required']['os'] as $os) { - if (isset($os['conflicts']) && $os['conflicts'] == 'yes') { - if (!isset($info['Not Compatible with'])) { - $info['Not Compatible with'] = ''; - } else { - $info['Not Compatible with'] .= "\n"; - } - $info['Not Compatible with'] .= "$os[name] Operating System"; - } else { - $info['Required Dependencies'] .= "\n"; - $info['Required Dependencies'] .= "$os[name] Operating System"; - } - } - } - if (isset($deps['required']['arch'])) { - if (isset($deps['required']['arch']['pattern'])) { - $dep['required']['arch']['pattern'] = array($dep['required']['os']['pattern']); - } - foreach ($dep['required']['arch'] as $os) { - if (isset($os['conflicts']) && $os['conflicts'] == 'yes') { - if (!isset($info['Not Compatible with'])) { - $info['Not Compatible with'] = ''; - } else { - $info['Not Compatible with'] .= "\n"; - } - $info['Not Compatible with'] .= "OS/Arch matching pattern '/$os[pattern]/'"; - } else { - $info['Required Dependencies'] .= "\n"; - $info['Required Dependencies'] .= "OS/Arch matching pattern '/$os[pattern]/'"; - } - } - } - if (isset($deps['optional'])) { - foreach (array('Package', 'Extension') as $type) { - $index = strtolower($type); - if (isset($deps['optional'][$index])) { - if (isset($deps['optional'][$index]['name'])) { - $deps['optional'][$index] = array($deps['optional'][$index]); - } - foreach ($deps['optional'][$index] as $package) { - if (isset($package['conflicts']) && $package['conflicts'] == 'yes') { - $infoindex = 'Not Compatible with'; - if (!isset($info['Not Compatible with'])) { - $info['Not Compatible with'] = ''; - } else { - $info['Not Compatible with'] .= "\n"; - } - } else { - $infoindex = 'Optional Dependencies'; - if (!isset($info['Optional Dependencies'])) { - $info['Optional Dependencies'] = ''; - } else { - $info['Optional Dependencies'] .= "\n"; - } - } - if ($index == 'extension') { - $name = $package['name']; - } else { - if (isset($package['channel'])) { - $name = $package['channel'] . '/' . $package['name']; - } else { - $name = '__uri/' . $package['name'] . ' (static URI)'; - } - } - $info[$infoindex] .= "$type $name"; - if (isset($package['uri'])) { - $info[$infoindex] .= "\n Download URI: $package[uri]"; - continue; - } - if ($infoindex == 'Not Compatible with') { - // conflicts is only used to say that all versions conflict - continue; - } - if (isset($package['max']) && isset($package['min'])) { - $info[$infoindex] .= " \n Versions " . - $package['min'] . '-' . $package['max']; - } elseif (isset($package['min'])) { - $info[$infoindex] .= " \n Version " . - $package['min'] . ' or newer'; - } elseif (isset($package['max'])) { - $info[$infoindex] .= " \n Version " . - $package['min'] . ' or older'; - } - if (isset($package['recommended'])) { - $info[$infoindex] .= "\n Recommended version: $package[recommended]"; - } - if (isset($package['exclude'])) { - if (!isset($info['Not Compatible with'])) { - $info['Not Compatible with'] = ''; - } else { - $info['Not Compatible with'] .= "\n"; - } - if (is_array($package['exclude'])) { - $package['exclude'] = implode(', ', $package['exclude']); - } - $info['Not Compatible with'] .= "Package $package\n Versions " . - $package['exclude']; - } - } - } - } - } - if (isset($deps['group'])) { - if (!isset($deps['group'][0])) { - $deps['group'] = array($deps['group']); - } - foreach ($deps['group'] as $group) { - $info['Dependency Group ' . $group['attribs']['name']] = $group['attribs']['hint']; - $groupindex = $group['attribs']['name'] . ' Contents'; - $info[$groupindex] = ''; - foreach (array('Package', 'Extension') as $type) { - $index = strtolower($type); - if (isset($group[$index])) { - if (isset($group[$index]['name'])) { - $group[$index] = array($group[$index]); - } - foreach ($group[$index] as $package) { - if (!empty($info[$groupindex])) { - $info[$groupindex] .= "\n"; - } - if ($index == 'extension') { - $name = $package['name']; - } else { - if (isset($package['channel'])) { - $name = $package['channel'] . '/' . $package['name']; - } else { - $name = '__uri/' . $package['name'] . ' (static URI)'; - } - } - if (isset($package['uri'])) { - if (isset($package['conflicts']) && $package['conflicts'] == 'yes') { - $info[$groupindex] .= "Not Compatible with $type $name"; - } else { - $info[$groupindex] .= "$type $name"; - } - $info[$groupindex] .= "\n Download URI: $package[uri]"; - continue; - } - if (isset($package['conflicts']) && $package['conflicts'] == 'yes') { - $info[$groupindex] .= "Not Compatible with $type $name"; - continue; - } - $info[$groupindex] .= "$type $name"; - if (isset($package['max']) && isset($package['min'])) { - $info[$groupindex] .= " \n Versions " . - $package['min'] . '-' . $package['max']; - } elseif (isset($package['min'])) { - $info[$groupindex] .= " \n Version " . - $package['min'] . ' or newer'; - } elseif (isset($package['max'])) { - $info[$groupindex] .= " \n Version " . - $package['min'] . ' or older'; - } - if (isset($package['recommended'])) { - $info[$groupindex] .= "\n Recommended version: $package[recommended]"; - } - if (isset($package['exclude'])) { - if (!isset($info['Not Compatible with'])) { - $info['Not Compatible with'] = ''; - } else { - $info[$groupindex] .= "Not Compatible with\n"; - } - if (is_array($package['exclude'])) { - $package['exclude'] = implode(', ', $package['exclude']); - } - $info[$groupindex] .= " Package $package\n Versions " . - $package['exclude']; - } - } - } - } - } - } - if ($obj->getPackageType() == 'bundle') { - $info['Bundled Packages'] = ''; - foreach ($obj->getBundledPackages() as $package) { - if (!empty($info['Bundled Packages'])) { - $info['Bundled Packages'] .= "\n"; - } - if (isset($package['uri'])) { - $info['Bundled Packages'] .= '__uri/' . $package['name']; - $info['Bundled Packages'] .= "\n (URI: $package[uri]"; - } else { - $info['Bundled Packages'] .= $package['channel'] . '/' . $package['name']; - } - } - } - $info['package.xml version'] = '2.0'; - if ($installed) { - if ($obj->getLastModified()) { - $info['Last Modified'] = date('Y-m-d H:i', $obj->getLastModified()); - } - $v = $obj->getLastInstalledVersion(); - $info['Previous Installed Version'] = $v ? $v : '- None -'; - } - foreach ($info as $key => $value) { - $data['data'][] = array($key, $value); - } - $data['raw'] = $obj->getArray(); // no validation needed - - $this->ui->outputData($data, 'package-info'); - } -} - -?> diff --git a/src/vitis/vas/rest/class/PEAR/Command/Registry.xml b/src/vitis/vas/rest/class/PEAR/Command/Registry.xml deleted file mode 100755 index 9f4e2149..00000000 --- a/src/vitis/vas/rest/class/PEAR/Command/Registry.xml +++ /dev/null @@ -1,58 +0,0 @@ -<commands version="1.0"> - <list> - <summary>List Installed Packages In The Default Channel</summary> - <function>doList</function> - <shortcut>l</shortcut> - <options> - <channel> - <shortopt>c</shortopt> - <doc>list installed packages from this channel</doc> - <arg>CHAN</arg> - </channel> - <allchannels> - <shortopt>a</shortopt> - <doc>list installed packages from all channels</doc> - </allchannels> - <channelinfo> - <shortopt>i</shortopt> - <doc>output fully channel-aware data, even on failure</doc> - </channelinfo> - </options> - <doc><package> -If invoked without parameters, this command lists the PEAR packages -installed in your php_dir ({config php_dir}). With a parameter, it -lists the files in a package. -</doc> - </list> - <list-files> - <summary>List Files In Installed Package</summary> - <function>doFileList</function> - <shortcut>fl</shortcut> - <options /> - <doc><package> -List the files in an installed package. -</doc> - </list-files> - <shell-test> - <summary>Shell Script Test</summary> - <function>doShellTest</function> - <shortcut>st</shortcut> - <options /> - <doc><package> [[relation] version] -Tests if a package is installed in the system. Will exit(1) if it is not. - <relation> The version comparison operator. One of: - <, lt, <=, le, >, gt, >=, ge, ==, =, eq, !=, <>, ne - <version> The version to compare with -</doc> - </shell-test> - <info> - <summary>Display information about a package</summary> - <function>doInfo</function> - <shortcut>in</shortcut> - <options /> - <doc><package> -Displays information about a package. The package argument may be a -local package file, an URL to a package file, or the name of an -installed package.</doc> - </info> -</commands> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/Command/Remote.php b/src/vitis/vas/rest/class/PEAR/Command/Remote.php deleted file mode 100755 index c4fa9088..00000000 --- a/src/vitis/vas/rest/class/PEAR/Command/Remote.php +++ /dev/null @@ -1,812 +0,0 @@ -<?php -/** - * PEAR_Command_Remote (remote-info, list-upgrades, remote-list, search, list-all, download, - * clear-cache commands) - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Stig Bakken <ssb@php.net> - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Remote.php,v 1.107 2008/04/11 01:16:40 dufuz Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 0.1 - */ - -/** - * base class - */ -require_once 'PEAR/Command/Common.php'; -require_once 'PEAR/REST.php'; - -/** - * PEAR commands for remote server querying - * - * @category pear - * @package PEAR - * @author Stig Bakken <ssb@php.net> - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 0.1 - */ -class PEAR_Command_Remote extends PEAR_Command_Common -{ - // {{{ command definitions - - var $commands = array( - 'remote-info' => array( - 'summary' => 'Information About Remote Packages', - 'function' => 'doRemoteInfo', - 'shortcut' => 'ri', - 'options' => array(), - 'doc' => '<package> -Get details on a package from the server.', - ), - 'list-upgrades' => array( - 'summary' => 'List Available Upgrades', - 'function' => 'doListUpgrades', - 'shortcut' => 'lu', - 'options' => array( - 'channelinfo' => array( - 'shortopt' => 'i', - 'doc' => 'output fully channel-aware data, even on failure', - ), - ), - 'doc' => '[preferred_state] -List releases on the server of packages you have installed where -a newer version is available with the same release state (stable etc.) -or the state passed as the second parameter.' - ), - 'remote-list' => array( - 'summary' => 'List Remote Packages', - 'function' => 'doRemoteList', - 'shortcut' => 'rl', - 'options' => array( - 'channel' => - array( - 'shortopt' => 'c', - 'doc' => 'specify a channel other than the default channel', - 'arg' => 'CHAN', - ) - ), - 'doc' => ' -Lists the packages available on the configured server along with the -latest stable release of each package.', - ), - 'search' => array( - 'summary' => 'Search remote package database', - 'function' => 'doSearch', - 'shortcut' => 'sp', - 'options' => array( - 'channel' => - array( - 'shortopt' => 'c', - 'doc' => 'specify a channel other than the default channel', - 'arg' => 'CHAN', - ), - 'allchannels' => array( - 'shortopt' => 'a', - 'doc' => 'search packages from all known channels', - ), - 'channelinfo' => array( - 'shortopt' => 'i', - 'doc' => 'output fully channel-aware data, even on failure', - ), - ), - 'doc' => '[packagename] [packageinfo] -Lists all packages which match the search parameters. The first -parameter is a fragment of a packagename. The default channel -will be used unless explicitly overridden. The second parameter -will be used to match any portion of the summary/description', - ), - 'list-all' => array( - 'summary' => 'List All Packages', - 'function' => 'doListAll', - 'shortcut' => 'la', - 'options' => array( - 'channel' => - array( - 'shortopt' => 'c', - 'doc' => 'specify a channel other than the default channel', - 'arg' => 'CHAN', - ), - 'channelinfo' => array( - 'shortopt' => 'i', - 'doc' => 'output fully channel-aware data, even on failure', - ), - ), - 'doc' => ' -Lists the packages available on the configured server along with the -latest stable release of each package.', - ), - 'download' => array( - 'summary' => 'Download Package', - 'function' => 'doDownload', - 'shortcut' => 'd', - 'options' => array( - 'nocompress' => array( - 'shortopt' => 'Z', - 'doc' => 'download an uncompressed (.tar) file', - ), - ), - 'doc' => '<package>... -Download package tarballs. The files will be named as suggested by the -server, for example if you download the DB package and the latest stable -version of DB is 1.6.5, the downloaded file will be DB-1.6.5.tgz.', - ), - 'clear-cache' => array( - 'summary' => 'Clear Web Services Cache', - 'function' => 'doClearCache', - 'shortcut' => 'cc', - 'options' => array(), - 'doc' => ' -Clear the XML-RPC/REST cache. See also the cache_ttl configuration -parameter. -', - ), - ); - - // }}} - // {{{ constructor - - /** - * PEAR_Command_Remote constructor. - * - * @access public - */ - function PEAR_Command_Remote(&$ui, &$config) - { - parent::PEAR_Command_Common($ui, $config); - } - - // }}} - - function _checkChannelForStatus($channel, $chan) - { - if (PEAR::isError($chan)) { - $this->raiseError($chan); - } - if (!is_a($chan, 'PEAR_ChannelFile')) { - return $this->raiseError('Internal corruption error: invalid channel "' . - $channel . '"'); - } - $rest = new PEAR_REST($this->config); - PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); - $mirror = $this->config->get('preferred_mirror', null, - $channel); - $a = $rest->downloadHttp('http://' . $channel . - '/channel.xml', $chan->lastModified()); - PEAR::staticPopErrorHandling(); - if (!PEAR::isError($a) && $a) { - $this->ui->outputData('WARNING: channel "' . $channel . '" has ' . - 'updated its protocols, use "channel-update ' . $channel . - '" to update'); - } - } - - // {{{ doRemoteInfo() - - function doRemoteInfo($command, $options, $params) - { - if (sizeof($params) != 1) { - return $this->raiseError("$command expects one param: the remote package name"); - } - $savechannel = $channel = $this->config->get('default_channel'); - $reg = &$this->config->getRegistry(); - $package = $params[0]; - $parsed = $reg->parsePackageName($package, $channel); - if (PEAR::isError($parsed)) { - return $this->raiseError('Invalid package name "' . $package . '"'); - } - - $channel = $parsed['channel']; - $this->config->set('default_channel', $channel); - $chan = $reg->getChannel($channel); - if (PEAR::isError($e = $this->_checkChannelForStatus($channel, $chan))) { - return $e; - } - if ($chan->supportsREST($this->config->get('preferred_mirror')) && - $base = $chan->getBaseURL('REST1.0', $this->config->get('preferred_mirror'))) { - $rest = &$this->config->getREST('1.0', array()); - $info = $rest->packageInfo($base, $parsed['package'], $channel); - } else { - $r = &$this->config->getRemote(); - $info = $r->call('package.info', $parsed['package']); - } - if (PEAR::isError($info)) { - $this->config->set('default_channel', $savechannel); - return $this->raiseError($info); - } - if (!isset($info['name'])) { - return $this->raiseError('No remote package "' . $package . '" was found'); - } - - $installed = $reg->packageInfo($info['name'], null, $channel); - $info['installed'] = $installed['version'] ? $installed['version'] : '- no -'; - if (is_array($info['installed'])) { - $info['installed'] = $info['installed']['release']; - } - - $this->ui->outputData($info, $command); - $this->config->set('default_channel', $savechannel); - - return true; - } - - // }}} - // {{{ doRemoteList() - - function doRemoteList($command, $options, $params) - { - $savechannel = $channel = $this->config->get('default_channel'); - $reg = &$this->config->getRegistry(); - if (isset($options['channel'])) { - $channel = $options['channel']; - if ($reg->channelExists($channel)) { - $this->config->set('default_channel', $channel); - } else { - return $this->raiseError('Channel "' . $channel . '" does not exist'); - } - } - $chan = $reg->getChannel($channel); - if (PEAR::isError($e = $this->_checkChannelForStatus($channel, $chan))) { - return $e; - } - $list_options = false; - if ($this->config->get('preferred_state') == 'stable') { - $list_options = true; - } - if ($chan->supportsREST($this->config->get('preferred_mirror')) && - $base = $chan->getBaseURL('REST1.1', $this->config->get('preferred_mirror'))) { - // use faster list-all if available - $rest = &$this->config->getREST('1.1', array()); - $available = $rest->listAll($base, $list_options, true, false, false, $chan->getName()); - } elseif ($chan->supportsREST($this->config->get('preferred_mirror')) && - $base = $chan->getBaseURL('REST1.0', $this->config->get('preferred_mirror'))) { - $rest = &$this->config->getREST('1.0', array()); - $available = $rest->listAll($base, $list_options, true, false, false, $chan->getName()); - } else { - $r = &$this->config->getRemote(); - if ($channel == 'pear.php.net') { - // hack because of poor pearweb design - $available = $r->call('package.listAll', true, $list_options, false); - } else { - $available = $r->call('package.listAll', true, $list_options); - } - } - if (PEAR::isError($available)) { - $this->config->set('default_channel', $savechannel); - return $this->raiseError($available); - } - $i = $j = 0; - $data = array( - 'caption' => 'Channel ' . $channel . ' Available packages:', - 'border' => true, - 'headline' => array('Package', 'Version'), - 'channel' => $channel - ); - if (count($available)==0) { - $data = '(no packages available yet)'; - } else { - foreach ($available as $name => $info) { - $data['data'][] = array($name, (isset($info['stable']) && $info['stable']) - ? $info['stable'] : '-n/a-'); - } - } - $this->ui->outputData($data, $command); - $this->config->set('default_channel', $savechannel); - return true; - } - - // }}} - // {{{ doListAll() - - function doListAll($command, $options, $params) - { - $savechannel = $channel = $this->config->get('default_channel'); - $reg = &$this->config->getRegistry(); - if (isset($options['channel'])) { - $channel = $options['channel']; - if ($reg->channelExists($channel)) { - $this->config->set('default_channel', $channel); - } else { - return $this->raiseError("Channel \"$channel\" does not exist"); - } - } - $list_options = false; - if ($this->config->get('preferred_state') == 'stable') { - $list_options = true; - } - $chan = $reg->getChannel($channel); - if (PEAR::isError($e = $this->_checkChannelForStatus($channel, $chan))) { - return $e; - } - if ($chan->supportsREST($this->config->get('preferred_mirror')) && - $base = $chan->getBaseURL('REST1.1', $this->config->get('preferred_mirror'))) { - // use faster list-all if available - $rest = &$this->config->getREST('1.1', array()); - $available = $rest->listAll($base, $list_options, false, false, false, $chan->getName()); - } elseif ($chan->supportsREST($this->config->get('preferred_mirror')) && - $base = $chan->getBaseURL('REST1.0', $this->config->get('preferred_mirror'))) { - $rest = &$this->config->getREST('1.0', array()); - $available = $rest->listAll($base, $list_options, false, false, false, $chan->getName()); - } else { - $r = &$this->config->getRemote(); - if ($channel == 'pear.php.net') { - // hack because of poor pearweb design - $available = $r->call('package.listAll', true, $list_options, false); - } else { - $available = $r->call('package.listAll', true, $list_options); - } - } - if (PEAR::isError($available)) { - $this->config->set('default_channel', $savechannel); - return $this->raiseError('The package list could not be fetched from the remote server. Please try again. (Debug info: "' . $available->getMessage() . '")'); - } - $data = array( - 'caption' => 'All packages [Channel ' . $channel . ']:', - 'border' => true, - 'headline' => array('Package', 'Latest', 'Local'), - 'channel' => $channel, - ); - if (isset($options['channelinfo'])) { - // add full channelinfo - $data['caption'] = 'Channel ' . $channel . ' All packages:'; - $data['headline'] = array('Channel', 'Package', 'Latest', 'Local', - 'Description', 'Dependencies'); - } - $local_pkgs = $reg->listPackages($channel); - - foreach ($available as $name => $info) { - $installed = $reg->packageInfo($name, null, $channel); - if (is_array($installed['version'])) { - $installed['version'] = $installed['version']['release']; - } - $desc = $info['summary']; - if (isset($params[$name])) { - $desc .= "\n\n".$info['description']; - } - if (isset($options['mode'])) - { - if ($options['mode'] == 'installed' && !isset($installed['version'])) { - continue; - } - if ($options['mode'] == 'notinstalled' && isset($installed['version'])) { - continue; - } - if ($options['mode'] == 'upgrades' - && (!isset($installed['version']) || version_compare($installed['version'], - $info['stable'], '>='))) { - continue; - } - } - $pos = array_search(strtolower($name), $local_pkgs); - if ($pos !== false) { - unset($local_pkgs[$pos]); - } - - if (isset($info['stable']) && !$info['stable']) { - $info['stable'] = null; - } - - if (isset($options['channelinfo'])) { - // add full channelinfo - if ($info['stable'] === $info['unstable']) { - $state = $info['state']; - } else { - $state = 'stable'; - } - $latest = $info['stable'].' ('.$state.')'; - $local = ''; - if (isset($installed['version'])) { - $inst_state = $reg->packageInfo($name, 'release_state', $channel); - $local = $installed['version'].' ('.$inst_state.')'; - } - - $packageinfo = array( - $channel, - $name, - $latest, - $local, - isset($desc) ? $desc : null, - isset($info['deps']) ? $info['deps'] : null, - ); - } else { - $packageinfo = array( - $reg->channelAlias($channel) . '/' . $name, - isset($info['stable']) ? $info['stable'] : null, - isset($installed['version']) ? $installed['version'] : null, - isset($desc) ? $desc : null, - isset($info['deps']) ? $info['deps'] : null, - ); - } - $data['data'][$info['category']][] = $packageinfo; - } - - if (isset($options['mode']) && in_array($options['mode'], array('notinstalled', 'upgrades'))) { - $this->config->set('default_channel', $savechannel); - $this->ui->outputData($data, $command); - return true; - } - foreach ($local_pkgs as $name) { - $info = &$reg->getPackage($name, $channel); - $data['data']['Local'][] = array( - $reg->channelAlias($channel) . '/' . $info->getPackage(), - '', - $info->getVersion(), - $info->getSummary(), - $info->getDeps() - ); - } - - $this->config->set('default_channel', $savechannel); - $this->ui->outputData($data, $command); - return true; - } - - // }}} - // {{{ doSearch() - - function doSearch($command, $options, $params) - { - if ((!isset($params[0]) || empty($params[0])) - && (!isset($params[1]) || empty($params[1]))) - { - return $this->raiseError('no valid search string supplied'); - }; - - $channelinfo = isset($options['channelinfo']); - $reg = &$this->config->getRegistry(); - if (isset($options['allchannels'])) { - // search all channels - unset($options['allchannels']); - $channels = $reg->getChannels(); - $errors = array(); - PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); - foreach ($channels as $channel) { - if ($channel->getName() != '__uri') { - $options['channel'] = $channel->getName(); - $ret = $this->doSearch($command, $options, $params); - if (PEAR::isError($ret)) { - $errors[] = $ret; - } - } - } - PEAR::staticPopErrorHandling(); - if (count($errors) !== 0) { - // for now, only give first error - return PEAR::raiseError($errors[0]); - } - - return true; - } - - $savechannel = $channel = $this->config->get('default_channel'); - $package = $params[0]; - $summary = isset($params[1]) ? $params[1] : false; - if (isset($options['channel'])) { - $reg = &$this->config->getRegistry(); - $channel = $options['channel']; - if ($reg->channelExists($channel)) { - $this->config->set('default_channel', $channel); - } else { - return $this->raiseError('Channel "' . $channel . '" does not exist'); - } - } - $chan = $reg->getChannel($channel); - if (PEAR::isError($e = $this->_checkChannelForStatus($channel, $chan))) { - return $e; - } - if ($chan->supportsREST($this->config->get('preferred_mirror')) && - $base = $chan->getBaseURL('REST1.0', $this->config->get('preferred_mirror'))) { - $rest = &$this->config->getREST('1.0', array()); - $available = $rest->listAll($base, false, false, $package, $summary, $chan->getName()); - } else { - $r = &$this->config->getRemote(); - $available = $r->call('package.search', $package, $summary, true, - $this->config->get('preferred_state') == 'stable', true); - } - if (PEAR::isError($available)) { - $this->config->set('default_channel', $savechannel); - return $this->raiseError($available); - } - if (!$available && !$channelinfo) { - // clean exit when not found, no error ! - $data = 'no packages found that match pattern "' . $package . '", for channel '.$channel.'.'; - $this->ui->outputData($data); - $this->config->set('default_channel', $channel); - return true; - } - if ($channelinfo) { - $data = array( - 'caption' => 'Matched packages, channel ' . $channel . ':', - 'border' => true, - 'headline' => array('Channel', 'Package', 'Stable/(Latest)', 'Local'), - 'channel' => $channel - ); - } else { - $data = array( - 'caption' => 'Matched packages, channel ' . $channel . ':', - 'border' => true, - 'headline' => array('Package', 'Stable/(Latest)', 'Local'), - 'channel' => $channel - ); - } - - if (!$available && $channelinfo) { - unset($data['headline']); - $data['data'] = 'No packages found that match pattern "' . $package . '".'; - $available = array(); - } - foreach ($available as $name => $info) { - $installed = $reg->packageInfo($name, null, $channel); - $desc = $info['summary']; - if (isset($params[$name])) - $desc .= "\n\n".$info['description']; - - if (!isset($info['stable']) || !$info['stable']) { - $version_remote = 'none'; - } else { - if ($info['unstable']) { - $version_remote = $info['unstable']; - } else { - $version_remote = $info['stable']; - } - $version_remote .= ' ('.$info['state'].')'; - } - $version = is_array($installed['version']) ? $installed['version']['release'] : - $installed['version']; - if ($channelinfo) { - $packageinfo = array( - $channel, - $name, - $version_remote, - $version, - $desc, - ); - } else { - $packageinfo = array( - $name, - $version_remote, - $version, - $desc, - ); - } - $data['data'][$info['category']][] = $packageinfo; - } - $this->ui->outputData($data, $command); - $this->config->set('default_channel', $channel); - return true; - } - - // }}} - function &getDownloader($options) - { - if (!class_exists('PEAR_Downloader')) { - require_once 'PEAR/Downloader.php'; - } - $a = &new PEAR_Downloader($this->ui, $options, $this->config); - return $a; - } - // {{{ doDownload() - - function doDownload($command, $options, $params) - { - // make certain that dependencies are ignored - $options['downloadonly'] = 1; - - // eliminate error messages for preferred_state-related errors - /* TODO: Should be an option, but until now download does respect - prefered state */ - /* $options['ignorepreferred_state'] = 1; */ - // eliminate error messages for preferred_state-related errors - - $downloader = &$this->getDownloader($options); - PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); - $e = $downloader->setDownloadDir(getcwd()); - PEAR::staticPopErrorHandling(); - if (PEAR::isError($e)) { - return $this->raiseError('Current directory is not writeable, cannot download'); - } - $errors = array(); - $downloaded = array(); - $err = $downloader->download($params); - if (PEAR::isError($err)) { - return $err; - } - $errors = $downloader->getErrorMsgs(); - if (count($errors)) { - foreach ($errors as $error) { - $this->ui->outputData($error); - } - return $this->raiseError("$command failed"); - } - $downloaded = $downloader->getDownloadedPackages(); - foreach ($downloaded as $pkg) { - $this->ui->outputData("File $pkg[file] downloaded", $command); - } - return true; - } - - function downloadCallback($msg, $params = null) - { - if ($msg == 'done') { - $this->bytes_downloaded = $params; - } - } - - // }}} - // {{{ doListUpgrades() - - function doListUpgrades($command, $options, $params) - { - require_once 'PEAR/Common.php'; - if (isset($params[0]) && !is_array(PEAR_Common::betterStates($params[0]))) { - return $this->raiseError($params[0] . ' is not a valid state (stable/beta/alpha/devel/etc.) try "pear help list-upgrades"'); - } - $savechannel = $channel = $this->config->get('default_channel'); - $reg = &$this->config->getRegistry(); - foreach ($reg->listChannels() as $channel) { - $inst = array_flip($reg->listPackages($channel)); - if (!count($inst)) { - continue; - } - if ($channel == '__uri') { - continue; - } - $this->config->set('default_channel', $channel); - if (empty($params[0])) { - $state = $this->config->get('preferred_state'); - } else { - $state = $params[0]; - } - $caption = $channel . ' Available Upgrades'; - $chan = $reg->getChannel($channel); - if (PEAR::isError($e = $this->_checkChannelForStatus($channel, $chan))) { - return $e; - } - if ($chan->supportsREST($this->config->get('preferred_mirror')) && - $base = $chan->getBaseURL('REST1.0', $this->config->get('preferred_mirror'))) { - $rest = &$this->config->getREST('1.0', array()); - if (empty($state) || $state == 'any') { - $state = false; - } else { - $caption .= ' (' . implode(', ', PEAR_Common::betterStates($state, true)) . ')'; - } - PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); - $latest = $rest->listLatestUpgrades($base, $state, $inst, $channel, $reg); - PEAR::staticPopErrorHandling(); - } else { - $remote = &$this->config->getRemote(); - $remote->pushErrorHandling(PEAR_ERROR_RETURN); - if (empty($state) || $state == 'any') { - $latest = $remote->call("package.listLatestReleases"); - } else { - $latest = $remote->call("package.listLatestReleases", $state); - $caption .= ' (' . implode(', ', PEAR_Common::betterStates($state, true)) . ')'; - } - $remote->popErrorHandling(); - } - if (PEAR::isError($latest)) { - $this->ui->outputData($latest->getMessage()); - continue; - } - $caption .= ':'; - if (PEAR::isError($latest)) { - $this->config->set('default_channel', $savechannel); - return $latest; - } - $data = array( - 'caption' => $caption, - 'border' => 1, - 'headline' => array('Channel', 'Package', 'Local', 'Remote', 'Size'), - 'channel' => $channel - ); - foreach ((array)$latest as $pkg => $info) { - $package = strtolower($pkg); - if (!isset($inst[$package])) { - // skip packages we don't have installed - continue; - } - extract($info); - $inst_version = $reg->packageInfo($package, 'version', $channel); - $inst_state = $reg->packageInfo($package, 'release_state', $channel); - if (version_compare("$version", "$inst_version", "le")) { - // installed version is up-to-date - continue; - } - if ($filesize >= 20480) { - $filesize += 1024 - ($filesize % 1024); - $fs = sprintf("%dkB", $filesize / 1024); - } elseif ($filesize > 0) { - $filesize += 103 - ($filesize % 103); - $fs = sprintf("%.1fkB", $filesize / 1024.0); - } else { - $fs = " -"; // XXX center instead - } - $data['data'][] = array($channel, $pkg, "$inst_version ($inst_state)", "$version ($state)", $fs); - } - if (isset($options['channelinfo'])) { - if (empty($data['data'])) { - unset($data['headline']); - if (count($inst) == 0) { - $data['data'] = '(no packages installed)'; - } else { - $data['data'] = '(no upgrades available)'; - } - } - $this->ui->outputData($data, $command); - } else { - if (empty($data['data'])) { - $this->ui->outputData('Channel ' . $channel . ': No upgrades available'); - } else { - $this->ui->outputData($data, $command); - } - } - } - $this->config->set('default_channel', $savechannel); - return true; - } - - // }}} - // {{{ doClearCache() - - function doClearCache($command, $options, $params) - { - $cache_dir = $this->config->get('cache_dir'); - $verbose = $this->config->get('verbose'); - $output = ''; - if (!file_exists($cache_dir) || !is_dir($cache_dir)) { - return $this->raiseError("$cache_dir does not exist or is not a directory"); - } - if (!($dp = @opendir($cache_dir))) { - return $this->raiseError("opendir($cache_dir) failed: $php_errormsg"); - } - if ($verbose >= 1) { - $output .= "reading directory $cache_dir\n"; - } - $num = 0; - while ($ent = readdir($dp)) { - if (preg_match('/^xmlrpc_cache_[a-z0-9]{32}\\z/', $ent) || - preg_match('/rest.cache(file|id)\\z/', $ent)) { - $path = $cache_dir . DIRECTORY_SEPARATOR . $ent; - if (file_exists($path)) { - $ok = @unlink($path); - } else { - $ok = false; - $php_errormsg = ''; - } - if ($ok) { - if ($verbose >= 2) { - $output .= "deleted $path\n"; - } - $num++; - } elseif ($verbose >= 1) { - $output .= "failed to delete $path $php_errormsg\n"; - } - } - } - closedir($dp); - if ($verbose >= 1) { - $output .= "$num cache entries cleared\n"; - } - $this->ui->outputData(rtrim($output), $command); - return $num; - } - - // }}} -} - -?> diff --git a/src/vitis/vas/rest/class/PEAR/Command/Remote.xml b/src/vitis/vas/rest/class/PEAR/Command/Remote.xml deleted file mode 100755 index d06f2227..00000000 --- a/src/vitis/vas/rest/class/PEAR/Command/Remote.xml +++ /dev/null @@ -1,108 +0,0 @@ -<commands version="1.0"> - <remote-info> - <summary>Information About Remote Packages</summary> - <function>doRemoteInfo</function> - <shortcut>ri</shortcut> - <options /> - <doc><package> -Get details on a package from the server.</doc> - </remote-info> - <list-upgrades> - <summary>List Available Upgrades</summary> - <function>doListUpgrades</function> - <shortcut>lu</shortcut> - <options /> - <doc>[preferred_state] -List releases on the server of packages you have installed where -a newer version is available with the same release state (stable etc.) -or the state passed as the second parameter.</doc> - </list-upgrades> - <remote-list> - <summary>List Remote Packages</summary> - <function>doRemoteList</function> - <shortcut>rl</shortcut> - <options> - <channel> - <shortopt>c</shortopt> - <doc>specify a channel other than the default channel</doc> - <arg>CHAN</arg> - </channel> - <channelinfo> - <shortopt>i</shortopt> - <doc>output fully channel-aware data, even on failure</doc> - </channelinfo> - </options> - <doc> -Lists the packages available on the configured server along with the -latest stable release of each package.</doc> - </remote-list> - <search> - <summary>Search remote package database</summary> - <function>doSearch</function> - <shortcut>sp</shortcut> - <options> - <channel> - <shortopt>c</shortopt> - <doc>specify a channel other than the default channel</doc> - <arg>CHAN</arg> - </channel> - <allchannels> - <shortopt>a</shortopt> - <doc>search packages from all known channels</doc> - </allchannels> - <channelinfo> - <shortopt>i</shortopt> - <doc>output fully channel-aware data, even on failure</doc> - </channelinfo> - </options> - <doc>[packagename] [packageinfo] -Lists all packages which match the search parameters. The first -parameter is a fragment of a packagename. The default channel -will be used unless explicitly overridden. The second parameter -will be used to match any portion of the summary/description</doc> - </search> - <list-all> - <summary>List All Packages</summary> - <function>doListAll</function> - <shortcut>la</shortcut> - <options> - <channel> - <shortopt>c</shortopt> - <doc>specify a channel other than the default channel</doc> - <arg>CHAN</arg> - </channel> - <channelinfo> - <shortopt>i</shortopt> - <doc>output fully channel-aware data, even on failure</doc> - </channelinfo> - </options> - <doc> -Lists the packages available on the configured server along with the -latest stable release of each package.</doc> - </list-all> - <download> - <summary>Download Package</summary> - <function>doDownload</function> - <shortcut>d</shortcut> - <options> - <nocompress> - <shortopt>Z</shortopt> - <doc>download an uncompressed (.tar) file</doc> - </nocompress> - </options> - <doc><package>... -Download package tarballs. The files will be named as suggested by the -server, for example if you download the DB package and the latest stable -version of DB is 1.6.5, the downloaded file will be DB-1.6.5.tgz.</doc> - </download> - <clear-cache> - <summary>Clear Web Services Cache</summary> - <function>doClearCache</function> - <shortcut>cc</shortcut> - <options /> - <doc> -Clear the XML-RPC/REST cache. See also the cache_ttl configuration -parameter. -</doc> - </clear-cache> -</commands> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/Command/Test.php b/src/vitis/vas/rest/class/PEAR/Command/Test.php deleted file mode 100755 index 4cf40f61..00000000 --- a/src/vitis/vas/rest/class/PEAR/Command/Test.php +++ /dev/null @@ -1,345 +0,0 @@ -<?php -/** - * PEAR_Command_Test (run-tests) - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Stig Bakken <ssb@php.net> - * @author Martin Jansen <mj@php.net> - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Test.php,v 1.27 2008/01/03 20:26:36 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 0.1 - */ - -/** - * base class - */ -require_once 'PEAR/Command/Common.php'; - -/** - * PEAR commands for login/logout - * - * @category pear - * @package PEAR - * @author Stig Bakken <ssb@php.net> - * @author Martin Jansen <mj@php.net> - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 0.1 - */ - -class PEAR_Command_Test extends PEAR_Command_Common -{ - // {{{ properties - - var $commands = array( - 'run-tests' => array( - 'summary' => 'Run Regression Tests', - 'function' => 'doRunTests', - 'shortcut' => 'rt', - 'options' => array( - 'recur' => array( - 'shortopt' => 'r', - 'doc' => 'Run tests in child directories, recursively. 4 dirs deep maximum', - ), - 'ini' => array( - 'shortopt' => 'i', - 'doc' => 'actual string of settings to pass to php in format " -d setting=blah"', - 'arg' => 'SETTINGS' - ), - 'realtimelog' => array( - 'shortopt' => 'l', - 'doc' => 'Log test runs/results as they are run', - ), - 'quiet' => array( - 'shortopt' => 'q', - 'doc' => 'Only display detail for failed tests', - ), - 'simple' => array( - 'shortopt' => 's', - 'doc' => 'Display simple output for all tests', - ), - 'package' => array( - 'shortopt' => 'p', - 'doc' => 'Treat parameters as installed packages from which to run tests', - ), - 'phpunit' => array( - 'shortopt' => 'u', - 'doc' => 'Search parameters for AllTests.php, and use that to run phpunit-based tests -If none is found, all .phpt tests will be tried instead.', - ), - 'tapoutput' => array( - 'shortopt' => 't', - 'doc' => 'Output run-tests.log in TAP-compliant format', - ), - 'cgi' => array( - 'shortopt' => 'c', - 'doc' => 'CGI php executable (needed for tests with POST/GET section)', - 'arg' => 'PHPCGI', - ), - 'coverage' => array( - 'shortopt' => 'x', - 'doc' => 'Generate a code coverage report (requires Xdebug 2.0.0+)', - ), - ), - 'doc' => '[testfile|dir ...] -Run regression tests with PHP\'s regression testing script (run-tests.php).', - ), - ); - - var $output; - - // }}} - // {{{ constructor - - /** - * PEAR_Command_Test constructor. - * - * @access public - */ - function PEAR_Command_Test(&$ui, &$config) - { - parent::PEAR_Command_Common($ui, $config); - } - - // }}} - // {{{ doRunTests() - - function doRunTests($command, $options, $params) - { - if (isset($options['phpunit']) && isset($options['tapoutput'])) { - return $this->raiseError('ERROR: cannot use both --phpunit and --tapoutput at the same time'); - } - require_once 'PEAR/Common.php'; - require_once 'System.php'; - $log = new PEAR_Common; - $log->ui = &$this->ui; // slightly hacky, but it will work - $tests = array(); - $depth = isset($options['recur']) ? 4 : 1; - - if (!count($params)) { - $params[] = '.'; - } - if (isset($options['package'])) { - $oldparams = $params; - $params = array(); - $reg = &$this->config->getRegistry(); - foreach ($oldparams as $param) { - $pname = $reg->parsePackageName($param, $this->config->get('default_channel')); - if (PEAR::isError($pname)) { - return $this->raiseError($pname); - } - - $package = &$reg->getPackage($pname['package'], $pname['channel']); - if (!$package) { - return PEAR::raiseError('Unknown package "' . - $reg->parsedPackageNameToString($pname) . '"'); - } - - $filelist = $package->getFilelist(); - foreach ($filelist as $name => $atts) { - if (isset($atts['role']) && $atts['role'] != 'test') { - continue; - } - - if (isset($options['phpunit']) && preg_match('/AllTests\.php\\z/i', $name)) { - $params[] = $atts['installed_as']; - continue; - } elseif (!preg_match('/\.phpt\\z/', $name)) { - continue; - } - $params[] = $atts['installed_as']; - } - } - } - - foreach ($params as $p) { - if (is_dir($p)) { - if (isset($options['phpunit'])) { - $dir = System::find(array($p, '-type', 'f', - '-maxdepth', $depth, - '-name', 'AllTests.php')); - if (count($dir)) { - foreach ($dir as $p) { - $p = realpath($p); - if (!count($tests) || - (count($tests) && strlen($p) < strlen($tests[0]))) { - // this is in a higher-level directory, use this one instead. - $tests = array($p); - } - } - } - continue; - } - $dir = System::find(array($p, '-type', 'f', - '-maxdepth', $depth, - '-name', '*.phpt')); - $tests = array_merge($tests, $dir); - } else { - if (isset($options['phpunit'])) { - if (preg_match('/AllTests\.php\\z/i', $p)) { - $p = realpath($p); - if (!count($tests) || - (count($tests) && strlen($p) < strlen($tests[0]))) { - // this is in a higher-level directory, use this one instead. - $tests = array($p); - } - } - continue; - } - - if (file_exists($p) && preg_match('/\.phpt$/', $p)) { - $tests[] = $p; - continue; - } - - if (!preg_match('/\.phpt\\z/', $p)) { - $p .= '.phpt'; - } - $dir = System::find(array(dirname($p), '-type', 'f', - '-maxdepth', $depth, - '-name', $p)); - $tests = array_merge($tests, $dir); - } - } - - $ini_settings = ''; - if (isset($options['ini'])) { - $ini_settings .= $options['ini']; - } - - if (isset($_ENV['TEST_PHP_INCLUDE_PATH'])) { - $ini_settings .= " -d include_path={$_ENV['TEST_PHP_INCLUDE_PATH']}"; - } - - if ($ini_settings) { - $this->ui->outputData('Using INI settings: "' . $ini_settings . '"'); - } - $skipped = $passed = $failed = array(); - $tests_count = count($tests); - $this->ui->outputData('Running ' . $tests_count . ' tests', $command); - $start = time(); - if (isset($options['realtimelog']) && file_exists('run-tests.log')) { - unlink('run-tests.log'); - } - - if (isset($options['tapoutput'])) { - $tap = '1..' . $tests_count . "\n"; - } - - require_once 'PEAR/RunTest.php'; - $run = new PEAR_RunTest($log, $options); - $run->tests_count = $tests_count; - - if (isset($options['coverage']) && extension_loaded('xdebug')){ - $run->xdebug_loaded = true; - } else { - $run->xdebug_loaded = false; - } - - $j = $i = 1; - foreach ($tests as $t) { - if (isset($options['realtimelog'])) { - $fp = @fopen('run-tests.log', 'a'); - if ($fp) { - fwrite($fp, "Running test [$i / $tests_count] $t..."); - fclose($fp); - } - } - PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); - if (isset($options['phpunit'])) { - $result = $run->runPHPUnit($t, $ini_settings); - } else { - $result = $run->run($t, $ini_settings, $j); - } - PEAR::staticPopErrorHandling(); - if (PEAR::isError($result)) { - $this->ui->log($result->getMessage()); - continue; - } - - if (isset($options['tapoutput'])) { - $tap .= $result[0] . ' ' . $i . $result[1] . "\n"; - continue; - } - - if (isset($options['realtimelog'])) { - $fp = @fopen('run-tests.log', 'a'); - if ($fp) { - fwrite($fp, "$result\n"); - fclose($fp); - } - } - - if ($result == 'FAILED') { - $failed[] = $t; - } - if ($result == 'PASSED') { - $passed[] = $t; - } - if ($result == 'SKIPPED') { - $skipped[] = $t; - } - - $j++; - } - - $total = date('i:s', time() - $start); - if (isset($options['tapoutput'])) { - $fp = @fopen('run-tests.log', 'w'); - if ($fp) { - fwrite($fp, $tap, strlen($tap)); - fclose($fp); - $this->ui->outputData('wrote TAP-format log to "' .realpath('run-tests.log') . - '"', $command); - } - } else { - if (count($failed)) { - $output = "TOTAL TIME: $total\n"; - $output .= count($passed) . " PASSED TESTS\n"; - $output .= count($skipped) . " SKIPPED TESTS\n"; - $output .= count($failed) . " FAILED TESTS:\n"; - foreach ($failed as $failure) { - $output .= $failure . "\n"; - } - - $mode = isset($options['realtimelog']) ? 'a' : 'w'; - $fp = @fopen('run-tests.log', $mode); - - if ($fp) { - fwrite($fp, $output, strlen($output)); - fclose($fp); - $this->ui->outputData('wrote log to "' . realpath('run-tests.log') . '"', $command); - } - } elseif (file_exists('run-tests.log') && !is_dir('run-tests.log')) { - @unlink('run-tests.log'); - } - } - $this->ui->outputData('TOTAL TIME: ' . $total); - $this->ui->outputData(count($passed) . ' PASSED TESTS', $command); - $this->ui->outputData(count($skipped) . ' SKIPPED TESTS', $command); - if (count($failed)) { - $this->ui->outputData(count($failed) . ' FAILED TESTS:', $command); - foreach ($failed as $failure) { - $this->ui->outputData($failure, $command); - } - } - - return true; - } - // }}} -} \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/Command/Test.xml b/src/vitis/vas/rest/class/PEAR/Command/Test.xml deleted file mode 100755 index 68e8f538..00000000 --- a/src/vitis/vas/rest/class/PEAR/Command/Test.xml +++ /dev/null @@ -1,54 +0,0 @@ -<commands version="1.0"> - <run-tests> - <summary>Run Regression Tests</summary> - <function>doRunTests</function> - <shortcut>rt</shortcut> - <options> - <recur> - <shortopt>r</shortopt> - <doc>Run tests in child directories, recursively. 4 dirs deep maximum</doc> - </recur> - <ini> - <shortopt>i</shortopt> - <doc>actual string of settings to pass to php in format " -d setting=blah"</doc> - <arg>SETTINGS</arg> - </ini> - <realtimelog> - <shortopt>l</shortopt> - <doc>Log test runs/results as they are run</doc> - </realtimelog> - <quiet> - <shortopt>q</shortopt> - <doc>Only display detail for failed tests</doc> - </quiet> - <simple> - <shortopt>s</shortopt> - <doc>Display simple output for all tests</doc> - </simple> - <package> - <shortopt>p</shortopt> - <doc>Treat parameters as installed packages from which to run tests</doc> - </package> - <phpunit> - <shortopt>u</shortopt> - <doc>Search parameters for AllTests.php, and use that to run phpunit-based tests. -If none is found, all .phpt tests will be tried instead.</doc> - </phpunit> - <tapoutput> - <shortopt>t</shortopt> - <doc>Output run-tests.log in TAP-compliant format</doc> - </tapoutput> - <cgi> - <shortopt>c</shortopt> - <doc>CGI php executable (needed for tests with POST/GET section)</doc> - <arg>PHPCGI</arg> - </cgi> - <coverage> - <shortopt>x</shortopt> - <doc>Generate a code coverage report (requires Xdebug 2.0.0+)</doc> - </coverage> - </options> - <doc>[testfile|dir ...] -Run regression tests with PHP's regression testing script (run-tests.php).</doc> - </run-tests> -</commands> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/Common.php b/src/vitis/vas/rest/class/PEAR/Common.php deleted file mode 100755 index 73ec384f..00000000 --- a/src/vitis/vas/rest/class/PEAR/Common.php +++ /dev/null @@ -1,1126 +0,0 @@ -<?php -/** - * PEAR_Common, the base class for the PEAR Installer - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Stig Bakken <ssb@php.net> - * @author Tomas V. V. Cox <cox@idecnet.com> - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Common.php,v 1.160 2008/01/03 20:26:34 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 0.1.0 - * @deprecated File deprecated since Release 1.4.0a1 - */ - -/** - * Include error handling - */ -require_once 'PEAR.php'; - -// {{{ constants and globals - -/** - * PEAR_Common error when an invalid PHP file is passed to PEAR_Common::analyzeSourceCode() - */ -define('PEAR_COMMON_ERROR_INVALIDPHP', 1); -define('_PEAR_COMMON_PACKAGE_NAME_PREG', '[A-Za-z][a-zA-Z0-9_]+'); -define('PEAR_COMMON_PACKAGE_NAME_PREG', '/^' . _PEAR_COMMON_PACKAGE_NAME_PREG . '\\z/'); - -// this should allow: 1, 1.0, 1.0RC1, 1.0dev, 1.0dev123234234234, 1.0a1, 1.0b1, 1.0pl1 -define('_PEAR_COMMON_PACKAGE_VERSION_PREG', '\d+(?:\.\d+)*(?:[a-zA-Z]+\d*)?'); -define('PEAR_COMMON_PACKAGE_VERSION_PREG', '/^' . _PEAR_COMMON_PACKAGE_VERSION_PREG . '\\z/i'); - -// XXX far from perfect :-) -define('_PEAR_COMMON_PACKAGE_DOWNLOAD_PREG', '(' . _PEAR_COMMON_PACKAGE_NAME_PREG . - ')(-([.0-9a-zA-Z]+))?'); -define('PEAR_COMMON_PACKAGE_DOWNLOAD_PREG', '/^' . _PEAR_COMMON_PACKAGE_DOWNLOAD_PREG . - '\\z/'); - -define('_PEAR_CHANNELS_NAME_PREG', '[A-Za-z][a-zA-Z0-9\.]+'); -define('PEAR_CHANNELS_NAME_PREG', '/^' . _PEAR_CHANNELS_NAME_PREG . '\\z/'); - -// this should allow any dns or IP address, plus a path - NO UNDERSCORES ALLOWED -define('_PEAR_CHANNELS_SERVER_PREG', '[a-zA-Z0-9\-]+(?:\.[a-zA-Z0-9\-]+)*(\/[a-zA-Z0-9\-]+)*'); -define('PEAR_CHANNELS_SERVER_PREG', '/^' . _PEAR_CHANNELS_SERVER_PREG . '\\z/i'); - -define('_PEAR_CHANNELS_PACKAGE_PREG', '(' ._PEAR_CHANNELS_SERVER_PREG . ')\/(' - . _PEAR_COMMON_PACKAGE_NAME_PREG . ')'); -define('PEAR_CHANNELS_PACKAGE_PREG', '/^' . _PEAR_CHANNELS_PACKAGE_PREG . '\\z/i'); - -define('_PEAR_COMMON_CHANNEL_DOWNLOAD_PREG', '(' . _PEAR_CHANNELS_NAME_PREG . ')::(' - . _PEAR_COMMON_PACKAGE_NAME_PREG . ')(-([.0-9a-zA-Z]+))?'); -define('PEAR_COMMON_CHANNEL_DOWNLOAD_PREG', '/^' . _PEAR_COMMON_CHANNEL_DOWNLOAD_PREG . '\\z/'); - -/** - * List of temporary files and directories registered by - * PEAR_Common::addTempFile(). - * @var array - */ -$GLOBALS['_PEAR_Common_tempfiles'] = array(); - -/** - * Valid maintainer roles - * @var array - */ -$GLOBALS['_PEAR_Common_maintainer_roles'] = array('lead','developer','contributor','helper'); - -/** - * Valid release states - * @var array - */ -$GLOBALS['_PEAR_Common_release_states'] = array('alpha','beta','stable','snapshot','devel'); - -/** - * Valid dependency types - * @var array - */ -$GLOBALS['_PEAR_Common_dependency_types'] = array('pkg','ext','php','prog','ldlib','rtlib','os','websrv','sapi'); - -/** - * Valid dependency relations - * @var array - */ -$GLOBALS['_PEAR_Common_dependency_relations'] = array('has','eq','lt','le','gt','ge','not', 'ne'); - -/** - * Valid file roles - * @var array - */ -$GLOBALS['_PEAR_Common_file_roles'] = array('php','ext','test','doc','data','src','script'); - -/** - * Valid replacement types - * @var array - */ -$GLOBALS['_PEAR_Common_replacement_types'] = array('php-const', 'pear-config', 'package-info'); - -/** - * Valid "provide" types - * @var array - */ -$GLOBALS['_PEAR_Common_provide_types'] = array('ext', 'prog', 'class', 'function', 'feature', 'api'); - -/** - * Valid "provide" types - * @var array - */ -$GLOBALS['_PEAR_Common_script_phases'] = array('pre-install', 'post-install', 'pre-uninstall', 'post-uninstall', 'pre-build', 'post-build', 'pre-configure', 'post-configure', 'pre-setup', 'post-setup'); - -// }}} - -/** - * Class providing common functionality for PEAR administration classes. - * @category pear - * @package PEAR - * @author Stig Bakken <ssb@php.net> - * @author Tomas V. V. Cox <cox@idecnet.com> - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 1.4.0a1 - * @deprecated This class will disappear, and its components will be spread - * into smaller classes, like the AT&T breakup, as of Release 1.4.0a1 - */ -class PEAR_Common extends PEAR -{ - // {{{ properties - - /** stack of elements, gives some sort of XML context */ - var $element_stack = array(); - - /** name of currently parsed XML element */ - var $current_element; - - /** array of attributes of the currently parsed XML element */ - var $current_attributes = array(); - - /** assoc with information about a package */ - var $pkginfo = array(); - - /** - * User Interface object (PEAR_Frontend_* class). If null, - * the log() method uses print. - * @var object - */ - var $ui = null; - - /** - * Configuration object (PEAR_Config). - * @var PEAR_Config - */ - var $config = null; - - var $current_path = null; - - /** - * PEAR_SourceAnalyzer instance - * @var object - */ - var $source_analyzer = null; - /** - * Flag variable used to mark a valid package file - * @var boolean - * @access private - */ - var $_validPackageFile; - - // }}} - - // {{{ constructor - - /** - * PEAR_Common constructor - * - * @access public - */ - function PEAR_Common() - { - parent::PEAR(); - $this->config = &PEAR_Config::singleton(); - $this->debug = $this->config->get('verbose'); - } - - // }}} - // {{{ destructor - - /** - * PEAR_Common destructor - * - * @access private - */ - function _PEAR_Common() - { - // doesn't work due to bug #14744 - //$tempfiles = $this->_tempfiles; - $tempfiles =& $GLOBALS['_PEAR_Common_tempfiles']; - while ($file = array_shift($tempfiles)) { - if (@is_dir($file)) { - if (!class_exists('System')) { - require_once 'System.php'; - } - System::rm(array('-rf', $file)); - } elseif (file_exists($file)) { - unlink($file); - } - } - } - - // }}} - // {{{ addTempFile() - - /** - * Register a temporary file or directory. When the destructor is - * executed, all registered temporary files and directories are - * removed. - * - * @param string $file name of file or directory - * - * @return void - * - * @access public - */ - function addTempFile($file) - { - if (!class_exists('PEAR_Frontend')) { - require_once 'PEAR/Frontend.php'; - } - PEAR_Frontend::addTempFile($file); - } - - // }}} - // {{{ mkDirHier() - - /** - * Wrapper to System::mkDir(), creates a directory as well as - * any necessary parent directories. - * - * @param string $dir directory name - * - * @return bool TRUE on success, or a PEAR error - * - * @access public - */ - function mkDirHier($dir) - { - $this->log(2, "+ create dir $dir"); - if (!class_exists('System')) { - require_once 'System.php'; - } - return System::mkDir(array('-p', $dir)); - } - - // }}} - // {{{ log() - - /** - * Logging method. - * - * @param int $level log level (0 is quiet, higher is noisier) - * @param string $msg message to write to the log - * - * @return void - * - * @access public - * @static - */ - function log($level, $msg, $append_crlf = true) - { - if ($this->debug >= $level) { - if (!class_exists('PEAR_Frontend')) { - require_once 'PEAR/Frontend.php'; - } - $ui = &PEAR_Frontend::singleton(); - if (is_a($ui, 'PEAR_Frontend')) { - $ui->log($msg, $append_crlf); - } else { - print "$msg\n"; - } - } - } - - // }}} - // {{{ mkTempDir() - - /** - * Create and register a temporary directory. - * - * @param string $tmpdir (optional) Directory to use as tmpdir. - * Will use system defaults (for example - * /tmp or c:\windows\temp) if not specified - * - * @return string name of created directory - * - * @access public - */ - function mkTempDir($tmpdir = '') - { - if ($tmpdir) { - $topt = array('-t', $tmpdir); - } else { - $topt = array(); - } - $topt = array_merge($topt, array('-d', 'pear')); - if (!class_exists('System')) { - require_once 'System.php'; - } - if (!$tmpdir = System::mktemp($topt)) { - return false; - } - $this->addTempFile($tmpdir); - return $tmpdir; - } - - // }}} - // {{{ setFrontendObject() - - /** - * Set object that represents the frontend to be used. - * - * @param object Reference of the frontend object - * @return void - * @access public - */ - function setFrontendObject(&$ui) - { - $this->ui = &$ui; - } - - // }}} - - // {{{ infoFromTgzFile() - - /** - * Returns information about a package file. Expects the name of - * a gzipped tar file as input. - * - * @param string $file name of .tgz file - * - * @return array array with package information - * - * @access public - * @deprecated use PEAR_PackageFile->fromTgzFile() instead - * - */ - function infoFromTgzFile($file) - { - $packagefile = &new PEAR_PackageFile($this->config); - $pf = &$packagefile->fromTgzFile($file, PEAR_VALIDATE_NORMAL); - if (PEAR::isError($pf)) { - $errs = $pf->getUserinfo(); - if (is_array($errs)) { - foreach ($errs as $error) { - $e = $this->raiseError($error['message'], $error['code'], null, null, $error); - } - } - return $pf; - } - return $this->_postProcessValidPackagexml($pf); - } - - // }}} - // {{{ infoFromDescriptionFile() - - /** - * Returns information about a package file. Expects the name of - * a package xml file as input. - * - * @param string $descfile name of package xml file - * - * @return array array with package information - * - * @access public - * @deprecated use PEAR_PackageFile->fromPackageFile() instead - * - */ - function infoFromDescriptionFile($descfile) - { - $packagefile = &new PEAR_PackageFile($this->config); - $pf = &$packagefile->fromPackageFile($descfile, PEAR_VALIDATE_NORMAL); - if (PEAR::isError($pf)) { - $errs = $pf->getUserinfo(); - if (is_array($errs)) { - foreach ($errs as $error) { - $e = $this->raiseError($error['message'], $error['code'], null, null, $error); - } - } - return $pf; - } - return $this->_postProcessValidPackagexml($pf); - } - - // }}} - // {{{ infoFromString() - - /** - * Returns information about a package file. Expects the contents - * of a package xml file as input. - * - * @param string $data contents of package.xml file - * - * @return array array with package information - * - * @access public - * @deprecated use PEAR_PackageFile->fromXmlstring() instead - * - */ - function infoFromString($data) - { - $packagefile = &new PEAR_PackageFile($this->config); - $pf = &$packagefile->fromXmlString($data, PEAR_VALIDATE_NORMAL, false); - if (PEAR::isError($pf)) { - $errs = $pf->getUserinfo(); - if (is_array($errs)) { - foreach ($errs as $error) { - $e = $this->raiseError($error['message'], $error['code'], null, null, $error); - } - } - return $pf; - } - return $this->_postProcessValidPackagexml($pf); - } - // }}} - - /** - * @param PEAR_PackageFile_v1|PEAR_PackageFile_v2 - * @return array - */ - function _postProcessValidPackagexml(&$pf) - { - if (is_a($pf, 'PEAR_PackageFile_v2')) { - // sort of make this into a package.xml 1.0-style array - // changelog is not converted to old format. - $arr = $pf->toArray(true); - $arr = array_merge($arr, $arr['old']); - unset($arr['old']); - unset($arr['xsdversion']); - unset($arr['contents']); - unset($arr['compatible']); - unset($arr['channel']); - unset($arr['uri']); - unset($arr['dependencies']); - unset($arr['phprelease']); - unset($arr['extsrcrelease']); - unset($arr['zendextsrcrelease']); - unset($arr['extbinrelease']); - unset($arr['zendextbinrelease']); - unset($arr['bundle']); - unset($arr['lead']); - unset($arr['developer']); - unset($arr['helper']); - unset($arr['contributor']); - $arr['filelist'] = $pf->getFilelist(); - $this->pkginfo = $arr; - return $arr; - } else { - $this->pkginfo = $pf->toArray(); - return $this->pkginfo; - } - } - // {{{ infoFromAny() - - /** - * Returns package information from different sources - * - * This method is able to extract information about a package - * from a .tgz archive or from a XML package definition file. - * - * @access public - * @param string Filename of the source ('package.xml', '<package>.tgz') - * @return string - * @deprecated use PEAR_PackageFile->fromAnyFile() instead - */ - function infoFromAny($info) - { - if (is_string($info) && file_exists($info)) { - $packagefile = &new PEAR_PackageFile($this->config); - $pf = &$packagefile->fromAnyFile($info, PEAR_VALIDATE_NORMAL); - if (PEAR::isError($pf)) { - $errs = $pf->getUserinfo(); - if (is_array($errs)) { - foreach ($errs as $error) { - $e = $this->raiseError($error['message'], $error['code'], null, null, $error); - } - } - return $pf; - } - return $this->_postProcessValidPackagexml($pf); - } - return $info; - } - - // }}} - // {{{ xmlFromInfo() - - /** - * Return an XML document based on the package info (as returned - * by the PEAR_Common::infoFrom* methods). - * - * @param array $pkginfo package info - * - * @return string XML data - * - * @access public - * @deprecated use a PEAR_PackageFile_v* object's generator instead - */ - function xmlFromInfo($pkginfo) - { - $config = &PEAR_Config::singleton(); - $packagefile = &new PEAR_PackageFile($config); - $pf = &$packagefile->fromArray($pkginfo); - $gen = &$pf->getDefaultGenerator(); - return $gen->toXml(PEAR_VALIDATE_PACKAGING); - } - - // }}} - // {{{ validatePackageInfo() - - /** - * Validate XML package definition file. - * - * @param string $info Filename of the package archive or of the - * package definition file - * @param array $errors Array that will contain the errors - * @param array $warnings Array that will contain the warnings - * @param string $dir_prefix (optional) directory where source files - * may be found, or empty if they are not available - * @access public - * @return boolean - * @deprecated use the validation of PEAR_PackageFile objects - */ - function validatePackageInfo($info, &$errors, &$warnings, $dir_prefix = '') - { - $config = &PEAR_Config::singleton(); - $packagefile = &new PEAR_PackageFile($config); - PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); - if (strpos($info, '<?xml') !== false) { - $pf = &$packagefile->fromXmlString($info, PEAR_VALIDATE_NORMAL, ''); - } else { - $pf = &$packagefile->fromAnyFile($info, PEAR_VALIDATE_NORMAL); - } - PEAR::staticPopErrorHandling(); - if (PEAR::isError($pf)) { - $errs = $pf->getUserinfo(); - if (is_array($errs)) { - foreach ($errs as $error) { - if ($error['level'] == 'error') { - $errors[] = $error['message']; - } else { - $warnings[] = $error['message']; - } - } - } - return false; - } - return true; - } - - // }}} - // {{{ buildProvidesArray() - - /** - * Build a "provides" array from data returned by - * analyzeSourceCode(). The format of the built array is like - * this: - * - * array( - * 'class;MyClass' => 'array('type' => 'class', 'name' => 'MyClass'), - * ... - * ) - * - * - * @param array $srcinfo array with information about a source file - * as returned by the analyzeSourceCode() method. - * - * @return void - * - * @access public - * - */ - function buildProvidesArray($srcinfo) - { - $file = basename($srcinfo['source_file']); - $pn = ''; - if (isset($this->_packageName)) { - $pn = $this->_packageName; - } - $pnl = strlen($pn); - foreach ($srcinfo['declared_classes'] as $class) { - $key = "class;$class"; - if (isset($this->pkginfo['provides'][$key])) { - continue; - } - $this->pkginfo['provides'][$key] = - array('file'=> $file, 'type' => 'class', 'name' => $class); - if (isset($srcinfo['inheritance'][$class])) { - $this->pkginfo['provides'][$key]['extends'] = - $srcinfo['inheritance'][$class]; - } - } - foreach ($srcinfo['declared_methods'] as $class => $methods) { - foreach ($methods as $method) { - $function = "$class::$method"; - $key = "function;$function"; - if ($method{0} == '_' || !strcasecmp($method, $class) || - isset($this->pkginfo['provides'][$key])) { - continue; - } - $this->pkginfo['provides'][$key] = - array('file'=> $file, 'type' => 'function', 'name' => $function); - } - } - - foreach ($srcinfo['declared_functions'] as $function) { - $key = "function;$function"; - if ($function{0} == '_' || isset($this->pkginfo['provides'][$key])) { - continue; - } - if (!strstr($function, '::') && strncasecmp($function, $pn, $pnl)) { - $warnings[] = "in1 " . $file . ": function \"$function\" not prefixed with package name \"$pn\""; - } - $this->pkginfo['provides'][$key] = - array('file'=> $file, 'type' => 'function', 'name' => $function); - } - } - - // }}} - // {{{ analyzeSourceCode() - - /** - * Analyze the source code of the given PHP file - * - * @param string Filename of the PHP file - * @return mixed - * @access public - */ - function analyzeSourceCode($file) - { - if (!function_exists("token_get_all")) { - return false; - } - if (!defined('T_DOC_COMMENT')) { - define('T_DOC_COMMENT', T_COMMENT); - } - if (!defined('T_INTERFACE')) { - define('T_INTERFACE', -1); - } - if (!defined('T_IMPLEMENTS')) { - define('T_IMPLEMENTS', -1); - } - if (!$fp = @fopen($file, "r")) { - return false; - } - fclose($fp); - $contents = file_get_contents($file); - $tokens = token_get_all($contents); -/* - for ($i = 0; $i < sizeof($tokens); $i++) { - @list($token, $data) = $tokens[$i]; - if (is_string($token)) { - var_dump($token); - } else { - print token_name($token) . ' '; - var_dump(rtrim($data)); - } - } -*/ - $look_for = 0; - $paren_level = 0; - $bracket_level = 0; - $brace_level = 0; - $lastphpdoc = ''; - $current_class = ''; - $current_interface = ''; - $current_class_level = -1; - $current_function = ''; - $current_function_level = -1; - $declared_classes = array(); - $declared_interfaces = array(); - $declared_functions = array(); - $declared_methods = array(); - $used_classes = array(); - $used_functions = array(); - $extends = array(); - $implements = array(); - $nodeps = array(); - $inquote = false; - $interface = false; - for ($i = 0; $i < sizeof($tokens); $i++) { - if (is_array($tokens[$i])) { - list($token, $data) = $tokens[$i]; - } else { - $token = $tokens[$i]; - $data = ''; - } - if ($inquote) { - if ($token != '"') { - continue; - } else { - $inquote = false; - continue; - } - } - switch ($token) { - case T_WHITESPACE: - continue; - case ';': - if ($interface) { - $current_function = ''; - $current_function_level = -1; - } - break; - case '"': - $inquote = true; - break; - case T_CURLY_OPEN: - case T_DOLLAR_OPEN_CURLY_BRACES: - case '{': $brace_level++; continue 2; - case '}': - $brace_level--; - if ($current_class_level == $brace_level) { - $current_class = ''; - $current_class_level = -1; - } - if ($current_function_level == $brace_level) { - $current_function = ''; - $current_function_level = -1; - } - continue 2; - case '[': $bracket_level++; continue 2; - case ']': $bracket_level--; continue 2; - case '(': $paren_level++; continue 2; - case ')': $paren_level--; continue 2; - case T_INTERFACE: - $interface = true; - case T_CLASS: - if (($current_class_level != -1) || ($current_function_level != -1)) { - PEAR::raiseError("Parser error: invalid PHP found in file \"$file\"", - PEAR_COMMON_ERROR_INVALIDPHP); - return false; - } - case T_FUNCTION: - case T_NEW: - case T_EXTENDS: - case T_IMPLEMENTS: - $look_for = $token; - continue 2; - case T_STRING: - if (version_compare(zend_version(), '2.0', '<')) { - if (in_array(strtolower($data), - array('public', 'private', 'protected', 'abstract', - 'interface', 'implements', 'throw') - )) { - PEAR::raiseError('Error: PHP5 token encountered in ' . $file . - 'packaging should be done in PHP 5'); - return false; - } - } - if ($look_for == T_CLASS) { - $current_class = $data; - $current_class_level = $brace_level; - $declared_classes[] = $current_class; - } elseif ($look_for == T_INTERFACE) { - $current_interface = $data; - $current_class_level = $brace_level; - $declared_interfaces[] = $current_interface; - } elseif ($look_for == T_IMPLEMENTS) { - $implements[$current_class] = $data; - } elseif ($look_for == T_EXTENDS) { - $extends[$current_class] = $data; - } elseif ($look_for == T_FUNCTION) { - if ($current_class) { - $current_function = "$current_class::$data"; - $declared_methods[$current_class][] = $data; - } elseif ($current_interface) { - $current_function = "$current_interface::$data"; - $declared_methods[$current_interface][] = $data; - } else { - $current_function = $data; - $declared_functions[] = $current_function; - } - $current_function_level = $brace_level; - $m = array(); - } elseif ($look_for == T_NEW) { - $used_classes[$data] = true; - } - $look_for = 0; - continue 2; - case T_VARIABLE: - $look_for = 0; - continue 2; - case T_DOC_COMMENT: - case T_COMMENT: - if (preg_match('!^/\*\*\s!', $data)) { - $lastphpdoc = $data; - if (preg_match_all('/@nodep\s+(\S+)/', $lastphpdoc, $m)) { - $nodeps = array_merge($nodeps, $m[1]); - } - } - continue 2; - case T_DOUBLE_COLON: - if (!($tokens[$i - 1][0] == T_WHITESPACE || $tokens[$i - 1][0] == T_STRING)) { - PEAR::raiseError("Parser error: invalid PHP found in file \"$file\"", - PEAR_COMMON_ERROR_INVALIDPHP); - return false; - } - $class = $tokens[$i - 1][1]; - if (strtolower($class) != 'parent') { - $used_classes[$class] = true; - } - continue 2; - } - } - return array( - "source_file" => $file, - "declared_classes" => $declared_classes, - "declared_interfaces" => $declared_interfaces, - "declared_methods" => $declared_methods, - "declared_functions" => $declared_functions, - "used_classes" => array_diff(array_keys($used_classes), $nodeps), - "inheritance" => $extends, - "implements" => $implements, - ); - } - - // }}} - // {{{ betterStates() - - /** - * Return an array containing all of the states that are more stable than - * or equal to the passed in state - * - * @param string Release state - * @param boolean Determines whether to include $state in the list - * @return false|array False if $state is not a valid release state - */ - function betterStates($state, $include = false) - { - static $states = array('snapshot', 'devel', 'alpha', 'beta', 'stable'); - $i = array_search($state, $states); - if ($i === false) { - return false; - } - if ($include) { - $i--; - } - return array_slice($states, $i + 1); - } - - // }}} - // {{{ detectDependencies() - - function detectDependencies($any, $status_callback = null) - { - if (!function_exists("token_get_all")) { - return false; - } - if (PEAR::isError($info = $this->infoFromAny($any))) { - return $this->raiseError($info); - } - if (!is_array($info)) { - return false; - } - $deps = array(); - $used_c = $decl_c = $decl_f = $decl_m = array(); - foreach ($info['filelist'] as $file => $fa) { - $tmp = $this->analyzeSourceCode($file); - $used_c = @array_merge($used_c, $tmp['used_classes']); - $decl_c = @array_merge($decl_c, $tmp['declared_classes']); - $decl_f = @array_merge($decl_f, $tmp['declared_functions']); - $decl_m = @array_merge($decl_m, $tmp['declared_methods']); - $inheri = @array_merge($inheri, $tmp['inheritance']); - } - $used_c = array_unique($used_c); - $decl_c = array_unique($decl_c); - $undecl_c = array_diff($used_c, $decl_c); - return array('used_classes' => $used_c, - 'declared_classes' => $decl_c, - 'declared_methods' => $decl_m, - 'declared_functions' => $decl_f, - 'undeclared_classes' => $undecl_c, - 'inheritance' => $inheri, - ); - } - - // }}} - // {{{ getUserRoles() - - /** - * Get the valid roles for a PEAR package maintainer - * - * @return array - * @static - */ - function getUserRoles() - { - return $GLOBALS['_PEAR_Common_maintainer_roles']; - } - - // }}} - // {{{ getReleaseStates() - - /** - * Get the valid package release states of packages - * - * @return array - * @static - */ - function getReleaseStates() - { - return $GLOBALS['_PEAR_Common_release_states']; - } - - // }}} - // {{{ getDependencyTypes() - - /** - * Get the implemented dependency types (php, ext, pkg etc.) - * - * @return array - * @static - */ - function getDependencyTypes() - { - return $GLOBALS['_PEAR_Common_dependency_types']; - } - - // }}} - // {{{ getDependencyRelations() - - /** - * Get the implemented dependency relations (has, lt, ge etc.) - * - * @return array - * @static - */ - function getDependencyRelations() - { - return $GLOBALS['_PEAR_Common_dependency_relations']; - } - - // }}} - // {{{ getFileRoles() - - /** - * Get the implemented file roles - * - * @return array - * @static - */ - function getFileRoles() - { - return $GLOBALS['_PEAR_Common_file_roles']; - } - - // }}} - // {{{ getReplacementTypes() - - /** - * Get the implemented file replacement types in - * - * @return array - * @static - */ - function getReplacementTypes() - { - return $GLOBALS['_PEAR_Common_replacement_types']; - } - - // }}} - // {{{ getProvideTypes() - - /** - * Get the implemented file replacement types in - * - * @return array - * @static - */ - function getProvideTypes() - { - return $GLOBALS['_PEAR_Common_provide_types']; - } - - // }}} - // {{{ getScriptPhases() - - /** - * Get the implemented file replacement types in - * - * @return array - * @static - */ - function getScriptPhases() - { - return $GLOBALS['_PEAR_Common_script_phases']; - } - - // }}} - // {{{ validPackageName() - - /** - * Test whether a string contains a valid package name. - * - * @param string $name the package name to test - * - * @return bool - * - * @access public - */ - function validPackageName($name) - { - return (bool)preg_match(PEAR_COMMON_PACKAGE_NAME_PREG, $name); - } - - - // }}} - // {{{ validPackageVersion() - - /** - * Test whether a string contains a valid package version. - * - * @param string $ver the package version to test - * - * @return bool - * - * @access public - */ - function validPackageVersion($ver) - { - return (bool)preg_match(PEAR_COMMON_PACKAGE_VERSION_PREG, $ver); - } - - - // }}} - - // {{{ downloadHttp() - - /** - * Download a file through HTTP. Considers suggested file name in - * Content-disposition: header and can run a callback function for - * different events. The callback will be called with two - * parameters: the callback type, and parameters. The implemented - * callback types are: - * - * 'setup' called at the very beginning, parameter is a UI object - * that should be used for all output - * 'message' the parameter is a string with an informational message - * 'saveas' may be used to save with a different file name, the - * parameter is the filename that is about to be used. - * If a 'saveas' callback returns a non-empty string, - * that file name will be used as the filename instead. - * Note that $save_dir will not be affected by this, only - * the basename of the file. - * 'start' download is starting, parameter is number of bytes - * that are expected, or -1 if unknown - * 'bytesread' parameter is the number of bytes read so far - * 'done' download is complete, parameter is the total number - * of bytes read - * 'connfailed' if the TCP connection fails, this callback is called - * with array(host,port,errno,errmsg) - * 'writefailed' if writing to disk fails, this callback is called - * with array(destfile,errmsg) - * - * If an HTTP proxy has been configured (http_proxy PEAR_Config - * setting), the proxy will be used. - * - * @param string $url the URL to download - * @param object $ui PEAR_Frontend_* instance - * @param object $config PEAR_Config instance - * @param string $save_dir (optional) directory to save file in - * @param mixed $callback (optional) function/method to call for status - * updates - * - * @return string Returns the full path of the downloaded file or a PEAR - * error on failure. If the error is caused by - * socket-related errors, the error object will - * have the fsockopen error code available through - * getCode(). - * - * @access public - * @deprecated in favor of PEAR_Downloader::downloadHttp() - */ - function downloadHttp($url, &$ui, $save_dir = '.', $callback = null) - { - if (!class_exists('PEAR_Downloader')) { - require_once 'PEAR/Downloader.php'; - } - return PEAR_Downloader::downloadHttp($url, $ui, $save_dir, $callback); - } - - // }}} - - /** - * @param string $path relative or absolute include path - * @return boolean - * @static - */ - function isIncludeable($path) - { - if (file_exists($path) && is_readable($path)) { - return true; - } - $ipath = explode(PATH_SEPARATOR, ini_get('include_path')); - foreach ($ipath as $include) { - $test = realpath($include . DIRECTORY_SEPARATOR . $path); - if (file_exists($test) && is_readable($test)) { - return true; - } - } - return false; - } -} -require_once 'PEAR/Config.php'; -require_once 'PEAR/PackageFile.php'; -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/Config.php b/src/vitis/vas/rest/class/PEAR/Config.php deleted file mode 100755 index fe37037e..00000000 --- a/src/vitis/vas/rest/class/PEAR/Config.php +++ /dev/null @@ -1,2163 +0,0 @@ -<?php -/** - * PEAR_Config, customized configuration handling for the PEAR Installer - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Stig Bakken <ssb@php.net> - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Config.php,v 1.146 2008/05/14 04:16:08 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 0.1 - */ - -/** - * Required for error handling - */ -require_once 'PEAR.php'; -require_once 'PEAR/Registry.php'; -require_once 'PEAR/Installer/Role.php'; -require_once 'System.php'; -require_once 'PEAR/Remote.php'; - -/** - * Last created PEAR_Config instance. - * @var object - */ -$GLOBALS['_PEAR_Config_instance'] = null; -if (!defined('PEAR_INSTALL_DIR') || !PEAR_INSTALL_DIR) { - $PEAR_INSTALL_DIR = PHP_LIBDIR . DIRECTORY_SEPARATOR . 'pear'; -} else { - $PEAR_INSTALL_DIR = PEAR_INSTALL_DIR; -} - -// Below we define constants with default values for all configuration -// parameters except username/password. All of them can have their -// defaults set through environment variables. The reason we use the -// PHP_ prefix is for some security, PHP protects environment -// variables starting with PHP_*. - -// default channel and preferred mirror is based on whether we are invoked through -// the "pear" or the "pecl" command - -if (!defined('PEAR_RUNTYPE') || PEAR_RUNTYPE == 'pear') { - define('PEAR_CONFIG_DEFAULT_CHANNEL', 'pear.php.net'); -} else { - define('PEAR_CONFIG_DEFAULT_CHANNEL', 'pecl.php.net'); -} - -if (getenv('PHP_PEAR_SYSCONF_DIR')) { - define('PEAR_CONFIG_SYSCONFDIR', getenv('PHP_PEAR_SYSCONF_DIR')); -} elseif (getenv('SystemRoot')) { - define('PEAR_CONFIG_SYSCONFDIR', getenv('SystemRoot')); -} else { - define('PEAR_CONFIG_SYSCONFDIR', PHP_SYSCONFDIR); -} - -// Default for master_server -if (getenv('PHP_PEAR_MASTER_SERVER')) { - define('PEAR_CONFIG_DEFAULT_MASTER_SERVER', getenv('PHP_PEAR_MASTER_SERVER')); -} else { - define('PEAR_CONFIG_DEFAULT_MASTER_SERVER', 'pear.php.net'); -} - -// Default for http_proxy -if (getenv('PHP_PEAR_HTTP_PROXY')) { - define('PEAR_CONFIG_DEFAULT_HTTP_PROXY', getenv('PHP_PEAR_HTTP_PROXY')); -} elseif (getenv('http_proxy')) { - define('PEAR_CONFIG_DEFAULT_HTTP_PROXY', getenv('http_proxy')); -} else { - define('PEAR_CONFIG_DEFAULT_HTTP_PROXY', ''); -} - -// Default for php_dir -if (getenv('PHP_PEAR_INSTALL_DIR')) { - define('PEAR_CONFIG_DEFAULT_PHP_DIR', getenv('PHP_PEAR_INSTALL_DIR')); -} else { - if (file_exists($PEAR_INSTALL_DIR) && is_dir($PEAR_INSTALL_DIR)) { - define('PEAR_CONFIG_DEFAULT_PHP_DIR', - $PEAR_INSTALL_DIR); - } else { - define('PEAR_CONFIG_DEFAULT_PHP_DIR', $PEAR_INSTALL_DIR); - } -} - -// Default for ext_dir -if (getenv('PHP_PEAR_EXTENSION_DIR')) { - define('PEAR_CONFIG_DEFAULT_EXT_DIR', getenv('PHP_PEAR_EXTENSION_DIR')); -} else { - if (ini_get('extension_dir')) { - define('PEAR_CONFIG_DEFAULT_EXT_DIR', ini_get('extension_dir')); - } elseif (defined('PEAR_EXTENSION_DIR') && - file_exists(PEAR_EXTENSION_DIR) && is_dir(PEAR_EXTENSION_DIR)) { - define('PEAR_CONFIG_DEFAULT_EXT_DIR', PEAR_EXTENSION_DIR); - } elseif (defined('PHP_EXTENSION_DIR')) { - define('PEAR_CONFIG_DEFAULT_EXT_DIR', PHP_EXTENSION_DIR); - } else { - define('PEAR_CONFIG_DEFAULT_EXT_DIR', '.'); - } -} - -// Default for doc_dir -if (getenv('PHP_PEAR_DOC_DIR')) { - define('PEAR_CONFIG_DEFAULT_DOC_DIR', getenv('PHP_PEAR_DOC_DIR')); -} else { - define('PEAR_CONFIG_DEFAULT_DOC_DIR', - $PEAR_INSTALL_DIR.DIRECTORY_SEPARATOR.'docs'); -} - -// Default for bin_dir -if (getenv('PHP_PEAR_BIN_DIR')) { - define('PEAR_CONFIG_DEFAULT_BIN_DIR', getenv('PHP_PEAR_BIN_DIR')); -} else { - define('PEAR_CONFIG_DEFAULT_BIN_DIR', PHP_BINDIR); -} - -// Default for data_dir -if (getenv('PHP_PEAR_DATA_DIR')) { - define('PEAR_CONFIG_DEFAULT_DATA_DIR', getenv('PHP_PEAR_DATA_DIR')); -} else { - define('PEAR_CONFIG_DEFAULT_DATA_DIR', - $PEAR_INSTALL_DIR.DIRECTORY_SEPARATOR.'data'); -} - -// Default for cfg_dir -if (getenv('PHP_PEAR_CFG_DIR')) { - define('PEAR_CONFIG_DEFAULT_CFG_DIR', getenv('PHP_PEAR_CFG_DIR')); -} else { - define('PEAR_CONFIG_DEFAULT_CFG_DIR', - $PEAR_INSTALL_DIR.DIRECTORY_SEPARATOR.'cfg'); -} - -// Default for www_dir -if (getenv('PHP_PEAR_WWW_DIR')) { - define('PEAR_CONFIG_DEFAULT_WWW_DIR', getenv('PHP_PEAR_WWW_DIR')); -} else { - define('PEAR_CONFIG_DEFAULT_WWW_DIR', - $PEAR_INSTALL_DIR.DIRECTORY_SEPARATOR.'www'); -} - -// Default for test_dir -if (getenv('PHP_PEAR_TEST_DIR')) { - define('PEAR_CONFIG_DEFAULT_TEST_DIR', getenv('PHP_PEAR_TEST_DIR')); -} else { - define('PEAR_CONFIG_DEFAULT_TEST_DIR', - $PEAR_INSTALL_DIR.DIRECTORY_SEPARATOR.'tests'); -} - -// Default for temp_dir -if (getenv('PHP_PEAR_TEMP_DIR')) { - define('PEAR_CONFIG_DEFAULT_TEMP_DIR', getenv('PHP_PEAR_TEMP_DIR')); -} else { - define('PEAR_CONFIG_DEFAULT_TEMP_DIR', - System::tmpdir() . DIRECTORY_SEPARATOR . 'pear' . - DIRECTORY_SEPARATOR . 'temp'); -} - -// Default for cache_dir -if (getenv('PHP_PEAR_CACHE_DIR')) { - define('PEAR_CONFIG_DEFAULT_CACHE_DIR', getenv('PHP_PEAR_CACHE_DIR')); -} else { - define('PEAR_CONFIG_DEFAULT_CACHE_DIR', - System::tmpdir() . DIRECTORY_SEPARATOR . 'pear' . - DIRECTORY_SEPARATOR . 'cache'); -} - -// Default for download_dir -if (getenv('PHP_PEAR_DOWNLOAD_DIR')) { - define('PEAR_CONFIG_DEFAULT_DOWNLOAD_DIR', getenv('PHP_PEAR_DOWNLOAD_DIR')); -} else { - define('PEAR_CONFIG_DEFAULT_DOWNLOAD_DIR', - System::tmpdir() . DIRECTORY_SEPARATOR . 'pear' . - DIRECTORY_SEPARATOR . 'download'); -} - -// Default for php_bin -if (getenv('PHP_PEAR_PHP_BIN')) { - define('PEAR_CONFIG_DEFAULT_PHP_BIN', getenv('PHP_PEAR_PHP_BIN')); -} else { - define('PEAR_CONFIG_DEFAULT_PHP_BIN', PEAR_CONFIG_DEFAULT_BIN_DIR. - DIRECTORY_SEPARATOR.'php'.(OS_WINDOWS ? '.exe' : '')); -} - -// Default for verbose -if (getenv('PHP_PEAR_VERBOSE')) { - define('PEAR_CONFIG_DEFAULT_VERBOSE', getenv('PHP_PEAR_VERBOSE')); -} else { - define('PEAR_CONFIG_DEFAULT_VERBOSE', 1); -} - -// Default for preferred_state -if (getenv('PHP_PEAR_PREFERRED_STATE')) { - define('PEAR_CONFIG_DEFAULT_PREFERRED_STATE', getenv('PHP_PEAR_PREFERRED_STATE')); -} else { - define('PEAR_CONFIG_DEFAULT_PREFERRED_STATE', 'stable'); -} - -// Default for umask -if (getenv('PHP_PEAR_UMASK')) { - define('PEAR_CONFIG_DEFAULT_UMASK', getenv('PHP_PEAR_UMASK')); -} else { - define('PEAR_CONFIG_DEFAULT_UMASK', decoct(umask())); -} - -// Default for cache_ttl -if (getenv('PHP_PEAR_CACHE_TTL')) { - define('PEAR_CONFIG_DEFAULT_CACHE_TTL', getenv('PHP_PEAR_CACHE_TTL')); -} else { - define('PEAR_CONFIG_DEFAULT_CACHE_TTL', 3600); -} - -// Default for sig_type -if (getenv('PHP_PEAR_SIG_TYPE')) { - define('PEAR_CONFIG_DEFAULT_SIG_TYPE', getenv('PHP_PEAR_SIG_TYPE')); -} else { - define('PEAR_CONFIG_DEFAULT_SIG_TYPE', 'gpg'); -} - -// Default for sig_bin -if (getenv('PHP_PEAR_SIG_BIN')) { - define('PEAR_CONFIG_DEFAULT_SIG_BIN', getenv('PHP_PEAR_SIG_BIN')); -} else { - define('PEAR_CONFIG_DEFAULT_SIG_BIN', - System::which( - 'gpg', OS_WINDOWS ? 'c:\gnupg\gpg.exe' : '/usr/local/bin/gpg')); -} - -// Default for sig_keydir -if (getenv('PHP_PEAR_SIG_KEYDIR')) { - define('PEAR_CONFIG_DEFAULT_SIG_KEYDIR', getenv('PHP_PEAR_SIG_KEYDIR')); -} else { - define('PEAR_CONFIG_DEFAULT_SIG_KEYDIR', - PEAR_CONFIG_SYSCONFDIR . DIRECTORY_SEPARATOR . 'pearkeys'); -} - -/** - * This is a class for storing configuration data, keeping track of - * which are system-defined, user-defined or defaulted. - * @category pear - * @package PEAR - * @author Stig Bakken <ssb@php.net> - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 0.1 - */ -class PEAR_Config extends PEAR -{ - // {{{ properties - - /** - * Array of config files used. - * - * @var array layer => config file - */ - var $files = array( - 'system' => '', - 'user' => '', - ); - - var $layers = array(); - - /** - * Configuration data, two-dimensional array where the first - * dimension is the config layer ('user', 'system' and 'default'), - * and the second dimension is keyname => value. - * - * The order in the first dimension is important! Earlier - * layers will shadow later ones when a config value is - * requested (if a 'user' value exists, it will be returned first, - * then 'system' and finally 'default'). - * - * @var array layer => array(keyname => value, ...) - */ - var $configuration = array( - 'user' => array(), - 'system' => array(), - 'default' => array(), - ); - - /** - * Configuration values that can be set for a channel - * - * All other configuration values can only have a global value - * @var array - * @access private - */ - var $_channelConfigInfo = array( - 'php_dir', 'ext_dir', 'doc_dir', 'bin_dir', 'data_dir', 'cfg_dir', - 'test_dir', 'www_dir', 'php_bin', 'username', 'password', 'verbose', - 'preferred_state', 'umask', 'preferred_mirror', 'php_ini' - ); - - /** - * Channels that can be accessed - * @see setChannels() - * @var array - * @access private - */ - var $_channels = array('pear.php.net', 'pecl.php.net', '__uri'); - - /** - * This variable is used to control the directory values returned - * @see setInstallRoot(); - * @var string|false - * @access private - */ - var $_installRoot = false; - - /** - * If requested, this will always refer to the registry - * contained in php_dir - * @var PEAR_Registry - */ - var $_registry = array(); - - /** - * @var array - * @access private - */ - var $_regInitialized = array(); - - /** - * @var bool - * @access private - */ - var $_noRegistry = false; - - /** - * amount of errors found while parsing config - * @var integer - * @access private - */ - var $_errorsFound = 0; - var $_lastError = null; - - /** - * Information about the configuration data. Stores the type, - * default value and a documentation string for each configuration - * value. - * - * @var array layer => array(infotype => value, ...) - */ - var $configuration_info = array( - // Channels/Internet Access - 'default_channel' => array( - 'type' => 'string', - 'default' => PEAR_CONFIG_DEFAULT_CHANNEL, - 'doc' => 'the default channel to use for all non explicit commands', - 'prompt' => 'Default Channel', - 'group' => 'Internet Access', - ), - 'preferred_mirror' => array( - 'type' => 'string', - 'default' => PEAR_CONFIG_DEFAULT_CHANNEL, - 'doc' => 'the default server or mirror to use for channel actions', - 'prompt' => 'Default Channel Mirror', - 'group' => 'Internet Access', - ), - 'remote_config' => array( - 'type' => 'password', - 'default' => '', - 'doc' => 'ftp url of remote configuration file to use for synchronized install', - 'prompt' => 'Remote Configuration File', - 'group' => 'Internet Access', - ), - 'auto_discover' => array( - 'type' => 'integer', - 'default' => 0, - 'doc' => 'whether to automatically discover new channels', - 'prompt' => 'Auto-discover new Channels', - 'group' => 'Internet Access', - ), - // Internet Access - 'master_server' => array( - 'type' => 'string', - 'default' => 'pear.php.net', - 'doc' => 'name of the main PEAR server [NOT USED IN THIS VERSION]', - 'prompt' => 'PEAR server [DEPRECATED]', - 'group' => 'Internet Access', - ), - 'http_proxy' => array( - 'type' => 'string', - 'default' => PEAR_CONFIG_DEFAULT_HTTP_PROXY, - 'doc' => 'HTTP proxy (host:port) to use when downloading packages', - 'prompt' => 'HTTP Proxy Server Address', - 'group' => 'Internet Access', - ), - // File Locations - 'php_dir' => array( - 'type' => 'directory', - 'default' => PEAR_CONFIG_DEFAULT_PHP_DIR, - 'doc' => 'directory where .php files are installed', - 'prompt' => 'PEAR directory', - 'group' => 'File Locations', - ), - 'ext_dir' => array( - 'type' => 'directory', - 'default' => PEAR_CONFIG_DEFAULT_EXT_DIR, - 'doc' => 'directory where loadable extensions are installed', - 'prompt' => 'PHP extension directory', - 'group' => 'File Locations', - ), - 'doc_dir' => array( - 'type' => 'directory', - 'default' => PEAR_CONFIG_DEFAULT_DOC_DIR, - 'doc' => 'directory where documentation is installed', - 'prompt' => 'PEAR documentation directory', - 'group' => 'File Locations', - ), - 'bin_dir' => array( - 'type' => 'directory', - 'default' => PEAR_CONFIG_DEFAULT_BIN_DIR, - 'doc' => 'directory where executables are installed', - 'prompt' => 'PEAR executables directory', - 'group' => 'File Locations', - ), - 'data_dir' => array( - 'type' => 'directory', - 'default' => PEAR_CONFIG_DEFAULT_DATA_DIR, - 'doc' => 'directory where data files are installed', - 'prompt' => 'PEAR data directory', - 'group' => 'File Locations (Advanced)', - ), - 'cfg_dir' => array( - 'type' => 'directory', - 'default' => PEAR_CONFIG_DEFAULT_CFG_DIR, - 'doc' => 'directory where modifiable configuration files are installed', - 'prompt' => 'PEAR configuration file directory', - 'group' => 'File Locations (Advanced)', - ), - 'www_dir' => array( - 'type' => 'directory', - 'default' => PEAR_CONFIG_DEFAULT_WWW_DIR, - 'doc' => 'directory where www frontend files (html/js) are installed', - 'prompt' => 'PEAR www files directory', - 'group' => 'File Locations (Advanced)', - ), - 'test_dir' => array( - 'type' => 'directory', - 'default' => PEAR_CONFIG_DEFAULT_TEST_DIR, - 'doc' => 'directory where regression tests are installed', - 'prompt' => 'PEAR test directory', - 'group' => 'File Locations (Advanced)', - ), - 'cache_dir' => array( - 'type' => 'directory', - 'default' => PEAR_CONFIG_DEFAULT_CACHE_DIR, - 'doc' => 'directory which is used for XMLRPC cache', - 'prompt' => 'PEAR Installer cache directory', - 'group' => 'File Locations (Advanced)', - ), - 'temp_dir' => array( - 'type' => 'directory', - 'default' => PEAR_CONFIG_DEFAULT_TEMP_DIR, - 'doc' => 'directory which is used for all temp files', - 'prompt' => 'PEAR Installer temp directory', - 'group' => 'File Locations (Advanced)', - ), - 'download_dir' => array( - 'type' => 'directory', - 'default' => PEAR_CONFIG_DEFAULT_DOWNLOAD_DIR, - 'doc' => 'directory which is used for all downloaded files', - 'prompt' => 'PEAR Installer download directory', - 'group' => 'File Locations (Advanced)', - ), - 'php_bin' => array( - 'type' => 'file', - 'default' => PEAR_CONFIG_DEFAULT_PHP_BIN, - 'doc' => 'PHP CLI/CGI binary for executing scripts', - 'prompt' => 'PHP CLI/CGI binary', - 'group' => 'File Locations (Advanced)', - ), - 'php_ini' => array( - 'type' => 'file', - 'default' => '', - 'doc' => 'location of php.ini in which to enable PECL extensions on install', - 'prompt' => 'php.ini location', - 'group' => 'File Locations (Advanced)', - ), - // Maintainers - 'username' => array( - 'type' => 'string', - 'default' => '', - 'doc' => '(maintainers) your PEAR account name', - 'prompt' => 'PEAR username (for maintainers)', - 'group' => 'Maintainers', - ), - 'password' => array( - 'type' => 'password', - 'default' => '', - 'doc' => '(maintainers) your PEAR account password', - 'prompt' => 'PEAR password (for maintainers)', - 'group' => 'Maintainers', - ), - // Advanced - 'verbose' => array( - 'type' => 'integer', - 'default' => PEAR_CONFIG_DEFAULT_VERBOSE, - 'doc' => 'verbosity level -0: really quiet -1: somewhat quiet -2: verbose -3: debug', - 'prompt' => 'Debug Log Level', - 'group' => 'Advanced', - ), - 'preferred_state' => array( - 'type' => 'set', - 'default' => PEAR_CONFIG_DEFAULT_PREFERRED_STATE, - 'doc' => 'the installer will prefer releases with this state when installing packages without a version or state specified', - 'valid_set' => array( - 'stable', 'beta', 'alpha', 'devel', 'snapshot'), - 'prompt' => 'Preferred Package State', - 'group' => 'Advanced', - ), - 'umask' => array( - 'type' => 'mask', - 'default' => PEAR_CONFIG_DEFAULT_UMASK, - 'doc' => 'umask used when creating files (Unix-like systems only)', - 'prompt' => 'Unix file mask', - 'group' => 'Advanced', - ), - 'cache_ttl' => array( - 'type' => 'integer', - 'default' => PEAR_CONFIG_DEFAULT_CACHE_TTL, - 'doc' => 'amount of secs where the local cache is used and not updated', - 'prompt' => 'Cache TimeToLive', - 'group' => 'Advanced', - ), - 'sig_type' => array( - 'type' => 'set', - 'default' => PEAR_CONFIG_DEFAULT_SIG_TYPE, - 'doc' => 'which package signature mechanism to use', - 'valid_set' => array('gpg'), - 'prompt' => 'Package Signature Type', - 'group' => 'Maintainers', - ), - 'sig_bin' => array( - 'type' => 'string', - 'default' => PEAR_CONFIG_DEFAULT_SIG_BIN, - 'doc' => 'which package signature mechanism to use', - 'prompt' => 'Signature Handling Program', - 'group' => 'Maintainers', - ), - 'sig_keyid' => array( - 'type' => 'string', - 'default' => '', - 'doc' => 'which key to use for signing with', - 'prompt' => 'Signature Key Id', - 'group' => 'Maintainers', - ), - 'sig_keydir' => array( - 'type' => 'directory', - 'default' => PEAR_CONFIG_DEFAULT_SIG_KEYDIR, - 'doc' => 'directory where signature keys are located', - 'prompt' => 'Signature Key Directory', - 'group' => 'Maintainers', - ), - // __channels is reserved - used for channel-specific configuration - ); - - // }}} - - // {{{ PEAR_Config([file], [defaults_file]) - - /** - * Constructor. - * - * @param string file to read user-defined options from - * @param string file to read system-wide defaults from - * @param bool determines whether a registry object "follows" - * the value of php_dir (is automatically created - * and moved when php_dir is changed) - * @param bool if true, fails if configuration files cannot be loaded - * - * @access public - * - * @see PEAR_Config::singleton - */ - function PEAR_Config($user_file = '', $system_file = '', $ftp_file = false, - $strict = true) - { - $this->PEAR(); - PEAR_Installer_Role::initializeConfig($this); - $sl = DIRECTORY_SEPARATOR; - if (empty($user_file)) { - if (OS_WINDOWS) { - $user_file = PEAR_CONFIG_SYSCONFDIR . $sl . 'pear.ini'; - } else { - $user_file = getenv('HOME') . $sl . '.pearrc'; - } - } - if (empty($system_file)) { - if (OS_WINDOWS) { - $system_file = PEAR_CONFIG_SYSCONFDIR . $sl . 'pearsys.ini'; - } else { - $system_file = PEAR_CONFIG_SYSCONFDIR . $sl . 'pear.conf'; - } - } - - $this->layers = array_keys($this->configuration); - $this->files['user'] = $user_file; - $this->files['system'] = $system_file; - if ($user_file && file_exists($user_file)) { - $this->pushErrorHandling(PEAR_ERROR_RETURN); - $this->readConfigFile($user_file, 'user', $strict); - $this->popErrorHandling(); - if ($this->_errorsFound > 0) { - return; - } - } - - if ($system_file && file_exists($system_file)) { - $this->mergeConfigFile($system_file, false, 'system', $strict); - if ($this->_errorsFound > 0) { - return; - } - - } - - if (!$ftp_file) { - $ftp_file = $this->get('remote_config'); - } - - if ($ftp_file && defined('PEAR_REMOTEINSTALL_OK')) { - $this->readFTPConfigFile($ftp_file); - } - - foreach ($this->configuration_info as $key => $info) { - $this->configuration['default'][$key] = $info['default']; - } - - $this->_registry['default'] = &new PEAR_Registry($this->configuration['default']['php_dir']); - $this->_registry['default']->setConfig($this, false); - $this->_regInitialized['default'] = false; - //$GLOBALS['_PEAR_Config_instance'] = &$this; - } - - // }}} - /** - * Return the default locations of user and system configuration files - * @static - */ - function getDefaultConfigFiles() - { - $sl = DIRECTORY_SEPARATOR; - if (OS_WINDOWS) { - return array( - 'user' => PEAR_CONFIG_SYSCONFDIR . $sl . 'pear.ini', - 'system' => PEAR_CONFIG_SYSCONFDIR . $sl . 'pearsys.ini' - ); - } else { - return array( - 'user' => getenv('HOME') . $sl . '.pearrc', - 'system' => PEAR_CONFIG_SYSCONFDIR . $sl . 'pear.conf' - ); - } - } - // {{{ singleton([file], [defaults_file]) - - /** - * Static singleton method. If you want to keep only one instance - * of this class in use, this method will give you a reference to - * the last created PEAR_Config object if one exists, or create a - * new object. - * - * @param string (optional) file to read user-defined options from - * @param string (optional) file to read system-wide defaults from - * - * @return object an existing or new PEAR_Config instance - * - * @access public - * - * @see PEAR_Config::PEAR_Config - */ - function &singleton($user_file = '', $system_file = '', $strict = true) - { - if (is_object($GLOBALS['_PEAR_Config_instance'])) { - return $GLOBALS['_PEAR_Config_instance']; - } - - $t_conf = &new PEAR_Config($user_file, $system_file, false, $strict); - if ($t_conf->_errorsFound > 0) { - return $t_conf->lastError; - } - - $GLOBALS['_PEAR_Config_instance'] = &$t_conf; - return $GLOBALS['_PEAR_Config_instance']; - } - - // }}} - // {{{ validConfiguration() - - /** - * Determine whether any configuration files have been detected, and whether a - * registry object can be retrieved from this configuration. - * @return bool - * @since PEAR 1.4.0a1 - */ - function validConfiguration() - { - if ($this->isDefinedLayer('user') || $this->isDefinedLayer('system')) { - return true; - } - return false; - } - - // }}} - // {{{ readConfigFile([file], [layer]) - - /** - * Reads configuration data from a file. All existing values in - * the config layer are discarded and replaced with data from the - * file. - * @param string file to read from, if NULL or not specified, the - * last-used file for the same layer (second param) is used - * @param string config layer to insert data into ('user' or 'system') - * @return bool TRUE on success or a PEAR error on failure - */ - function readConfigFile($file = null, $layer = 'user', $strict = true) - { - if (empty($this->files[$layer])) { - return $this->raiseError("unknown config layer `$layer'"); - } - - if ($file === null) { - $file = $this->files[$layer]; - } - - $data = $this->_readConfigDataFrom($file); - - if (PEAR::isError($data)) { - if ($strict) { - $this->_errorsFound++; - $this->lastError = $data; - - return $data; - } else { - return true; - } - } else { - $this->files[$layer] = $file; - } - - $this->_decodeInput($data); - $this->configuration[$layer] = $data; - $this->_setupChannels(); - if (!$this->_noRegistry && ($phpdir = $this->get('php_dir', $layer, 'pear.php.net'))) { - $this->_registry[$layer] = &new PEAR_Registry($phpdir); - $this->_registry[$layer]->setConfig($this, false); - $this->_regInitialized[$layer] = false; - } else { - unset($this->_registry[$layer]); - } - return true; - } - - // }}} - - /** - * @param string url to the remote config file, like ftp://www.example.com/pear/config.ini - * @return true|PEAR_Error - */ - function readFTPConfigFile($path) - { - do { // poor man's try - if (!class_exists('PEAR_FTP')) { - if (!class_exists('PEAR_Common')) { - require_once 'PEAR/Common.php'; - } - if (PEAR_Common::isIncludeable('PEAR/FTP.php')) { - require_once 'PEAR/FTP.php'; - } - } - if (class_exists('PEAR_FTP')) { - $this->_ftp = &new PEAR_FTP; - $this->_ftp->pushErrorHandling(PEAR_ERROR_RETURN); - $e = $this->_ftp->init($path); - if (PEAR::isError($e)) { - $this->_ftp->popErrorHandling(); - return $e; - } - $tmp = System::mktemp('-d'); - PEAR_Common::addTempFile($tmp); - $e = $this->_ftp->get(basename($path), $tmp . DIRECTORY_SEPARATOR . - 'pear.ini', false, FTP_BINARY); - if (PEAR::isError($e)) { - $this->_ftp->popErrorHandling(); - return $e; - } - PEAR_Common::addTempFile($tmp . DIRECTORY_SEPARATOR . 'pear.ini'); - $this->_ftp->disconnect(); - $this->_ftp->popErrorHandling(); - $this->files['ftp'] = $tmp . DIRECTORY_SEPARATOR . 'pear.ini'; - $e = $this->readConfigFile(null, 'ftp'); - if (PEAR::isError($e)) { - return $e; - } - $fail = array(); - foreach ($this->configuration_info as $key => $val) { - if (in_array($this->getGroup($key), - array('File Locations', 'File Locations (Advanced)')) && - $this->getType($key) == 'directory') { - // any directory configs must be set for this to work - if (!isset($this->configuration['ftp'][$key])) { - $fail[] = $key; - } - } - } - if (count($fail)) { - $fail = '"' . implode('", "', $fail) . '"'; - unset($this->files['ftp']); - unset($this->configuration['ftp']); - return PEAR::raiseError('ERROR: Ftp configuration file must set all ' . - 'directory configuration variables. These variables were not set: ' . - $fail); - } else { - return true; - } - } else { - return PEAR::raiseError('PEAR_RemoteInstaller must be installed to use remote config'); - } - } while (false); // poor man's catch - unset($this->files['ftp']); - return PEAR::raiseError('no remote host specified'); - } - - // {{{ _setupChannels() - - /** - * Reads the existing configurations and creates the _channels array from it - */ - function _setupChannels() - { - $set = array_flip(array_values($this->_channels)); - foreach ($this->configuration as $layer => $data) { - $i = 1000; - if (isset($data['__channels']) && is_array($data['__channels'])) { - foreach ($data['__channels'] as $channel => $info) { - $set[$channel] = $i++; - } - } - } - $this->_channels = array_values(array_flip($set)); - $this->setChannels($this->_channels); - } - - // }}} - // {{{ deleteChannel(channel) - - function deleteChannel($channel) - { - foreach ($this->configuration as $layer => $data) { - if (isset($data['__channels'])) { - if (isset($data['__channels'][strtolower($channel)])) { - unset($this->configuration[$layer]['__channels'][strtolower($channel)]); - } - } - } - $this->_channels = array_flip($this->_channels); - unset($this->_channels[strtolower($channel)]); - $this->_channels = array_flip($this->_channels); - } - - // }}} - // {{{ mergeConfigFile(file, [override], [layer]) - - /** - * Merges data into a config layer from a file. Does the same - * thing as readConfigFile, except it does not replace all - * existing values in the config layer. - * @param string file to read from - * @param bool whether to overwrite existing data (default TRUE) - * @param string config layer to insert data into ('user' or 'system') - * @param string if true, errors are returned if file opening fails - * @return bool TRUE on success or a PEAR error on failure - */ - function mergeConfigFile($file, $override = true, $layer = 'user', $strict = true) - { - if (empty($this->files[$layer])) { - return $this->raiseError("unknown config layer `$layer'"); - } - if ($file === null) { - $file = $this->files[$layer]; - } - $data = $this->_readConfigDataFrom($file); - if (PEAR::isError($data)) { - if ($strict) { - $this->_errorsFound++; - $this->lastError = $data; - - return $data; - } else { - return true; - } - } - $this->_decodeInput($data); - if ($override) { - $this->configuration[$layer] = - PEAR_Config::arrayMergeRecursive($this->configuration[$layer], $data); - } else { - $this->configuration[$layer] = - PEAR_Config::arrayMergeRecursive($data, $this->configuration[$layer]); - } - $this->_setupChannels(); - if (!$this->_noRegistry && ($phpdir = $this->get('php_dir', $layer, 'pear.php.net'))) { - $this->_registry[$layer] = &new PEAR_Registry($phpdir); - $this->_registry[$layer]->setConfig($this, false); - $this->_regInitialized[$layer] = false; - } else { - unset($this->_registry[$layer]); - } - return true; - } - - // }}} - // {{{ arrayMergeRecursive($arr2, $arr1) - /** - * @param array - * @param array - * @return array - * @static - */ - function arrayMergeRecursive($arr2, $arr1) - { - $ret = array(); - foreach ($arr2 as $key => $data) { - if (!isset($arr1[$key])) { - $ret[$key] = $data; - unset($arr1[$key]); - continue; - } - if (is_array($data)) { - if (!is_array($arr1[$key])) { - $ret[$key] = $arr1[$key]; - unset($arr1[$key]); - continue; - } - $ret[$key] = PEAR_Config::arrayMergeRecursive($arr1[$key], $arr2[$key]); - unset($arr1[$key]); - } - } - return array_merge($ret, $arr1); - } - - // }}} - // {{{ writeConfigFile([file], [layer]) - - /** - * Writes data into a config layer from a file. - * - * @param string|null file to read from, or null for default - * @param string config layer to insert data into ('user' or - * 'system') - * @param string|null data to write to config file or null for internal data [DEPRECATED] - * @return bool TRUE on success or a PEAR error on failure - */ - function writeConfigFile($file = null, $layer = 'user', $data = null) - { - $this->_lazyChannelSetup($layer); - if ($layer == 'both' || $layer == 'all') { - foreach ($this->files as $type => $file) { - $err = $this->writeConfigFile($file, $type, $data); - if (PEAR::isError($err)) { - return $err; - } - } - return true; - } - if (empty($this->files[$layer])) { - return $this->raiseError("unknown config file type `$layer'"); - } - if ($file === null) { - $file = $this->files[$layer]; - } - $data = ($data === null) ? $this->configuration[$layer] : $data; - $this->_encodeOutput($data); - $opt = array('-p', dirname($file)); - if (!@System::mkDir($opt)) { - return $this->raiseError("could not create directory: " . dirname($file)); - } - if (file_exists($file) && is_file($file) && !is_writeable($file)) { - return $this->raiseError("no write access to $file!"); - } - $fp = @fopen($file, "w"); - if (!$fp) { - return $this->raiseError("PEAR_Config::writeConfigFile fopen('$file','w') failed ($php_errormsg)"); - } - $contents = "#PEAR_Config 0.9\n" . serialize($data); - if (!@fwrite($fp, $contents)) { - return $this->raiseError("PEAR_Config::writeConfigFile: fwrite failed ($php_errormsg)"); - } - return true; - } - - // }}} - // {{{ _readConfigDataFrom(file) - - /** - * Reads configuration data from a file and returns the parsed data - * in an array. - * - * @param string file to read from - * - * @return array configuration data or a PEAR error on failure - * - * @access private - */ - function _readConfigDataFrom($file) - { - $fp = false; - if (file_exists($file)) { - $fp = @fopen($file, "r"); - } - if (!$fp) { - return $this->raiseError("PEAR_Config::readConfigFile fopen('$file','r') failed"); - } - $size = filesize($file); - $rt = get_magic_quotes_runtime(); - set_magic_quotes_runtime(0); - fclose($fp); - $contents = file_get_contents($file); - if (empty($contents)) { - return $this->raiseError('Configuration file "' . $file . '" is empty'); - } - - set_magic_quotes_runtime($rt); - - $version = false; - if (preg_match('/^#PEAR_Config\s+(\S+)\s+/si', $contents, $matches)) { - $version = $matches[1]; - $contents = substr($contents, strlen($matches[0])); - } else { - // Museum config file - if (substr($contents,0,2) == 'a:') { - $version = '0.1'; - } - } - if ($version && version_compare("$version", '1', '<')) { - - // no '@', it is possible that unserialize - // raises a notice but it seems to block IO to - // STDOUT if a '@' is used and a notice is raise - $data = unserialize($contents); - - if (!is_array($data) && !$data) { - if ($contents == serialize(false)) { - $data = array(); - } else { - $err = $this->raiseError("PEAR_Config: bad data in $file"); - return $err; - } - } - if (!is_array($data)) { - if (strlen(trim($contents)) > 0) { - $error = "PEAR_Config: bad data in $file"; - $err = $this->raiseError($error); - return $err; - } else { - $data = array(); - } - } - // add parsing of newer formats here... - } else { - $err = $this->raiseError("$file: unknown version `$version'"); - return $err; - } - return $data; - } - - // }}} - // {{{ getConfFile(layer) - /** - * Gets the file used for storing the config for a layer - * - * @param string $layer 'user' or 'system' - */ - - function getConfFile($layer) - { - return $this->files[$layer]; - } - - // }}} - - /** - * @param string Configuration class name, used for detecting duplicate calls - * @param array information on a role as parsed from its xml file - * @return true|PEAR_Error - * @access private - */ - function _addConfigVars($class, $vars) - { - static $called = array(); - if (isset($called[$class])) { - return; - } - $called[$class] = 1; - if (count($vars) > 3) { - return $this->raiseError('Roles can only define 3 new config variables or less'); - } - foreach ($vars as $name => $var) { - if (!is_array($var)) { - return $this->raiseError('Configuration information must be an array'); - } - if (!isset($var['type'])) { - return $this->raiseError('Configuration information must contain a type'); - } else { - if (!in_array($var['type'], - array('string', 'mask', 'password', 'directory', 'file', 'set'))) { - return $this->raiseError( - 'Configuration type must be one of directory, file, string, ' . - 'mask, set, or password'); - } - } - if (!isset($var['default'])) { - return $this->raiseError( - 'Configuration information must contain a default value ("default" index)'); - } else { - if (is_array($var['default'])) { - $real_default = ''; - foreach ($var['default'] as $config_var => $val) { - if (strpos($config_var, 'text') === 0) { - $real_default .= $val; - } elseif (strpos($config_var, 'constant') === 0) { - if (defined($val)) { - $real_default .= constant($val); - } else { - return $this->raiseError( - 'Unknown constant "' . $val . '" requested in ' . - 'default value for configuration variable "' . - $name . '"'); - } - } elseif (isset($this->configuration_info[$config_var])) { - $real_default .= - $this->configuration_info[$config_var]['default']; - } else { - return $this->raiseError( - 'Unknown request for "' . $config_var . '" value in ' . - 'default value for configuration variable "' . - $name . '"'); - } - } - $var['default'] = $real_default; - } - if ($var['type'] == 'integer') { - $var['default'] = (integer) $var['default']; - } - } - if (!isset($var['doc'])) { - return $this->raiseError( - 'Configuration information must contain a summary ("doc" index)'); - } - if (!isset($var['prompt'])) { - return $this->raiseError( - 'Configuration information must contain a simple prompt ("prompt" index)'); - } - if (!isset($var['group'])) { - return $this->raiseError( - 'Configuration information must contain a simple group ("group" index)'); - } - if (isset($this->configuration_info[$name])) { - return $this->raiseError('Configuration variable "' . $name . - '" already exists'); - } - $this->configuration_info[$name] = $var; - // fix bug #7351: setting custom config variable in a channel fails - $this->_channelConfigInfo[] = $name; - } - return true; - } - - // {{{ _encodeOutput(&data) - - /** - * Encodes/scrambles configuration data before writing to files. - * Currently, 'password' values will be base64-encoded as to avoid - * that people spot cleartext passwords by accident. - * - * @param array (reference) array to encode values in - * - * @return bool TRUE on success - * - * @access private - */ - function _encodeOutput(&$data) - { - foreach ($data as $key => $value) { - if ($key == '__channels') { - foreach ($data['__channels'] as $channel => $blah) { - $this->_encodeOutput($data['__channels'][$channel]); - } - } - if (!isset($this->configuration_info[$key])) { - continue; - } - $type = $this->configuration_info[$key]['type']; - switch ($type) { - // we base64-encode passwords so they are at least - // not shown in plain by accident - case 'password': { - $data[$key] = base64_encode($data[$key]); - break; - } - case 'mask': { - $data[$key] = octdec($data[$key]); - break; - } - } - } - return true; - } - - // }}} - // {{{ _decodeInput(&data) - - /** - * Decodes/unscrambles configuration data after reading from files. - * - * @param array (reference) array to encode values in - * - * @return bool TRUE on success - * - * @access private - * - * @see PEAR_Config::_encodeOutput - */ - function _decodeInput(&$data) - { - if (!is_array($data)) { - return true; - } - foreach ($data as $key => $value) { - if ($key == '__channels') { - foreach ($data['__channels'] as $channel => $blah) { - $this->_decodeInput($data['__channels'][$channel]); - } - } - if (!isset($this->configuration_info[$key])) { - continue; - } - $type = $this->configuration_info[$key]['type']; - switch ($type) { - case 'password': { - $data[$key] = base64_decode($data[$key]); - break; - } - case 'mask': { - $data[$key] = decoct($data[$key]); - break; - } - } - } - return true; - } - - // }}} - // {{{ getDefaultChannel([layer]) - /** - * Retrieve the default channel. - * - * On startup, channels are not initialized, so if the default channel is not - * pear.php.net, then initialize the config. - * @param string registry layer - * @return string|false - */ - function getDefaultChannel($layer = null) - { - $ret = false; - if ($layer === null) { - foreach ($this->layers as $layer) { - if (isset($this->configuration[$layer]['default_channel'])) { - $ret = $this->configuration[$layer]['default_channel']; - break; - } - } - } elseif (isset($this->configuration[$layer]['default_channel'])) { - $ret = $this->configuration[$layer]['default_channel']; - } - if ($ret == 'pear.php.net' && defined('PEAR_RUNTYPE') && PEAR_RUNTYPE == 'pecl') { - $ret = 'pecl.php.net'; - } - if ($ret) { - if ($ret != 'pear.php.net') { - $this->_lazyChannelSetup(); - } - return $ret; - } - return PEAR_CONFIG_DEFAULT_CHANNEL; - } - - // {{{ get(key, [layer]) - /** - * Returns a configuration value, prioritizing layers as per the - * layers property. - * - * @param string config key - * - * @return mixed the config value, or NULL if not found - * - * @access public - */ - function get($key, $layer = null, $channel = false) - { - if (!isset($this->configuration_info[$key])) { - return null; - } - if ($key == '__channels') { - return null; - } - if ($key == 'default_channel') { - return $this->getDefaultChannel($layer); - } - if (!$channel) { - $channel = $this->getDefaultChannel(); - } elseif ($channel != 'pear.php.net') { - $this->_lazyChannelSetup(); - } - $channel = strtolower($channel); - - $test = (in_array($key, $this->_channelConfigInfo)) ? - $this->_getChannelValue($key, $layer, $channel) : - null; - if ($test !== null) { - if ($this->_installRoot) { - if (in_array($this->getGroup($key), - array('File Locations', 'File Locations (Advanced)')) && - $this->getType($key) == 'directory') { - return $this->_prependPath($test, $this->_installRoot); - } - } - return $test; - } - if ($layer === null) { - foreach ($this->layers as $layer) { - if (isset($this->configuration[$layer][$key])) { - $test = $this->configuration[$layer][$key]; - if ($this->_installRoot) { - if (in_array($this->getGroup($key), - array('File Locations', 'File Locations (Advanced)')) && - $this->getType($key) == 'directory') { - return $this->_prependPath($test, $this->_installRoot); - } - } - if ($key == 'preferred_mirror') { - $reg = &$this->getRegistry(); - if (is_object($reg)) { - $chan = &$reg->getChannel($channel); - if (PEAR::isError($chan)) { - return $channel; - } - if (!$chan->getMirror($test) && $chan->getName() != $test) { - return $channel; // mirror does not exist - } - } - } - return $test; - } - } - } elseif (isset($this->configuration[$layer][$key])) { - $test = $this->configuration[$layer][$key]; - if ($this->_installRoot) { - if (in_array($this->getGroup($key), - array('File Locations', 'File Locations (Advanced)')) && - $this->getType($key) == 'directory') { - return $this->_prependPath($test, $this->_installRoot); - } - } - if ($key == 'preferred_mirror') { - $reg = &$this->getRegistry(); - if (is_object($reg)) { - $chan = &$reg->getChannel($channel); - if (PEAR::isError($chan)) { - return $channel; - } - if (!$chan->getMirror($test) && $chan->getName() != $test) { - return $channel; // mirror does not exist - } - } - } - return $test; - } - return null; - } - - // }}} - // {{{ _getChannelValue(key, value, [layer]) - /** - * Returns a channel-specific configuration value, prioritizing layers as per the - * layers property. - * - * @param string config key - * - * @return mixed the config value, or NULL if not found - * - * @access private - */ - function _getChannelValue($key, $layer, $channel) - { - if ($key == '__channels' || $channel == 'pear.php.net') { - return null; - } - $ret = null; - if ($layer === null) { - foreach ($this->layers as $ilayer) { - if (isset($this->configuration[$ilayer]['__channels'][$channel][$key])) { - $ret = $this->configuration[$ilayer]['__channels'][$channel][$key]; - break; - } - } - } elseif (isset($this->configuration[$layer]['__channels'][$channel][$key])) { - $ret = $this->configuration[$layer]['__channels'][$channel][$key]; - } - if ($key == 'preferred_mirror') { - if ($ret !== null) { - $reg = &$this->getRegistry($layer); - if (is_object($reg)) { - $chan = &$reg->getChannel($channel); - if (PEAR::isError($chan)) { - return $channel; - } - if (!$chan->getMirror($ret) && $chan->getName() != $ret) { - return $channel; // mirror does not exist - } - } - return $ret; - } - if ($channel != $this->getDefaultChannel($layer)) { - return $channel; // we must use the channel name as the preferred mirror - // if the user has not chosen an alternate - } else { - return $this->getDefaultChannel($layer); - } - } - return $ret; - } - - - // }}} - // {{{ set(key, value, [layer]) - - /** - * Set a config value in a specific layer (defaults to 'user'). - * Enforces the types defined in the configuration_info array. An - * integer config variable will be cast to int, and a set config - * variable will be validated against its legal values. - * - * @param string config key - * @param string config value - * @param string (optional) config layer - * @param string channel to set this value for, or null for global value - * @return bool TRUE on success, FALSE on failure - */ - function set($key, $value, $layer = 'user', $channel = false) - { - if ($key == '__channels') { - return false; - } - if (!isset($this->configuration[$layer])) { - return false; - } - if ($key == 'default_channel') { - // can only set this value globally - $channel = 'pear.php.net'; - if ($value != 'pear.php.net') { - $this->_lazyChannelSetup($layer); - } - } - if ($key == 'preferred_mirror') { - if ($channel == '__uri') { - return false; // can't set the __uri pseudo-channel's mirror - } - $reg = &$this->getRegistry($layer); - if (is_object($reg)) { - $chan = &$reg->getChannel($channel ? $channel : 'pear.php.net'); - if (PEAR::isError($chan)) { - return false; - } - if (!$chan->getMirror($value) && $chan->getName() != $value) { - return false; // mirror does not exist - } - } - } - if (!isset($this->configuration_info[$key])) { - return false; - } - extract($this->configuration_info[$key]); - switch ($type) { - case 'integer': - $value = (int)$value; - break; - case 'set': { - // If a valid_set is specified, require the value to - // be in the set. If there is no valid_set, accept - // any value. - if ($valid_set) { - reset($valid_set); - if ((key($valid_set) === 0 && !in_array($value, $valid_set)) || - (key($valid_set) !== 0 && empty($valid_set[$value]))) - { - return false; - } - } - break; - } - } - if (!$channel) { - $channel = $this->get('default_channel', null, 'pear.php.net'); - } - if (!in_array($channel, $this->_channels)) { - $this->_lazyChannelSetup($layer); - $reg = &$this->getRegistry($layer); - if ($reg) { - $channel = $reg->channelName($channel); - } - if (!in_array($channel, $this->_channels)) { - return false; - } - } - if ($channel != 'pear.php.net') { - if (in_array($key, $this->_channelConfigInfo)) { - $this->configuration[$layer]['__channels'][$channel][$key] = $value; - return true; - } else { - return false; - } - } else { - if ($key == 'default_channel') { - if (!isset($reg)) { - $reg = &$this->getRegistry($layer); - if (!$reg) { - $reg = &$this->getRegistry(); - } - } - if ($reg) { - $value = $reg->channelName($value); - } - if (!$value) { - return false; - } - } - } - $this->configuration[$layer][$key] = $value; - if ($key == 'php_dir' && !$this->_noRegistry) { - if (!isset($this->_registry[$layer]) || - $value != $this->_registry[$layer]->install_dir) { - $this->_registry[$layer] = &new PEAR_Registry($value); - $this->_regInitialized[$layer] = false; - $this->_registry[$layer]->setConfig($this, false); - } - } - return true; - } - - // }}} - function _lazyChannelSetup($uselayer = false) - { - if ($this->_noRegistry) { - return; - } - $merge = false; - foreach ($this->_registry as $layer => $p) { - if ($uselayer && $uselayer != $layer) { - continue; - } - if (!$this->_regInitialized[$layer]) { - if ($layer == 'default' && isset($this->_registry['user']) || - isset($this->_registry['system'])) { - // only use the default registry if there are no alternatives - continue; - } - if (!is_object($this->_registry[$layer])) { - if ($phpdir = $this->get('php_dir', $layer, 'pear.php.net')) { - $this->_registry[$layer] = &new PEAR_Registry($phpdir); - $this->_registry[$layer]->setConfig($this, false); - $this->_regInitialized[$layer] = false; - } else { - unset($this->_registry[$layer]); - return; - } - } - $this->setChannels($this->_registry[$layer]->listChannels(), $merge); - $this->_regInitialized[$layer] = true; - $merge = true; - } - } - } - // {{{ setChannels() - - /** - * Set the list of channels. - * - * This should be set via a call to {@link PEAR_Registry::listChannels()} - * @param array - * @param bool - * @return bool success of operation - */ - function setChannels($channels, $merge = false) - { - if (!is_array($channels)) { - return false; - } - if ($merge) { - $this->_channels = array_merge($this->_channels, $channels); - } else { - $this->_channels = $channels; - } - foreach ($channels as $channel) { - $channel = strtolower($channel); - if ($channel == 'pear.php.net') { - continue; - } - foreach ($this->layers as $layer) { - if (!isset($this->configuration[$layer]['__channels'])) { - $this->configuration[$layer]['__channels'] = array(); - } - if (!isset($this->configuration[$layer]['__channels'][$channel]) - || !is_array($this->configuration[$layer]['__channels'][$channel])) { - $this->configuration[$layer]['__channels'][$channel] = array(); - } - } - } - return true; - } - - // }}} - // {{{ getType(key) - - /** - * Get the type of a config value. - * - * @param string config key - * - * @return string type, one of "string", "integer", "file", - * "directory", "set" or "password". - * - * @access public - * - */ - function getType($key) - { - if (isset($this->configuration_info[$key])) { - return $this->configuration_info[$key]['type']; - } - return false; - } - - // }}} - // {{{ getDocs(key) - - /** - * Get the documentation for a config value. - * - * @param string config key - * - * @return string documentation string - * - * @access public - * - */ - function getDocs($key) - { - if (isset($this->configuration_info[$key])) { - return $this->configuration_info[$key]['doc']; - } - return false; - } - // }}} - // {{{ getPrompt(key) - - /** - * Get the short documentation for a config value. - * - * @param string config key - * - * @return string short documentation string - * - * @access public - * - */ - function getPrompt($key) - { - if (isset($this->configuration_info[$key])) { - return $this->configuration_info[$key]['prompt']; - } - return false; - } - // }}} - // {{{ getGroup(key) - - /** - * Get the parameter group for a config key. - * - * @param string config key - * - * @return string parameter group - * - * @access public - * - */ - function getGroup($key) - { - if (isset($this->configuration_info[$key])) { - return $this->configuration_info[$key]['group']; - } - return false; - } - - // }}} - // {{{ getGroups() - - /** - * Get the list of parameter groups. - * - * @return array list of parameter groups - * - * @access public - * - */ - function getGroups() - { - $tmp = array(); - foreach ($this->configuration_info as $key => $info) { - $tmp[$info['group']] = 1; - } - return array_keys($tmp); - } - - // }}} - // {{{ getGroupKeys() - - /** - * Get the list of the parameters in a group. - * - * @param string $group parameter group - * - * @return array list of parameters in $group - * - * @access public - * - */ - function getGroupKeys($group) - { - $keys = array(); - foreach ($this->configuration_info as $key => $info) { - if ($info['group'] == $group) { - $keys[] = $key; - } - } - return $keys; - } - - // }}} - // {{{ getSetValues(key) - - /** - * Get the list of allowed set values for a config value. Returns - * NULL for config values that are not sets. - * - * @param string config key - * - * @return array enumerated array of set values, or NULL if the - * config key is unknown or not a set - * - * @access public - * - */ - function getSetValues($key) - { - if (isset($this->configuration_info[$key]) && - isset($this->configuration_info[$key]['type']) && - $this->configuration_info[$key]['type'] == 'set') - { - $valid_set = $this->configuration_info[$key]['valid_set']; - reset($valid_set); - if (key($valid_set) === 0) { - return $valid_set; - } - return array_keys($valid_set); - } - return null; - } - - // }}} - // {{{ getKeys() - - /** - * Get all the current config keys. - * - * @return array simple array of config keys - * - * @access public - */ - function getKeys() - { - $keys = array(); - foreach ($this->layers as $layer) { - $test = $this->configuration[$layer]; - if (isset($test['__channels'])) { - foreach ($test['__channels'] as $channel => $configs) { - $keys = array_merge($keys, $configs); - } - } - unset($test['__channels']); - $keys = array_merge($keys, $test); - } - return array_keys($keys); - } - - // }}} - // {{{ remove(key, [layer]) - - /** - * Remove the a config key from a specific config layer. - * - * @param string config key - * - * @param string (optional) config layer - * - * @return bool TRUE on success, FALSE on failure - * - * @access public - */ - function remove($key, $layer = 'user') - { - $channel = $this->getDefaultChannel(); - if ($channel !== 'pear.php.net') { - if (isset($this->configuration[$layer]['__channels'][$channel][$key])) { - unset($this->configuration[$layer]['__channels'][$channel][$key]); - return true; - } - } - if (isset($this->configuration[$layer][$key])) { - unset($this->configuration[$layer][$key]); - return true; - } - return false; - } - - // }}} - // {{{ removeLayer(layer) - - /** - * Temporarily remove an entire config layer. USE WITH CARE! - * - * @param string config key - * - * @param string (optional) config layer - * - * @return bool TRUE on success, FALSE on failure - * - * @access public - */ - function removeLayer($layer) - { - if (isset($this->configuration[$layer])) { - $this->configuration[$layer] = array(); - return true; - } - return false; - } - - // }}} - // {{{ store([layer]) - - /** - * Stores configuration data in a layer. - * - * @param string config layer to store - * - * @return bool TRUE on success, or PEAR error on failure - * - * @access public - */ - function store($layer = 'user', $data = null) - { - return $this->writeConfigFile(null, $layer, $data); - } - - // }}} - // {{{ toDefault(key) - - /** - * Unset the user-defined value of a config key, reverting the - * value to the system-defined one. - * - * @param string config key - * - * @return bool TRUE on success, FALSE on failure - * - * @access public - */ - function toDefault($key) - { - trigger_error("PEAR_Config::toDefault() deprecated, use PEAR_Config::remove() instead", E_USER_NOTICE); - return $this->remove($key, 'user'); - } - - // }}} - // {{{ definedBy(key) - - /** - * Tells what config layer that gets to define a key. - * - * @param string config key - * @param boolean return the defining channel - * - * @return string|array the config layer, or an empty string if not found. - * - * if $returnchannel, the return is an array array('layer' => layername, - * 'channel' => channelname), or an empty string if not found - * - * @access public - */ - function definedBy($key, $returnchannel = false) - { - foreach ($this->layers as $layer) { - $channel = $this->getDefaultChannel(); - if ($channel !== 'pear.php.net') { - if (isset($this->configuration[$layer]['__channels'][$channel][$key])) { - if ($returnchannel) { - return array('layer' => $layer, 'channel' => $channel); - } - return $layer; - } - } - if (isset($this->configuration[$layer][$key])) { - if ($returnchannel) { - return array('layer' => $layer, 'channel' => 'pear.php.net'); - } - return $layer; - } - } - return ''; - } - - // }}} - // {{{ isDefaulted(key) - - /** - * Tells whether a config value has a system-defined value. - * - * @param string config key - * - * @return bool - * - * @access public - * - * @deprecated - */ - function isDefaulted($key) - { - trigger_error("PEAR_Config::isDefaulted() deprecated, use PEAR_Config::definedBy() instead", E_USER_NOTICE); - return $this->definedBy($key) == 'system'; - } - - // }}} - // {{{ isDefined(key) - - /** - * Tells whether a given key exists as a config value. - * - * @param string config key - * - * @return bool whether <config key> exists in this object - * - * @access public - */ - function isDefined($key) - { - foreach ($this->layers as $layer) { - if (isset($this->configuration[$layer][$key])) { - return true; - } - } - return false; - } - - // }}} - // {{{ isDefinedLayer(key) - - /** - * Tells whether a given config layer exists. - * - * @param string config layer - * - * @return bool whether <config layer> exists in this object - * - * @access public - */ - function isDefinedLayer($layer) - { - return isset($this->configuration[$layer]); - } - - // }}} - // {{{ getLayers() - - /** - * Returns the layers defined (except the 'default' one) - * - * @return array of the defined layers - */ - function getLayers() - { - $cf = $this->configuration; - unset($cf['default']); - return array_keys($cf); - } - - // }}} - // {{{ apiVersion() - function apiVersion() - { - return '1.1'; - } - // }}} - - /** - * @return PEAR_Registry - */ - function &getRegistry($use = null) - { - if ($use === null) { - $layer = 'user'; - } else { - $layer = $use; - } - if (isset($this->_registry[$layer])) { - return $this->_registry[$layer]; - } elseif ($use === null && isset($this->_registry['system'])) { - return $this->_registry['system']; - } elseif ($use === null && isset($this->_registry['default'])) { - return $this->_registry['default']; - } elseif ($use) { - $a = false; - return $a; - } else { - // only go here if null was passed in - echo "CRITICAL ERROR: Registry could not be initialized from any value"; - exit(1); - } - } - /** - * This is to allow customization like the use of installroot - * @param PEAR_Registry - * @return bool - */ - function setRegistry(&$reg, $layer = 'user') - { - if ($this->_noRegistry) { - return false; - } - if (!in_array($layer, array('user', 'system'))) { - return false; - } - $this->_registry[$layer] = &$reg; - if (is_object($reg)) { - $this->_registry[$layer]->setConfig($this, false); - } - return true; - } - - function noRegistry() - { - $this->_noRegistry = true; - } - - /** - * @return PEAR_Remote - */ - function &getRemote() - { - $remote = &new PEAR_Remote($this); - return $remote; - } - - /** - * @return PEAR_REST - */ - function &getREST($version, $options = array()) - { - $version = str_replace('.', '', $version); - if (!class_exists($class = 'PEAR_REST_' . $version)) { - require_once 'PEAR/REST/' . $version . '.php'; - } - $remote = &new $class($this, $options); - return $remote; - } - - /** - * The ftp server is set in {@link readFTPConfigFile()}. It exists only if a - * remote configuration file has been specified - * @return PEAR_FTP|false - */ - function &getFTP() - { - if (isset($this->_ftp)) { - return $this->_ftp; - } else { - $a = false; - return $a; - } - } - - // {{{ _prependPath($path, $prepend) - - function _prependPath($path, $prepend) - { - if (strlen($prepend) > 0) { - if (OS_WINDOWS && preg_match('/^[a-z]:/i', $path)) { - if (preg_match('/^[a-z]:/i', $prepend)) { - $prepend = substr($prepend, 2); - } elseif ($prepend{0} != '\\') { - $prepend = "\\$prepend"; - } - $path = substr($path, 0, 2) . $prepend . substr($path, 2); - } else { - $path = $prepend . $path; - } - } - return $path; - } - // }}} - - /** - * @param string|false installation directory to prepend to all _dir variables, or false to - * disable - */ - function setInstallRoot($root) - { - if (substr($root, -1) == DIRECTORY_SEPARATOR) { - $root = substr($root, 0, -1); - } - $old = $this->_installRoot; - $this->_installRoot = $root; - if (($old != $root) && !$this->_noRegistry) { - foreach (array_keys($this->_registry) as $layer) { - if ($layer == 'ftp' || !isset($this->_registry[$layer])) { - continue; - } - $this->_registry[$layer] = - &new PEAR_Registry($this->get('php_dir', $layer, 'pear.php.net')); - $this->_registry[$layer]->setConfig($this, false); - $this->_regInitialized[$layer] = false; - } - } - } -} - -?> diff --git a/src/vitis/vas/rest/class/PEAR/Dependency.php b/src/vitis/vas/rest/class/PEAR/Dependency.php deleted file mode 100755 index 0265f6f7..00000000 --- a/src/vitis/vas/rest/class/PEAR/Dependency.php +++ /dev/null @@ -1,498 +0,0 @@ -<?php -/** - * PEAR_Dependency - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * THIS FILE IS DEPRECATED IN FAVOR OF DEPENDENCY2.PHP, AND IS NOT USED IN THE INSTALLER - * - * @category pear - * @package PEAR - * @author Tomas V.V.Cox <cox@idecnet.com> - * @author Stig Bakken <ssb@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Dependency.php,v 1.43 2008/01/03 20:26:34 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 1.4.0a1 - */ - -require_once "PEAR.php"; -require_once "OS/Guess.php"; - -define('PEAR_DEPENDENCY_MISSING', -1); -define('PEAR_DEPENDENCY_CONFLICT', -2); -define('PEAR_DEPENDENCY_UPGRADE_MINOR', -3); -define('PEAR_DEPENDENCY_UPGRADE_MAJOR', -4); -define('PEAR_DEPENDENCY_BAD_DEPENDENCY', -5); -define('PEAR_DEPENDENCY_MISSING_OPTIONAL', -6); -define('PEAR_DEPENDENCY_CONFLICT_OPTIONAL', -7); -define('PEAR_DEPENDENCY_UPGRADE_MINOR_OPTIONAL', -8); -define('PEAR_DEPENDENCY_UPGRADE_MAJOR_OPTIONAL', -9); - -/** - * Dependency check for PEAR packages - * - * The class is based on the dependency RFC that can be found at - * http://cvs.php.net/cvs.php/pearweb/rfc. It requires PHP >= 4.1 - * - * @author Tomas V.V.Vox <cox@idecnet.com> - * @author Stig Bakken <ssb@php.net> - */ -class PEAR_Dependency -{ - // {{{ constructor - /** - * Constructor - * - * @access public - * @param object Registry object - * @return void - */ - function PEAR_Dependency(&$registry) - { - $this->registry = &$registry; - } - - // }}} - // {{{ callCheckMethod() - - /** - * This method maps the XML dependency definition to the - * corresponding one from PEAR_Dependency - * - * <pre> - * $opts => Array - * ( - * [type] => pkg - * [rel] => ge - * [version] => 3.4 - * [name] => HTML_Common - * [optional] => false - * ) - * </pre> - * - * @param string Error message - * @param array Options - * @return boolean - */ - function callCheckMethod(&$errmsg, $opts) - { - $rel = isset($opts['rel']) ? $opts['rel'] : 'has'; - $req = isset($opts['version']) ? $opts['version'] : null; - $name = isset($opts['name']) ? $opts['name'] : null; - $channel = isset($opts['channel']) ? $opts['channel'] : 'pear.php.net'; - $opt = (isset($opts['optional']) && $opts['optional'] == 'yes') ? - $opts['optional'] : null; - $errmsg = ''; - switch ($opts['type']) { - case 'pkg': - return $this->checkPackage($errmsg, $name, $req, $rel, $opt, $channel); - break; - case 'ext': - return $this->checkExtension($errmsg, $name, $req, $rel, $opt); - break; - case 'php': - return $this->checkPHP($errmsg, $req, $rel); - break; - case 'prog': - return $this->checkProgram($errmsg, $name); - break; - case 'os': - return $this->checkOS($errmsg, $name); - break; - case 'sapi': - return $this->checkSAPI($errmsg, $name); - break; - case 'zend': - return $this->checkZend($errmsg, $name); - break; - default: - return "'{$opts['type']}' dependency type not supported"; - } - } - - // }}} - // {{{ checkPackage() - - /** - * Package dependencies check method - * - * @param string $errmsg Empty string, it will be populated with an error message, if any - * @param string $name Name of the package to test - * @param string $req The package version required - * @param string $relation How to compare versions with each other - * @param bool $opt Whether the relationship is optional - * @param string $channel Channel name - * - * @return mixed bool false if no error or the error string - */ - function checkPackage(&$errmsg, $name, $req = null, $relation = 'has', - $opt = false, $channel = 'pear.php.net') - { - if (is_string($req) && substr($req, 0, 2) == 'v.') { - $req = substr($req, 2); - } - switch ($relation) { - case 'has': - if (!$this->registry->packageExists($name, $channel)) { - if ($opt) { - $errmsg = "package `$channel/$name' is recommended to utilize some features."; - return PEAR_DEPENDENCY_MISSING_OPTIONAL; - } - $errmsg = "requires package `$channel/$name'"; - return PEAR_DEPENDENCY_MISSING; - } - return false; - case 'not': - if ($this->registry->packageExists($name, $channel)) { - $errmsg = "conflicts with package `$channel/$name'"; - return PEAR_DEPENDENCY_CONFLICT; - } - return false; - case 'lt': - case 'le': - case 'eq': - case 'ne': - case 'ge': - case 'gt': - $version = $this->registry->packageInfo($name, 'version', $channel); - if (!$this->registry->packageExists($name, $channel) - || !version_compare("$version", "$req", $relation)) - { - $code = $this->codeFromRelation($relation, $version, $req, $opt); - if ($opt) { - $errmsg = "package `$channel/$name' version " . $this->signOperator($relation) . - " $req is recommended to utilize some features."; - if ($version) { - $errmsg .= " Installed version is $version"; - } - return $code; - } - $errmsg = "requires package `$channel/$name' " . - $this->signOperator($relation) . " $req"; - return $code; - } - return false; - } - $errmsg = "relation '$relation' with requirement '$req' is not supported (name=$channel/$name)"; - return PEAR_DEPENDENCY_BAD_DEPENDENCY; - } - - // }}} - // {{{ checkPackageUninstall() - - /** - * Check package dependencies on uninstall - * - * @param string $error The resultant error string - * @param string $warning The resultant warning string - * @param string $name Name of the package to test - * @param string $channel Channel name of the package - * - * @return bool true if there were errors - */ - function checkPackageUninstall(&$error, &$warning, $package, $channel = 'pear.php.net') - { - $channel = strtolower($channel); - $error = null; - $channels = $this->registry->listAllPackages(); - foreach ($channels as $channelname => $packages) { - foreach ($packages as $pkg) { - if ($pkg == $package && $channel == $channelname) { - continue; - } - $deps = $this->registry->packageInfo($pkg, 'release_deps', $channel); - if (empty($deps)) { - continue; - } - foreach ($deps as $dep) { - $depchannel = isset($dep['channel']) ? $dep['channel'] : 'pear.php.net'; - if ($dep['type'] == 'pkg' && (strcasecmp($dep['name'], $package) == 0) && - ($depchannel == $channel)) { - if ($dep['rel'] == 'ne') { - continue; - } - if (isset($dep['optional']) && $dep['optional'] == 'yes') { - $warning .= "\nWarning: Package '$depchannel/$pkg' optionally depends on '$channel:/package'"; - } else { - $error .= "Package '$depchannel/$pkg' depends on '$channel/$package'\n"; - } - } - } - } - } - return ($error) ? true : false; - } - - // }}} - // {{{ checkExtension() - - /** - * Extension dependencies check method - * - * @param string $name Name of the extension to test - * @param string $req_ext_ver Required extension version to compare with - * @param string $relation How to compare versions with eachother - * @param bool $opt Whether the relationship is optional - * - * @return mixed bool false if no error or the error string - */ - function checkExtension(&$errmsg, $name, $req = null, $relation = 'has', - $opt = false) - { - if ($relation == 'not') { - if (extension_loaded($name)) { - $errmsg = "conflicts with PHP extension '$name'"; - return PEAR_DEPENDENCY_CONFLICT; - } else { - return false; - } - } - - if (!extension_loaded($name)) { - if ($relation == 'ne') { - return false; - } - if ($opt) { - $errmsg = "'$name' PHP extension is recommended to utilize some features"; - return PEAR_DEPENDENCY_MISSING_OPTIONAL; - } - $errmsg = "'$name' PHP extension is not installed"; - return PEAR_DEPENDENCY_MISSING; - } - if ($relation == 'has') { - return false; - } - $code = false; - if (is_string($req) && substr($req, 0, 2) == 'v.') { - $req = substr($req, 2); - } - $ext_ver = phpversion($name); - $operator = $relation; - // Force params to be strings, otherwise the comparation will fail (ex. 0.9==0.90) - if (!version_compare("$ext_ver", "$req", $operator)) { - $errmsg = "'$name' PHP extension version " . - $this->signOperator($operator) . " $req is required"; - $code = $this->codeFromRelation($relation, $ext_ver, $req, $opt); - if ($opt) { - $errmsg = "'$name' PHP extension version " . $this->signOperator($operator) . - " $req is recommended to utilize some features"; - return $code; - } - } - return $code; - } - - // }}} - // {{{ checkOS() - - /** - * Operating system dependencies check method - * - * @param string $os Name of the operating system - * - * @return mixed bool false if no error or the error string - */ - function checkOS(&$errmsg, $os) - { - // XXX Fixme: Implement a more flexible way, like - // comma separated values or something similar to PEAR_OS - static $myos; - if (empty($myos)) { - $myos = new OS_Guess(); - } - // only 'has' relation is currently supported - if ($myos->matchSignature($os)) { - return false; - } - $errmsg = "'$os' operating system not supported"; - return PEAR_DEPENDENCY_CONFLICT; - } - - // }}} - // {{{ checkPHP() - - /** - * PHP version check method - * - * @param string $req which version to compare - * @param string $relation how to compare the version - * - * @return mixed bool false if no error or the error string - */ - function checkPHP(&$errmsg, $req, $relation = 'ge') - { - // this would be a bit stupid, but oh well :) - if ($relation == 'has') { - return false; - } - if ($relation == 'not') { - $errmsg = "Invalid dependency - 'not' is allowed when specifying PHP, you must run PHP in PHP"; - return PEAR_DEPENDENCY_BAD_DEPENDENCY; - } - if (substr($req, 0, 2) == 'v.') { - $req = substr($req,2, strlen($req) - 2); - } - $php_ver = phpversion(); - $operator = $relation; - if (!version_compare("$php_ver", "$req", $operator)) { - $errmsg = "PHP version " . $this->signOperator($operator) . - " $req is required"; - return PEAR_DEPENDENCY_CONFLICT; - } - return false; - } - - // }}} - // {{{ checkProgram() - - /** - * External program check method. Looks for executable files in - * directories listed in the PATH environment variable. - * - * @param string $program which program to look for - * - * @return mixed bool false if no error or the error string - */ - function checkProgram(&$errmsg, $program) - { - // XXX FIXME honor safe mode - $exe_suffix = OS_WINDOWS ? '.exe' : ''; - $path_elements = explode(PATH_SEPARATOR, getenv('PATH')); - foreach ($path_elements as $dir) { - $file = $dir . DIRECTORY_SEPARATOR . $program . $exe_suffix; - if (file_exists($file) && is_executable($file)) { - return false; - } - } - $errmsg = "'$program' program is not present in the PATH"; - return PEAR_DEPENDENCY_MISSING; - } - - // }}} - // {{{ checkSAPI() - - /** - * SAPI backend check method. Version comparison is not yet - * available here. - * - * @param string $name name of SAPI backend - * @param string $req which version to compare - * @param string $relation how to compare versions (currently - * hardcoded to 'has') - * @return mixed bool false if no error or the error string - */ - function checkSAPI(&$errmsg, $name, $req = null, $relation = 'has') - { - // XXX Fixme: There is no way to know if the user has or - // not other SAPI backends installed than the installer one - - $sapi_backend = php_sapi_name(); - // Version comparisons not supported, sapi backends don't have - // version information yet. - if ($sapi_backend == $name) { - return false; - } - $errmsg = "'$sapi_backend' SAPI backend not supported"; - return PEAR_DEPENDENCY_CONFLICT; - } - - // }}} - // {{{ checkZend() - - /** - * Zend version check method - * - * @param string $req which version to compare - * @param string $relation how to compare the version - * - * @return mixed bool false if no error or the error string - */ - function checkZend(&$errmsg, $req, $relation = 'ge') - { - if (substr($req, 0, 2) == 'v.') { - $req = substr($req,2, strlen($req) - 2); - } - $zend_ver = zend_version(); - $operator = substr($relation,0,2); - if (!version_compare("$zend_ver", "$req", $operator)) { - $errmsg = "Zend version " . $this->signOperator($operator) . - " $req is required"; - return PEAR_DEPENDENCY_CONFLICT; - } - return false; - } - - // }}} - // {{{ signOperator() - - /** - * Converts text comparing operators to them sign equivalents - * - * Example: 'ge' to '>=' - * - * @access public - * @param string Operator - * @return string Sign equivalent - */ - function signOperator($operator) - { - switch($operator) { - case 'lt': return '<'; - case 'le': return '<='; - case 'gt': return '>'; - case 'ge': return '>='; - case 'eq': return '=='; - case 'ne': return '!='; - default: - return $operator; - } - } - - // }}} - // {{{ codeFromRelation() - - /** - * Convert relation into corresponding code - * - * @access public - * @param string Relation - * @param string Version - * @param string Requirement - * @param bool Optional dependency indicator - * @return integer - */ - function codeFromRelation($relation, $version, $req, $opt = false) - { - $code = PEAR_DEPENDENCY_BAD_DEPENDENCY; - switch ($relation) { - case 'gt': case 'ge': case 'eq': - // upgrade - $have_major = preg_replace('/\D.*/', '', $version); - $need_major = preg_replace('/\D.*/', '', $req); - if ($need_major > $have_major) { - $code = $opt ? PEAR_DEPENDENCY_UPGRADE_MAJOR_OPTIONAL : - PEAR_DEPENDENCY_UPGRADE_MAJOR; - } else { - $code = $opt ? PEAR_DEPENDENCY_UPGRADE_MINOR_OPTIONAL : - PEAR_DEPENDENCY_UPGRADE_MINOR; - } - break; - case 'lt': case 'le': case 'ne': - $code = $opt ? PEAR_DEPENDENCY_CONFLICT_OPTIONAL : - PEAR_DEPENDENCY_CONFLICT; - break; - } - return $code; - } - - // }}} -} -?> diff --git a/src/vitis/vas/rest/class/PEAR/Dependency2.php b/src/vitis/vas/rest/class/PEAR/Dependency2.php deleted file mode 100755 index 802e9bfa..00000000 --- a/src/vitis/vas/rest/class/PEAR/Dependency2.php +++ /dev/null @@ -1,1299 +0,0 @@ -<?php -/** - * PEAR_Dependency2, advanced dependency validation - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Dependency2.php,v 1.56 2008/01/03 20:26:35 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 1.4.0a1 - */ - -/** - * Required for the PEAR_VALIDATE_* constants - */ -require_once 'PEAR/Validate.php'; - -/** - * Dependency check for PEAR packages - * - * This class handles both version 1.0 and 2.0 dependencies - * WARNING: *any* changes to this class must be duplicated in the - * test_PEAR_Dependency2 class found in tests/PEAR_Dependency2/setup.php.inc, - * or unit tests will not actually validate the changes - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 1.4.0a1 - */ -class PEAR_Dependency2 -{ - /** - * One of the PEAR_VALIDATE_* states - * @see PEAR_VALIDATE_NORMAL - * @var integer - */ - var $_state; - /** - * Command-line options to install/upgrade/uninstall commands - * @param array - */ - var $_options; - /** - * @var OS_Guess - */ - var $_os; - /** - * @var PEAR_Registry - */ - var $_registry; - /** - * @var PEAR_Config - */ - var $_config; - /** - * @var PEAR_DependencyDB - */ - var $_dependencydb; - /** - * Output of PEAR_Registry::parsedPackageName() - * @var array - */ - var $_currentPackage; - /** - * @param PEAR_Config - * @param array installation options - * @param array format of PEAR_Registry::parsedPackageName() - * @param int installation state (one of PEAR_VALIDATE_*) - */ - function PEAR_Dependency2(&$config, $installoptions, $package, - $state = PEAR_VALIDATE_INSTALLING) - { - $this->_config = &$config; - if (!class_exists('PEAR_DependencyDB')) { - require_once 'PEAR/DependencyDB.php'; - } - if (isset($installoptions['packagingroot'])) { - // make sure depdb is in the right location - $config->setInstallRoot($installoptions['packagingroot']); - } - $this->_registry = &$config->getRegistry(); - $this->_dependencydb = &PEAR_DependencyDB::singleton($config); - if (isset($installoptions['packagingroot'])) { - $config->setInstallRoot(false); - } - $this->_options = $installoptions; - $this->_state = $state; - if (!class_exists('OS_Guess')) { - require_once 'OS/Guess.php'; - } - $this->_os = new OS_Guess; - $this->_currentPackage = $package; - } - - function _getExtraString($dep) - { - $extra = ' ('; - if (isset($dep['uri'])) { - return ''; - } - if (isset($dep['recommended'])) { - $extra .= 'recommended version ' . $dep['recommended']; - } else { - if (isset($dep['min'])) { - $extra .= 'version >= ' . $dep['min']; - } - if (isset($dep['max'])) { - if ($extra != ' (') { - $extra .= ', '; - } - $extra .= 'version <= ' . $dep['max']; - } - if (isset($dep['exclude'])) { - if (!is_array($dep['exclude'])) { - $dep['exclude'] = array($dep['exclude']); - } - if ($extra != ' (') { - $extra .= ', '; - } - $extra .= 'excluded versions: '; - foreach ($dep['exclude'] as $i => $exclude) { - if ($i) { - $extra .= ', '; - } - $extra .= $exclude; - } - } - } - $extra .= ')'; - if ($extra == ' ()') { - $extra = ''; - } - return $extra; - } - - /** - * This makes unit-testing a heck of a lot easier - */ - function getPHP_OS() - { - return PHP_OS; - } - - /** - * This makes unit-testing a heck of a lot easier - */ - function getsysname() - { - return $this->_os->getSysname(); - } - - /** - * Specify a dependency on an OS. Use arch for detailed os/processor information - * - * There are two generic OS dependencies that will be the most common, unix and windows. - * Other options are linux, freebsd, darwin (OS X), sunos, irix, hpux, aix - */ - function validateOsDependency($dep) - { - if ($this->_state != PEAR_VALIDATE_INSTALLING && - $this->_state != PEAR_VALIDATE_DOWNLOADING) { - return true; - } - if (isset($dep['conflicts'])) { - $not = true; - } else { - $not = false; - } - if ($dep['name'] == '*') { - return true; - } - switch (strtolower($dep['name'])) { - case 'windows' : - if ($not) { - if (strtolower(substr($this->getPHP_OS(), 0, 3)) == 'win') { - if (!isset($this->_options['nodeps']) && - !isset($this->_options['force'])) { - return $this->raiseError("Cannot install %s on Windows"); - } else { - return $this->warning("warning: Cannot install %s on Windows"); - } - } - } else { - if (strtolower(substr($this->getPHP_OS(), 0, 3)) != 'win') { - if (!isset($this->_options['nodeps']) && - !isset($this->_options['force'])) { - return $this->raiseError("Can only install %s on Windows"); - } else { - return $this->warning("warning: Can only install %s on Windows"); - } - } - } - break; - case 'unix' : - $unices = array('linux', 'freebsd', 'darwin', 'sunos', 'irix', 'hpux', 'aix'); - if ($not) { - if (in_array($this->getSysname(), $unices)) { - if (!isset($this->_options['nodeps']) && - !isset($this->_options['force'])) { - return $this->raiseError("Cannot install %s on any Unix system"); - } else { - return $this->warning( - "warning: Cannot install %s on any Unix system"); - } - } - } else { - if (!in_array($this->getSysname(), $unices)) { - if (!isset($this->_options['nodeps']) && - !isset($this->_options['force'])) { - return $this->raiseError("Can only install %s on a Unix system"); - } else { - return $this->warning( - "warning: Can only install %s on a Unix system"); - } - } - } - break; - default : - if ($not) { - if (strtolower($dep['name']) == strtolower($this->getSysname())) { - if (!isset($this->_options['nodeps']) && - !isset($this->_options['force'])) { - return $this->raiseError('Cannot install %s on ' . $dep['name'] . - ' operating system'); - } else { - return $this->warning('warning: Cannot install %s on ' . - $dep['name'] . ' operating system'); - } - } - } else { - if (strtolower($dep['name']) != strtolower($this->getSysname())) { - if (!isset($this->_options['nodeps']) && - !isset($this->_options['force'])) { - return $this->raiseError('Cannot install %s on ' . - $this->getSysname() . - ' operating system, can only install on ' . $dep['name']); - } else { - return $this->warning('warning: Cannot install %s on ' . - $this->getSysname() . - ' operating system, can only install on ' . $dep['name']); - } - } - } - } - return true; - } - - /** - * This makes unit-testing a heck of a lot easier - */ - function matchSignature($pattern) - { - return $this->_os->matchSignature($pattern); - } - - /** - * Specify a complex dependency on an OS/processor/kernel version, - * Use OS for simple operating system dependency. - * - * This is the only dependency that accepts an eregable pattern. The pattern - * will be matched against the php_uname() output parsed by OS_Guess - */ - function validateArchDependency($dep) - { - if ($this->_state != PEAR_VALIDATE_INSTALLING) { - return true; - } - if (isset($dep['conflicts'])) { - $not = true; - } else { - $not = false; - } - if (!$this->matchSignature($dep['pattern'])) { - if (!$not) { - if (!isset($this->_options['nodeps']) && !isset($this->_options['force'])) { - return $this->raiseError('%s Architecture dependency failed, does not ' . - 'match "' . $dep['pattern'] . '"'); - } else { - return $this->warning('warning: %s Architecture dependency failed, does ' . - 'not match "' . $dep['pattern'] . '"'); - } - } - return true; - } else { - if ($not) { - if (!isset($this->_options['nodeps']) && !isset($this->_options['force'])) { - return $this->raiseError('%s Architecture dependency failed, required "' . - $dep['pattern'] . '"'); - } else { - return $this->warning('warning: %s Architecture dependency failed, ' . - 'required "' . $dep['pattern'] . '"'); - } - } - return true; - } - } - - /** - * This makes unit-testing a heck of a lot easier - */ - function extension_loaded($name) - { - return extension_loaded($name); - } - - /** - * This makes unit-testing a heck of a lot easier - */ - function phpversion($name = null) - { - if ($name !== null) { - return phpversion($name); - } else { - return phpversion(); - } - } - - function validateExtensionDependency($dep, $required = true) - { - if ($this->_state != PEAR_VALIDATE_INSTALLING && - $this->_state != PEAR_VALIDATE_DOWNLOADING) { - return true; - } - $loaded = $this->extension_loaded($dep['name']); - $extra = $this->_getExtraString($dep); - if (isset($dep['exclude'])) { - if (!is_array($dep['exclude'])) { - $dep['exclude'] = array($dep['exclude']); - } - } - if (!isset($dep['min']) && !isset($dep['max']) && - !isset($dep['recommended']) && !isset($dep['exclude'])) { - if ($loaded) { - if (isset($dep['conflicts'])) { - if (!isset($this->_options['nodeps']) && !isset($this->_options['force'])) { - return $this->raiseError('%s conflicts with PHP extension "' . - $dep['name'] . '"' . $extra); - } else { - return $this->warning('warning: %s conflicts with PHP extension "' . - $dep['name'] . '"' . $extra); - } - } - return true; - } else { - if (isset($dep['conflicts'])) { - return true; - } - if ($required) { - if (!isset($this->_options['nodeps']) && !isset($this->_options['force'])) { - return $this->raiseError('%s requires PHP extension "' . - $dep['name'] . '"' . $extra); - } else { - return $this->warning('warning: %s requires PHP extension "' . - $dep['name'] . '"' . $extra); - } - } else { - return $this->warning('%s can optionally use PHP extension "' . - $dep['name'] . '"' . $extra); - } - } - } - if (!$loaded) { - if (isset($dep['conflicts'])) { - return true; - } - if (!$required) { - return $this->warning('%s can optionally use PHP extension "' . - $dep['name'] . '"' . $extra); - } else { - if (!isset($this->_options['nodeps']) && !isset($this->_options['force'])) { - return $this->raiseError('%s requires PHP extension "' . $dep['name'] . - '"' . $extra); - } - return $this->warning('warning: %s requires PHP extension "' . $dep['name'] . - '"' . $extra); - } - } - $version = (string) $this->phpversion($dep['name']); - if (empty($version)) { - $version = '0'; - } - $fail = false; - if (isset($dep['min'])) { - if (!version_compare($version, $dep['min'], '>=')) { - $fail = true; - } - } - if (isset($dep['max'])) { - if (!version_compare($version, $dep['max'], '<=')) { - $fail = true; - } - } - if ($fail && !isset($dep['conflicts'])) { - if (!isset($this->_options['nodeps']) && !isset($this->_options['force'])) { - return $this->raiseError('%s requires PHP extension "' . $dep['name'] . - '"' . $extra . ', installed version is ' . $version); - } else { - return $this->warning('warning: %s requires PHP extension "' . $dep['name'] . - '"' . $extra . ', installed version is ' . $version); - } - } elseif ((isset($dep['min']) || isset($dep['max'])) && !$fail && isset($dep['conflicts'])) { - if (!isset($this->_options['nodeps']) && !isset($this->_options['force'])) { - return $this->raiseError('%s conflicts with PHP extension "' . - $dep['name'] . '"' . $extra . ', installed version is ' . $version); - } else { - return $this->warning('warning: %s conflicts with PHP extension "' . - $dep['name'] . '"' . $extra . ', installed version is ' . $version); - } - } - if (isset($dep['exclude'])) { - foreach ($dep['exclude'] as $exclude) { - if (version_compare($version, $exclude, '==')) { - if (isset($dep['conflicts'])) { - continue; - } - if (!isset($this->_options['nodeps']) && - !isset($this->_options['force'])) { - return $this->raiseError('%s is not compatible with PHP extension "' . - $dep['name'] . '" version ' . - $exclude); - } else { - return $this->warning('warning: %s is not compatible with PHP extension "' . - $dep['name'] . '" version ' . - $exclude); - } - } elseif (version_compare($version, $exclude, '!=') && isset($dep['conflicts'])) { - if (!isset($this->_options['nodeps']) && !isset($this->_options['force'])) { - return $this->raiseError('%s conflicts with PHP extension "' . - $dep['name'] . '"' . $extra . ', installed version is ' . $version); - } else { - return $this->warning('warning: %s conflicts with PHP extension "' . - $dep['name'] . '"' . $extra . ', installed version is ' . $version); - } - } - } - } - if (isset($dep['recommended'])) { - if (version_compare($version, $dep['recommended'], '==')) { - return true; - } else { - if (!isset($this->_options['nodeps']) && !isset($this->_options['force'])) { - return $this->raiseError('%s dependency: PHP extension ' . $dep['name'] . - ' version "' . $version . '"' . - ' is not the recommended version "' . $dep['recommended'] . - '", but may be compatible, use --force to install'); - } else { - return $this->warning('warning: %s dependency: PHP extension ' . - $dep['name'] . ' version "' . $version . '"' . - ' is not the recommended version "' . $dep['recommended'].'"'); - } - } - } - return true; - } - - function validatePhpDependency($dep) - { - if ($this->_state != PEAR_VALIDATE_INSTALLING && - $this->_state != PEAR_VALIDATE_DOWNLOADING) { - return true; - } - $version = $this->phpversion(); - $extra = $this->_getExtraString($dep); - if (isset($dep['exclude'])) { - if (!is_array($dep['exclude'])) { - $dep['exclude'] = array($dep['exclude']); - } - } - if (isset($dep['min'])) { - if (!version_compare($version, $dep['min'], '>=')) { - if (!isset($this->_options['nodeps']) && !isset($this->_options['force'])) { - return $this->raiseError('%s requires PHP' . - $extra . ', installed version is ' . $version); - } else { - return $this->warning('warning: %s requires PHP' . - $extra . ', installed version is ' . $version); - } - } - } - if (isset($dep['max'])) { - if (!version_compare($version, $dep['max'], '<=')) { - if (!isset($this->_options['nodeps']) && !isset($this->_options['force'])) { - return $this->raiseError('%s requires PHP' . - $extra . ', installed version is ' . $version); - } else { - return $this->warning('warning: %s requires PHP' . - $extra . ', installed version is ' . $version); - } - } - } - if (isset($dep['exclude'])) { - foreach ($dep['exclude'] as $exclude) { - if (version_compare($version, $exclude, '==')) { - if (!isset($this->_options['nodeps']) && - !isset($this->_options['force'])) { - return $this->raiseError('%s is not compatible with PHP version ' . - $exclude); - } else { - return $this->warning( - 'warning: %s is not compatible with PHP version ' . - $exclude); - } - } - } - } - return true; - } - - /** - * This makes unit-testing a heck of a lot easier - */ - function getPEARVersion() - { - return '1.7.2'; - } - - function validatePearinstallerDependency($dep) - { - $pearversion = $this->getPEARVersion(); - $extra = $this->_getExtraString($dep); - if (isset($dep['exclude'])) { - if (!is_array($dep['exclude'])) { - $dep['exclude'] = array($dep['exclude']); - } - } - if (version_compare($pearversion, $dep['min'], '<')) { - if (!isset($this->_options['nodeps']) && !isset($this->_options['force'])) { - return $this->raiseError('%s requires PEAR Installer' . $extra . - ', installed version is ' . $pearversion); - } else { - return $this->warning('warning: %s requires PEAR Installer' . $extra . - ', installed version is ' . $pearversion); - } - } - if (isset($dep['max'])) { - if (version_compare($pearversion, $dep['max'], '>')) { - if (!isset($this->_options['nodeps']) && !isset($this->_options['force'])) { - return $this->raiseError('%s requires PEAR Installer' . $extra . - ', installed version is ' . $pearversion); - } else { - return $this->warning('warning: %s requires PEAR Installer' . $extra . - ', installed version is ' . $pearversion); - } - } - } - if (isset($dep['exclude'])) { - if (!isset($dep['exclude'][0])) { - $dep['exclude'] = array($dep['exclude']); - } - foreach ($dep['exclude'] as $exclude) { - if (version_compare($exclude, $pearversion, '==')) { - if (!isset($this->_options['nodeps']) && !isset($this->_options['force'])) { - return $this->raiseError('%s is not compatible with PEAR Installer ' . - 'version ' . $exclude); - } else { - return $this->warning('warning: %s is not compatible with PEAR ' . - 'Installer version ' . $exclude); - } - } - } - } - return true; - } - - function validateSubpackageDependency($dep, $required, $params) - { - return $this->validatePackageDependency($dep, $required, $params); - } - - /** - * @param array dependency information (2.0 format) - * @param boolean whether this is a required dependency - * @param array a list of downloaded packages to be installed, if any - * @param boolean if true, then deps on pear.php.net that fail will also check - * against pecl.php.net packages to accomodate extensions that have - * moved to pecl.php.net from pear.php.net - */ - function validatePackageDependency($dep, $required, $params, $depv1 = false) - { - if ($this->_state != PEAR_VALIDATE_INSTALLING && - $this->_state != PEAR_VALIDATE_DOWNLOADING) { - return true; - } - if (isset($dep['providesextension'])) { - if ($this->extension_loaded($dep['providesextension'])) { - $save = $dep; - $subdep = $dep; - $subdep['name'] = $subdep['providesextension']; - PEAR::pushErrorHandling(PEAR_ERROR_RETURN); - $ret = $this->validateExtensionDependency($subdep, $required); - PEAR::popErrorHandling(); - if (!PEAR::isError($ret)) { - return true; - } - } - } - if ($this->_state == PEAR_VALIDATE_INSTALLING) { - return $this->_validatePackageInstall($dep, $required, $depv1); - } - if ($this->_state == PEAR_VALIDATE_DOWNLOADING) { - return $this->_validatePackageDownload($dep, $required, $params, $depv1); - } - } - - function _validatePackageDownload($dep, $required, $params, $depv1 = false) - { - $dep['package'] = $dep['name']; - if (isset($dep['uri'])) { - $dep['channel'] = '__uri'; - } - $depname = $this->_registry->parsedPackageNameToString($dep, true); - $found = false; - foreach ($params as $param) { - if ($param->isEqual( - array('package' => $dep['name'], - 'channel' => $dep['channel']))) { - $found = true; - break; - } - if ($depv1 && $dep['channel'] == 'pear.php.net') { - if ($param->isEqual( - array('package' => $dep['name'], - 'channel' => 'pecl.php.net'))) { - $found = true; - break; - } - } - } - if (!$found && isset($dep['providesextension'])) { - foreach ($params as $param) { - if ($param->isExtension($dep['providesextension'])) { - $found = true; - break; - } - } - } - if ($found) { - $version = $param->getVersion(); - $installed = false; - $downloaded = true; - } else { - if ($this->_registry->packageExists($dep['name'], $dep['channel'])) { - $installed = true; - $downloaded = false; - $version = $this->_registry->packageinfo($dep['name'], 'version', - $dep['channel']); - } else { - if ($dep['channel'] == 'pecl.php.net' && $this->_registry->packageExists($dep['name'], - 'pear.php.net')) { - $installed = true; - $downloaded = false; - $version = $this->_registry->packageinfo($dep['name'], 'version', - 'pear.php.net'); - } else { - $version = 'not installed or downloaded'; - $installed = false; - $downloaded = false; - } - } - } - $extra = $this->_getExtraString($dep); - if (isset($dep['exclude'])) { - if (!is_array($dep['exclude'])) { - $dep['exclude'] = array($dep['exclude']); - } - } - if (!isset($dep['min']) && !isset($dep['max']) && - !isset($dep['recommended']) && !isset($dep['exclude'])) { - if ($installed || $downloaded) { - $installed = $installed ? 'installed' : 'downloaded'; - if (isset($dep['conflicts'])) { - if ($version) { - $rest = ", $installed version is " . $version; - } else { - $rest = ''; - } - if (!isset($this->_options['nodeps']) && !isset($this->_options['force'])) { - return $this->raiseError('%s conflicts with package "' . $depname . '"' . - $extra . $rest); - } else { - return $this->warning('warning: %s conflicts with package "' . $depname . '"' . - $extra . $rest); - } - } - return true; - } else { - if (isset($dep['conflicts'])) { - return true; - } - if ($required) { - if (!isset($this->_options['nodeps']) && !isset($this->_options['force'])) { - return $this->raiseError('%s requires package "' . $depname . '"' . - $extra); - } else { - return $this->warning('warning: %s requires package "' . $depname . '"' . - $extra); - } - } else { - return $this->warning('%s can optionally use package "' . $depname . '"' . - $extra); - } - } - } - if (!$installed && !$downloaded) { - if (isset($dep['conflicts'])) { - return true; - } - if ($required) { - if (!isset($this->_options['nodeps']) && !isset($this->_options['force'])) { - return $this->raiseError('%s requires package "' . $depname . '"' . - $extra); - } else { - return $this->warning('warning: %s requires package "' . $depname . '"' . - $extra); - } - } else { - return $this->warning('%s can optionally use package "' . $depname . '"' . - $extra); - } - } - $fail = false; - if (isset($dep['min'])) { - if (version_compare($version, $dep['min'], '<')) { - $fail = true; - } - } - if (isset($dep['max'])) { - if (version_compare($version, $dep['max'], '>')) { - $fail = true; - } - } - if ($fail && !isset($dep['conflicts'])) { - $installed = $installed ? 'installed' : 'downloaded'; - $dep['package'] = $dep['name']; - $dep = $this->_registry->parsedPackageNameToString($dep, true); - if (!isset($this->_options['nodeps']) && !isset($this->_options['force'])) { - return $this->raiseError('%s requires package "' . $depname . '"' . - $extra . ", $installed version is " . $version); - } else { - return $this->warning('warning: %s requires package "' . $depname . '"' . - $extra . ", $installed version is " . $version); - } - } elseif ((isset($dep['min']) || isset($dep['max'])) && !$fail && - isset($dep['conflicts']) && !isset($dep['exclude'])) { - $installed = $installed ? 'installed' : 'downloaded'; - if (!isset($this->_options['nodeps']) && !isset($this->_options['force'])) { - return $this->raiseError('%s conflicts with package "' . $depname . '"' . $extra . - ", $installed version is " . $version); - } else { - return $this->warning('warning: %s conflicts with package "' . $depname . '"' . - $extra . ", $installed version is " . $version); - } - } - if (isset($dep['exclude'])) { - $installed = $installed ? 'installed' : 'downloaded'; - foreach ($dep['exclude'] as $exclude) { - if (version_compare($version, $exclude, '==') && !isset($dep['conflicts'])) { - if (!isset($this->_options['nodeps']) && - !isset($this->_options['force'])) { - return $this->raiseError('%s is not compatible with ' . - $installed . ' package "' . - $depname . '" version ' . - $exclude); - } else { - return $this->warning('warning: %s is not compatible with ' . - $installed . ' package "' . - $depname . '" version ' . - $exclude); - } - } elseif (version_compare($version, $exclude, '!=') && isset($dep['conflicts'])) { - $installed = $installed ? 'installed' : 'downloaded'; - if (!isset($this->_options['nodeps']) && !isset($this->_options['force'])) { - return $this->raiseError('%s conflicts with package "' . $depname . '"' . - $extra . ", $installed version is " . $version); - } else { - return $this->warning('warning: %s conflicts with package "' . $depname . '"' . - $extra . ", $installed version is " . $version); - } - } - } - } - if (isset($dep['recommended'])) { - $installed = $installed ? 'installed' : 'downloaded'; - if (version_compare($version, $dep['recommended'], '==')) { - return true; - } else { - if (!$found && $installed) { - $param = $this->_registry->getPackage($dep['name'], $dep['channel']); - } - if ($param) { - $found = false; - foreach ($params as $parent) { - if ($parent->isEqual($this->_currentPackage)) { - $found = true; - break; - } - } - if ($found) { - if ($param->isCompatible($parent)) { - return true; - } - } else { // this is for validPackage() calls - $parent = $this->_registry->getPackage($this->_currentPackage['package'], - $this->_currentPackage['channel']); - if ($parent !== null) { - if ($param->isCompatible($parent)) { - return true; - } - } - } - } - if (!isset($this->_options['nodeps']) && !isset($this->_options['force']) && - !isset($this->_options['loose'])) { - return $this->raiseError('%s dependency package "' . $depname . - '" ' . $installed . ' version ' . $version . - ' is not the recommended version ' . $dep['recommended'] . - ', but may be compatible, use --force to install'); - } else { - return $this->warning('warning: %s dependency package "' . $depname . - '" ' . $installed . ' version ' . $version . - ' is not the recommended version ' . $dep['recommended']); - } - } - } - return true; - } - - function _validatePackageInstall($dep, $required, $depv1 = false) - { - return $this->_validatePackageDownload($dep, $required, array(), $depv1); - } - - /** - * Verify that uninstalling packages passed in to command line is OK. - * - * @param PEAR_Installer $dl - * @return PEAR_Error|true - */ - function validatePackageUninstall(&$dl) - { - if (PEAR::isError($this->_dependencydb)) { - return $this->_dependencydb; - } - $params = array(); - // construct an array of "downloaded" packages to fool the package dependency checker - // into using these to validate uninstalls of circular dependencies - $downloaded = &$dl->getUninstallPackages(); - foreach ($downloaded as $i => $pf) { - if (!class_exists('PEAR_Downloader_Package')) { - require_once 'PEAR/Downloader/Package.php'; - } - $dp = &new PEAR_Downloader_Package($dl); - $dp->setPackageFile($downloaded[$i]); - $params[$i] = &$dp; - } - // check cache - $memyselfandI = strtolower($this->_currentPackage['channel']) . '/' . - strtolower($this->_currentPackage['package']); - if (isset($dl->___uninstall_package_cache)) { - $badpackages = $dl->___uninstall_package_cache; - if (isset($badpackages[$memyselfandI]['warnings'])) { - foreach ($badpackages[$memyselfandI]['warnings'] as $warning) { - $dl->log(0, $warning[0]); - } - } - if (isset($badpackages[$memyselfandI]['errors'])) { - foreach ($badpackages[$memyselfandI]['errors'] as $error) { - if (is_array($error)) { - $dl->log(0, $error[0]); - } else { - $dl->log(0, $error->getMessage()); - } - } - if (isset($this->_options['nodeps']) || isset($this->_options['force'])) { - return $this->warning( - 'warning: %s should not be uninstalled, other installed packages depend ' . - 'on this package'); - } else { - return $this->raiseError( - '%s cannot be uninstalled, other installed packages depend on this package'); - } - } - return true; - } - // first, list the immediate parents of each package to be uninstalled - $perpackagelist = array(); - $allparents = array(); - foreach ($params as $i => $param) { - $a = array('channel' => strtolower($param->getChannel()), - 'package' => strtolower($param->getPackage())); - $deps = $this->_dependencydb->getDependentPackages($a); - if ($deps) { - foreach ($deps as $d) { - $pardeps = $this->_dependencydb->getDependencies($d); - foreach ($pardeps as $dep) { - if (strtolower($dep['dep']['channel']) == $a['channel'] && - strtolower($dep['dep']['name']) == $a['package']) { - if (!isset($perpackagelist[$a['channel'] . '/' . $a['package']])) { - $perpackagelist[$a['channel'] . '/' . $a['package']] = array(); - } - $perpackagelist[$a['channel'] . '/' . $a['package']][] - = array($d['channel'] . '/' . $d['package'], $dep); - if (!isset($allparents[$d['channel'] . '/' . $d['package']])) { - $allparents[$d['channel'] . '/' . $d['package']] = array(); - } - if (!isset($allparents[$d['channel'] . '/' . $d['package']][$a['channel'] . '/' . $a['package']])) { - $allparents[$d['channel'] . '/' . $d['package']][$a['channel'] . '/' . $a['package']] = array(); - } - $allparents[$d['channel'] . '/' . $d['package']] - [$a['channel'] . '/' . $a['package']][] - = array($d, $dep); - } - } - } - } - } - // next, remove any packages from the parents list that are not installed - $remove = array(); - foreach ($allparents as $parent => $d1) { - foreach ($d1 as $d) { - if ($this->_registry->packageExists($d[0][0]['package'], $d[0][0]['channel'])) { - continue; - } - $remove[$parent] = true; - } - } - // next remove any packages from the parents list that are not passed in for - // uninstallation - foreach ($allparents as $parent => $d1) { - foreach ($d1 as $d) { - foreach ($params as $param) { - if (strtolower($param->getChannel()) == $d[0][0]['channel'] && - strtolower($param->getPackage()) == $d[0][0]['package']) { - // found it - continue 3; - } - } - $remove[$parent] = true; - } - } - // remove all packages whose dependencies fail - // save which ones failed for error reporting - $badchildren = array(); - do { - $fail = false; - foreach ($remove as $package => $unused) { - if (!isset($allparents[$package])) { - continue; - } - foreach ($allparents[$package] as $kid => $d1) { - foreach ($d1 as $depinfo) { - if ($depinfo[1]['type'] != 'optional') { - if (isset($badchildren[$kid])) { - continue; - } - $badchildren[$kid] = true; - $remove[$kid] = true; - $fail = true; - continue 2; - } - } - } - if ($fail) { - // start over, we removed some children - continue 2; - } - } - } while ($fail); - // next, construct the list of packages that can't be uninstalled - $badpackages = array(); - $save = $this->_currentPackage; - foreach ($perpackagelist as $package => $packagedeps) { - foreach ($packagedeps as $parent) { - if (!isset($remove[$parent[0]])) { - continue; - } - $packagename = $this->_registry->parsePackageName($parent[0]); - $packagename['channel'] = $this->_registry->channelAlias($packagename['channel']); - $pa = $this->_registry->getPackage($packagename['package'], $packagename['channel']); - $packagename['package'] = $pa->getPackage(); - $this->_currentPackage = $packagename; - // parent is not present in uninstall list, make sure we can actually - // uninstall it (parent dep is optional) - $parentname['channel'] = $this->_registry->channelAlias($parent[1]['dep']['channel']); - $pa = $this->_registry->getPackage($parent[1]['dep']['name'], $parent[1]['dep']['channel']); - $parentname['package'] = $pa->getPackage(); - $parent[1]['dep']['package'] = $parentname['package']; - $parent[1]['dep']['channel'] = $parentname['channel']; - if ($parent[1]['type'] == 'optional') { - $test = $this->_validatePackageUninstall($parent[1]['dep'], false, $dl); - if ($test !== true) { - $badpackages[$package]['warnings'][] = $test; - } - } else { - $test = $this->_validatePackageUninstall($parent[1]['dep'], true, $dl); - if ($test !== true) { - $badpackages[$package]['errors'][] = $test; - } - } - } - } - $this->_currentPackage = $save; - $dl->___uninstall_package_cache = $badpackages; - if (isset($badpackages[$memyselfandI])) { - if (isset($badpackages[$memyselfandI]['warnings'])) { - foreach ($badpackages[$memyselfandI]['warnings'] as $warning) { - $dl->log(0, $warning[0]); - } - } - if (isset($badpackages[$memyselfandI]['errors'])) { - foreach ($badpackages[$memyselfandI]['errors'] as $error) { - if (is_array($error)) { - $dl->log(0, $error[0]); - } else { - $dl->log(0, $error->getMessage()); - } - } - if (isset($this->_options['nodeps']) || isset($this->_options['force'])) { - return $this->warning( - 'warning: %s should not be uninstalled, other installed packages depend ' . - 'on this package'); - } else { - return $this->raiseError( - '%s cannot be uninstalled, other installed packages depend on this package'); - } - } - } - return true; - } - - function _validatePackageUninstall($dep, $required, $dl) - { - $depname = $this->_registry->parsedPackageNameToString($dep, true); - $version = $this->_registry->packageinfo($dep['package'], 'version', - $dep['channel']); - if (!$version) { - return true; - } - $extra = $this->_getExtraString($dep); - if (isset($dep['exclude'])) { - if (!is_array($dep['exclude'])) { - $dep['exclude'] = array($dep['exclude']); - } - } - if (isset($dep['conflicts'])) { - return true; // uninstall OK - these packages conflict (probably installed with --force) - } - if (!isset($dep['min']) && !isset($dep['max'])) { - if ($required) { - if (!isset($this->_options['nodeps']) && !isset($this->_options['force'])) { - return $this->raiseError('"' . $depname . '" is required by ' . - 'installed package %s' . $extra); - } else { - return $this->warning('warning: "' . $depname . '" is required by ' . - 'installed package %s' . $extra); - } - } else { - return $this->warning('"' . $depname . '" can be optionally used by ' . - 'installed package %s' . $extra); - } - } - $fail = false; - if (isset($dep['min'])) { - if (version_compare($version, $dep['min'], '>=')) { - $fail = true; - } - } - if (isset($dep['max'])) { - if (version_compare($version, $dep['max'], '<=')) { - $fail = true; - } - } - // we re-use this variable, preserve the original value - $saverequired = $required; - if ($required) { - if (!isset($this->_options['nodeps']) && !isset($this->_options['force'])) { - return $this->raiseError($depname . $extra . ' is required by installed package' . - ' "%s"'); - } else { - return $this->raiseError('warning: ' . $depname . $extra . - ' is required by installed package "%s"'); - } - } else { - return $this->warning($depname . $extra . ' can be optionally used by installed package' . - ' "%s"'); - } - return true; - } - - /** - * validate a downloaded package against installed packages - * - * As of PEAR 1.4.3, this will only validate - * - * @param array|PEAR_Downloader_Package|PEAR_PackageFile_v1|PEAR_PackageFile_v2 - * $pkg package identifier (either - * array('package' => blah, 'channel' => blah) or an array with - * index 'info' referencing an object) - * @param PEAR_Downloader $dl - * @param array $params full list of packages to install - * @return true|PEAR_Error - */ - function validatePackage($pkg, &$dl, $params = array()) - { - if (is_array($pkg) && isset($pkg['info'])) { - $deps = $this->_dependencydb->getDependentPackageDependencies($pkg['info']); - } else { - $deps = $this->_dependencydb->getDependentPackageDependencies($pkg); - } - $fail = false; - if ($deps) { - if (!class_exists('PEAR_Downloader_Package')) { - require_once 'PEAR/Downloader/Package.php'; - } - $dp = &new PEAR_Downloader_Package($dl); - if (is_object($pkg)) { - $dp->setPackageFile($pkg); - } else { - $dp->setDownloadURL($pkg); - } - PEAR::pushErrorHandling(PEAR_ERROR_RETURN); - foreach ($deps as $channel => $info) { - foreach ($info as $package => $ds) { - foreach ($params as $packd) { - if (strtolower($packd->getPackage()) == strtolower($package) && - $packd->getChannel() == $channel) { - $dl->log(3, 'skipping installed package check of "' . - $this->_registry->parsedPackageNameToString( - array('channel' => $channel, 'package' => $package), - true) . - '", version "' . $packd->getVersion() . '" will be ' . - 'downloaded and installed'); - continue 2; // jump to next package - } - } - foreach ($ds as $d) { - $checker = &new PEAR_Dependency2($this->_config, $this->_options, - array('channel' => $channel, 'package' => $package), $this->_state); - $dep = $d['dep']; - $required = $d['type'] == 'required'; - $ret = $checker->_validatePackageDownload($dep, $required, array(&$dp)); - if (is_array($ret)) { - $dl->log(0, $ret[0]); - } elseif (PEAR::isError($ret)) { - $dl->log(0, $ret->getMessage()); - $fail = true; - } - } - } - } - PEAR::popErrorHandling(); - } - if ($fail) { - return $this->raiseError( - '%s cannot be installed, conflicts with installed packages'); - } - return true; - } - - /** - * validate a package.xml 1.0 dependency - */ - function validateDependency1($dep, $params = array()) - { - if (!isset($dep['optional'])) { - $dep['optional'] = 'no'; - } - list($newdep, $type) = $this->normalizeDep($dep); - if (!$newdep) { - return $this->raiseError("Invalid Dependency"); - } - if (method_exists($this, "validate{$type}Dependency")) { - return $this->{"validate{$type}Dependency"}($newdep, $dep['optional'] == 'no', - $params, true); - } - } - - /** - * Convert a 1.0 dep into a 2.0 dep - */ - function normalizeDep($dep) - { - $types = array( - 'pkg' => 'Package', - 'ext' => 'Extension', - 'os' => 'Os', - 'php' => 'Php' - ); - if (isset($types[$dep['type']])) { - $type = $types[$dep['type']]; - } else { - return array(false, false); - } - $newdep = array(); - switch ($type) { - case 'Package' : - $newdep['channel'] = 'pear.php.net'; - case 'Extension' : - case 'Os' : - $newdep['name'] = $dep['name']; - break; - } - $dep['rel'] = PEAR_Dependency2::signOperator($dep['rel']); - switch ($dep['rel']) { - case 'has' : - return array($newdep, $type); - break; - case 'not' : - $newdep['conflicts'] = true; - break; - case '>=' : - case '>' : - $newdep['min'] = $dep['version']; - if ($dep['rel'] == '>') { - $newdep['exclude'] = $dep['version']; - } - break; - case '<=' : - case '<' : - $newdep['max'] = $dep['version']; - if ($dep['rel'] == '<') { - $newdep['exclude'] = $dep['version']; - } - break; - case 'ne' : - case '!=' : - $newdep['min'] = '0'; - $newdep['max'] = '100000'; - $newdep['exclude'] = $dep['version']; - break; - case '==' : - $newdep['min'] = $dep['version']; - $newdep['max'] = $dep['version']; - break; - } - if ($type == 'Php') { - if (!isset($newdep['min'])) { - $newdep['min'] = '4.2.0'; - } - if (!isset($newdep['max'])) { - $newdep['max'] = '6.0.0'; - } - } - return array($newdep, $type); - } - - /** - * Converts text comparing operators to them sign equivalents - * - * Example: 'ge' to '>=' - * - * @access public - * @param string Operator - * @return string Sign equivalent - */ - function signOperator($operator) - { - switch($operator) { - case 'lt': return '<'; - case 'le': return '<='; - case 'gt': return '>'; - case 'ge': return '>='; - case 'eq': return '=='; - case 'ne': return '!='; - default: - return $operator; - } - } - - function raiseError($msg) - { - if (isset($this->_options['ignore-errors'])) { - return $this->warning($msg); - } - return PEAR::raiseError(sprintf($msg, $this->_registry->parsedPackageNameToString( - $this->_currentPackage, true))); - } - - function warning($msg) - { - return array(sprintf($msg, $this->_registry->parsedPackageNameToString( - $this->_currentPackage, true))); - } -} -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/DependencyDB.php b/src/vitis/vas/rest/class/PEAR/DependencyDB.php deleted file mode 100755 index f79ae81e..00000000 --- a/src/vitis/vas/rest/class/PEAR/DependencyDB.php +++ /dev/null @@ -1,713 +0,0 @@ -<?php -/** - * PEAR_DependencyDB, advanced installed packages dependency database - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Tomas V. V. Cox <cox@idecnet.com> - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: DependencyDB.php,v 1.37 2008/01/03 20:26:35 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 1.4.0a1 - */ - -/** - * Needed for error handling - */ -require_once 'PEAR.php'; -require_once 'PEAR/Config.php'; - -$GLOBALS['_PEAR_DEPENDENCYDB_INSTANCE'] = array(); -/** - * Track dependency relationships between installed packages - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @author Tomas V.V.Cox <cox@idec.net.com> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 1.4.0a1 - */ -class PEAR_DependencyDB -{ - // {{{ properties - - /** - * This is initialized by {@link setConfig()} - * @var PEAR_Config - * @access private - */ - var $_config; - /** - * This is initialized by {@link setConfig()} - * @var PEAR_Registry - * @access private - */ - var $_registry; - /** - * Filename of the dependency DB (usually .depdb) - * @var string - * @access private - */ - var $_depdb = false; - /** - * File name of the lockfile (usually .depdblock) - * @var string - * @access private - */ - var $_lockfile = false; - /** - * Open file resource for locking the lockfile - * @var resource|false - * @access private - */ - var $_lockFp = false; - /** - * API version of this class, used to validate a file on-disk - * @var string - * @access private - */ - var $_version = '1.0'; - /** - * Cached dependency database file - * @var array|null - * @access private - */ - var $_cache; - - // }}} - // {{{ & singleton() - - /** - * Get a raw dependency database. Calls setConfig() and assertDepsDB() - * @param PEAR_Config - * @param string|false full path to the dependency database, or false to use default - * @return PEAR_DependencyDB|PEAR_Error - * @static - */ - function &singleton(&$config, $depdb = false) - { - if (!isset($GLOBALS['_PEAR_DEPENDENCYDB_INSTANCE'] - [$config->get('php_dir', null, 'pear.php.net')])) { - $a = new PEAR_DependencyDB; - $GLOBALS['_PEAR_DEPENDENCYDB_INSTANCE'] - [$config->get('php_dir', null, 'pear.php.net')] = &$a; - $a->setConfig($config, $depdb); - if (PEAR::isError($e = $a->assertDepsDB())) { - return $e; - } - } - return $GLOBALS['_PEAR_DEPENDENCYDB_INSTANCE'] - [$config->get('php_dir', null, 'pear.php.net')]; - } - - /** - * Set up the registry/location of dependency DB - * @param PEAR_Config|false - * @param string|false full path to the dependency database, or false to use default - */ - function setConfig(&$config, $depdb = false) - { - if (!$config) { - $this->_config = &PEAR_Config::singleton(); - } else { - $this->_config = &$config; - } - $this->_registry = &$this->_config->getRegistry(); - if (!$depdb) { - $this->_depdb = $this->_config->get('php_dir', null, 'pear.php.net') . - DIRECTORY_SEPARATOR . '.depdb'; - } else { - $this->_depdb = $depdb; - } - $this->_lockfile = dirname($this->_depdb) . DIRECTORY_SEPARATOR . '.depdblock'; - } - // }}} - - function hasWriteAccess() - { - if (!file_exists($this->_depdb)) { - $dir = $this->_depdb; - while ($dir && $dir != '.') { - $dir = dirname($dir); // cd .. - if ($dir != '.' && file_exists($dir)) { - if (is_writeable($dir)) { - return true; - } else { - return false; - } - } - } - return false; - } - return is_writeable($this->_depdb); - } - - // {{{ assertDepsDB() - - /** - * Create the dependency database, if it doesn't exist. Error if the database is - * newer than the code reading it. - * @return void|PEAR_Error - */ - function assertDepsDB() - { - if (!is_file($this->_depdb)) { - $this->rebuildDB(); - } else { - $depdb = $this->_getDepDB(); - // Datatype format has been changed, rebuild the Deps DB - if ($depdb['_version'] < $this->_version) { - $this->rebuildDB(); - } - if ($depdb['_version']{0} > $this->_version{0}) { - return PEAR::raiseError('Dependency database is version ' . - $depdb['_version'] . ', and we are version ' . - $this->_version . ', cannot continue'); - } - } - } - - /** - * Get a list of installed packages that depend on this package - * @param PEAR_PackageFile_v1|PEAR_PackageFile_v2|array - * @return array|false - */ - function getDependentPackages(&$pkg) - { - $data = $this->_getDepDB(); - if (is_object($pkg)) { - $channel = strtolower($pkg->getChannel()); - $package = strtolower($pkg->getPackage()); - } else { - $channel = strtolower($pkg['channel']); - $package = strtolower($pkg['package']); - } - if (isset($data['packages'][$channel][$package])) { - return $data['packages'][$channel][$package]; - } - return false; - } - - /** - * Get a list of the actual dependencies of installed packages that depend on - * a package. - * @param PEAR_PackageFile_v1|PEAR_PackageFile_v2|array - * @return array|false - */ - function getDependentPackageDependencies(&$pkg) - { - $data = $this->_getDepDB(); - if (is_object($pkg)) { - $channel = strtolower($pkg->getChannel()); - $package = strtolower($pkg->getPackage()); - } else { - $channel = strtolower($pkg['channel']); - $package = strtolower($pkg['package']); - } - $depend = $this->getDependentPackages($pkg); - if (!$depend) { - return false; - } - $dependencies = array(); - foreach ($depend as $info) { - $temp = $this->getDependencies($info); - foreach ($temp as $dep) { - if (strtolower($dep['dep']['channel']) == strtolower($channel) && - strtolower($dep['dep']['name']) == strtolower($package)) { - if (!isset($dependencies[$info['channel']])) { - $dependencies[$info['channel']] = array(); - } - if (!isset($dependencies[$info['channel']][$info['package']])) { - $dependencies[$info['channel']][$info['package']] = array(); - } - $dependencies[$info['channel']][$info['package']][] = $dep; - } - } - } - return $dependencies; - } - - /** - * Get a list of dependencies of this installed package - * @param PEAR_PackageFile_v1|PEAR_PackageFile_v2|array - * @return array|false - */ - function getDependencies(&$pkg) - { - if (is_object($pkg)) { - $channel = strtolower($pkg->getChannel()); - $package = strtolower($pkg->getPackage()); - } else { - $channel = strtolower($pkg['channel']); - $package = strtolower($pkg['package']); - } - $data = $this->_getDepDB(); - if (isset($data['dependencies'][$channel][$package])) { - return $data['dependencies'][$channel][$package]; - } - return false; - } - - /** - * Determine whether $parent depends on $child, near or deep - * @param array|PEAR_PackageFile_v2|PEAR_PackageFile_v2 - * @param array|PEAR_PackageFile_v2|PEAR_PackageFile_v2 - */ - function dependsOn($parent, $child) - { - $c = array(); - $this->_getDepDB(); - return $this->_dependsOn($parent, $child, $c); - } - - function _dependsOn($parent, $child, &$checked) - { - if (is_object($parent)) { - $channel = strtolower($parent->getChannel()); - $package = strtolower($parent->getPackage()); - } else { - $channel = strtolower($parent['channel']); - $package = strtolower($parent['package']); - } - if (is_object($child)) { - $depchannel = strtolower($child->getChannel()); - $deppackage = strtolower($child->getPackage()); - } else { - $depchannel = strtolower($child['channel']); - $deppackage = strtolower($child['package']); - } - if (isset($checked[$channel][$package][$depchannel][$deppackage])) { - return false; // avoid endless recursion - } - $checked[$channel][$package][$depchannel][$deppackage] = true; - if (!isset($this->_cache['dependencies'][$channel][$package])) { - return false; - } - foreach ($this->_cache['dependencies'][$channel][$package] as $info) { - if (isset($info['dep']['uri'])) { - if (is_object($child)) { - if ($info['dep']['uri'] == $child->getURI()) { - return true; - } - } elseif (isset($child['uri'])) { - if ($info['dep']['uri'] == $child['uri']) { - return true; - } - } - return false; - } - if (strtolower($info['dep']['channel']) == strtolower($depchannel) && - strtolower($info['dep']['name']) == strtolower($deppackage)) { - return true; - } - } - foreach ($this->_cache['dependencies'][$channel][$package] as $info) { - if (isset($info['dep']['uri'])) { - if ($this->_dependsOn(array( - 'uri' => $info['dep']['uri'], - 'package' => $info['dep']['name']), $child, $checked)) { - return true; - } - } else { - if ($this->_dependsOn(array( - 'channel' => $info['dep']['channel'], - 'package' => $info['dep']['name']), $child, $checked)) { - return true; - } - } - } - return false; - } - - /** - * Register dependencies of a package that is being installed or upgraded - * @param PEAR_PackageFile_v2|PEAR_PackageFile_v2 - */ - function installPackage(&$package) - { - $data = $this->_getDepDB(); - unset($this->_cache); - $this->_setPackageDeps($data, $package); - $this->_writeDepDB($data); - } - - /** - * Remove dependencies of a package that is being uninstalled, or upgraded. - * - * Upgraded packages first uninstall, then install - * @param PEAR_PackageFile_v1|PEAR_PackageFile_v2|array If an array, then it must have - * indices 'channel' and 'package' - */ - function uninstallPackage(&$pkg) - { - $data = $this->_getDepDB(); - unset($this->_cache); - if (is_object($pkg)) { - $channel = strtolower($pkg->getChannel()); - $package = strtolower($pkg->getPackage()); - } else { - $channel = strtolower($pkg['channel']); - $package = strtolower($pkg['package']); - } - if (!isset($data['dependencies'][$channel][$package])) { - return true; - } - foreach ($data['dependencies'][$channel][$package] as $dep) { - $found = false; - if (isset($dep['dep']['uri'])) { - $depchannel = '__uri'; - } else { - $depchannel = strtolower($dep['dep']['channel']); - } - if (isset($data['packages'][$depchannel][strtolower($dep['dep']['name'])])) { - foreach ($data['packages'][$depchannel][strtolower($dep['dep']['name'])] as - $i => $info) { - if ($info['channel'] == $channel && - $info['package'] == $package) { - $found = true; - break; - } - } - } - if ($found) { - unset($data['packages'][$depchannel][strtolower($dep['dep']['name'])][$i]); - if (!count($data['packages'][$depchannel][strtolower($dep['dep']['name'])])) { - unset($data['packages'][$depchannel][strtolower($dep['dep']['name'])]); - if (!count($data['packages'][$depchannel])) { - unset($data['packages'][$depchannel]); - } - } else { - $data['packages'][$depchannel][strtolower($dep['dep']['name'])] = - array_values( - $data['packages'][$depchannel][strtolower($dep['dep']['name'])]); - } - } - } - unset($data['dependencies'][$channel][$package]); - if (!count($data['dependencies'][$channel])) { - unset($data['dependencies'][$channel]); - } - if (!count($data['dependencies'])) { - unset($data['dependencies']); - } - if (!count($data['packages'])) { - unset($data['packages']); - } - $this->_writeDepDB($data); - } - - /** - * Rebuild the dependency DB by reading registry entries. - * @return true|PEAR_Error - */ - function rebuildDB() - { - $depdb = array('_version' => $this->_version); - if (!$this->hasWriteAccess()) { - // allow startup for read-only with older Registry - return $depdb; - } - $packages = $this->_registry->listAllPackages(); - if (PEAR::isError($packages)) { - return $packages; - } - foreach ($packages as $channel => $ps) { - foreach ($ps as $package) { - $package = $this->_registry->getPackage($package, $channel); - if (PEAR::isError($package)) { - return $package; - } - $this->_setPackageDeps($depdb, $package); - } - } - $error = $this->_writeDepDB($depdb); - if (PEAR::isError($error)) { - return $error; - } - $this->_cache = $depdb; - return true; - } - - /** - * Register usage of the dependency DB to prevent race conditions - * @param int one of the LOCK_* constants - * @return true|PEAR_Error - * @access private - */ - function _lock($mode = LOCK_EX) - { - if (!eregi('Windows 9', php_uname())) { - if ($mode != LOCK_UN && is_resource($this->_lockFp)) { - // XXX does not check type of lock (LOCK_SH/LOCK_EX) - return true; - } - $open_mode = 'w'; - // XXX People reported problems with LOCK_SH and 'w' - if ($mode === LOCK_SH) { - if (!file_exists($this->_lockfile)) { - touch($this->_lockfile); - } elseif (!is_file($this->_lockfile)) { - return PEAR::raiseError('could not create Dependency lock file, ' . - 'it exists and is not a regular file'); - } - $open_mode = 'r'; - } - - if (!is_resource($this->_lockFp)) { - $this->_lockFp = @fopen($this->_lockfile, $open_mode); - } - if (!is_resource($this->_lockFp)) { - return PEAR::raiseError("could not create Dependency lock file" . - (isset($php_errormsg) ? ": " . $php_errormsg : "")); - } - if (!(int)flock($this->_lockFp, $mode)) { - switch ($mode) { - case LOCK_SH: $str = 'shared'; break; - case LOCK_EX: $str = 'exclusive'; break; - case LOCK_UN: $str = 'unlock'; break; - default: $str = 'unknown'; break; - } - return PEAR::raiseError("could not acquire $str lock ($this->_lockfile)"); - } - } - return true; - } - - /** - * Release usage of dependency DB - * @return true|PEAR_Error - * @access private - */ - function _unlock() - { - $ret = $this->_lock(LOCK_UN); - if (is_resource($this->_lockFp)) { - fclose($this->_lockFp); - } - $this->_lockFp = null; - return $ret; - } - - /** - * Load the dependency database from disk, or return the cache - * @return array|PEAR_Error - */ - function _getDepDB() - { - if (!$this->hasWriteAccess()) { - return array('_version' => $this->_version); - } - if (isset($this->_cache)) { - return $this->_cache; - } - if (!$fp = fopen($this->_depdb, 'r')) { - $err = PEAR::raiseError("Could not open dependencies file `".$this->_depdb."'"); - return $err; - } - $rt = get_magic_quotes_runtime(); - set_magic_quotes_runtime(0); - clearstatcache(); - fclose($fp); - $data = unserialize(file_get_contents($this->_depdb)); - set_magic_quotes_runtime($rt); - $this->_cache = $data; - return $data; - } - - /** - * Write out the dependency database to disk - * @param array the database - * @return true|PEAR_Error - * @access private - */ - function _writeDepDB(&$deps) - { - if (PEAR::isError($e = $this->_lock(LOCK_EX))) { - return $e; - } - if (!$fp = fopen($this->_depdb, 'wb')) { - $this->_unlock(); - return PEAR::raiseError("Could not open dependencies file `".$this->_depdb."' for writing"); - } - $rt = get_magic_quotes_runtime(); - set_magic_quotes_runtime(0); - fwrite($fp, serialize($deps)); - set_magic_quotes_runtime($rt); - fclose($fp); - $this->_unlock(); - $this->_cache = $deps; - return true; - } - - /** - * Register all dependencies from a package in the dependencies database, in essence - * "installing" the package's dependency information - * @param array the database - * @param PEAR_PackageFile_v1|PEAR_PackageFile_v2 - * @access private - */ - function _setPackageDeps(&$data, &$pkg) - { - $pkg->setConfig($this->_config); - if ($pkg->getPackagexmlVersion() == '1.0') { - $gen = &$pkg->getDefaultGenerator(); - $deps = $gen->dependenciesToV2(); - } else { - $deps = $pkg->getDeps(true); - } - if (!$deps) { - return; - } - if (!is_array($data)) { - $data = array(); - } - if (!isset($data['dependencies'])) { - $data['dependencies'] = array(); - } - if (!isset($data['dependencies'][strtolower($pkg->getChannel())])) { - $data['dependencies'][strtolower($pkg->getChannel())] = array(); - } - $data['dependencies'][strtolower($pkg->getChannel())][strtolower($pkg->getPackage())] - = array(); - if (isset($deps['required']['package'])) { - if (!isset($deps['required']['package'][0])) { - $deps['required']['package'] = array($deps['required']['package']); - } - foreach ($deps['required']['package'] as $dep) { - $this->_registerDep($data, $pkg, $dep, 'required'); - } - } - if (isset($deps['optional']['package'])) { - if (!isset($deps['optional']['package'][0])) { - $deps['optional']['package'] = array($deps['optional']['package']); - } - foreach ($deps['optional']['package'] as $dep) { - $this->_registerDep($data, $pkg, $dep, 'optional'); - } - } - if (isset($deps['required']['subpackage'])) { - if (!isset($deps['required']['subpackage'][0])) { - $deps['required']['subpackage'] = array($deps['required']['subpackage']); - } - foreach ($deps['required']['subpackage'] as $dep) { - $this->_registerDep($data, $pkg, $dep, 'required'); - } - } - if (isset($deps['optional']['subpackage'])) { - if (!isset($deps['optional']['subpackage'][0])) { - $deps['optional']['subpackage'] = array($deps['optional']['subpackage']); - } - foreach ($deps['optional']['subpackage'] as $dep) { - $this->_registerDep($data, $pkg, $dep, 'optional'); - } - } - if (isset($deps['group'])) { - if (!isset($deps['group'][0])) { - $deps['group'] = array($deps['group']); - } - foreach ($deps['group'] as $group) { - if (isset($group['package'])) { - if (!isset($group['package'][0])) { - $group['package'] = array($group['package']); - } - foreach ($group['package'] as $dep) { - $this->_registerDep($data, $pkg, $dep, 'optional', - $group['attribs']['name']); - } - } - if (isset($group['subpackage'])) { - if (!isset($group['subpackage'][0])) { - $group['subpackage'] = array($group['subpackage']); - } - foreach ($group['subpackage'] as $dep) { - $this->_registerDep($data, $pkg, $dep, 'optional', - $group['attribs']['name']); - } - } - } - } - if ($data['dependencies'][strtolower($pkg->getChannel())] - [strtolower($pkg->getPackage())] == array()) { - unset($data['dependencies'][strtolower($pkg->getChannel())] - [strtolower($pkg->getPackage())]); - if (!count($data['dependencies'][strtolower($pkg->getChannel())])) { - unset($data['dependencies'][strtolower($pkg->getChannel())]); - } - } - } - - /** - * @param array the database - * @param PEAR_PackageFile_v1|PEAR_PackageFile_v2 - * @param array the specific dependency - * @param required|optional whether this is a required or an optional dep - * @param string|false dependency group this dependency is from, or false for ordinary dep - */ - function _registerDep(&$data, &$pkg, $dep, $type, $group = false) - { - $info = array( - 'dep' => $dep, - 'type' => $type, - 'group' => $group); - - if (isset($dep['channel'])) { - $depchannel = $dep['channel']; - } else { - $depchannel = '__uri'; - } - if (!isset($data['dependencies'])) { - $data['dependencies'] = array(); - } - if (!isset($data['dependencies'][strtolower($pkg->getChannel())])) { - $data['dependencies'][strtolower($pkg->getChannel())] = array(); - } - if (!isset($data['dependencies'][strtolower($pkg->getChannel())][strtolower($pkg->getPackage())])) { - $data['dependencies'][strtolower($pkg->getChannel())][strtolower($pkg->getPackage())] = array(); - } - $data['dependencies'][strtolower($pkg->getChannel())][strtolower($pkg->getPackage())][] - = $info; - if (isset($data['packages'][strtolower($depchannel)][strtolower($dep['name'])])) { - $found = false; - foreach ($data['packages'][strtolower($depchannel)][strtolower($dep['name'])] - as $i => $p) { - if ($p['channel'] == strtolower($pkg->getChannel()) && - $p['package'] == strtolower($pkg->getPackage())) { - $found = true; - break; - } - } - if (!$found) { - $data['packages'][strtolower($depchannel)][strtolower($dep['name'])][] - = array('channel' => strtolower($pkg->getChannel()), - 'package' => strtolower($pkg->getPackage())); - } - } else { - if (!isset($data['packages'])) { - $data['packages'] = array(); - } - if (!isset($data['packages'][strtolower($depchannel)])) { - $data['packages'][strtolower($depchannel)] = array(); - } - if (!isset($data['packages'][strtolower($depchannel)][strtolower($dep['name'])])) { - $data['packages'][strtolower($depchannel)][strtolower($dep['name'])] = array(); - } - $data['packages'][strtolower($depchannel)][strtolower($dep['name'])][] - = array('channel' => strtolower($pkg->getChannel()), - 'package' => strtolower($pkg->getPackage())); - } - } -} -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/Downloader.php b/src/vitis/vas/rest/class/PEAR/Downloader.php deleted file mode 100755 index c70a07b1..00000000 --- a/src/vitis/vas/rest/class/PEAR/Downloader.php +++ /dev/null @@ -1,1752 +0,0 @@ -<?php -/** - * PEAR_Downloader, the PEAR Installer's download utility class - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @author Stig Bakken <ssb@php.net> - * @author Tomas V. V. Cox <cox@idecnet.com> - * @author Martin Jansen <mj@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Downloader.php,v 1.138 2008/04/11 01:16:40 dufuz Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 1.3.0 - */ - -/** - * Needed for constants, extending - */ -require_once 'PEAR/Common.php'; - -define('PEAR_INSTALLER_OK', 1); -define('PEAR_INSTALLER_FAILED', 0); -define('PEAR_INSTALLER_SKIPPED', -1); -define('PEAR_INSTALLER_ERROR_NO_PREF_STATE', 2); - -/** - * Administration class used to download anything from the internet (PEAR Packages, - * static URLs, xml files) - * - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @author Stig Bakken <ssb@php.net> - * @author Tomas V. V. Cox <cox@idecnet.com> - * @author Martin Jansen <mj@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 1.3.0 - */ -class PEAR_Downloader extends PEAR_Common -{ - /** - * @var PEAR_Registry - * @access private - */ - var $_registry; - - /** - * @var PEAR_Remote - * @access private - */ - var $_remote; - - /** - * Preferred Installation State (snapshot, devel, alpha, beta, stable) - * @var string|null - * @access private - */ - var $_preferredState; - - /** - * Options from command-line passed to Install. - * - * Recognized options:<br /> - * - onlyreqdeps : install all required dependencies as well - * - alldeps : install all dependencies, including optional - * - installroot : base relative path to install files in - * - force : force a download even if warnings would prevent it - * - nocompress : download uncompressed tarballs - * @see PEAR_Command_Install - * @access private - * @var array - */ - var $_options; - - /** - * Downloaded Packages after a call to download(). - * - * Format of each entry: - * - * <code> - * array('pkg' => 'package_name', 'file' => '/path/to/local/file', - * 'info' => array() // parsed package.xml - * ); - * </code> - * @access private - * @var array - */ - var $_downloadedPackages = array(); - - /** - * Packages slated for download. - * - * This is used to prevent downloading a package more than once should it be a dependency - * for two packages to be installed. - * Format of each entry: - * - * <pre> - * array('package_name1' => parsed package.xml, 'package_name2' => parsed package.xml, - * ); - * </pre> - * @access private - * @var array - */ - var $_toDownload = array(); - - /** - * Array of every package installed, with names lower-cased. - * - * Format: - * <code> - * array('package1' => 0, 'package2' => 1, ); - * </code> - * @var array - */ - var $_installed = array(); - - /** - * @var array - * @access private - */ - var $_errorStack = array(); - - /** - * @var boolean - * @access private - */ - var $_internalDownload = false; - - /** - * Temporary variable used in sorting packages by dependency in {@link sortPkgDeps()} - * @var array - * @access private - */ - var $_packageSortTree; - - /** - * Temporary directory, or configuration value where downloads will occur - * @var string - */ - var $_downloadDir; - // {{{ PEAR_Downloader() - - /** - * @param PEAR_Frontend_* - * @param array - * @param PEAR_Config - */ - function PEAR_Downloader(&$ui, $options, &$config) - { - parent::PEAR_Common(); - $this->_options = $options; - $this->config = &$config; - $this->_preferredState = $this->config->get('preferred_state'); - $this->ui = &$ui; - if (!$this->_preferredState) { - // don't inadvertantly use a non-set preferred_state - $this->_preferredState = null; - } - - if (isset($this->_options['installroot'])) { - $this->config->setInstallRoot($this->_options['installroot']); - } - $this->_registry = &$config->getRegistry(); - $this->_remote = &$config->getRemote(); - - if (isset($this->_options['alldeps']) || isset($this->_options['onlyreqdeps'])) { - $this->_installed = $this->_registry->listAllPackages(); - foreach ($this->_installed as $key => $unused) { - if (!count($unused)) { - continue; - } - $strtolower = create_function('$a','return strtolower($a);'); - array_walk($this->_installed[$key], $strtolower); - } - } - } - - /** - * Attempt to discover a channel's remote capabilities from - * its server name - * @param string - * @return boolean - */ - function discover($channel) - { - $this->log(1, 'Attempting to discover channel "' . $channel . '"...'); - PEAR::pushErrorHandling(PEAR_ERROR_RETURN); - $callback = $this->ui ? array(&$this, '_downloadCallback') : null; - if (!class_exists('System')) { - require_once 'System.php'; - } - $a = $this->downloadHttp('http://' . $channel . '/channel.xml', $this->ui, - System::mktemp(array('-d')), $callback, false); - PEAR::popErrorHandling(); - if (PEAR::isError($a)) { - return false; - } - list($a, $lastmodified) = $a; - if (!class_exists('PEAR_ChannelFile')) { - require_once 'PEAR/ChannelFile.php'; - } - $b = new PEAR_ChannelFile; - if ($b->fromXmlFile($a)) { - unlink($a); - if ($this->config->get('auto_discover')) { - $this->_registry->addChannel($b, $lastmodified); - $alias = $b->getName(); - if ($b->getName() == $this->_registry->channelName($b->getAlias())) { - $alias = $b->getAlias(); - } - $this->log(1, 'Auto-discovered channel "' . $channel . - '", alias "' . $alias . '", adding to registry'); - } - return true; - } - unlink($a); - return false; - } - - /** - * For simpler unit-testing - * @param PEAR_Downloader - * @return PEAR_Downloader_Package - */ - function &newDownloaderPackage(&$t) - { - if (!class_exists('PEAR_Downloader_Package')) { - require_once 'PEAR/Downloader/Package.php'; - } - $a = &new PEAR_Downloader_Package($t); - return $a; - } - - /** - * For simpler unit-testing - * @param PEAR_Config - * @param array - * @param array - * @param int - */ - function &getDependency2Object(&$c, $i, $p, $s) - { - if (!class_exists('PEAR_Dependency2')) { - require_once 'PEAR/Dependency2.php'; - } - $z = &new PEAR_Dependency2($c, $i, $p, $s); - return $z; - } - - function &download($params) - { - if (!count($params)) { - $a = array(); - return $a; - } - if (!isset($this->_registry)) { - $this->_registry = &$this->config->getRegistry(); - } - if (!isset($this->_remote)) { - $this->_remote = &$this->config->getRemote(); - } - $channelschecked = array(); - // convert all parameters into PEAR_Downloader_Package objects - foreach ($params as $i => $param) { - $params[$i] = &$this->newDownloaderPackage($this); - PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); - $err = $params[$i]->initialize($param); - PEAR::staticPopErrorHandling(); - if (!$err) { - // skip parameters that were missed by preferred_state - continue; - } - if (PEAR::isError($err)) { - if (!isset($this->_options['soft'])) { - $this->log(0, $err->getMessage()); - } - $params[$i] = false; - if (is_object($param)) { - $param = $param->getChannel() . '/' . $param->getPackage(); - } - $this->pushError('Package "' . $param . '" is not valid', - PEAR_INSTALLER_SKIPPED); - } else { - do { - if ($params[$i] && $params[$i]->getType() == 'local') { - // bug #7090 - // skip channel.xml check for local packages - break; - } - if ($params[$i] && !isset($channelschecked[$params[$i]->getChannel()]) && - !isset($this->_options['offline'])) { - $channelschecked[$params[$i]->getChannel()] = true; - PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); - if (!class_exists('System')) { - require_once 'System.php'; - } - $curchannel = &$this->_registry->getChannel($params[$i]->getChannel()); - if (PEAR::isError($curchannel)) { - PEAR::staticPopErrorHandling(); - return $this->raiseError($curchannel); - } - if (PEAR::isError($dir = $this->getDownloadDir())) { - PEAR::staticPopErrorHandling(); - break; - } - $mirror = $this->config->get('preferred_mirror', null, - $params[$i]->getChannel()); - $a = $this->downloadHttp('http://' . $mirror . - '/channel.xml', $this->ui, $dir, null, $curchannel->lastModified()); - - PEAR::staticPopErrorHandling(); - if (PEAR::isError($a) || !$a) { - break; - } - $this->log(0, 'WARNING: channel "' . $params[$i]->getChannel() . '" has ' . - 'updated its protocols, use "channel-update ' . $params[$i]->getChannel() . - '" to update'); - } - } while (false); - if ($params[$i] && !isset($this->_options['downloadonly'])) { - if (isset($this->_options['packagingroot'])) { - $checkdir = $this->_prependPath( - $this->config->get('php_dir', null, $params[$i]->getChannel()), - $this->_options['packagingroot']); - } else { - $checkdir = $this->config->get('php_dir', - null, $params[$i]->getChannel()); - } - while ($checkdir && $checkdir != '/' && !file_exists($checkdir)) { - $checkdir = dirname($checkdir); - } - if ($checkdir == '.') { - $checkdir = '/'; - } - if (!is_writeable($checkdir)) { - return PEAR::raiseError('Cannot install, php_dir for channel "' . - $params[$i]->getChannel() . '" is not writeable by the current user'); - } - } - } - } - unset($channelschecked); - PEAR_Downloader_Package::removeDuplicates($params); - if (!count($params)) { - $a = array(); - return $a; - } - if (!isset($this->_options['nodeps']) && !isset($this->_options['offline'])) { - $reverify = true; - while ($reverify) { - $reverify = false; - foreach ($params as $i => $param) { - //PHP Bug 40768 / PEAR Bug #10944 - //Nested foreaches fail in PHP 5.2.1 - key($params); - $ret = $params[$i]->detectDependencies($params); - if (PEAR::isError($ret)) { - $reverify = true; - $params[$i] = false; - PEAR_Downloader_Package::removeDuplicates($params); - if (!isset($this->_options['soft'])) { - $this->log(0, $ret->getMessage()); - } - continue 2; - } - } - } - } - if (isset($this->_options['offline'])) { - $this->log(3, 'Skipping dependency download check, --offline specified'); - } - if (!count($params)) { - $a = array(); - return $a; - } - while (PEAR_Downloader_Package::mergeDependencies($params)); - PEAR_Downloader_Package::removeDuplicates($params, true); - $errorparams = array(); - if (PEAR_Downloader_Package::detectStupidDuplicates($params, $errorparams)) { - if (count($errorparams)) { - foreach ($errorparams as $param) { - $name = $this->_registry->parsedPackageNameToString($param->getParsedPackage()); - $this->pushError('Duplicate package ' . $name . ' found', PEAR_INSTALLER_FAILED); - } - $a = array(); - return $a; - } - } - PEAR_Downloader_Package::removeInstalled($params); - if (!count($params)) { - $this->pushError('No valid packages found', PEAR_INSTALLER_FAILED); - $a = array(); - return $a; - } - PEAR::pushErrorHandling(PEAR_ERROR_RETURN); - $err = $this->analyzeDependencies($params); - PEAR::popErrorHandling(); - if (!count($params)) { - $this->pushError('No valid packages found', PEAR_INSTALLER_FAILED); - $a = array(); - return $a; - } - $ret = array(); - $newparams = array(); - if (isset($this->_options['pretend'])) { - return $params; - } - $somefailed = false; - foreach ($params as $i => $package) { - PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); - $pf = &$params[$i]->download(); - PEAR::staticPopErrorHandling(); - if (PEAR::isError($pf)) { - if (!isset($this->_options['soft'])) { - $this->log(1, $pf->getMessage()); - $this->log(0, 'Error: cannot download "' . - $this->_registry->parsedPackageNameToString($package->getParsedPackage(), - true) . - '"'); - } - $somefailed = true; - continue; - } - $newparams[] = &$params[$i]; - $ret[] = array('file' => $pf->getArchiveFile(), - 'info' => &$pf, - 'pkg' => $pf->getPackage()); - } - if ($somefailed) { - // remove params that did not download successfully - PEAR::pushErrorHandling(PEAR_ERROR_RETURN); - $err = $this->analyzeDependencies($newparams, true); - PEAR::popErrorHandling(); - if (!count($newparams)) { - $this->pushError('Download failed', PEAR_INSTALLER_FAILED); - $a = array(); - return $a; - } - } - $this->_downloadedPackages = $ret; - return $newparams; - } - - /** - * @param array all packages to be installed - */ - function analyzeDependencies(&$params, $force = false) - { - $hasfailed = $failed = false; - if (isset($this->_options['downloadonly'])) { - return; - } - PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); - $redo = true; - $reset = false; - while ($redo) { - $redo = false; - foreach ($params as $i => $param) { - $deps = $param->getDeps(); - if (!$deps) { - $depchecker = &$this->getDependency2Object($this->config, $this->getOptions(), - $param->getParsedPackage(), PEAR_VALIDATE_DOWNLOADING); - if ($param->getType() == 'xmlrpc') { - $send = $param->getDownloadURL(); - } else { - $send = $param->getPackageFile(); - } - $installcheck = $depchecker->validatePackage($send, $this, $params); - if (PEAR::isError($installcheck)) { - if (!isset($this->_options['soft'])) { - $this->log(0, $installcheck->getMessage()); - } - $hasfailed = true; - $params[$i] = false; - $reset = true; - $redo = true; - $failed = false; - PEAR_Downloader_Package::removeDuplicates($params); - continue 2; - } - continue; - } - if (!$reset && $param->alreadyValidated() && !$force) { - continue; - } - if (count($deps)) { - $depchecker = &$this->getDependency2Object($this->config, $this->getOptions(), - $param->getParsedPackage(), PEAR_VALIDATE_DOWNLOADING); - if ($param->getType() == 'xmlrpc') { - $send = $param->getDownloadURL(); - } else { - $send = $param->getPackageFile(); - } - $installcheck = $depchecker->validatePackage($send, $this, $params); - if (PEAR::isError($installcheck)) { - if (!isset($this->_options['soft'])) { - $this->log(0, $installcheck->getMessage()); - } - $hasfailed = true; - $params[$i] = false; - $reset = true; - $redo = true; - $failed = false; - PEAR_Downloader_Package::removeDuplicates($params); - continue 2; - } - $failed = false; - if (isset($deps['required'])) { - foreach ($deps['required'] as $type => $dep) { - // note: Dependency2 will never return a PEAR_Error if ignore-errors - // is specified, so soft is needed to turn off logging - if (!isset($dep[0])) { - if (PEAR::isError($e = $depchecker->{"validate{$type}Dependency"}($dep, - true, $params))) { - $failed = true; - if (!isset($this->_options['soft'])) { - $this->log(0, $e->getMessage()); - } - } elseif (is_array($e) && !$param->alreadyValidated()) { - if (!isset($this->_options['soft'])) { - $this->log(0, $e[0]); - } - } - } else { - foreach ($dep as $d) { - if (PEAR::isError($e = - $depchecker->{"validate{$type}Dependency"}($d, - true, $params))) { - $failed = true; - if (!isset($this->_options['soft'])) { - $this->log(0, $e->getMessage()); - } - } elseif (is_array($e) && !$param->alreadyValidated()) { - if (!isset($this->_options['soft'])) { - $this->log(0, $e[0]); - } - } - } - } - } - if (isset($deps['optional'])) { - foreach ($deps['optional'] as $type => $dep) { - if (!isset($dep[0])) { - if (PEAR::isError($e = - $depchecker->{"validate{$type}Dependency"}($dep, - false, $params))) { - $failed = true; - if (!isset($this->_options['soft'])) { - $this->log(0, $e->getMessage()); - } - } elseif (is_array($e) && !$param->alreadyValidated()) { - if (!isset($this->_options['soft'])) { - $this->log(0, $e[0]); - } - } - } else { - foreach ($dep as $d) { - if (PEAR::isError($e = - $depchecker->{"validate{$type}Dependency"}($d, - false, $params))) { - $failed = true; - if (!isset($this->_options['soft'])) { - $this->log(0, $e->getMessage()); - } - } elseif (is_array($e) && !$param->alreadyValidated()) { - if (!isset($this->_options['soft'])) { - $this->log(0, $e[0]); - } - } - } - } - } - } - $groupname = $param->getGroup(); - if (isset($deps['group']) && $groupname) { - if (!isset($deps['group'][0])) { - $deps['group'] = array($deps['group']); - } - $found = false; - foreach ($deps['group'] as $group) { - if ($group['attribs']['name'] == $groupname) { - $found = true; - break; - } - } - if ($found) { - unset($group['attribs']); - foreach ($group as $type => $dep) { - if (!isset($dep[0])) { - if (PEAR::isError($e = - $depchecker->{"validate{$type}Dependency"}($dep, - false, $params))) { - $failed = true; - if (!isset($this->_options['soft'])) { - $this->log(0, $e->getMessage()); - } - } elseif (is_array($e) && !$param->alreadyValidated()) { - if (!isset($this->_options['soft'])) { - $this->log(0, $e[0]); - } - } - } else { - foreach ($dep as $d) { - if (PEAR::isError($e = - $depchecker->{"validate{$type}Dependency"}($d, - false, $params))) { - $failed = true; - if (!isset($this->_options['soft'])) { - $this->log(0, $e->getMessage()); - } - } elseif (is_array($e) && !$param->alreadyValidated()) { - if (!isset($this->_options['soft'])) { - $this->log(0, $e[0]); - } - } - } - } - } - } - } - } else { - foreach ($deps as $dep) { - if (PEAR::isError($e = $depchecker->validateDependency1($dep, $params))) { - $failed = true; - if (!isset($this->_options['soft'])) { - $this->log(0, $e->getMessage()); - } - } elseif (is_array($e) && !$param->alreadyValidated()) { - if (!isset($this->_options['soft'])) { - $this->log(0, $e[0]); - } - } - } - } - $params[$i]->setValidated(); - } - if ($failed) { - $hasfailed = true; - $params[$i] = false; - $reset = true; - $redo = true; - $failed = false; - PEAR_Downloader_Package::removeDuplicates($params); - continue 2; - } - } - } - PEAR::staticPopErrorHandling(); - if ($hasfailed && (isset($this->_options['ignore-errors']) || - isset($this->_options['nodeps']))) { - // this is probably not needed, but just in case - if (!isset($this->_options['soft'])) { - $this->log(0, 'WARNING: dependencies failed'); - } - } - } - - /** - * Retrieve the directory that downloads will happen in - * @access private - * @return string - */ - function getDownloadDir() - { - if (isset($this->_downloadDir)) { - return $this->_downloadDir; - } - $downloaddir = $this->config->get('download_dir'); - if (empty($downloaddir) || (is_dir($downloaddir) && !is_writable($downloaddir))) { - if (is_dir($downloaddir) && !is_writable($downloaddir)) { - $this->log(0, 'WARNING: configuration download directory "' . $downloaddir . - '" is not writeable. Change download_dir config variable to ' . - 'a writeable dir to avoid this warning'); - } - if (!class_exists('System')) { - require_once 'System.php'; - } - if (PEAR::isError($downloaddir = System::mktemp('-d'))) { - return $downloaddir; - } - $this->log(3, '+ tmp dir created at ' . $downloaddir); - } - if (!is_writable($downloaddir)) { - if (PEAR::isError(System::mkdir(array('-p', $downloaddir))) || - !is_writable($downloaddir)) { - return PEAR::raiseError('download directory "' . $downloaddir . - '" is not writeable. Change download_dir config variable to ' . - 'a writeable dir'); - } - } - return $this->_downloadDir = $downloaddir; - } - - function setDownloadDir($dir) - { - if (!@is_writable($dir)) { - if (PEAR::isError(System::mkdir(array('-p', $dir)))) { - return PEAR::raiseError('download directory "' . $dir . - '" is not writeable. Change download_dir config variable to ' . - 'a writeable dir'); - } - } - $this->_downloadDir = $dir; - } - - // }}} - // {{{ configSet() - function configSet($key, $value, $layer = 'user', $channel = false) - { - $this->config->set($key, $value, $layer, $channel); - $this->_preferredState = $this->config->get('preferred_state', null, $channel); - if (!$this->_preferredState) { - // don't inadvertantly use a non-set preferred_state - $this->_preferredState = null; - } - } - - // }}} - // {{{ setOptions() - function setOptions($options) - { - $this->_options = $options; - } - - // }}} - // {{{ setOptions() - function getOptions() - { - return $this->_options; - } - - // }}} - - /** - * For simpler unit-testing - * @param PEAR_Config - * @param int - * @param string - */ - function &getPackagefileObject(&$c, $d, $t = false) - { - if (!class_exists('PEAR_PackageFile')) { - require_once 'PEAR/PackageFile.php'; - } - $a = &new PEAR_PackageFile($c, $d, $t); - return $a; - } - - // {{{ _getPackageDownloadUrl() - - /** - * @param array output of {@link parsePackageName()} - * @access private - */ - function _getPackageDownloadUrl($parr) - { - $curchannel = $this->config->get('default_channel'); - $this->configSet('default_channel', $parr['channel']); - // getDownloadURL returns an array. On error, it only contains information - // on the latest release as array(version, info). On success it contains - // array(version, info, download url string) - $state = isset($parr['state']) ? $parr['state'] : $this->config->get('preferred_state'); - if (!$this->_registry->channelExists($parr['channel'])) { - do { - if ($this->config->get('auto_discover')) { - if ($this->discover($parr['channel'])) { - break; - } - } - $this->configSet('default_channel', $curchannel); - return PEAR::raiseError('Unknown remote channel: ' . $remotechannel); - } while (false); - } - $chan = &$this->_registry->getChannel($parr['channel']); - if (PEAR::isError($chan)) { - return $chan; - } - PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); - $version = $this->_registry->packageInfo($parr['package'], 'version', - $parr['channel']); - PEAR::staticPopErrorHandling(); - $base2 = false; - if ($chan->supportsREST($this->config->get('preferred_mirror')) && - (($base2 = $chan->getBaseURL('REST1.3', $this->config->get('preferred_mirror'))) || - ($base = $chan->getBaseURL('REST1.0', $this->config->get('preferred_mirror'))))) { - if ($base2) { - $rest = &$this->config->getREST('1.3', $this->_options); - $base = $base2; - } else { - $rest = &$this->config->getREST('1.0', $this->_options); - } - if (!isset($parr['version']) && !isset($parr['state']) && $version - && !PEAR::isError($version) - && !isset($this->_options['downloadonly'])) { - $url = $rest->getDownloadURL($base, $parr, $state, $version, $chan->getName()); - } else { - $url = $rest->getDownloadURL($base, $parr, $state, false, $chan->getName()); - } - if (PEAR::isError($url)) { - $this->configSet('default_channel', $curchannel); - return $url; - } - if ($parr['channel'] != $curchannel) { - $this->configSet('default_channel', $curchannel); - } - if (!is_array($url)) { - return $url; - } - $url['raw'] = false; // no checking is necessary for REST - if (!is_array($url['info'])) { - return PEAR::raiseError('Invalid remote dependencies retrieved from REST - ' . - 'this should never happen'); - } - if (!isset($this->_options['force']) && - !isset($this->_options['downloadonly']) && - $version && - !PEAR::isError($version) && - !isset($parr['group'])) { - if (version_compare($version, $url['version'], '>=')) { - return PEAR::raiseError($this->_registry->parsedPackageNameToString( - $parr, true) . ' is already installed and is newer than detected ' . - 'release version ' . $url['version'], -976); - } - } - if (isset($url['info']['required']) || $url['compatible']) { - require_once 'PEAR/PackageFile/v2.php'; - $pf = new PEAR_PackageFile_v2; - $pf->setRawChannel($parr['channel']); - if ($url['compatible']) { - $pf->setRawCompatible($url['compatible']); - } - } else { - require_once 'PEAR/PackageFile/v1.php'; - $pf = new PEAR_PackageFile_v1; - } - $pf->setRawPackage($url['package']); - $pf->setDeps($url['info']); - if ($url['compatible']) { - $pf->setCompatible($url['compatible']); - } - $pf->setRawState($url['stability']); - $url['info'] = &$pf; - if (!extension_loaded("zlib") || isset($this->_options['nocompress'])) { - $ext = '.tar'; - } else { - $ext = '.tgz'; - } - if (is_array($url)) { - if (isset($url['url'])) { - $url['url'] .= $ext; - } - } - return $url; - } elseif ($chan->supports('xmlrpc', 'package.getDownloadURL', false, '1.1')) { - // don't install with the old version information unless we're doing a plain - // vanilla simple installation. If the user says to install a particular - // version or state, ignore the current installed version - if (!isset($parr['version']) && !isset($parr['state']) && $version - && !isset($this->_options['downloadonly'])) { - $url = $this->_remote->call('package.getDownloadURL', $parr, $state, $version); - } else { - $url = $this->_remote->call('package.getDownloadURL', $parr, $state); - } - } else { - $url = $this->_remote->call('package.getDownloadURL', $parr, $state); - } - if (PEAR::isError($url)) { - return $url; - } - if ($parr['channel'] != $curchannel) { - $this->configSet('default_channel', $curchannel); - } - if (isset($url['__PEAR_ERROR_CLASS__'])) { - return PEAR::raiseError($url['message']); - } - if (!is_array($url)) { - return $url; - } - $url['raw'] = $url['info']; - if (isset($this->_options['downloadonly'])) { - $pkg = &$this->getPackagefileObject($this->config, $this->debug); - } else { - PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); - if (PEAR::isError($dir = $this->getDownloadDir())) { - PEAR::staticPopErrorHandling(); - return $dir; - } - PEAR::staticPopErrorHandling(); - $pkg = &$this->getPackagefileObject($this->config, $this->debug, $dir); - } - PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); - $pinfo = &$pkg->fromXmlString($url['info'], PEAR_VALIDATE_DOWNLOADING, 'remote'); - PEAR::staticPopErrorHandling(); - if (PEAR::isError($pinfo)) { - if (!isset($this->_options['soft'])) { - $this->log(0, $pinfo->getMessage()); - } - return PEAR::raiseError('Remote package.xml is not valid - this should never happen'); - } - $url['info'] = &$pinfo; - if (!extension_loaded("zlib") || isset($this->_options['nocompress'])) { - $ext = '.tar'; - } else { - $ext = '.tgz'; - } - if (is_array($url)) { - if (isset($url['url'])) { - $url['url'] .= $ext; - } - } - return $url; - } - // }}} - // {{{ getDepPackageDownloadUrl() - - /** - * @param array dependency array - * @access private - */ - function _getDepPackageDownloadUrl($dep, $parr) - { - $xsdversion = isset($dep['rel']) ? '1.0' : '2.0'; - $curchannel = $this->config->get('default_channel'); - if (isset($dep['uri'])) { - $xsdversion = '2.0'; - $chan = &$this->_registry->getChannel('__uri'); - if (PEAR::isError($chan)) { - return $chan; - } - $version = $this->_registry->packageInfo($dep['name'], 'version', '__uri'); - $this->configSet('default_channel', '__uri'); - } else { - if (isset($dep['channel'])) { - $remotechannel = $dep['channel']; - } else { - $remotechannel = 'pear.php.net'; - } - if (!$this->_registry->channelExists($remotechannel)) { - do { - if ($this->config->get('auto_discover')) { - if ($this->discover($remotechannel)) { - break; - } - } - return PEAR::raiseError('Unknown remote channel: ' . $remotechannel); - } while (false); - } - $chan = &$this->_registry->getChannel($remotechannel); - if (PEAR::isError($chan)) { - return $chan; - } - $version = $this->_registry->packageInfo($dep['name'], 'version', - $remotechannel); - $this->configSet('default_channel', $remotechannel); - } - $state = isset($parr['state']) ? $parr['state'] : $this->config->get('preferred_state'); - if (isset($parr['state']) && isset($parr['version'])) { - unset($parr['state']); - } - if (isset($dep['uri'])) { - $info = &$this->newDownloaderPackage($this); - PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); - $err = $info->initialize($dep); - PEAR::staticPopErrorHandling(); - if (!$err) { - // skip parameters that were missed by preferred_state - return PEAR::raiseError('Cannot initialize dependency'); - } - if (PEAR::isError($err)) { - if (!isset($this->_options['soft'])) { - $this->log(0, $err->getMessage()); - } - if (is_object($info)) { - $param = $info->getChannel() . '/' . $info->getPackage(); - } - return PEAR::raiseError('Package "' . $param . '" is not valid'); - } - return $info; - } elseif ($chan->supportsREST($this->config->get('preferred_mirror')) && - $base = $chan->getBaseURL('REST1.0', $this->config->get('preferred_mirror'))) { - $rest = &$this->config->getREST('1.0', $this->_options); - $url = $rest->getDepDownloadURL($base, $xsdversion, $dep, $parr, - $state, $version, $chan->getName()); - if (PEAR::isError($url)) { - return $url; - } - if ($parr['channel'] != $curchannel) { - $this->configSet('default_channel', $curchannel); - } - if (!is_array($url)) { - return $url; - } - $url['raw'] = false; // no checking is necessary for REST - if (!is_array($url['info'])) { - return PEAR::raiseError('Invalid remote dependencies retrieved from REST - ' . - 'this should never happen'); - } - if (isset($url['info']['required'])) { - if (!class_exists('PEAR_PackageFile_v2')) { - require_once 'PEAR/PackageFile/v2.php'; - } - $pf = new PEAR_PackageFile_v2; - $pf->setRawChannel($remotechannel); - } else { - if (!class_exists('PEAR_PackageFile_v1')) { - require_once 'PEAR/PackageFile/v1.php'; - } - $pf = new PEAR_PackageFile_v1; - } - $pf->setRawPackage($url['package']); - $pf->setDeps($url['info']); - if ($url['compatible']) { - $pf->setCompatible($url['compatible']); - } - $pf->setRawState($url['stability']); - $url['info'] = &$pf; - if (!extension_loaded("zlib") || isset($this->_options['nocompress'])) { - $ext = '.tar'; - } else { - $ext = '.tgz'; - } - if (is_array($url)) { - if (isset($url['url'])) { - $url['url'] .= $ext; - } - } - return $url; - } elseif ($chan->supports('xmlrpc', 'package.getDepDownloadURL', false, '1.1')) { - if ($version) { - $url = $this->_remote->call('package.getDepDownloadURL', $xsdversion, $dep, $parr, - $state, $version); - } else { - $url = $this->_remote->call('package.getDepDownloadURL', $xsdversion, $dep, $parr, - $state); - } - } else { - $url = $this->_remote->call('package.getDepDownloadURL', $xsdversion, $dep, $parr, $state); - } - if ($this->config->get('default_channel') != $curchannel) { - $this->configSet('default_channel', $curchannel); - } - if (!is_array($url)) { - return $url; - } - if (isset($url['__PEAR_ERROR_CLASS__'])) { - return PEAR::raiseError($url['message']); - } - $url['raw'] = $url['info']; - $pkg = &$this->getPackagefileObject($this->config, $this->debug); - PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); - $pinfo = &$pkg->fromXmlString($url['info'], PEAR_VALIDATE_DOWNLOADING, 'remote'); - PEAR::staticPopErrorHandling(); - if (PEAR::isError($pinfo)) { - if (!isset($this->_options['soft'])) { - $this->log(0, $pinfo->getMessage()); - } - return PEAR::raiseError('Remote package.xml is not valid - this should never happen'); - } - $url['info'] = &$pinfo; - if (is_array($url)) { - if (!extension_loaded("zlib") || isset($this->_options['nocompress'])) { - $ext = '.tar'; - } else { - $ext = '.tgz'; - } - if (isset($url['url'])) { - $url['url'] .= $ext; - } - } - return $url; - } - // }}} - // {{{ getPackageDownloadUrl() - - /** - * @deprecated in favor of _getPackageDownloadUrl - */ - function getPackageDownloadUrl($package, $version = null, $channel = false) - { - if ($version) { - $package .= "-$version"; - } - if ($this === null || $this->_registry === null) { - $package = "http://pear.php.net/get/$package"; - } else { - $chan = $this->_registry->getChannel($channel); - if (PEAR::isError($chan)) { - return ''; - } - $package = "http://" . $chan->getServer() . "/get/$package"; - } - if (!extension_loaded("zlib")) { - $package .= '?uncompress=yes'; - } - return $package; - } - - // }}} - // {{{ getDownloadedPackages() - - /** - * Retrieve a list of downloaded packages after a call to {@link download()}. - * - * Also resets the list of downloaded packages. - * @return array - */ - function getDownloadedPackages() - { - $ret = $this->_downloadedPackages; - $this->_downloadedPackages = array(); - $this->_toDownload = array(); - return $ret; - } - - // }}} - // {{{ _downloadCallback() - - function _downloadCallback($msg, $params = null) - { - switch ($msg) { - case 'saveas': - $this->log(1, "downloading $params ..."); - break; - case 'done': - $this->log(1, '...done: ' . number_format($params, 0, '', ',') . ' bytes'); - break; - case 'bytesread': - static $bytes; - if (empty($bytes)) { - $bytes = 0; - } - if (!($bytes % 10240)) { - $this->log(1, '.', false); - } - $bytes += $params; - break; - case 'start': - if($params[1] == -1) { - $length = "Unknown size"; - } else { - $length = number_format($params[1], 0, '', ',')." bytes"; - } - $this->log(1, "Starting to download {$params[0]} ($length)"); - break; - } - if (method_exists($this->ui, '_downloadCallback')) - $this->ui->_downloadCallback($msg, $params); - } - - // }}} - // {{{ _prependPath($path, $prepend) - - function _prependPath($path, $prepend) - { - if (strlen($prepend) > 0) { - if (OS_WINDOWS && preg_match('/^[a-z]:/i', $path)) { - if (preg_match('/^[a-z]:/i', $prepend)) { - $prepend = substr($prepend, 2); - } elseif ($prepend{0} != '\\') { - $prepend = "\\$prepend"; - } - $path = substr($path, 0, 2) . $prepend . substr($path, 2); - } else { - $path = $prepend . $path; - } - } - return $path; - } - // }}} - // {{{ pushError($errmsg, $code) - - /** - * @param string - * @param integer - */ - function pushError($errmsg, $code = -1) - { - array_push($this->_errorStack, array($errmsg, $code)); - } - - // }}} - // {{{ getErrorMsgs() - - function getErrorMsgs() - { - $msgs = array(); - $errs = $this->_errorStack; - foreach ($errs as $err) { - $msgs[] = $err[0]; - } - $this->_errorStack = array(); - return $msgs; - } - - // }}} - - /** - * for BC - */ - function sortPkgDeps(&$packages, $uninstall = false) - { - $uninstall ? - $this->sortPackagesForUninstall($packages) : - $this->sortPackagesForInstall($packages); - } - - /** - * Sort a list of arrays of array(downloaded packagefilename) by dependency. - * - * This uses the topological sort method from graph theory, and the - * Structures_Graph package to properly sort dependencies for installation. - * @param array an array of downloaded PEAR_Downloader_Packages - * @return array array of array(packagefilename, package.xml contents) - */ - function sortPackagesForInstall(&$packages) - { - require_once 'Structures/Graph.php'; - require_once 'Structures/Graph/Node.php'; - require_once 'Structures/Graph/Manipulator/TopologicalSorter.php'; - $depgraph = new Structures_Graph(true); - $nodes = array(); - $reg = &$this->config->getRegistry(); - foreach ($packages as $i => $package) { - $pname = $reg->parsedPackageNameToString( - array( - 'channel' => $package->getChannel(), - 'package' => strtolower($package->getPackage()), - )); - $nodes[$pname] = new Structures_Graph_Node; - $nodes[$pname]->setData($packages[$i]); - $depgraph->addNode($nodes[$pname]); - } - $deplinks = array(); - foreach ($nodes as $package => $node) { - $pf = &$node->getData(); - $pdeps = $pf->getDeps(true); - if (!$pdeps) { - continue; - } - if ($pf->getPackagexmlVersion() == '1.0') { - foreach ($pdeps as $dep) { - if ($dep['type'] != 'pkg' || - (isset($dep['optional']) && $dep['optional'] == 'yes')) { - continue; - } - $dname = $reg->parsedPackageNameToString( - array( - 'channel' => 'pear.php.net', - 'package' => strtolower($dep['name']), - )); - if (isset($nodes[$dname])) - { - if (!isset($deplinks[$dname])) { - $deplinks[$dname] = array(); - } - $deplinks[$dname][$package] = 1; - // dependency is in installed packages - continue; - } - $dname = $reg->parsedPackageNameToString( - array( - 'channel' => 'pecl.php.net', - 'package' => strtolower($dep['name']), - )); - if (isset($nodes[$dname])) - { - if (!isset($deplinks[$dname])) { - $deplinks[$dname] = array(); - } - $deplinks[$dname][$package] = 1; - // dependency is in installed packages - continue; - } - } - } else { - // the only ordering we care about is: - // 1) subpackages must be installed before packages that depend on them - // 2) required deps must be installed before packages that depend on them - if (isset($pdeps['required']['subpackage'])) { - $t = $pdeps['required']['subpackage']; - if (!isset($t[0])) { - $t = array($t); - } - $this->_setupGraph($t, $reg, $deplinks, $nodes, $package); - } - if (isset($pdeps['group'])) { - if (!isset($pdeps['group'][0])) { - $pdeps['group'] = array($pdeps['group']); - } - foreach ($pdeps['group'] as $group) { - if (isset($group['subpackage'])) { - $t = $group['subpackage']; - if (!isset($t[0])) { - $t = array($t); - } - $this->_setupGraph($t, $reg, $deplinks, $nodes, $package); - } - } - } - if (isset($pdeps['optional']['subpackage'])) { - $t = $pdeps['optional']['subpackage']; - if (!isset($t[0])) { - $t = array($t); - } - $this->_setupGraph($t, $reg, $deplinks, $nodes, $package); - } - if (isset($pdeps['required']['package'])) { - $t = $pdeps['required']['package']; - if (!isset($t[0])) { - $t = array($t); - } - $this->_setupGraph($t, $reg, $deplinks, $nodes, $package); - } - if (isset($pdeps['group'])) { - if (!isset($pdeps['group'][0])) { - $pdeps['group'] = array($pdeps['group']); - } - foreach ($pdeps['group'] as $group) { - if (isset($group['package'])) { - $t = $group['package']; - if (!isset($t[0])) { - $t = array($t); - } - $this->_setupGraph($t, $reg, $deplinks, $nodes, $package); - } - } - } - } - } - $this->_detectDepCycle($deplinks); - foreach ($deplinks as $dependent => $parents) { - foreach ($parents as $parent => $unused) { - $nodes[$dependent]->connectTo($nodes[$parent]); - } - } - $installOrder = Structures_Graph_Manipulator_TopologicalSorter::sort($depgraph); - $ret = array(); - for ($i = 0; $i < count($installOrder); $i++) { - foreach ($installOrder[$i] as $index => $sortedpackage) { - $data = &$installOrder[$i][$index]->getData(); - $ret[] = &$nodes[$reg->parsedPackageNameToString( - array( - 'channel' => $data->getChannel(), - 'package' => strtolower($data->getPackage()), - ))]->getData(); - } - } - $packages = $ret; - return; - } - - /** - * Detect recursive links between dependencies and break the cycles - * - * @param array - * @access private - */ - function _detectDepCycle(&$deplinks) - { - do { - $keepgoing = false; - foreach ($deplinks as $dep => $parents) { - foreach ($parents as $parent => $unused) { - // reset the parent cycle detector - $this->_testCycle(null, null, null); - if ($this->_testCycle($dep, $deplinks, $parent)) { - $keepgoing = true; - unset($deplinks[$dep][$parent]); - if (count($deplinks[$dep]) == 0) { - unset($deplinks[$dep]); - } - continue 3; - } - } - } - } while ($keepgoing); - } - - function _testCycle($test, $deplinks, $dep) - { - static $visited = array(); - if ($test === null) { - $visited = array(); - return; - } - // this happens when a parent has a dep cycle on another dependency - // but the child is not part of the cycle - if (isset($visited[$dep])) { - return false; - } - $visited[$dep] = 1; - if ($test == $dep) { - return true; - } - if (isset($deplinks[$dep])) { - if (in_array($test, array_keys($deplinks[$dep]), true)) { - return true; - } - foreach ($deplinks[$dep] as $parent => $unused) { - if ($this->_testCycle($test, $deplinks, $parent)) { - return true; - } - } - } - return false; - } - - /** - * Set up the dependency for installation parsing - * - * @param array $t dependency information - * @param PEAR_Registry $reg - * @param array $deplinks list of dependency links already established - * @param array $nodes all existing package nodes - * @param string $package parent package name - * @access private - */ - function _setupGraph($t, $reg, &$deplinks, &$nodes, $package) - { - foreach ($t as $dep) { - $depchannel = !isset($dep['channel']) ? - '__uri': $dep['channel']; - $dname = $reg->parsedPackageNameToString( - array( - 'channel' => $depchannel, - 'package' => strtolower($dep['name']), - )); - if (isset($nodes[$dname])) - { - if (!isset($deplinks[$dname])) { - $deplinks[$dname] = array(); - } - $deplinks[$dname][$package] = 1; - } - } - } - - function _dependsOn($a, $b) - { - return $this->_checkDepTree(strtolower($a->getChannel()), strtolower($a->getPackage()), - $b); - } - - function _checkDepTree($channel, $package, $b, $checked = array()) - { - $checked[$channel][$package] = true; - if (!isset($this->_depTree[$channel][$package])) { - return false; - } - if (isset($this->_depTree[$channel][$package][strtolower($b->getChannel())] - [strtolower($b->getPackage())])) { - return true; - } - foreach ($this->_depTree[$channel][$package] as $ch => $packages) { - foreach ($packages as $pa => $true) { - if ($this->_checkDepTree($ch, $pa, $b, $checked)) { - return true; - } - } - } - return false; - } - - function _sortInstall($a, $b) - { - if (!$a->getDeps() && !$b->getDeps()) { - return 0; // neither package has dependencies, order is insignificant - } - if ($a->getDeps() && !$b->getDeps()) { - return 1; // $a must be installed after $b because $a has dependencies - } - if (!$a->getDeps() && $b->getDeps()) { - return -1; // $b must be installed after $a because $b has dependencies - } - // both packages have dependencies - if ($this->_dependsOn($a, $b)) { - return 1; - } - if ($this->_dependsOn($b, $a)) { - return -1; - } - return 0; - } - - /** - * Download a file through HTTP. Considers suggested file name in - * Content-disposition: header and can run a callback function for - * different events. The callback will be called with two - * parameters: the callback type, and parameters. The implemented - * callback types are: - * - * 'setup' called at the very beginning, parameter is a UI object - * that should be used for all output - * 'message' the parameter is a string with an informational message - * 'saveas' may be used to save with a different file name, the - * parameter is the filename that is about to be used. - * If a 'saveas' callback returns a non-empty string, - * that file name will be used as the filename instead. - * Note that $save_dir will not be affected by this, only - * the basename of the file. - * 'start' download is starting, parameter is number of bytes - * that are expected, or -1 if unknown - * 'bytesread' parameter is the number of bytes read so far - * 'done' download is complete, parameter is the total number - * of bytes read - * 'connfailed' if the TCP/SSL connection fails, this callback is called - * with array(host,port,errno,errmsg) - * 'writefailed' if writing to disk fails, this callback is called - * with array(destfile,errmsg) - * - * If an HTTP proxy has been configured (http_proxy PEAR_Config - * setting), the proxy will be used. - * - * @param string $url the URL to download - * @param object $ui PEAR_Frontend_* instance - * @param object $config PEAR_Config instance - * @param string $save_dir directory to save file in - * @param mixed $callback function/method to call for status - * updates - * @param false|string|array $lastmodified header values to check against for caching - * use false to return the header values from this download - * @param false|array $accept Accept headers to send - * @param false|string $channel Channel to use for retrieving authentication - * @return string|array Returns the full path of the downloaded file or a PEAR - * error on failure. If the error is caused by - * socket-related errors, the error object will - * have the fsockopen error code available through - * getCode(). If caching is requested, then return the header - * values. - * - * @access public - */ - function downloadHttp($url, &$ui, $save_dir = '.', $callback = null, $lastmodified = null, - $accept = false, $channel = false) - { - static $redirect = 0; - // allways reset , so we are clean case of error - $wasredirect = $redirect; - $redirect = 0; - if ($callback) { - call_user_func($callback, 'setup', array(&$ui)); - } - $info = parse_url($url); - if (!isset($info['scheme']) || !in_array($info['scheme'], array('http', 'https'))) { - return PEAR::raiseError('Cannot download non-http URL "' . $url . '"'); - } - if (!isset($info['host'])) { - return PEAR::raiseError('Cannot download from non-URL "' . $url . '"'); - } else { - $host = isset($info['host']) ? $info['host'] : null; - $port = isset($info['port']) ? $info['port'] : null; - $path = isset($info['path']) ? $info['path'] : null; - } - if (isset($this)) { - $config = &$this->config; - } else { - $config = &PEAR_Config::singleton(); - } - $proxy_host = $proxy_port = $proxy_user = $proxy_pass = ''; - if ($config->get('http_proxy') && - $proxy = parse_url($config->get('http_proxy'))) { - $proxy_host = isset($proxy['host']) ? $proxy['host'] : null; - if (isset($proxy['scheme']) && $proxy['scheme'] == 'https') { - $proxy_host = 'ssl://' . $proxy_host; - } - $proxy_port = isset($proxy['port']) ? $proxy['port'] : 8080; - $proxy_user = isset($proxy['user']) ? urldecode($proxy['user']) : null; - $proxy_pass = isset($proxy['pass']) ? urldecode($proxy['pass']) : null; - - if ($callback) { - call_user_func($callback, 'message', "Using HTTP proxy $host:$port"); - } - } - if (empty($port)) { - if (isset($info['scheme']) && $info['scheme'] == 'https') { - $port = 443; - } else { - $port = 80; - } - } - if ($proxy_host != '') { - $fp = @fsockopen($proxy_host, $proxy_port, $errno, $errstr); - if (!$fp) { - if ($callback) { - call_user_func($callback, 'connfailed', array($proxy_host, $proxy_port, - $errno, $errstr)); - } - return PEAR::raiseError("Connection to `$proxy_host:$proxy_port' failed: $errstr", $errno); - } - if ($lastmodified === false || $lastmodified) { - $request = "GET $url HTTP/1.1\r\n"; - } else { - $request = "GET $url HTTP/1.0\r\n"; - } - } else { - if (isset($info['scheme']) && $info['scheme'] == 'https') { - $host = 'ssl://' . $host; - } - $fp = @fsockopen($host, $port, $errno, $errstr); - if (!$fp) { - if ($callback) { - call_user_func($callback, 'connfailed', array($host, $port, - $errno, $errstr)); - } - return PEAR::raiseError("Connection to `$host:$port' failed: $errstr", $errno); - } - if ($lastmodified === false || $lastmodified) { - $request = "GET $path HTTP/1.1\r\n"; - $request .= "Host: $host:$port\r\n"; - } else { - $request = "GET $path HTTP/1.0\r\n"; - $request .= "Host: $host\r\n"; - } - } - $ifmodifiedsince = ''; - if (is_array($lastmodified)) { - if (isset($lastmodified['Last-Modified'])) { - $ifmodifiedsince = 'If-Modified-Since: ' . $lastmodified['Last-Modified'] . "\r\n"; - } - if (isset($lastmodified['ETag'])) { - $ifmodifiedsince .= "If-None-Match: $lastmodified[ETag]\r\n"; - } - } else { - $ifmodifiedsince = ($lastmodified ? "If-Modified-Since: $lastmodified\r\n" : ''); - } - $request .= $ifmodifiedsince . "User-Agent: PEAR/1.7.2/PHP/" . - PHP_VERSION . "\r\n"; - if (isset($this)) { // only pass in authentication for non-static calls - $username = $config->get('username', null, $channel); - $password = $config->get('password', null, $channel); - if ($username && $password) { - $tmp = base64_encode("$username:$password"); - $request .= "Authorization: Basic $tmp\r\n"; - } - } - if ($proxy_host != '' && $proxy_user != '') { - $request .= 'Proxy-Authorization: Basic ' . - base64_encode($proxy_user . ':' . $proxy_pass) . "\r\n"; - } - if ($accept) { - $request .= 'Accept: ' . implode(', ', $accept) . "\r\n"; - } - $request .= "Connection: close\r\n"; - $request .= "\r\n"; - fwrite($fp, $request); - $headers = array(); - $reply = 0; - while (trim($line = fgets($fp, 1024))) { - if (preg_match('/^([^:]+):\s+(.*)\s*\\z/', $line, $matches)) { - $headers[strtolower($matches[1])] = trim($matches[2]); - } elseif (preg_match('|^HTTP/1.[01] ([0-9]{3}) |', $line, $matches)) { - $reply = (int) $matches[1]; - if ($reply == 304 && ($lastmodified || ($lastmodified === false))) { - return false; - } - if (! in_array($reply, array(200, 301, 302, 303, 305, 307))) { - return PEAR::raiseError("File http://$host:$port$path not valid (received: $line)"); - } - } - } - if ($reply != 200) { - if (isset($headers['location'])) { - if ($wasredirect < 5) { - $redirect = $wasredirect + 1; - return $this->downloadHttp($headers['location'], - $ui, $save_dir, $callback, $lastmodified, $accept); - } else { - return PEAR::raiseError("File http://$host:$port$path not valid (redirection looped more than 5 times)"); - } - } else { - return PEAR::raiseError("File http://$host:$port$path not valid (redirected but no location)"); - } - } - if (isset($headers['content-disposition']) && - preg_match('/\sfilename=\"([^;]*\S)\"\s*(;|\\z)/', $headers['content-disposition'], $matches)) { - $save_as = basename($matches[1]); - } else { - $save_as = basename($url); - } - if ($callback) { - $tmp = call_user_func($callback, 'saveas', $save_as); - if ($tmp) { - $save_as = $tmp; - } - } - $dest_file = $save_dir . DIRECTORY_SEPARATOR . $save_as; - if (!$wp = @fopen($dest_file, 'wb')) { - fclose($fp); - if ($callback) { - call_user_func($callback, 'writefailed', array($dest_file, $php_errormsg)); - } - return PEAR::raiseError("could not open $dest_file for writing"); - } - if (isset($headers['content-length'])) { - $length = $headers['content-length']; - } else { - $length = -1; - } - $bytes = 0; - if ($callback) { - call_user_func($callback, 'start', array(basename($dest_file), $length)); - } - while ($data = fread($fp, 1024)) { - $bytes += strlen($data); - if ($callback) { - call_user_func($callback, 'bytesread', $bytes); - } - if (!@fwrite($wp, $data)) { - fclose($fp); - if ($callback) { - call_user_func($callback, 'writefailed', array($dest_file, $php_errormsg)); - } - return PEAR::raiseError("$dest_file: write failed ($php_errormsg)"); - } - } - fclose($fp); - fclose($wp); - if ($callback) { - call_user_func($callback, 'done', $bytes); - } - if ($lastmodified === false || $lastmodified) { - if (isset($headers['etag'])) { - $lastmodified = array('ETag' => $headers['etag']); - } - if (isset($headers['last-modified'])) { - if (is_array($lastmodified)) { - $lastmodified['Last-Modified'] = $headers['last-modified']; - } else { - $lastmodified = $headers['last-modified']; - } - } - return array($dest_file, $lastmodified, $headers); - } - return $dest_file; - } -} -// }}} - -?> diff --git a/src/vitis/vas/rest/class/PEAR/Downloader/Package.php b/src/vitis/vas/rest/class/PEAR/Downloader/Package.php deleted file mode 100755 index 90eaa2d2..00000000 --- a/src/vitis/vas/rest/class/PEAR/Downloader/Package.php +++ /dev/null @@ -1,1853 +0,0 @@ -<?php -/** - * PEAR_Downloader_Package - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Package.php,v 1.113 2008/03/29 14:18:36 dufuz Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 1.4.0a1 - */ -/** - * Error code when parameter initialization fails because no releases - * exist within preferred_state, but releases do exist - */ -define('PEAR_DOWNLOADER_PACKAGE_STATE', -1003); -/** - * Error code when parameter initialization fails because no releases - * exist that will work with the existing PHP version - */ -define('PEAR_DOWNLOADER_PACKAGE_PHPVERSION', -1004); -/** - * Coordinates download parameters and manages their dependencies - * prior to downloading them. - * - * Input can come from three sources: - * - * - local files (archives or package.xml) - * - remote files (downloadable urls) - * - abstract package names - * - * The first two elements are handled cleanly by PEAR_PackageFile, but the third requires - * accessing pearweb's xml-rpc interface to determine necessary dependencies, and the - * format returned of dependencies is slightly different from that used in package.xml. - * - * This class hides the differences between these elements, and makes automatic - * dependency resolution a piece of cake. It also manages conflicts when - * two classes depend on incompatible dependencies, or differing versions of the same - * package dependency. In addition, download will not be attempted if the php version is - * not supported, PEAR installer version is not supported, or non-PECL extensions are not - * installed. - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 1.4.0a1 - */ -class PEAR_Downloader_Package -{ - /** - * @var PEAR_Downloader - */ - var $_downloader; - /** - * @var PEAR_Config - */ - var $_config; - /** - * @var PEAR_Registry - */ - var $_registry; - /** - * Used to implement packagingroot properly - * @var PEAR_Registry - */ - var $_installRegistry; - /** - * @var PEAR_PackageFile_v1|PEAR_PackageFile|v2 - */ - var $_packagefile; - /** - * @var array - */ - var $_parsedname; - /** - * @var array - */ - var $_downloadURL; - /** - * @var array - */ - var $_downloadDeps = array(); - /** - * @var boolean - */ - var $_valid = false; - /** - * @var boolean - */ - var $_analyzed = false; - /** - * if this or a parent package was invoked with Package-state, this is set to the - * state variable. - * - * This allows temporary reassignment of preferred_state for a parent package and all of - * its dependencies. - * @var string|false - */ - var $_explicitState = false; - /** - * If this package is invoked with Package#group, this variable will be true - */ - var $_explicitGroup = false; - /** - * Package type local|url|xmlrpc - * @var string - */ - var $_type; - /** - * Contents of package.xml, if downloaded from a remote channel - * @var string|false - * @access private - */ - var $_rawpackagefile; - /** - * @var boolean - * @access private - */ - var $_validated = false; - - /** - * @param PEAR_Downloader - */ - function PEAR_Downloader_Package(&$downloader) - { - $this->_downloader = &$downloader; - $this->_config = &$this->_downloader->config; - $this->_registry = &$this->_config->getRegistry(); - $options = $downloader->getOptions(); - if (isset($options['packagingroot'])) { - $this->_config->setInstallRoot($options['packagingroot']); - $this->_installRegistry = &$this->_config->getRegistry(); - $this->_config->setInstallRoot(false); - } else { - $this->_installRegistry = &$this->_registry; - } - $this->_valid = $this->_analyzed = false; - } - - /** - * Parse the input and determine whether this is a local file, a remote uri, or an - * abstract package name. - * - * This is the heart of the PEAR_Downloader_Package(), and is used in - * {@link PEAR_Downloader::download()} - * @param string - * @return bool|PEAR_Error - */ - function initialize($param) - { - $origErr = $this->_fromFile($param); - if (!$this->_valid) { - $options = $this->_downloader->getOptions(); - if (isset($options['offline'])) { - if (PEAR::isError($origErr)) { - if (!isset($options['soft'])) { - $this->_downloader->log(0, $origErr->getMessage()); - } - } - return PEAR::raiseError('Cannot download non-local package "' . $param . '"'); - } - $err = $this->_fromUrl($param); - if (PEAR::isError($err) || !$this->_valid) { - if ($this->_type == 'url') { - if (PEAR::isError($err)) { - if (!isset($options['soft'])) { - $this->_downloader->log(0, $err->getMessage()); - } - } - return PEAR::raiseError("Invalid or missing remote package file"); - } - $err = $this->_fromString($param); - if (PEAR::isError($err) || !$this->_valid) { - if (PEAR::isError($err) && - $err->getCode() == PEAR_DOWNLOADER_PACKAGE_STATE) { - return false; // instruct the downloader to silently skip - } - if (isset($this->_type) && $this->_type == 'local' && - PEAR::isError($origErr)) { - if (is_array($origErr->getUserInfo())) { - foreach ($origErr->getUserInfo() as $err) { - if (is_array($err)) { - $err = $err['message']; - } - if (!isset($options['soft'])) { - $this->_downloader->log(0, $err); - } - } - } - if (!isset($options['soft'])) { - $this->_downloader->log(0, $origErr->getMessage()); - } - if (is_array($param)) { - $param = $this->_registry->parsedPackageNameToString($param, - true); - } - return PEAR::raiseError( - "Cannot initialize '$param', invalid or missing package file"); - } - if (PEAR::isError($err)) { - if (!isset($options['soft'])) { - $this->_downloader->log(0, $err->getMessage()); - } - } - if (is_array($param)) { - $param = $this->_registry->parsedPackageNameToString($param, true); - } - return PEAR::raiseError( - "Cannot initialize '$param', invalid or missing package file"); - } - } - } - return true; - } - - /** - * Retrieve any non-local packages - * @return PEAR_PackageFile_v1|PEAR_PackageFile_v2|PEAR_Error - */ - function &download() - { - if (isset($this->_packagefile)) { - return $this->_packagefile; - } - if (isset($this->_downloadURL['url'])) { - $this->_isvalid = false; - $info = $this->getParsedPackage(); - foreach ($info as $i => $p) { - $info[$i] = strtolower($p); - } - $err = $this->_fromUrl($this->_downloadURL['url'], - $this->_registry->parsedPackageNameToString($this->_parsedname, true)); - $newinfo = $this->getParsedPackage(); - foreach ($newinfo as $i => $p) { - $newinfo[$i] = strtolower($p); - } - if ($info != $newinfo) { - do { - if ($info['package'] == 'pecl.php.net' && $newinfo['package'] == 'pear.php.net') { - $info['package'] = 'pear.php.net'; - if ($info == $newinfo) { - // skip the channel check if a pecl package says it's a PEAR package - break; - } - } - return PEAR::raiseError('CRITICAL ERROR: We are ' . - $this->_registry->parsedPackageNameToString($info) . ', but the file ' . - 'downloaded claims to be ' . - $this->_registry->parsedPackageNameToString($this->getParsedPackage())); - } while (false); - } - if (PEAR::isError($err) || !$this->_valid) { - return $err; - } - } - $this->_type = 'local'; - return $this->_packagefile; - } - - function &getPackageFile() - { - return $this->_packagefile; - } - - function &getDownloader() - { - return $this->_downloader; - } - - function getType() - { - return $this->_type; - } - - /** - * Like {@link initialize()}, but operates on a dependency - */ - function fromDepURL($dep) - { - $this->_downloadURL = $dep; - if (isset($dep['uri'])) { - $options = $this->_downloader->getOptions(); - if (!extension_loaded("zlib") || isset($options['nocompress'])) { - $ext = '.tar'; - } else { - $ext = '.tgz'; - } - PEAR::pushErrorHandling(PEAR_ERROR_RETURN); - $err = $this->_fromUrl($dep['uri'] . $ext); - PEAR::popErrorHandling(); - if (PEAR::isError($err)) { - if (!isset($options['soft'])) { - $this->_downloader->log(0, $err->getMessage()); - } - return PEAR::raiseError('Invalid uri dependency "' . $dep['uri'] . $ext . '", ' . - 'cannot download'); - } - } else { - $this->_parsedname = - array( - 'package' => $dep['info']->getPackage(), - 'channel' => $dep['info']->getChannel(), - 'version' => $dep['version'] - ); - if (!isset($dep['nodefault'])) { - $this->_parsedname['group'] = 'default'; // download the default dependency group - $this->_explicitGroup = false; - } - $this->_rawpackagefile = $dep['raw']; - } - } - - function detectDependencies($params) - { - $options = $this->_downloader->getOptions(); - if (isset($options['downloadonly'])) { - return; - } - if (isset($options['offline'])) { - $this->_downloader->log(3, 'Skipping dependency download check, --offline specified'); - return; - } - $pname = $this->getParsedPackage(); - if (!$pname) { - return; - } - $deps = $this->getDeps(); - if (!$deps) { - return; - } - if (isset($deps['required'])) { // package.xml 2.0 - return $this->_detect2($deps, $pname, $options, $params); - } else { - return $this->_detect1($deps, $pname, $options, $params); - } - } - - function setValidated() - { - $this->_validated = true; - } - - function alreadyValidated() - { - return $this->_validated; - } - - /** - * Remove packages to be downloaded that are already installed - * @param array of PEAR_Downloader_Package objects - * @static - */ - function removeInstalled(&$params) - { - if (!isset($params[0])) { - return; - } - $options = $params[0]->_downloader->getOptions(); - if (!isset($options['downloadonly'])) { - foreach ($params as $i => $param) { - // remove self if already installed with this version - // this does not need any pecl magic - we only remove exact matches - if ($param->_installRegistry->packageExists($param->getPackage(), $param->getChannel())) { - if (version_compare($param->_installRegistry->packageInfo($param->getPackage(), 'version', - $param->getChannel()), $param->getVersion(), '==')) { - if (!isset($options['force'])) { - $info = $param->getParsedPackage(); - unset($info['version']); - unset($info['state']); - if (!isset($options['soft'])) { - $param->_downloader->log(1, 'Skipping package "' . - $param->getShortName() . - '", already installed as version ' . - $param->_installRegistry->packageInfo($param->getPackage(), - 'version', $param->getChannel())); - } - $params[$i] = false; - } - } elseif (!isset($options['force']) && !isset($options['upgrade']) && - !isset($options['soft'])) { - $info = $param->getParsedPackage(); - $param->_downloader->log(1, 'Skipping package "' . - $param->getShortName() . - '", already installed as version ' . - $param->_installRegistry->packageInfo($param->getPackage(), 'version', - $param->getChannel())); - $params[$i] = false; - } - } - } - } - PEAR_Downloader_Package::removeDuplicates($params); - } - - function _detect2($deps, $pname, $options, $params) - { - $this->_downloadDeps = array(); - $groupnotfound = false; - foreach (array('package', 'subpackage') as $packagetype) { - // get required dependency group - if (isset($deps['required'][$packagetype])) { - if (isset($deps['required'][$packagetype][0])) { - foreach ($deps['required'][$packagetype] as $dep) { - if (isset($dep['conflicts'])) { - // skip any package that this package conflicts with - continue; - } - $ret = $this->_detect2Dep($dep, $pname, 'required', $params); - if (is_array($ret)) { - $this->_downloadDeps[] = $ret; - } - } - } else { - $dep = $deps['required'][$packagetype]; - if (!isset($dep['conflicts'])) { - // skip any package that this package conflicts with - $ret = $this->_detect2Dep($dep, $pname, 'required', $params); - if (is_array($ret)) { - $this->_downloadDeps[] = $ret; - } - } - } - } - // get optional dependency group, if any - if (isset($deps['optional'][$packagetype])) { - $skipnames = array(); - if (!isset($deps['optional'][$packagetype][0])) { - $deps['optional'][$packagetype] = array($deps['optional'][$packagetype]); - } - foreach ($deps['optional'][$packagetype] as $dep) { - $skip = false; - if (!isset($options['alldeps'])) { - $dep['package'] = $dep['name']; - if (!isset($options['soft'])) { - $this->_downloader->log(3, 'Notice: package "' . - $this->_registry->parsedPackageNameToString($this->getParsedPackage(), - true) . '" optional dependency "' . - $this->_registry->parsedPackageNameToString(array('package' => - $dep['name'], 'channel' => 'pear.php.net'), true) . - '" will not be automatically downloaded'); - } - $skipnames[] = $this->_registry->parsedPackageNameToString($dep, true); - $skip = true; - unset($dep['package']); - } - if (!($ret = $this->_detect2Dep($dep, $pname, 'optional', $params))) { - $dep['package'] = $dep['name']; - $skip = count($skipnames) ? - $skipnames[count($skipnames) - 1] : ''; - if ($skip == - $this->_registry->parsedPackageNameToString($dep, true)) { - array_pop($skipnames); - } - } - if (!$skip && is_array($ret)) { - $this->_downloadDeps[] = $ret; - } - } - if (count($skipnames)) { - if (!isset($options['soft'])) { - $this->_downloader->log(1, 'Did not download optional dependencies: ' . - implode(', ', $skipnames) . - ', use --alldeps to download automatically'); - } - } - } - // get requested dependency group, if any - $groupname = $this->getGroup(); - $explicit = $this->_explicitGroup; - if (!$groupname) { - if ($this->canDefault()) { - $groupname = 'default'; // try the default dependency group - } else { - continue; - } - } - if ($groupnotfound) { - continue; - } - if (isset($deps['group'])) { - if (isset($deps['group']['attribs'])) { - if (strtolower($deps['group']['attribs']['name']) == strtolower($groupname)) { - $group = $deps['group']; - } elseif ($explicit) { - if (!isset($options['soft'])) { - $this->_downloader->log(0, 'Warning: package "' . - $this->_registry->parsedPackageNameToString($pname, true) . - '" has no dependency ' . 'group named "' . $groupname . '"'); - } - $groupnotfound = true; - continue; - } - } else { - $found = false; - foreach ($deps['group'] as $group) { - if (strtolower($group['attribs']['name']) == strtolower($groupname)) { - $found = true; - break; - } - } - if (!$found) { - if ($explicit) { - if (!isset($options['soft'])) { - $this->_downloader->log(0, 'Warning: package "' . - $this->_registry->parsedPackageNameToString($pname, true) . - '" has no dependency ' . 'group named "' . $groupname . '"'); - } - } - $groupnotfound = true; - continue; - } - } - } - if (isset($group)) { - if (isset($group[$packagetype])) { - if (isset($group[$packagetype][0])) { - foreach ($group[$packagetype] as $dep) { - $ret = $this->_detect2Dep($dep, $pname, 'dependency group "' . - $group['attribs']['name'] . '"', $params); - if (is_array($ret)) { - $this->_downloadDeps[] = $ret; - } - } - } else { - $ret = $this->_detect2Dep($group[$packagetype], $pname, - 'dependency group "' . - $group['attribs']['name'] . '"', $params); - if (is_array($ret)) { - $this->_downloadDeps[] = $ret; - } - } - } - } - } - } - - function _detect2Dep($dep, $pname, $group, $params) - { - if (isset($dep['conflicts'])) { - return true; - } - $options = $this->_downloader->getOptions(); - if (isset($dep['uri'])) { - return array('uri' => $dep['uri'], 'dep' => $dep);; - } - $testdep = $dep; - $testdep['package'] = $dep['name']; - if (PEAR_Downloader_Package::willDownload($testdep, $params)) { - $dep['package'] = $dep['name']; - if (!isset($options['soft'])) { - $this->_downloader->log(2, $this->getShortName() . ': Skipping ' . $group . - ' dependency "' . - $this->_registry->parsedPackageNameToString($dep, true) . - '", will be installed'); - } - return false; - } - $options = $this->_downloader->getOptions(); - PEAR::pushErrorHandling(PEAR_ERROR_RETURN); - if ($this->_explicitState) { - $pname['state'] = $this->_explicitState; - } - $url = - $this->_downloader->_getDepPackageDownloadUrl($dep, $pname); - if (PEAR::isError($url)) { - PEAR::popErrorHandling(); - return $url; - } - $dep['package'] = $dep['name']; - $ret = $this->_analyzeDownloadURL($url, 'dependency', $dep, $params, $group == 'optional' && - !isset($options['alldeps']), true); - PEAR::popErrorHandling(); - if (PEAR::isError($ret)) { - if (!isset($options['soft'])) { - $this->_downloader->log(0, $ret->getMessage()); - } - return false; - } else { - // check to see if a dep is already installed and is the same or newer - if (!isset($dep['min']) && !isset($dep['max']) && !isset($dep['recommended'])) { - $oper = 'has'; - } else { - $oper = 'gt'; - } - // do not try to move this before getDepPackageDownloadURL - // we can't determine whether upgrade is necessary until we know what - // version would be downloaded - if (!isset($options['force']) && $this->isInstalled($ret, $oper)) { - $version = $this->_installRegistry->packageInfo($dep['name'], 'version', - $dep['channel']); - $dep['package'] = $dep['name']; - if (!isset($options['soft'])) { - $this->_downloader->log(3, $this->getShortName() . ': Skipping ' . $group . - ' dependency "' . - $this->_registry->parsedPackageNameToString($dep, true) . - '" version ' . $url['version'] . ', already installed as version ' . - $version); - } - return false; - } - } - if (isset($dep['nodefault'])) { - $ret['nodefault'] = true; - } - return $ret; - } - - function _detect1($deps, $pname, $options, $params) - { - $this->_downloadDeps = array(); - $skipnames = array(); - foreach ($deps as $dep) { - $nodownload = false; - if ($dep['type'] == 'pkg') { - $dep['channel'] = 'pear.php.net'; - $dep['package'] = $dep['name']; - switch ($dep['rel']) { - case 'not' : - continue 2; - case 'ge' : - case 'eq' : - case 'gt' : - case 'has' : - $group = (!isset($dep['optional']) || $dep['optional'] == 'no') ? - 'required' : - 'optional'; - if (PEAR_Downloader_Package::willDownload($dep, $params)) { - $this->_downloader->log(2, $this->getShortName() . ': Skipping ' . $group - . ' dependency "' . - $this->_registry->parsedPackageNameToString($dep, true) . - '", will be installed'); - continue 2; - } - $fakedp = new PEAR_PackageFile_v1; - $fakedp->setPackage($dep['name']); - // skip internet check if we are not upgrading (bug #5810) - if (!isset($options['upgrade']) && $this->isInstalled( - $fakedp, $dep['rel'])) { - $this->_downloader->log(2, $this->getShortName() . ': Skipping ' . $group - . ' dependency "' . - $this->_registry->parsedPackageNameToString($dep, true) . - '", is already installed'); - continue 2; - } - } - PEAR::pushErrorHandling(PEAR_ERROR_RETURN); - if ($this->_explicitState) { - $pname['state'] = $this->_explicitState; - } - $url = - $this->_downloader->_getDepPackageDownloadUrl($dep, $pname); - $chan = 'pear.php.net'; - if (PEAR::isError($url)) { - // check to see if this is a pecl package that has jumped - // from pear.php.net to pecl.php.net channel - if (!class_exists('PEAR_Dependency2')) { - require_once 'PEAR/Dependency2.php'; - } - $newdep = PEAR_Dependency2::normalizeDep($dep); - $newdep = $newdep[0]; - $newdep['channel'] = 'pecl.php.net'; - $chan = 'pecl.php.net'; - $url = - $this->_downloader->_getDepPackageDownloadUrl($newdep, $pname); - $obj = &$this->_installRegistry->getPackage($dep['name']); - if (PEAR::isError($url)) { - PEAR::popErrorHandling(); - if ($obj !== null && $this->isInstalled($obj, $dep['rel'])) { - $group = (!isset($dep['optional']) || $dep['optional'] == 'no') ? - 'required' : - 'optional'; - $dep['package'] = $dep['name']; - if (!isset($options['soft'])) { - $this->_downloader->log(3, $this->getShortName() . - ': Skipping ' . $group . ' dependency "' . - $this->_registry->parsedPackageNameToString($dep, true) . - '", already installed as version ' . $obj->getVersion()); - } - $skip = count($skipnames) ? - $skipnames[count($skipnames) - 1] : ''; - if ($skip == - $this->_registry->parsedPackageNameToString($dep, true)) { - array_pop($skipnames); - } - continue; - } else { - if (isset($dep['optional']) && $dep['optional'] == 'yes') { - $this->_downloader->log(2, $this->getShortName() . - ': Skipping optional dependency "' . - $this->_registry->parsedPackageNameToString($dep, true) . - '", no releases exist'); - continue; - } else { - return $url; - } - } - } - } - PEAR::popErrorHandling(); - if (!isset($options['alldeps'])) { - if (isset($dep['optional']) && $dep['optional'] == 'yes') { - if (!isset($options['soft'])) { - $this->_downloader->log(3, 'Notice: package "' . - $this->getShortName() . - '" optional dependency "' . - $this->_registry->parsedPackageNameToString( - array('channel' => $chan, 'package' => - $dep['name']), true) . - '" will not be automatically downloaded'); - } - $skipnames[] = $this->_registry->parsedPackageNameToString( - array('channel' => $chan, 'package' => - $dep['name']), true); - $nodownload = true; - } - } - if (!isset($options['alldeps']) && !isset($options['onlyreqdeps'])) { - if (!isset($dep['optional']) || $dep['optional'] == 'no') { - if (!isset($options['soft'])) { - $this->_downloader->log(3, 'Notice: package "' . - $this->getShortName() . - '" required dependency "' . - $this->_registry->parsedPackageNameToString( - array('channel' => $chan, 'package' => - $dep['name']), true) . - '" will not be automatically downloaded'); - } - $skipnames[] = $this->_registry->parsedPackageNameToString( - array('channel' => $chan, 'package' => - $dep['name']), true); - $nodownload = true; - } - } - // check to see if a dep is already installed - // do not try to move this before getDepPackageDownloadURL - // we can't determine whether upgrade is necessary until we know what - // version would be downloaded - if (!isset($options['force']) && $this->isInstalled( - $url, $dep['rel'])) { - $group = (!isset($dep['optional']) || $dep['optional'] == 'no') ? - 'required' : - 'optional'; - $dep['package'] = $dep['name']; - if (isset($newdep)) { - $version = $this->_installRegistry->packageInfo($newdep['name'], 'version', - $newdep['channel']); - } else { - $version = $this->_installRegistry->packageInfo($dep['name'], 'version'); - } - $dep['version'] = $url['version']; - if (!isset($options['soft'])) { - $this->_downloader->log(3, $this->getShortName() . ': Skipping ' . $group . - ' dependency "' . - $this->_registry->parsedPackageNameToString($dep, true) . - '", already installed as version ' . $version); - } - $skip = count($skipnames) ? - $skipnames[count($skipnames) - 1] : ''; - if ($skip == - $this->_registry->parsedPackageNameToString($dep, true)) { - array_pop($skipnames); - } - continue; - } - if ($nodownload) { - continue; - } - PEAR::pushErrorHandling(PEAR_ERROR_RETURN); - if (isset($newdep)) { - $dep = $newdep; - } - $dep['package'] = $dep['name']; - $ret = $this->_analyzeDownloadURL($url, 'dependency', $dep, $params, - isset($dep['optional']) && $dep['optional'] == 'yes' && - !isset($options['alldeps']), true); - PEAR::popErrorHandling(); - if (PEAR::isError($ret)) { - if (!isset($options['soft'])) { - $this->_downloader->log(0, $ret->getMessage()); - } - continue; - } - $this->_downloadDeps[] = $ret; - } - } - if (count($skipnames)) { - if (!isset($options['soft'])) { - $this->_downloader->log(1, 'Did not download dependencies: ' . - implode(', ', $skipnames) . - ', use --alldeps or --onlyreqdeps to download automatically'); - } - } - } - - function setDownloadURL($pkg) - { - $this->_downloadURL = $pkg; - } - - /** - * Set the package.xml object for this downloaded package - * - * @param PEAR_PackageFile_v1|PEAR_PackageFile_v2 $pkg - */ - function setPackageFile(&$pkg) - { - $this->_packagefile = &$pkg; - } - - function getShortName() - { - return $this->_registry->parsedPackageNameToString(array('channel' => $this->getChannel(), - 'package' => $this->getPackage()), true); - } - - function getParsedPackage() - { - if (isset($this->_packagefile) || isset($this->_parsedname)) { - return array('channel' => $this->getChannel(), - 'package' => $this->getPackage(), - 'version' => $this->getVersion()); - } - return false; - } - - function getDownloadURL() - { - return $this->_downloadURL; - } - - function canDefault() - { - if (isset($this->_downloadURL)) { - if (isset($this->_downloadURL['nodefault'])) { - return false; - } - } - return true; - } - - function getPackage() - { - if (isset($this->_packagefile)) { - return $this->_packagefile->getPackage(); - } elseif (isset($this->_downloadURL['info'])) { - return $this->_downloadURL['info']->getPackage(); - } else { - return false; - } - } - - /** - * @param PEAR_PackageFile_v1|PEAR_PackageFile_v2 - */ - function isSubpackage(&$pf) - { - if (isset($this->_packagefile)) { - return $this->_packagefile->isSubpackage($pf); - } elseif (isset($this->_downloadURL['info'])) { - return $this->_downloadURL['info']->isSubpackage($pf); - } else { - return false; - } - } - - function getPackageType() - { - if (isset($this->_packagefile)) { - return $this->_packagefile->getPackageType(); - } elseif (isset($this->_downloadURL['info'])) { - return $this->_downloadURL['info']->getPackageType(); - } else { - return false; - } - } - - function isBundle() - { - if (isset($this->_packagefile)) { - return $this->_packagefile->getPackageType() == 'bundle'; - } else { - return false; - } - } - - function getPackageXmlVersion() - { - if (isset($this->_packagefile)) { - return $this->_packagefile->getPackagexmlVersion(); - } elseif (isset($this->_downloadURL['info'])) { - return $this->_downloadURL['info']->getPackagexmlVersion(); - } else { - return '1.0'; - } - } - - function getChannel() - { - if (isset($this->_packagefile)) { - return $this->_packagefile->getChannel(); - } elseif (isset($this->_downloadURL['info'])) { - return $this->_downloadURL['info']->getChannel(); - } else { - return false; - } - } - - function getURI() - { - if (isset($this->_packagefile)) { - return $this->_packagefile->getURI(); - } elseif (isset($this->_downloadURL['info'])) { - return $this->_downloadURL['info']->getURI(); - } else { - return false; - } - } - - function getVersion() - { - if (isset($this->_packagefile)) { - return $this->_packagefile->getVersion(); - } elseif (isset($this->_downloadURL['version'])) { - return $this->_downloadURL['version']; - } else { - return false; - } - } - - function isCompatible($pf) - { - if (isset($this->_packagefile)) { - return $this->_packagefile->isCompatible($pf); - } elseif (isset($this->_downloadURL['info'])) { - return $this->_downloadURL['info']->isCompatible($pf); - } else { - return true; - } - } - - function setGroup($group) - { - $this->_parsedname['group'] = $group; - } - - function getGroup() - { - if (isset($this->_parsedname['group'])) { - return $this->_parsedname['group']; - } else { - return ''; - } - } - - function isExtension($name) - { - if (isset($this->_packagefile)) { - return $this->_packagefile->isExtension($name); - } elseif (isset($this->_downloadURL['info'])) { - if ($this->_downloadURL['info']->getPackagexmlVersion() == '2.0') { - return $this->_downloadURL['info']->getProvidesExtension() == $name; - } else { - return false; - } - } else { - return false; - } - } - - function getDeps() - { - if (isset($this->_packagefile)) { - $ver = $this->_packagefile->getPackagexmlVersion(); - if (version_compare($ver, '2.0', '>=')) { - return $this->_packagefile->getDeps(true); - } else { - return $this->_packagefile->getDeps(); - } - } elseif (isset($this->_downloadURL['info'])) { - $ver = $this->_downloadURL['info']->getPackagexmlVersion(); - if (version_compare($ver, '2.0', '>=')) { - return $this->_downloadURL['info']->getDeps(true); - } else { - return $this->_downloadURL['info']->getDeps(); - } - } else { - return array(); - } - } - - /** - * @param array Parsed array from {@link PEAR_Registry::parsePackageName()} or a dependency - * returned from getDepDownloadURL() - */ - function isEqual($param) - { - if (is_object($param)) { - $channel = $param->getChannel(); - $package = $param->getPackage(); - if ($param->getURI()) { - $param = array( - 'channel' => $param->getChannel(), - 'package' => $param->getPackage(), - 'version' => $param->getVersion(), - 'uri' => $param->getURI(), - ); - } else { - $param = array( - 'channel' => $param->getChannel(), - 'package' => $param->getPackage(), - 'version' => $param->getVersion(), - ); - } - } else { - if (isset($param['uri'])) { - if ($this->getChannel() != '__uri') { - return false; - } - return $param['uri'] == $this->getURI(); - } - $package = isset($param['package']) ? $param['package'] : - $param['info']->getPackage(); - $channel = isset($param['channel']) ? $param['channel'] : - $param['info']->getChannel(); - if (isset($param['rel'])) { - if (!class_exists('PEAR_Dependency2')) { - require_once 'PEAR/Dependency2.php'; - } - $newdep = PEAR_Dependency2::normalizeDep($param); - $newdep = $newdep[0]; - } elseif (isset($param['min'])) { - $newdep = $param; - } - } - if (isset($newdep)) { - if (!isset($newdep['min'])) { - $newdep['min'] = '0'; - } - if (!isset($newdep['max'])) { - $newdep['max'] = '100000000000000000000'; - } - // use magic to support pecl packages suddenly jumping to the pecl channel - // we need to support both dependency possibilities - if ($channel == 'pear.php.net' && $this->getChannel() == 'pecl.php.net') { - if ($package == $this->getPackage()) { - $channel = 'pecl.php.net'; - } - } - if ($channel == 'pecl.php.net' && $this->getChannel() == 'pear.php.net') { - if ($package == $this->getPackage()) { - $channel = 'pear.php.net'; - } - } - return (strtolower($package) == strtolower($this->getPackage()) && - $channel == $this->getChannel() && - version_compare($newdep['min'], $this->getVersion(), '<=') && - version_compare($newdep['max'], $this->getVersion(), '>=')); - } - // use magic to support pecl packages suddenly jumping to the pecl channel - if ($channel == 'pecl.php.net' && $this->getChannel() == 'pear.php.net') { - if (strtolower($package) == strtolower($this->getPackage())) { - $channel = 'pear.php.net'; - } - } - if (isset($param['version'])) { - return (strtolower($package) == strtolower($this->getPackage()) && - $channel == $this->getChannel() && - $param['version'] == $this->getVersion()); - } else { - return strtolower($package) == strtolower($this->getPackage()) && - $channel == $this->getChannel(); - } - } - - function isInstalled($dep, $oper = '==') - { - if (!$dep) { - return false; - } - if ($oper != 'ge' && $oper != 'gt' && $oper != 'has' && $oper != '==') { - return false; - } - if (is_object($dep)) { - $package = $dep->getPackage(); - $channel = $dep->getChannel(); - if ($dep->getURI()) { - $dep = array( - 'uri' => $dep->getURI(), - 'version' => $dep->getVersion(), - ); - } else { - $dep = array( - 'version' => $dep->getVersion(), - ); - } - } else { - if (isset($dep['uri'])) { - $channel = '__uri'; - $package = $dep['dep']['name']; - } else { - $channel = $dep['info']->getChannel(); - $package = $dep['info']->getPackage(); - } - } - $options = $this->_downloader->getOptions(); - $test = $this->_installRegistry->packageExists($package, $channel); - if (!$test && $channel == 'pecl.php.net') { - // do magic to allow upgrading from old pecl packages to new ones - $test = $this->_installRegistry->packageExists($package, 'pear.php.net'); - $channel = 'pear.php.net'; - } - if ($test) { - if (isset($dep['uri'])) { - if ($this->_installRegistry->packageInfo($package, 'uri', '__uri') == $dep['uri']) { - return true; - } - } - if (isset($options['upgrade'])) { - if ($oper == 'has') { - if (version_compare($this->_installRegistry->packageInfo( - $package, 'version', $channel), - $dep['version'], '>=')) { - return true; - } else { - return false; - } - } else { - if (version_compare($this->_installRegistry->packageInfo( - $package, 'version', $channel), - $dep['version'], '>=')) { - return true; - } - return false; - } - } - return true; - } - return false; - } - - /** - * Detect duplicate package names with differing versions - * - * If a user requests to install Date 1.4.6 and Date 1.4.7, - * for instance, this is a logic error. This method - * detects this situation. - * - * @param array $params array of PEAR_Downloader_Package objects - * @param array $errorparams empty array - * @return array array of stupid duplicated packages in PEAR_Downloader_Package obejcts - */ - function detectStupidDuplicates($params, &$errorparams) - { - $existing = array(); - foreach ($params as $i => $param) { - $package = $param->getPackage(); - $channel = $param->getChannel(); - $group = $param->getGroup(); - if (!isset($existing[$channel . '/' . $package])) { - $existing[$channel . '/' . $package] = array(); - } - if (!isset($existing[$channel . '/' . $package][$group])) { - $existing[$channel . '/' . $package][$group] = array(); - } - $existing[$channel . '/' . $package][$group][] = $i; - } - - $indices = array(); - foreach ($existing as $package => $groups) { - foreach ($groups as $group => $dupes) { - if (count($dupes) > 1) { - $indices = $indices + $dupes; - } - } - } - - $indices = array_unique($indices); - foreach ($indices as $index) { - $errorparams[] = $params[$index]; - } - return count($errorparams); - } - - /** - * @param array - * @param bool ignore install groups - for final removal of dupe packages - * @static - */ - function removeDuplicates(&$params, $ignoreGroups = false) - { - $pnames = array(); - foreach ($params as $i => $param) { - if (!$param) { - continue; - } - if ($param->getPackage()) { - if ($ignoreGroups) { - $group = ''; - } else { - $group = $param->getGroup(); - } - $pnames[$i] = $param->getChannel() . '/' . - $param->getPackage() . '-' . $param->getVersion() . '#' . $group; - } - } - $pnames = array_unique($pnames); - $unset = array_diff(array_keys($params), array_keys($pnames)); - $testp = array_flip($pnames); - foreach ($params as $i => $param) { - if (!$param) { - $unset[] = $i; - continue; - } - if (!is_a($param, 'PEAR_Downloader_Package')) { - $unset[] = $i; - continue; - } - if ($ignoreGroups) { - $group = ''; - } else { - $group = $param->getGroup(); - } - if (!isset($testp[$param->getChannel() . '/' . $param->getPackage() . '-' . - $param->getVersion() . '#' . $group])) { - $unset[] = $i; - } - } - foreach ($unset as $i) { - unset($params[$i]); - } - $ret = array(); - foreach ($params as $i => $param) { - $ret[] = &$params[$i]; - } - $params = array(); - foreach ($ret as $i => $param) { - $params[] = &$ret[$i]; - } - } - - function explicitState() - { - return $this->_explicitState; - } - - function setExplicitState($s) - { - $this->_explicitState = $s; - } - - /** - * @static - */ - function mergeDependencies(&$params) - { - $newparams = array(); - $bundles = array(); - foreach ($params as $i => $param) { - if (!$param->isBundle()) { - continue; - } - $bundles[] = $i; - $pf = &$param->getPackageFile(); - $newdeps = array(); - $contents = $pf->getBundledPackages(); - if (!is_array($contents)) { - $contents = array($contents); - } - foreach ($contents as $file) { - $filecontents = $pf->getFileContents($file); - $dl = &$param->getDownloader(); - $options = $dl->getOptions(); - if (PEAR::isError($dir = $dl->getDownloadDir())) { - return $dir; - } - $fp = @fopen($dir . DIRECTORY_SEPARATOR . $file, 'wb'); - if (!$fp) { - continue; - } - fwrite($fp, $filecontents, strlen($filecontents)); - fclose($fp); - if ($s = $params[$i]->explicitState()) { - $obj->setExplicitState($s); - } - $obj = &new PEAR_Downloader_Package($params[$i]->getDownloader()); - PEAR::pushErrorHandling(PEAR_ERROR_RETURN); - if (PEAR::isError($dir = $dl->getDownloadDir())) { - PEAR::popErrorHandling(); - return $dir; - } - $e = $obj->_fromFile($a = $dir . DIRECTORY_SEPARATOR . $file); - PEAR::popErrorHandling(); - if (PEAR::isError($e)) { - if (!isset($options['soft'])) { - $dl->log(0, $e->getMessage()); - } - continue; - } - $j = &$obj; - if (!PEAR_Downloader_Package::willDownload($j, - array_merge($params, $newparams)) && !$param->isInstalled($j)) { - $newparams[] = &$j; - } - } - } - foreach ($bundles as $i) { - unset($params[$i]); // remove bundles - only their contents matter for installation - } - PEAR_Downloader_Package::removeDuplicates($params); // strip any unset indices - if (count($newparams)) { // add in bundled packages for install - foreach ($newparams as $i => $unused) { - $params[] = &$newparams[$i]; - } - $newparams = array(); - } - foreach ($params as $i => $param) { - $newdeps = array(); - foreach ($param->_downloadDeps as $dep) { - if (!PEAR_Downloader_Package::willDownload($dep, - array_merge($params, $newparams)) && !$param->isInstalled($dep)) { - $newdeps[] = $dep; - } else { - // detect versioning conflicts here - } - } - // convert the dependencies into PEAR_Downloader_Package objects for the next time - // around - $params[$i]->_downloadDeps = array(); - foreach ($newdeps as $dep) { - $obj = &new PEAR_Downloader_Package($params[$i]->getDownloader()); - if ($s = $params[$i]->explicitState()) { - $obj->setExplicitState($s); - } - PEAR::pushErrorHandling(PEAR_ERROR_RETURN); - $e = $obj->fromDepURL($dep); - PEAR::popErrorHandling(); - if (PEAR::isError($e)) { - if (!isset($options['soft'])) { - $obj->_downloader->log(0, $e->getMessage()); - } - continue; - } - $e = $obj->detectDependencies($params); - if (PEAR::isError($e)) { - if (!isset($options['soft'])) { - $obj->_downloader->log(0, $e->getMessage()); - } - } - $j = &$obj; - $newparams[] = &$j; - } - } - if (count($newparams)) { - foreach ($newparams as $i => $unused) { - $params[] = &$newparams[$i]; - } - return true; - } else { - return false; - } - } - - - /** - * @static - */ - function willDownload($param, $params) - { - if (!is_array($params)) { - return false; - } - foreach ($params as $obj) { - if ($obj->isEqual($param)) { - return true; - } - } - return false; - } - - /** - * For simpler unit-testing - * @param PEAR_Config - * @param int - * @param string - */ - function &getPackagefileObject(&$c, $d, $t = false) - { - $a = &new PEAR_PackageFile($c, $d, $t); - return $a; - } - - - /** - * This will retrieve from a local file if possible, and parse out - * a group name as well. The original parameter will be modified to reflect this. - * @param string|array can be a parsed package name as well - * @access private - */ - function _fromFile(&$param) - { - $saveparam = $param; - if (is_string($param)) { - if (!@file_exists($param)) { - $test = explode('#', $param); - $group = array_pop($test); - if (@file_exists(implode('#', $test))) { - $this->setGroup($group); - $param = implode('#', $test); - $this->_explicitGroup = true; - } - } - if (@is_file($param)) { - $this->_type = 'local'; - $options = $this->_downloader->getOptions(); - if (isset($options['downloadonly'])) { - $pkg = &$this->getPackagefileObject($this->_config, - $this->_downloader->_debug); - } else { - if (PEAR::isError($dir = $this->_downloader->getDownloadDir())) { - return $dir; - } - $pkg = &$this->getPackagefileObject($this->_config, - $this->_downloader->_debug, $dir); - } - PEAR::pushErrorHandling(PEAR_ERROR_RETURN); - $pf = &$pkg->fromAnyFile($param, PEAR_VALIDATE_INSTALLING); - PEAR::popErrorHandling(); - if (PEAR::isError($pf)) { - $this->_valid = false; - $param = $saveparam; - return $pf; - } - $this->_packagefile = &$pf; - if (!$this->getGroup()) { - $this->setGroup('default'); // install the default dependency group - } - return $this->_valid = true; - } - } - $param = $saveparam; - return $this->_valid = false; - } - - function _fromUrl($param, $saveparam = '') - { - if (!is_array($param) && - (preg_match('#^(http|ftp)://#', $param))) { - $options = $this->_downloader->getOptions(); - $this->_type = 'url'; - $callback = $this->_downloader->ui ? - array(&$this->_downloader, '_downloadCallback') : null; - $this->_downloader->pushErrorHandling(PEAR_ERROR_RETURN); - if (PEAR::isError($dir = $this->_downloader->getDownloadDir())) { - $this->_downloader->popErrorHandling(); - return $dir; - } - $this->_downloader->log(3, 'Downloading "' . $param . '"'); - $file = $this->_downloader->downloadHttp($param, $this->_downloader->ui, - $dir, $callback, null, false, $this->getChannel()); - $this->_downloader->popErrorHandling(); - if (PEAR::isError($file)) { - if (!empty($saveparam)) { - $saveparam = ", cannot download \"$saveparam\""; - } - $err = PEAR::raiseError('Could not download from "' . $param . - '"' . $saveparam . ' (' . $file->getMessage() . ')'); - return $err; - } - if ($this->_rawpackagefile) { - require_once 'Archive/Tar.php'; - $tar = &new Archive_Tar($file); - $packagexml = $tar->extractInString('package2.xml'); - if (!$packagexml) { - $packagexml = $tar->extractInString('package.xml'); - } - if (str_replace(array("\n", "\r"), array('',''), $packagexml) != - str_replace(array("\n", "\r"), array('',''), $this->_rawpackagefile)) { - if ($this->getChannel() == 'pear.php.net') { - // be more lax for the existing PEAR packages that have not-ok - // characters in their package.xml - $this->_downloader->log(0, 'CRITICAL WARNING: The "' . - $this->getPackage() . '" package has invalid characters in its ' . - 'package.xml. The next version of PEAR may not be able to install ' . - 'this package for security reasons. Please open a bug report at ' . - 'http://pear.php.net/package/' . $this->getPackage() . '/bugs'); - } else { - return PEAR::raiseError('CRITICAL ERROR: package.xml downloaded does ' . - 'not match value returned from xml-rpc'); - } - } - } - // whew, download worked! - if (isset($options['downloadonly'])) { - $pkg = &$this->getPackagefileObject($this->_config, $this->_downloader->debug); - } else { - if (PEAR::isError($dir = $this->_downloader->getDownloadDir())) { - return $dir; - } - $pkg = &$this->getPackagefileObject($this->_config, $this->_downloader->debug, - $dir); - } - PEAR::pushErrorHandling(PEAR_ERROR_RETURN); - $pf = &$pkg->fromAnyFile($file, PEAR_VALIDATE_INSTALLING); - PEAR::popErrorHandling(); - if (PEAR::isError($pf)) { - if (is_array($pf->getUserInfo())) { - foreach ($pf->getUserInfo() as $err) { - if (is_array($err)) { - $err = $err['message']; - } - if (!isset($options['soft'])) { - $this->_downloader->log(0, "Validation Error: $err"); - } - } - } - if (!isset($options['soft'])) { - $this->_downloader->log(0, $pf->getMessage()); - } - $err = PEAR::raiseError('Download of "' . ($saveparam ? $saveparam : - $param) . '" succeeded, but it is not a valid package archive'); - $this->_valid = false; - return $err; - } - $this->_packagefile = &$pf; - $this->setGroup('default'); // install the default dependency group - return $this->_valid = true; - } - return $this->_valid = false; - } - - /** - * - * @param string|array pass in an array of format - * array( - * 'package' => 'pname', - * ['channel' => 'channame',] - * ['version' => 'version',] - * ['state' => 'state',]) - * or a string of format [channame/]pname[-version|-state] - */ - function _fromString($param) - { - $options = $this->_downloader->getOptions(); - PEAR::pushErrorHandling(PEAR_ERROR_RETURN); - $pname = $this->_registry->parsePackageName($param, - $this->_config->get('default_channel')); - PEAR::popErrorHandling(); - if (PEAR::isError($pname)) { - if ($pname->getCode() == 'invalid') { - $this->_valid = false; - return false; - } - if ($pname->getCode() == 'channel') { - $parsed = $pname->getUserInfo(); - if ($this->_downloader->discover($parsed['channel'])) { - if ($this->_config->get('auto_discover')) { - PEAR::pushErrorHandling(PEAR_ERROR_RETURN); - $pname = $this->_registry->parsePackageName($param, - $this->_config->get('default_channel')); - PEAR::popErrorHandling(); - } else { - if (!isset($options['soft'])) { - $this->_downloader->log(0, 'Channel "' . $parsed['channel'] . - '" is not initialized, use ' . - '"pear channel-discover ' . $parsed['channel'] . '" to initialize' . - 'or pear config-set auto_discover 1'); - } - } - } - if (PEAR::isError($pname)) { - if (!isset($options['soft'])) { - $this->_downloader->log(0, $pname->getMessage()); - } - if (is_array($param)) { - $param = $this->_registry->parsedPackageNameToString($param); - } - $err = PEAR::raiseError('invalid package name/package file "' . - $param . '"'); - $this->_valid = false; - return $err; - } - } else { - if (!isset($options['soft'])) { - $this->_downloader->log(0, $pname->getMessage()); - } - $err = PEAR::raiseError('invalid package name/package file "' . - $param . '"'); - $this->_valid = false; - return $err; - } - } - if (!isset($this->_type)) { - $this->_type = 'xmlrpc'; - } - $this->_parsedname = $pname; - if (isset($pname['state'])) { - $this->_explicitState = $pname['state']; - } else { - $this->_explicitState = false; - } - if (isset($pname['group'])) { - $this->_explicitGroup = true; - } else { - $this->_explicitGroup = false; - } - $info = $this->_downloader->_getPackageDownloadUrl($pname); - if (PEAR::isError($info)) { - if ($info->getCode() != -976 && $pname['channel'] == 'pear.php.net') { - // try pecl - $pname['channel'] = 'pecl.php.net'; - if ($test = $this->_downloader->_getPackageDownloadUrl($pname)) { - if (!PEAR::isError($test)) { - $info = PEAR::raiseError($info->getMessage() . ' - package ' . - $this->_registry->parsedPackageNameToString($pname, true) . - ' can be installed with "pecl install ' . $pname['package'] . - '"'); - } else { - $pname['channel'] = 'pear.php.net'; - } - } else { - $pname['channel'] = 'pear.php.net'; - } - } - return $info; - } - $this->_rawpackagefile = $info['raw']; - $ret = $this->_analyzeDownloadURL($info, $param, $pname); - if (PEAR::isError($ret)) { - return $ret; - } - if ($ret) { - $this->_downloadURL = $ret; - return $this->_valid = (bool) $ret; - } - } - - /** - * @param array output of package.getDownloadURL - * @param string|array|object information for detecting packages to be downloaded, and - * for errors - * @param array name information of the package - * @param array|null packages to be downloaded - * @param bool is this an optional dependency? - * @param bool is this any kind of dependency? - * @access private - */ - function _analyzeDownloadURL($info, $param, $pname, $params = null, $optional = false, - $isdependency = false) - { - if (!is_string($param) && PEAR_Downloader_Package::willDownload($param, $params)) { - return false; - } - if (!$info) { - if (!is_string($param)) { - $saveparam = ", cannot download \"$param\""; - } else { - $saveparam = ''; - } - // no releases exist - return PEAR::raiseError('No releases for package "' . - $this->_registry->parsedPackageNameToString($pname, true) . '" exist' . $saveparam); - } - if (strtolower($info['info']->getChannel()) != strtolower($pname['channel'])) { - $err = false; - if ($pname['channel'] == 'pecl.php.net') { - if ($info['info']->getChannel() != 'pear.php.net') { - $err = true; - } - } elseif ($info['info']->getChannel() == 'pecl.php.net') { - if ($pname['channel'] != 'pear.php.net') { - $err = true; - } - } else { - $err = true; - } - if ($err) { - return PEAR::raiseError('SECURITY ERROR: package in channel "' . $pname['channel'] . - '" retrieved another channel\'s name for download! ("' . - $info['info']->getChannel() . '")'); - } - } - if (!isset($info['url'])) { - if ($this->isInstalled($info)) { - if ($isdependency && version_compare($info['version'], - $this->_registry->packageInfo($info['info']->getPackage(), - 'version', $info['info']->getChannel()), '<=')) { - // ignore bogus errors of "failed to download dependency" - // if it is already installed and the one that would be - // downloaded is older or the same version (Bug #7219) - return false; - } - } - $instead = ', will instead download version ' . $info['version'] . - ', stability "' . $info['info']->getState() . '"'; - // releases exist, but we failed to get any - if (isset($this->_downloader->_options['force'])) { - if (isset($pname['version'])) { - $vs = ', version "' . $pname['version'] . '"'; - } elseif (isset($pname['state'])) { - $vs = ', stability "' . $pname['state'] . '"'; - } elseif ($param == 'dependency') { - if (!class_exists('PEAR_Common')) { - require_once 'PEAR/Common.php'; - } - if (!in_array($info['info']->getState(), - PEAR_Common::betterStates($this->_config->get('preferred_state'), true))) { - if ($optional) { - // don't spit out confusing error message - return $this->_downloader->_getPackageDownloadUrl( - array('package' => $pname['package'], - 'channel' => $pname['channel'], - 'version' => $info['version'])); - } - $vs = ' within preferred state "' . $this->_config->get('preferred_state') . - '"'; - } else { - if (!class_exists('PEAR_Dependency2')) { - require_once 'PEAR/Dependency2.php'; - } - if ($optional) { - // don't spit out confusing error message - return $this->_downloader->_getPackageDownloadUrl( - array('package' => $pname['package'], - 'channel' => $pname['channel'], - 'version' => $info['version'])); - } - $vs = PEAR_Dependency2::_getExtraString($pname); - $instead = ''; - } - } else { - $vs = ' within preferred state "' . $this->_config->get( - 'preferred_state') . '"'; - } - if (!isset($options['soft'])) { - $this->_downloader->log(1, 'WARNING: failed to download ' . $pname['channel'] . - '/' . $pname['package'] . $vs . $instead); - } - // download the latest release - return $this->_downloader->_getPackageDownloadUrl( - array('package' => $pname['package'], - 'channel' => $pname['channel'], - 'version' => $info['version'])); - } else { - if (isset($info['php']) && $info['php']) { - $err = PEAR::raiseError('Failed to download ' . - $this->_registry->parsedPackageNameToString( - array('channel' => $pname['channel'], - 'package' => $pname['package']), - true) . - ', latest release is version ' . $info['php']['v'] . - ', but it requires PHP version "' . - $info['php']['m'] . '", use "' . - $this->_registry->parsedPackageNameToString( - array('channel' => $pname['channel'], 'package' => $pname['package'], - 'version' => $info['php']['v'])) . '" to install', - PEAR_DOWNLOADER_PACKAGE_PHPVERSION); - return $err; - } - // construct helpful error message - if (isset($pname['version'])) { - $vs = ', version "' . $pname['version'] . '"'; - } elseif (isset($pname['state'])) { - $vs = ', stability "' . $pname['state'] . '"'; - } elseif ($param == 'dependency') { - if (!class_exists('PEAR_Common')) { - require_once 'PEAR/Common.php'; - } - if (!in_array($info['info']->getState(), - PEAR_Common::betterStates($this->_config->get('preferred_state'), true))) { - if ($optional) { - // don't spit out confusing error message, and don't die on - // optional dep failure! - return $this->_downloader->_getPackageDownloadUrl( - array('package' => $pname['package'], - 'channel' => $pname['channel'], - 'version' => $info['version'])); - } - $vs = ' within preferred state "' . $this->_config->get('preferred_state') . - '"'; - } else { - if (!class_exists('PEAR_Dependency2')) { - require_once 'PEAR/Dependency2.php'; - } - if ($optional) { - // don't spit out confusing error message, and don't die on - // optional dep failure! - return $this->_downloader->_getPackageDownloadUrl( - array('package' => $pname['package'], - 'channel' => $pname['channel'], - 'version' => $info['version'])); - } - $vs = PEAR_Dependency2::_getExtraString($pname); - } - } else { - $vs = ' within preferred state "' . $this->_downloader->config->get( - 'preferred_state') . '"'; - } - $options = $this->_downloader->getOptions(); - // this is only set by the "download-all" command - if (isset($options['ignorepreferred_state'])) { - $err = PEAR::raiseError( - 'Failed to download ' . $this->_registry->parsedPackageNameToString( - array('channel' => $pname['channel'], 'package' => $pname['package']), - true) - . $vs . - ', latest release is version ' . $info['version'] . - ', stability "' . $info['info']->getState() . '", use "' . - $this->_registry->parsedPackageNameToString( - array('channel' => $pname['channel'], 'package' => $pname['package'], - 'version' => $info['version'])) . '" to install', - PEAR_DOWNLOADER_PACKAGE_STATE); - return $err; - } - $err = PEAR::raiseError( - 'Failed to download ' . $this->_registry->parsedPackageNameToString( - array('channel' => $pname['channel'], 'package' => $pname['package']), - true) - . $vs . - ', latest release is version ' . $info['version'] . - ', stability "' . $info['info']->getState() . '", use "' . - $this->_registry->parsedPackageNameToString( - array('channel' => $pname['channel'], 'package' => $pname['package'], - 'version' => $info['version'])) . '" to install'); - return $err; - } - } - if (isset($info['deprecated']) && $info['deprecated']) { - $this->_downloader->log(0, - 'WARNING: "' . - $this->_registry->parsedPackageNameToString( - array('channel' => $info['info']->getChannel(), - 'package' => $info['info']->getPackage()), true) . - '" is deprecated in favor of "' . - $this->_registry->parsedPackageNameToString($info['deprecated'], true) . - '"'); - } - return $info; - } -} -?> diff --git a/src/vitis/vas/rest/class/PEAR/ErrorStack.php b/src/vitis/vas/rest/class/PEAR/ErrorStack.php deleted file mode 100755 index ad049011..00000000 --- a/src/vitis/vas/rest/class/PEAR/ErrorStack.php +++ /dev/null @@ -1,985 +0,0 @@ -<?php -/** - * Error Stack Implementation - * - * This is an incredibly simple implementation of a very complex error handling - * facility. It contains the ability - * to track multiple errors from multiple packages simultaneously. In addition, - * it can track errors of many levels, save data along with the error, context - * information such as the exact file, line number, class and function that - * generated the error, and if necessary, it can raise a traditional PEAR_Error. - * It has built-in support for PEAR::Log, to log errors as they occur - * - * Since version 0.2alpha, it is also possible to selectively ignore errors, - * through the use of an error callback, see {@link pushCallback()} - * - * Since version 0.3alpha, it is possible to specify the exception class - * returned from {@link push()} - * - * Since version PEAR1.3.2, ErrorStack no longer instantiates an exception class. This can - * still be done quite handily in an error callback or by manipulating the returned array - * @category Debugging - * @package PEAR_ErrorStack - * @author Greg Beaver <cellog@php.net> - * @copyright 2004-2008 Greg Beaver - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: ErrorStack.php,v 1.28 2008/01/03 20:26:35 cellog Exp $ - * @link http://pear.php.net/package/PEAR_ErrorStack - */ - -/** - * Singleton storage - * - * Format: - * <pre> - * array( - * 'package1' => PEAR_ErrorStack object, - * 'package2' => PEAR_ErrorStack object, - * ... - * ) - * </pre> - * @access private - * @global array $GLOBALS['_PEAR_ERRORSTACK_SINGLETON'] - */ -$GLOBALS['_PEAR_ERRORSTACK_SINGLETON'] = array(); - -/** - * Global error callback (default) - * - * This is only used if set to non-false. * is the default callback for - * all packages, whereas specific packages may set a default callback - * for all instances, regardless of whether they are a singleton or not. - * - * To exclude non-singletons, only set the local callback for the singleton - * @see PEAR_ErrorStack::setDefaultCallback() - * @access private - * @global array $GLOBALS['_PEAR_ERRORSTACK_DEFAULT_CALLBACK'] - */ -$GLOBALS['_PEAR_ERRORSTACK_DEFAULT_CALLBACK'] = array( - '*' => false, -); - -/** - * Global Log object (default) - * - * This is only used if set to non-false. Use to set a default log object for - * all stacks, regardless of instantiation order or location - * @see PEAR_ErrorStack::setDefaultLogger() - * @access private - * @global array $GLOBALS['_PEAR_ERRORSTACK_DEFAULT_LOGGER'] - */ -$GLOBALS['_PEAR_ERRORSTACK_DEFAULT_LOGGER'] = false; - -/** - * Global Overriding Callback - * - * This callback will override any error callbacks that specific loggers have set. - * Use with EXTREME caution - * @see PEAR_ErrorStack::staticPushCallback() - * @access private - * @global array $GLOBALS['_PEAR_ERRORSTACK_DEFAULT_LOGGER'] - */ -$GLOBALS['_PEAR_ERRORSTACK_OVERRIDE_CALLBACK'] = array(); - -/**#@+ - * One of four possible return values from the error Callback - * @see PEAR_ErrorStack::_errorCallback() - */ -/** - * If this is returned, then the error will be both pushed onto the stack - * and logged. - */ -define('PEAR_ERRORSTACK_PUSHANDLOG', 1); -/** - * If this is returned, then the error will only be pushed onto the stack, - * and not logged. - */ -define('PEAR_ERRORSTACK_PUSH', 2); -/** - * If this is returned, then the error will only be logged, but not pushed - * onto the error stack. - */ -define('PEAR_ERRORSTACK_LOG', 3); -/** - * If this is returned, then the error is completely ignored. - */ -define('PEAR_ERRORSTACK_IGNORE', 4); -/** - * If this is returned, then the error is logged and die() is called. - */ -define('PEAR_ERRORSTACK_DIE', 5); -/**#@-*/ - -/** - * Error code for an attempt to instantiate a non-class as a PEAR_ErrorStack in - * the singleton method. - */ -define('PEAR_ERRORSTACK_ERR_NONCLASS', 1); - -/** - * Error code for an attempt to pass an object into {@link PEAR_ErrorStack::getMessage()} - * that has no __toString() method - */ -define('PEAR_ERRORSTACK_ERR_OBJTOSTRING', 2); -/** - * Error Stack Implementation - * - * Usage: - * <code> - * // global error stack - * $global_stack = &PEAR_ErrorStack::singleton('MyPackage'); - * // local error stack - * $local_stack = new PEAR_ErrorStack('MyPackage'); - * </code> - * @author Greg Beaver <cellog@php.net> - * @version 1.7.2 - * @package PEAR_ErrorStack - * @category Debugging - * @copyright 2004-2008 Greg Beaver - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: ErrorStack.php,v 1.28 2008/01/03 20:26:35 cellog Exp $ - * @link http://pear.php.net/package/PEAR_ErrorStack - */ -class PEAR_ErrorStack { - /** - * Errors are stored in the order that they are pushed on the stack. - * @since 0.4alpha Errors are no longer organized by error level. - * This renders pop() nearly unusable, and levels could be more easily - * handled in a callback anyway - * @var array - * @access private - */ - var $_errors = array(); - - /** - * Storage of errors by level. - * - * Allows easy retrieval and deletion of only errors from a particular level - * @since PEAR 1.4.0dev - * @var array - * @access private - */ - var $_errorsByLevel = array(); - - /** - * Package name this error stack represents - * @var string - * @access protected - */ - var $_package; - - /** - * Determines whether a PEAR_Error is thrown upon every error addition - * @var boolean - * @access private - */ - var $_compat = false; - - /** - * If set to a valid callback, this will be used to generate the error - * message from the error code, otherwise the message passed in will be - * used - * @var false|string|array - * @access private - */ - var $_msgCallback = false; - - /** - * If set to a valid callback, this will be used to generate the error - * context for an error. For PHP-related errors, this will be a file - * and line number as retrieved from debug_backtrace(), but can be - * customized for other purposes. The error might actually be in a separate - * configuration file, or in a database query. - * @var false|string|array - * @access protected - */ - var $_contextCallback = false; - - /** - * If set to a valid callback, this will be called every time an error - * is pushed onto the stack. The return value will be used to determine - * whether to allow an error to be pushed or logged. - * - * The return value must be one an PEAR_ERRORSTACK_* constant - * @see PEAR_ERRORSTACK_PUSHANDLOG, PEAR_ERRORSTACK_PUSH, PEAR_ERRORSTACK_LOG - * @var false|string|array - * @access protected - */ - var $_errorCallback = array(); - - /** - * PEAR::Log object for logging errors - * @var false|Log - * @access protected - */ - var $_logger = false; - - /** - * Error messages - designed to be overridden - * @var array - * @abstract - */ - var $_errorMsgs = array(); - - /** - * Set up a new error stack - * - * @param string $package name of the package this error stack represents - * @param callback $msgCallback callback used for error message generation - * @param callback $contextCallback callback used for context generation, - * defaults to {@link getFileLine()} - * @param boolean $throwPEAR_Error - */ - function PEAR_ErrorStack($package, $msgCallback = false, $contextCallback = false, - $throwPEAR_Error = false) - { - $this->_package = $package; - $this->setMessageCallback($msgCallback); - $this->setContextCallback($contextCallback); - $this->_compat = $throwPEAR_Error; - } - - /** - * Return a single error stack for this package. - * - * Note that all parameters are ignored if the stack for package $package - * has already been instantiated - * @param string $package name of the package this error stack represents - * @param callback $msgCallback callback used for error message generation - * @param callback $contextCallback callback used for context generation, - * defaults to {@link getFileLine()} - * @param boolean $throwPEAR_Error - * @param string $stackClass class to instantiate - * @static - * @return PEAR_ErrorStack - */ - function &singleton($package, $msgCallback = false, $contextCallback = false, - $throwPEAR_Error = false, $stackClass = 'PEAR_ErrorStack') - { - if (isset($GLOBALS['_PEAR_ERRORSTACK_SINGLETON'][$package])) { - return $GLOBALS['_PEAR_ERRORSTACK_SINGLETON'][$package]; - } - if (!class_exists($stackClass)) { - if (function_exists('debug_backtrace')) { - $trace = debug_backtrace(); - } - PEAR_ErrorStack::staticPush('PEAR_ErrorStack', PEAR_ERRORSTACK_ERR_NONCLASS, - 'exception', array('stackclass' => $stackClass), - 'stack class "%stackclass%" is not a valid class name (should be like PEAR_ErrorStack)', - false, $trace); - } - $GLOBALS['_PEAR_ERRORSTACK_SINGLETON'][$package] = - new $stackClass($package, $msgCallback, $contextCallback, $throwPEAR_Error); - - return $GLOBALS['_PEAR_ERRORSTACK_SINGLETON'][$package]; - } - - /** - * Internal error handler for PEAR_ErrorStack class - * - * Dies if the error is an exception (and would have died anyway) - * @access private - */ - function _handleError($err) - { - if ($err['level'] == 'exception') { - $message = $err['message']; - if (isset($_SERVER['REQUEST_URI'])) { - echo '<br />'; - } else { - echo "\n"; - } - var_dump($err['context']); - die($message); - } - } - - /** - * Set up a PEAR::Log object for all error stacks that don't have one - * @param Log $log - * @static - */ - function setDefaultLogger(&$log) - { - if (is_object($log) && method_exists($log, 'log') ) { - $GLOBALS['_PEAR_ERRORSTACK_DEFAULT_LOGGER'] = &$log; - } elseif (is_callable($log)) { - $GLOBALS['_PEAR_ERRORSTACK_DEFAULT_LOGGER'] = &$log; - } - } - - /** - * Set up a PEAR::Log object for this error stack - * @param Log $log - */ - function setLogger(&$log) - { - if (is_object($log) && method_exists($log, 'log') ) { - $this->_logger = &$log; - } elseif (is_callable($log)) { - $this->_logger = &$log; - } - } - - /** - * Set an error code => error message mapping callback - * - * This method sets the callback that can be used to generate error - * messages for any instance - * @param array|string Callback function/method - */ - function setMessageCallback($msgCallback) - { - if (!$msgCallback) { - $this->_msgCallback = array(&$this, 'getErrorMessage'); - } else { - if (is_callable($msgCallback)) { - $this->_msgCallback = $msgCallback; - } - } - } - - /** - * Get an error code => error message mapping callback - * - * This method returns the current callback that can be used to generate error - * messages - * @return array|string|false Callback function/method or false if none - */ - function getMessageCallback() - { - return $this->_msgCallback; - } - - /** - * Sets a default callback to be used by all error stacks - * - * This method sets the callback that can be used to generate error - * messages for a singleton - * @param array|string Callback function/method - * @param string Package name, or false for all packages - * @static - */ - function setDefaultCallback($callback = false, $package = false) - { - if (!is_callable($callback)) { - $callback = false; - } - $package = $package ? $package : '*'; - $GLOBALS['_PEAR_ERRORSTACK_DEFAULT_CALLBACK'][$package] = $callback; - } - - /** - * Set a callback that generates context information (location of error) for an error stack - * - * This method sets the callback that can be used to generate context - * information for an error. Passing in NULL will disable context generation - * and remove the expensive call to debug_backtrace() - * @param array|string|null Callback function/method - */ - function setContextCallback($contextCallback) - { - if ($contextCallback === null) { - return $this->_contextCallback = false; - } - if (!$contextCallback) { - $this->_contextCallback = array(&$this, 'getFileLine'); - } else { - if (is_callable($contextCallback)) { - $this->_contextCallback = $contextCallback; - } - } - } - - /** - * Set an error Callback - * If set to a valid callback, this will be called every time an error - * is pushed onto the stack. The return value will be used to determine - * whether to allow an error to be pushed or logged. - * - * The return value must be one of the ERRORSTACK_* constants. - * - * This functionality can be used to emulate PEAR's pushErrorHandling, and - * the PEAR_ERROR_CALLBACK mode, without affecting the integrity of - * the error stack or logging - * @see PEAR_ERRORSTACK_PUSHANDLOG, PEAR_ERRORSTACK_PUSH, PEAR_ERRORSTACK_LOG - * @see popCallback() - * @param string|array $cb - */ - function pushCallback($cb) - { - array_push($this->_errorCallback, $cb); - } - - /** - * Remove a callback from the error callback stack - * @see pushCallback() - * @return array|string|false - */ - function popCallback() - { - if (!count($this->_errorCallback)) { - return false; - } - return array_pop($this->_errorCallback); - } - - /** - * Set a temporary overriding error callback for every package error stack - * - * Use this to temporarily disable all existing callbacks (can be used - * to emulate the @ operator, for instance) - * @see PEAR_ERRORSTACK_PUSHANDLOG, PEAR_ERRORSTACK_PUSH, PEAR_ERRORSTACK_LOG - * @see staticPopCallback(), pushCallback() - * @param string|array $cb - * @static - */ - function staticPushCallback($cb) - { - array_push($GLOBALS['_PEAR_ERRORSTACK_OVERRIDE_CALLBACK'], $cb); - } - - /** - * Remove a temporary overriding error callback - * @see staticPushCallback() - * @return array|string|false - * @static - */ - function staticPopCallback() - { - $ret = array_pop($GLOBALS['_PEAR_ERRORSTACK_OVERRIDE_CALLBACK']); - if (!is_array($GLOBALS['_PEAR_ERRORSTACK_OVERRIDE_CALLBACK'])) { - $GLOBALS['_PEAR_ERRORSTACK_OVERRIDE_CALLBACK'] = array(); - } - return $ret; - } - - /** - * Add an error to the stack - * - * If the message generator exists, it is called with 2 parameters. - * - the current Error Stack object - * - an array that is in the same format as an error. Available indices - * are 'code', 'package', 'time', 'params', 'level', and 'context' - * - * Next, if the error should contain context information, this is - * handled by the context grabbing method. - * Finally, the error is pushed onto the proper error stack - * @param int $code Package-specific error code - * @param string $level Error level. This is NOT spell-checked - * @param array $params associative array of error parameters - * @param string $msg Error message, or a portion of it if the message - * is to be generated - * @param array $repackage If this error re-packages an error pushed by - * another package, place the array returned from - * {@link pop()} in this parameter - * @param array $backtrace Protected parameter: use this to pass in the - * {@link debug_backtrace()} that should be used - * to find error context - * @return PEAR_Error|array if compatibility mode is on, a PEAR_Error is also - * thrown. If a PEAR_Error is returned, the userinfo - * property is set to the following array: - * - * <code> - * array( - * 'code' => $code, - * 'params' => $params, - * 'package' => $this->_package, - * 'level' => $level, - * 'time' => time(), - * 'context' => $context, - * 'message' => $msg, - * //['repackage' => $err] repackaged error array/Exception class - * ); - * </code> - * - * Normally, the previous array is returned. - */ - function push($code, $level = 'error', $params = array(), $msg = false, - $repackage = false, $backtrace = false) - { - $context = false; - // grab error context - if ($this->_contextCallback) { - if (!$backtrace) { - $backtrace = debug_backtrace(); - } - $context = call_user_func($this->_contextCallback, $code, $params, $backtrace); - } - - // save error - $time = explode(' ', microtime()); - $time = $time[1] + $time[0]; - $err = array( - 'code' => $code, - 'params' => $params, - 'package' => $this->_package, - 'level' => $level, - 'time' => $time, - 'context' => $context, - 'message' => $msg, - ); - - if ($repackage) { - $err['repackage'] = $repackage; - } - - // set up the error message, if necessary - if ($this->_msgCallback) { - $msg = call_user_func_array($this->_msgCallback, - array(&$this, $err)); - $err['message'] = $msg; - } - $push = $log = true; - $die = false; - // try the overriding callback first - $callback = $this->staticPopCallback(); - if ($callback) { - $this->staticPushCallback($callback); - } - if (!is_callable($callback)) { - // try the local callback next - $callback = $this->popCallback(); - if (is_callable($callback)) { - $this->pushCallback($callback); - } else { - // try the default callback - $callback = isset($GLOBALS['_PEAR_ERRORSTACK_DEFAULT_CALLBACK'][$this->_package]) ? - $GLOBALS['_PEAR_ERRORSTACK_DEFAULT_CALLBACK'][$this->_package] : - $GLOBALS['_PEAR_ERRORSTACK_DEFAULT_CALLBACK']['*']; - } - } - if (is_callable($callback)) { - switch(call_user_func($callback, $err)){ - case PEAR_ERRORSTACK_IGNORE: - return $err; - break; - case PEAR_ERRORSTACK_PUSH: - $log = false; - break; - case PEAR_ERRORSTACK_LOG: - $push = false; - break; - case PEAR_ERRORSTACK_DIE: - $die = true; - break; - // anything else returned has the same effect as pushandlog - } - } - if ($push) { - array_unshift($this->_errors, $err); - if (!isset($this->_errorsByLevel[$err['level']])) { - $this->_errorsByLevel[$err['level']] = array(); - } - $this->_errorsByLevel[$err['level']][] = &$this->_errors[0]; - } - if ($log) { - if ($this->_logger || $GLOBALS['_PEAR_ERRORSTACK_DEFAULT_LOGGER']) { - $this->_log($err); - } - } - if ($die) { - die(); - } - if ($this->_compat && $push) { - return $this->raiseError($msg, $code, null, null, $err); - } - return $err; - } - - /** - * Static version of {@link push()} - * - * @param string $package Package name this error belongs to - * @param int $code Package-specific error code - * @param string $level Error level. This is NOT spell-checked - * @param array $params associative array of error parameters - * @param string $msg Error message, or a portion of it if the message - * is to be generated - * @param array $repackage If this error re-packages an error pushed by - * another package, place the array returned from - * {@link pop()} in this parameter - * @param array $backtrace Protected parameter: use this to pass in the - * {@link debug_backtrace()} that should be used - * to find error context - * @return PEAR_Error|array if compatibility mode is on, a PEAR_Error is also - * thrown. see docs for {@link push()} - * @static - */ - function staticPush($package, $code, $level = 'error', $params = array(), - $msg = false, $repackage = false, $backtrace = false) - { - $s = &PEAR_ErrorStack::singleton($package); - if ($s->_contextCallback) { - if (!$backtrace) { - if (function_exists('debug_backtrace')) { - $backtrace = debug_backtrace(); - } - } - } - return $s->push($code, $level, $params, $msg, $repackage, $backtrace); - } - - /** - * Log an error using PEAR::Log - * @param array $err Error array - * @param array $levels Error level => Log constant map - * @access protected - */ - function _log($err) - { - if ($this->_logger) { - $logger = &$this->_logger; - } else { - $logger = &$GLOBALS['_PEAR_ERRORSTACK_DEFAULT_LOGGER']; - } - if (is_a($logger, 'Log')) { - $levels = array( - 'exception' => PEAR_LOG_CRIT, - 'alert' => PEAR_LOG_ALERT, - 'critical' => PEAR_LOG_CRIT, - 'error' => PEAR_LOG_ERR, - 'warning' => PEAR_LOG_WARNING, - 'notice' => PEAR_LOG_NOTICE, - 'info' => PEAR_LOG_INFO, - 'debug' => PEAR_LOG_DEBUG); - if (isset($levels[$err['level']])) { - $level = $levels[$err['level']]; - } else { - $level = PEAR_LOG_INFO; - } - $logger->log($err['message'], $level, $err); - } else { // support non-standard logs - call_user_func($logger, $err); - } - } - - - /** - * Pop an error off of the error stack - * - * @return false|array - * @since 0.4alpha it is no longer possible to specify a specific error - * level to return - the last error pushed will be returned, instead - */ - function pop() - { - $err = @array_shift($this->_errors); - if (!is_null($err)) { - @array_pop($this->_errorsByLevel[$err['level']]); - if (!count($this->_errorsByLevel[$err['level']])) { - unset($this->_errorsByLevel[$err['level']]); - } - } - return $err; - } - - /** - * Pop an error off of the error stack, static method - * - * @param string package name - * @return boolean - * @since PEAR1.5.0a1 - */ - function staticPop($package) - { - if ($package) { - if (!isset($GLOBALS['_PEAR_ERRORSTACK_SINGLETON'][$package])) { - return false; - } - return $GLOBALS['_PEAR_ERRORSTACK_SINGLETON'][$package]->pop(); - } - } - - /** - * Determine whether there are any errors on the stack - * @param string|array Level name. Use to determine if any errors - * of level (string), or levels (array) have been pushed - * @return boolean - */ - function hasErrors($level = false) - { - if ($level) { - return isset($this->_errorsByLevel[$level]); - } - return count($this->_errors); - } - - /** - * Retrieve all errors since last purge - * - * @param boolean set in order to empty the error stack - * @param string level name, to return only errors of a particular severity - * @return array - */ - function getErrors($purge = false, $level = false) - { - if (!$purge) { - if ($level) { - if (!isset($this->_errorsByLevel[$level])) { - return array(); - } else { - return $this->_errorsByLevel[$level]; - } - } else { - return $this->_errors; - } - } - if ($level) { - $ret = $this->_errorsByLevel[$level]; - foreach ($this->_errorsByLevel[$level] as $i => $unused) { - // entries are references to the $_errors array - $this->_errorsByLevel[$level][$i] = false; - } - // array_filter removes all entries === false - $this->_errors = array_filter($this->_errors); - unset($this->_errorsByLevel[$level]); - return $ret; - } - $ret = $this->_errors; - $this->_errors = array(); - $this->_errorsByLevel = array(); - return $ret; - } - - /** - * Determine whether there are any errors on a single error stack, or on any error stack - * - * The optional parameter can be used to test the existence of any errors without the need of - * singleton instantiation - * @param string|false Package name to check for errors - * @param string Level name to check for a particular severity - * @return boolean - * @static - */ - function staticHasErrors($package = false, $level = false) - { - if ($package) { - if (!isset($GLOBALS['_PEAR_ERRORSTACK_SINGLETON'][$package])) { - return false; - } - return $GLOBALS['_PEAR_ERRORSTACK_SINGLETON'][$package]->hasErrors($level); - } - foreach ($GLOBALS['_PEAR_ERRORSTACK_SINGLETON'] as $package => $obj) { - if ($obj->hasErrors($level)) { - return true; - } - } - return false; - } - - /** - * Get a list of all errors since last purge, organized by package - * @since PEAR 1.4.0dev BC break! $level is now in the place $merge used to be - * @param boolean $purge Set to purge the error stack of existing errors - * @param string $level Set to a level name in order to retrieve only errors of a particular level - * @param boolean $merge Set to return a flat array, not organized by package - * @param array $sortfunc Function used to sort a merged array - default - * sorts by time, and should be good for most cases - * @static - * @return array - */ - function staticGetErrors($purge = false, $level = false, $merge = false, - $sortfunc = array('PEAR_ErrorStack', '_sortErrors')) - { - $ret = array(); - if (!is_callable($sortfunc)) { - $sortfunc = array('PEAR_ErrorStack', '_sortErrors'); - } - foreach ($GLOBALS['_PEAR_ERRORSTACK_SINGLETON'] as $package => $obj) { - $test = $GLOBALS['_PEAR_ERRORSTACK_SINGLETON'][$package]->getErrors($purge, $level); - if ($test) { - if ($merge) { - $ret = array_merge($ret, $test); - } else { - $ret[$package] = $test; - } - } - } - if ($merge) { - usort($ret, $sortfunc); - } - return $ret; - } - - /** - * Error sorting function, sorts by time - * @access private - */ - function _sortErrors($a, $b) - { - if ($a['time'] == $b['time']) { - return 0; - } - if ($a['time'] < $b['time']) { - return 1; - } - return -1; - } - - /** - * Standard file/line number/function/class context callback - * - * This function uses a backtrace generated from {@link debug_backtrace()} - * and so will not work at all in PHP < 4.3.0. The frame should - * reference the frame that contains the source of the error. - * @return array|false either array('file' => file, 'line' => line, - * 'function' => function name, 'class' => class name) or - * if this doesn't work, then false - * @param unused - * @param integer backtrace frame. - * @param array Results of debug_backtrace() - * @static - */ - function getFileLine($code, $params, $backtrace = null) - { - if ($backtrace === null) { - return false; - } - $frame = 0; - $functionframe = 1; - if (!isset($backtrace[1])) { - $functionframe = 0; - } else { - while (isset($backtrace[$functionframe]['function']) && - $backtrace[$functionframe]['function'] == 'eval' && - isset($backtrace[$functionframe + 1])) { - $functionframe++; - } - } - if (isset($backtrace[$frame])) { - if (!isset($backtrace[$frame]['file'])) { - $frame++; - } - $funcbacktrace = $backtrace[$functionframe]; - $filebacktrace = $backtrace[$frame]; - $ret = array('file' => $filebacktrace['file'], - 'line' => $filebacktrace['line']); - // rearrange for eval'd code or create function errors - if (strpos($filebacktrace['file'], '(') && - preg_match(';^(.*?)\((\d+)\) : (.*?)\\z;', $filebacktrace['file'], - $matches)) { - $ret['file'] = $matches[1]; - $ret['line'] = $matches[2] + 0; - } - if (isset($funcbacktrace['function']) && isset($backtrace[1])) { - if ($funcbacktrace['function'] != 'eval') { - if ($funcbacktrace['function'] == '__lambda_func') { - $ret['function'] = 'create_function() code'; - } else { - $ret['function'] = $funcbacktrace['function']; - } - } - } - if (isset($funcbacktrace['class']) && isset($backtrace[1])) { - $ret['class'] = $funcbacktrace['class']; - } - return $ret; - } - return false; - } - - /** - * Standard error message generation callback - * - * This method may also be called by a custom error message generator - * to fill in template values from the params array, simply - * set the third parameter to the error message template string to use - * - * The special variable %__msg% is reserved: use it only to specify - * where a message passed in by the user should be placed in the template, - * like so: - * - * Error message: %msg% - internal error - * - * If the message passed like so: - * - * <code> - * $stack->push(ERROR_CODE, 'error', array(), 'server error 500'); - * </code> - * - * The returned error message will be "Error message: server error 500 - - * internal error" - * @param PEAR_ErrorStack - * @param array - * @param string|false Pre-generated error message template - * @static - * @return string - */ - function getErrorMessage(&$stack, $err, $template = false) - { - if ($template) { - $mainmsg = $template; - } else { - $mainmsg = $stack->getErrorMessageTemplate($err['code']); - } - $mainmsg = str_replace('%__msg%', $err['message'], $mainmsg); - if (is_array($err['params']) && count($err['params'])) { - foreach ($err['params'] as $name => $val) { - if (is_array($val)) { - // @ is needed in case $val is a multi-dimensional array - $val = @implode(', ', $val); - } - if (is_object($val)) { - if (method_exists($val, '__toString')) { - $val = $val->__toString(); - } else { - PEAR_ErrorStack::staticPush('PEAR_ErrorStack', PEAR_ERRORSTACK_ERR_OBJTOSTRING, - 'warning', array('obj' => get_class($val)), - 'object %obj% passed into getErrorMessage, but has no __toString() method'); - $val = 'Object'; - } - } - $mainmsg = str_replace('%' . $name . '%', $val, $mainmsg); - } - } - return $mainmsg; - } - - /** - * Standard Error Message Template generator from code - * @return string - */ - function getErrorMessageTemplate($code) - { - if (!isset($this->_errorMsgs[$code])) { - return '%__msg%'; - } - return $this->_errorMsgs[$code]; - } - - /** - * Set the Error Message Template array - * - * The array format must be: - * <pre> - * array(error code => 'message template',...) - * </pre> - * - * Error message parameters passed into {@link push()} will be used as input - * for the error message. If the template is 'message %foo% was %bar%', and the - * parameters are array('foo' => 'one', 'bar' => 'six'), the error message returned will - * be 'message one was six' - * @return string - */ - function setErrorMessageTemplate($template) - { - $this->_errorMsgs = $template; - } - - - /** - * emulate PEAR::raiseError() - * - * @return PEAR_Error - */ - function raiseError() - { - require_once 'PEAR.php'; - $args = func_get_args(); - return call_user_func_array(array('PEAR', 'raiseError'), $args); - } -} -$stack = &PEAR_ErrorStack::singleton('PEAR_ErrorStack'); -$stack->pushCallback(array('PEAR_ErrorStack', '_handleError')); -?> diff --git a/src/vitis/vas/rest/class/PEAR/Exception.php b/src/vitis/vas/rest/class/PEAR/Exception.php deleted file mode 100755 index b3d75b20..00000000 --- a/src/vitis/vas/rest/class/PEAR/Exception.php +++ /dev/null @@ -1,397 +0,0 @@ -<?php -/* vim: set expandtab tabstop=4 shiftwidth=4 foldmethod=marker: */ -/** - * PEAR_Exception - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Tomas V. V. Cox <cox@idecnet.com> - * @author Hans Lellelid <hans@velum.net> - * @author Bertrand Mansion <bmansion@mamasam.com> - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Exception.php,v 1.29 2008/01/03 20:26:35 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 1.3.3 - */ - - -/** - * Base PEAR_Exception Class - * - * 1) Features: - * - * - Nestable exceptions (throw new PEAR_Exception($msg, $prev_exception)) - * - Definable triggers, shot when exceptions occur - * - Pretty and informative error messages - * - Added more context info available (like class, method or cause) - * - cause can be a PEAR_Exception or an array of mixed - * PEAR_Exceptions/PEAR_ErrorStack warnings - * - callbacks for specific exception classes and their children - * - * 2) Ideas: - * - * - Maybe a way to define a 'template' for the output - * - * 3) Inherited properties from PHP Exception Class: - * - * protected $message - * protected $code - * protected $line - * protected $file - * private $trace - * - * 4) Inherited methods from PHP Exception Class: - * - * __clone - * __construct - * getMessage - * getCode - * getFile - * getLine - * getTraceSafe - * getTraceSafeAsString - * __toString - * - * 5) Usage example - * - * <code> - * require_once 'PEAR/Exception.php'; - * - * class Test { - * function foo() { - * throw new PEAR_Exception('Error Message', ERROR_CODE); - * } - * } - * - * function myLogger($pear_exception) { - * echo $pear_exception->getMessage(); - * } - * // each time a exception is thrown the 'myLogger' will be called - * // (its use is completely optional) - * PEAR_Exception::addObserver('myLogger'); - * $test = new Test; - * try { - * $test->foo(); - * } catch (PEAR_Exception $e) { - * print $e; - * } - * </code> - * - * @category pear - * @package PEAR - * @author Tomas V.V.Cox <cox@idecnet.com> - * @author Hans Lellelid <hans@velum.net> - * @author Bertrand Mansion <bmansion@mamasam.com> - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 1.3.3 - * - */ -class PEAR_Exception extends Exception -{ - const OBSERVER_PRINT = -2; - const OBSERVER_TRIGGER = -4; - const OBSERVER_DIE = -8; - protected $cause; - private static $_observers = array(); - private static $_uniqueid = 0; - private $_trace; - - /** - * Supported signatures: - * - PEAR_Exception(string $message); - * - PEAR_Exception(string $message, int $code); - * - PEAR_Exception(string $message, Exception $cause); - * - PEAR_Exception(string $message, Exception $cause, int $code); - * - PEAR_Exception(string $message, PEAR_Error $cause); - * - PEAR_Exception(string $message, PEAR_Error $cause, int $code); - * - PEAR_Exception(string $message, array $causes); - * - PEAR_Exception(string $message, array $causes, int $code); - * @param string exception message - * @param int|Exception|PEAR_Error|array|null exception cause - * @param int|null exception code or null - */ - public function __construct($message, $p2 = null, $p3 = null) - { - if (is_int($p2)) { - $code = $p2; - $this->cause = null; - } elseif (is_object($p2) || is_array($p2)) { - // using is_object allows both Exception and PEAR_Error - if (is_object($p2) && !($p2 instanceof Exception)) { - if (!class_exists('PEAR_Error') || !($p2 instanceof PEAR_Error)) { - throw new PEAR_Exception('exception cause must be Exception, ' . - 'array, or PEAR_Error'); - } - } - $code = $p3; - if (is_array($p2) && isset($p2['message'])) { - // fix potential problem of passing in a single warning - $p2 = array($p2); - } - $this->cause = $p2; - } else { - $code = null; - $this->cause = null; - } - parent::__construct($message, $code); - $this->signal(); - } - - /** - * @param mixed $callback - A valid php callback, see php func is_callable() - * - A PEAR_Exception::OBSERVER_* constant - * - An array(const PEAR_Exception::OBSERVER_*, - * mixed $options) - * @param string $label The name of the observer. Use this if you want - * to remove it later with removeObserver() - */ - public static function addObserver($callback, $label = 'default') - { - self::$_observers[$label] = $callback; - } - - public static function removeObserver($label = 'default') - { - unset(self::$_observers[$label]); - } - - /** - * @return int unique identifier for an observer - */ - public static function getUniqueId() - { - return self::$_uniqueid++; - } - - private function signal() - { - foreach (self::$_observers as $func) { - if (is_callable($func)) { - call_user_func($func, $this); - continue; - } - settype($func, 'array'); - switch ($func[0]) { - case self::OBSERVER_PRINT : - $f = (isset($func[1])) ? $func[1] : '%s'; - printf($f, $this->getMessage()); - break; - case self::OBSERVER_TRIGGER : - $f = (isset($func[1])) ? $func[1] : E_USER_NOTICE; - trigger_error($this->getMessage(), $f); - break; - case self::OBSERVER_DIE : - $f = (isset($func[1])) ? $func[1] : '%s'; - die(printf($f, $this->getMessage())); - break; - default: - trigger_error('invalid observer type', E_USER_WARNING); - } - } - } - - /** - * Return specific error information that can be used for more detailed - * error messages or translation. - * - * This method may be overridden in child exception classes in order - * to add functionality not present in PEAR_Exception and is a placeholder - * to define API - * - * The returned array must be an associative array of parameter => value like so: - * <pre> - * array('name' => $name, 'context' => array(...)) - * </pre> - * @return array - */ - public function getErrorData() - { - return array(); - } - - /** - * Returns the exception that caused this exception to be thrown - * @access public - * @return Exception|array The context of the exception - */ - public function getCause() - { - return $this->cause; - } - - /** - * Function must be public to call on caused exceptions - * @param array - */ - public function getCauseMessage(&$causes) - { - $trace = $this->getTraceSafe(); - $cause = array('class' => get_class($this), - 'message' => $this->message, - 'file' => 'unknown', - 'line' => 'unknown'); - if (isset($trace[0])) { - if (isset($trace[0]['file'])) { - $cause['file'] = $trace[0]['file']; - $cause['line'] = $trace[0]['line']; - } - } - $causes[] = $cause; - if ($this->cause instanceof PEAR_Exception) { - $this->cause->getCauseMessage($causes); - } elseif ($this->cause instanceof Exception) { - $causes[] = array('class' => get_class($this->cause), - 'message' => $this->cause->getMessage(), - 'file' => $this->cause->getFile(), - 'line' => $this->cause->getLine()); - } elseif (class_exists('PEAR_Error') && $this->cause instanceof PEAR_Error) { - $causes[] = array('class' => get_class($this->cause), - 'message' => $this->cause->getMessage(), - 'file' => 'unknown', - 'line' => 'unknown'); - } elseif (is_array($this->cause)) { - foreach ($this->cause as $cause) { - if ($cause instanceof PEAR_Exception) { - $cause->getCauseMessage($causes); - } elseif ($cause instanceof Exception) { - $causes[] = array('class' => get_class($cause), - 'message' => $cause->getMessage(), - 'file' => $cause->getFile(), - 'line' => $cause->getLine()); - } elseif (class_exists('PEAR_Error') && $cause instanceof PEAR_Error) { - $causes[] = array('class' => get_class($cause), - 'message' => $cause->getMessage(), - 'file' => 'unknown', - 'line' => 'unknown'); - } elseif (is_array($cause) && isset($cause['message'])) { - // PEAR_ErrorStack warning - $causes[] = array( - 'class' => $cause['package'], - 'message' => $cause['message'], - 'file' => isset($cause['context']['file']) ? - $cause['context']['file'] : - 'unknown', - 'line' => isset($cause['context']['line']) ? - $cause['context']['line'] : - 'unknown', - ); - } - } - } - } - - public function getTraceSafe() - { - if (!isset($this->_trace)) { - $this->_trace = $this->getTrace(); - if (empty($this->_trace)) { - $backtrace = debug_backtrace(); - $this->_trace = array($backtrace[count($backtrace)-1]); - } - } - return $this->_trace; - } - - public function getErrorClass() - { - $trace = $this->getTraceSafe(); - return $trace[0]['class']; - } - - public function getErrorMethod() - { - $trace = $this->getTraceSafe(); - return $trace[0]['function']; - } - - public function __toString() - { - if (isset($_SERVER['REQUEST_URI'])) { - return $this->toHtml(); - } - return $this->toText(); - } - - public function toHtml() - { - $trace = $this->getTraceSafe(); - $causes = array(); - $this->getCauseMessage($causes); - $html = '<table border="1" cellspacing="0">' . "\n"; - foreach ($causes as $i => $cause) { - $html .= '<tr><td colspan="3" bgcolor="#ff9999">' - . str_repeat('-', $i) . ' <b>' . $cause['class'] . '</b>: ' - . htmlspecialchars($cause['message']) . ' in <b>' . $cause['file'] . '</b> ' - . 'on line <b>' . $cause['line'] . '</b>' - . "</td></tr>\n"; - } - $html .= '<tr><td colspan="3" bgcolor="#aaaaaa" align="center"><b>Exception trace</b></td></tr>' . "\n" - . '<tr><td align="center" bgcolor="#cccccc" width="20"><b>#</b></td>' - . '<td align="center" bgcolor="#cccccc"><b>Function</b></td>' - . '<td align="center" bgcolor="#cccccc"><b>Location</b></td></tr>' . "\n"; - - foreach ($trace as $k => $v) { - $html .= '<tr><td align="center">' . $k . '</td>' - . '<td>'; - if (!empty($v['class'])) { - $html .= $v['class'] . $v['type']; - } - $html .= $v['function']; - $args = array(); - if (!empty($v['args'])) { - foreach ($v['args'] as $arg) { - if (is_null($arg)) $args[] = 'null'; - elseif (is_array($arg)) $args[] = 'Array'; - elseif (is_object($arg)) $args[] = 'Object('.get_class($arg).')'; - elseif (is_bool($arg)) $args[] = $arg ? 'true' : 'false'; - elseif (is_int($arg) || is_double($arg)) $args[] = $arg; - else { - $arg = (string)$arg; - $str = htmlspecialchars(substr($arg, 0, 16)); - if (strlen($arg) > 16) $str .= '…'; - $args[] = "'" . $str . "'"; - } - } - } - $html .= '(' . implode(', ',$args) . ')' - . '</td>' - . '<td>' . (isset($v['file']) ? $v['file'] : 'unknown') - . ':' . (isset($v['line']) ? $v['line'] : 'unknown') - . '</td></tr>' . "\n"; - } - $html .= '<tr><td align="center">' . ($k+1) . '</td>' - . '<td>{main}</td>' - . '<td> </td></tr>' . "\n" - . '</table>'; - return $html; - } - - public function toText() - { - $causes = array(); - $this->getCauseMessage($causes); - $causeMsg = ''; - foreach ($causes as $i => $cause) { - $causeMsg .= str_repeat(' ', $i) . $cause['class'] . ': ' - . $cause['message'] . ' in ' . $cause['file'] - . ' on line ' . $cause['line'] . "\n"; - } - return $causeMsg . $this->getTraceAsString(); - } -} - -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/FixPHP5PEARWarnings.php b/src/vitis/vas/rest/class/PEAR/FixPHP5PEARWarnings.php deleted file mode 100755 index be5dc3ce..00000000 --- a/src/vitis/vas/rest/class/PEAR/FixPHP5PEARWarnings.php +++ /dev/null @@ -1,7 +0,0 @@ -<?php -if ($skipmsg) { - $a = &new $ec($code, $mode, $options, $userinfo); -} else { - $a = &new $ec($message, $code, $mode, $options, $userinfo); -} -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/Frontend.php b/src/vitis/vas/rest/class/PEAR/Frontend.php deleted file mode 100755 index bf7d4ba6..00000000 --- a/src/vitis/vas/rest/class/PEAR/Frontend.php +++ /dev/null @@ -1,223 +0,0 @@ -<?php -/** - * PEAR_Frontend, the singleton-based frontend for user input/output - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Frontend.php,v 1.13 2008/01/03 20:26:35 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 1.4.0a1 - */ - -/** - * Which user interface class is being used. - * @var string class name - */ -$GLOBALS['_PEAR_FRONTEND_CLASS'] = 'PEAR_Frontend_CLI'; - -/** - * Instance of $_PEAR_Command_uiclass. - * @var object - */ -$GLOBALS['_PEAR_FRONTEND_SINGLETON'] = null; - -/** - * Singleton-based frontend for PEAR user input/output - * - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 1.4.0a1 - */ -class PEAR_Frontend extends PEAR -{ - /** - * Retrieve the frontend object - * @return PEAR_Frontend_CLI|PEAR_Frontend_Web|PEAR_Frontend_Gtk - * @static - */ - function &singleton($type = null) - { - if ($type === null) { - if (!isset($GLOBALS['_PEAR_FRONTEND_SINGLETON'])) { - $a = false; - return $a; - } - return $GLOBALS['_PEAR_FRONTEND_SINGLETON']; - } else { - $a = PEAR_Frontend::setFrontendClass($type); - return $a; - } - } - - /** - * Set the frontend class that will be used by calls to {@link singleton()} - * - * Frontends are expected to conform to the PEAR naming standard of - * _ => DIRECTORY_SEPARATOR (PEAR_Frontend_CLI is in PEAR/Frontend/CLI.php) - * @param string $uiclass full class name - * @return PEAR_Frontend - * @static - */ - function &setFrontendClass($uiclass) - { - if (is_object($GLOBALS['_PEAR_FRONTEND_SINGLETON']) && - is_a($GLOBALS['_PEAR_FRONTEND_SINGLETON'], $uiclass)) { - return $GLOBALS['_PEAR_FRONTEND_SINGLETON']; - } - if (!class_exists($uiclass)) { - $file = str_replace('_', '/', $uiclass) . '.php'; - if (PEAR_Frontend::isIncludeable($file)) { - include_once $file; - } - } - if (class_exists($uiclass)) { - $obj = &new $uiclass; - // quick test to see if this class implements a few of the most - // important frontend methods - if (is_a($obj, 'PEAR_Frontend')) { - $GLOBALS['_PEAR_FRONTEND_SINGLETON'] = &$obj; - $GLOBALS['_PEAR_FRONTEND_CLASS'] = $uiclass; - return $obj; - } else { - $err = PEAR::raiseError("not a frontend class: $uiclass"); - return $err; - } - } - $err = PEAR::raiseError("no such class: $uiclass"); - return $err; - } - - /** - * Set the frontend class that will be used by calls to {@link singleton()} - * - * Frontends are expected to be a descendant of PEAR_Frontend - * @param PEAR_Frontend - * @return PEAR_Frontend - * @static - */ - function &setFrontendObject($uiobject) - { - if (is_object($GLOBALS['_PEAR_FRONTEND_SINGLETON']) && - is_a($GLOBALS['_PEAR_FRONTEND_SINGLETON'], get_class($uiobject))) { - return $GLOBALS['_PEAR_FRONTEND_SINGLETON']; - } - if (!is_a($uiobject, 'PEAR_Frontend')) { - $err = PEAR::raiseError('not a valid frontend class: (' . - get_class($uiobject) . ')'); - return $err; - } - $GLOBALS['_PEAR_FRONTEND_SINGLETON'] = &$uiobject; - $GLOBALS['_PEAR_FRONTEND_CLASS'] = get_class($uiobject); - return $uiobject; - } - - /** - * @param string $path relative or absolute include path - * @return boolean - * @static - */ - function isIncludeable($path) - { - if (file_exists($path) && is_readable($path)) { - return true; - } - $fp = @fopen($path, 'r', true); - if ($fp) { - fclose($fp); - return true; - } - return false; - } - - /** - * @param PEAR_Config - */ - function setConfig(&$config) - { - } - - /** - * This can be overridden to allow session-based temporary file management - * - * By default, all files are deleted at the end of a session. The web installer - * needs to be able to sustain a list over many sessions in order to support - * user interaction with install scripts - */ - function addTempFile($file) - { - $GLOBALS['_PEAR_Common_tempfiles'][] = $file; - } - - /** - * Log an action - * - * @param string $msg the message to log - * @param boolean $append_crlf - * @return boolean true - * @abstract - */ - function log($msg, $append_crlf = true) - { - } - - /** - * Run a post-installation script - * - * @param array $scripts array of post-install scripts - * @abstract - */ - function runPostinstallScripts(&$scripts) - { - } - - /** - * Display human-friendly output formatted depending on the - * $command parameter. - * - * This should be able to handle basic output data with no command - * @param mixed $data data structure containing the information to display - * @param string $command command from which this method was called - * @abstract - */ - function outputData($data, $command = '_default') - { - } - - /** - * Display a modal form dialog and return the given input - * - * A frontend that requires multiple requests to retrieve and process - * data must take these needs into account, and implement the request - * handling code. - * @param string $command command from which this method was called - * @param array $prompts associative array. keys are the input field names - * and values are the description - * @param array $types array of input field types (text, password, - * etc.) keys have to be the same like in $prompts - * @param array $defaults array of default values. again keys have - * to be the same like in $prompts. Do not depend - * on a default value being set. - * @return array input sent by the user - * @abstract - */ - function userDialog($command, $prompts, $types = array(), $defaults = array()) - { - } -} -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/Frontend/CLI.php b/src/vitis/vas/rest/class/PEAR/Frontend/CLI.php deleted file mode 100755 index 0655aba1..00000000 --- a/src/vitis/vas/rest/class/PEAR/Frontend/CLI.php +++ /dev/null @@ -1,794 +0,0 @@ -<?php -/** - * PEAR_Frontend_CLI - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Stig Bakken <ssb@php.net> - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: CLI.php,v 1.68 2008/01/03 20:26:36 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 0.1 - */ -/** - * base class - */ -require_once 'PEAR/Frontend.php'; - -/** - * Command-line Frontend for the PEAR Installer - * @category pear - * @package PEAR - * @author Stig Bakken <ssb@php.net> - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 0.1 - */ -class PEAR_Frontend_CLI extends PEAR_Frontend -{ - // {{{ properties - - /** - * What type of user interface this frontend is for. - * @var string - * @access public - */ - var $type = 'CLI'; - var $lp = ''; // line prefix - - var $params = array(); - var $term = array( - 'bold' => '', - 'normal' => '', - ); - - // }}} - - // {{{ constructor - - function PEAR_Frontend_CLI() - { - parent::PEAR(); - $term = getenv('TERM'); //(cox) $_ENV is empty for me in 4.1.1 - if (function_exists('posix_isatty') && !posix_isatty(1)) { - // output is being redirected to a file or through a pipe - } elseif ($term) { - // XXX can use ncurses extension here, if available - if (preg_match('/^(xterm|vt220|linux)/', $term)) { - $this->term['bold'] = sprintf("%c%c%c%c", 27, 91, 49, 109); - $this->term['normal']=sprintf("%c%c%c", 27, 91, 109); - } elseif (preg_match('/^vt100/', $term)) { - $this->term['bold'] = sprintf("%c%c%c%c%c%c", 27, 91, 49, 109, 0, 0); - $this->term['normal']=sprintf("%c%c%c%c%c", 27, 91, 109, 0, 0); - } - } elseif (OS_WINDOWS) { - // XXX add ANSI codes here - } - } - - // }}} - - // {{{ displayLine(text) - - function displayLine($text) - { - trigger_error("PEAR_Frontend_CLI::displayLine deprecated", E_USER_ERROR); - } - - function _displayLine($text) - { - print "$this->lp$text\n"; - } - - // }}} - // {{{ display(text) - - function display($text) - { - trigger_error("PEAR_Frontend_CLI::display deprecated", E_USER_ERROR); - } - - function _display($text) - { - print $text; - } - - // }}} - // {{{ displayError(eobj) - - /** - * @param object PEAR_Error object - */ - function displayError($eobj) - { - return $this->_displayLine($eobj->getMessage()); - } - - // }}} - // {{{ displayFatalError(eobj) - - /** - * @param object PEAR_Error object - */ - function displayFatalError($eobj) - { - $this->displayError($eobj); - if (class_exists('PEAR_Config')) { - $config = &PEAR_Config::singleton(); - if ($config->get('verbose') > 5) { - if (function_exists('debug_print_backtrace')) { - debug_print_backtrace(); - } elseif (function_exists('debug_backtrace')) { - $trace = debug_backtrace(); - $raised = false; - foreach ($trace as $i => $frame) { - if (!$raised) { - if (isset($frame['class']) && strtolower($frame['class']) == - 'pear' && strtolower($frame['function']) == 'raiseerror') { - $raised = true; - } else { - continue; - } - } - if (!isset($frame['class'])) { - $frame['class'] = ''; - } - if (!isset($frame['type'])) { - $frame['type'] = ''; - } - if (!isset($frame['function'])) { - $frame['function'] = ''; - } - if (!isset($frame['line'])) { - $frame['line'] = ''; - } - $this->_displayLine("#$i: $frame[class]$frame[type]$frame[function] $frame[line]"); - } - } - } - } - exit(1); - } - - // }}} - // {{{ displayHeading(title) - - function displayHeading($title) - { - trigger_error("PEAR_Frontend_CLI::displayHeading deprecated", E_USER_ERROR); - } - - function _displayHeading($title) - { - print $this->lp.$this->bold($title)."\n"; - print $this->lp.str_repeat("=", strlen($title))."\n"; - } - - // }}} - - /** - * Instruct the runInstallScript method to skip a paramgroup that matches the - * id value passed in. - * - * This method is useful for dynamically configuring which sections of a post-install script - * will be run based on the user's setup, which is very useful for making flexible - * post-install scripts without losing the cross-Frontend ability to retrieve user input - * @param string - */ - function skipParamgroup($id) - { - $this->_skipSections[$id] = true; - } - - function runPostinstallScripts(&$scripts) - { - foreach ($scripts as $i => $script) { - $this->runInstallScript($scripts[$i]->_params, $scripts[$i]->_obj); - } - } - - /** - * @param array $xml contents of postinstallscript tag - * @param object $script post-installation script - * @param string install|upgrade - */ - function runInstallScript($xml, &$script) - { - $this->_skipSections = array(); - if (!is_array($xml) || !isset($xml['paramgroup'])) { - $script->run(array(), '_default'); - } else { - $completedPhases = array(); - if (!isset($xml['paramgroup'][0])) { - $xml['paramgroup'] = array($xml['paramgroup']); - } - foreach ($xml['paramgroup'] as $group) { - if (isset($this->_skipSections[$group['id']])) { - // the post-install script chose to skip this section dynamically - continue; - } - if (isset($group['name'])) { - $paramname = explode('::', $group['name']); - if ($lastgroup['id'] != $paramname[0]) { - continue; - } - $group['name'] = $paramname[1]; - if (isset($answers)) { - if (isset($answers[$group['name']])) { - switch ($group['conditiontype']) { - case '=' : - if ($answers[$group['name']] != $group['value']) { - continue 2; - } - break; - case '!=' : - if ($answers[$group['name']] == $group['value']) { - continue 2; - } - break; - case 'preg_match' : - if (!@preg_match('/' . $group['value'] . '/', - $answers[$group['name']])) { - continue 2; - } - break; - default : - return; - } - } - } else { - return; - } - } - $lastgroup = $group; - if (isset($group['instructions'])) { - $this->_display($group['instructions']); - } - if (!isset($group['param'][0])) { - $group['param'] = array($group['param']); - } - if (isset($group['param'])) { - if (method_exists($script, 'postProcessPrompts')) { - $prompts = $script->postProcessPrompts($group['param'], $group['id']); - if (!is_array($prompts) || count($prompts) != count($group['param'])) { - $this->outputData('postinstall', 'Error: post-install script did not ' . - 'return proper post-processed prompts'); - $prompts = $group['param']; - } else { - foreach ($prompts as $i => $var) { - if (!is_array($var) || !isset($var['prompt']) || - !isset($var['name']) || - ($var['name'] != $group['param'][$i]['name']) || - ($var['type'] != $group['param'][$i]['type'])) { - $this->outputData('postinstall', 'Error: post-install script ' . - 'modified the variables or prompts, severe security risk. ' . - 'Will instead use the defaults from the package.xml'); - $prompts = $group['param']; - } - } - } - $answers = $this->confirmDialog($prompts); - } else { - $answers = $this->confirmDialog($group['param']); - } - } - if ((isset($answers) && $answers) || !isset($group['param'])) { - if (!isset($answers)) { - $answers = array(); - } - array_unshift($completedPhases, $group['id']); - if (!$script->run($answers, $group['id'])) { - $script->run($completedPhases, '_undoOnError'); - return; - } - } else { - $script->run($completedPhases, '_undoOnError'); - return; - } - } - } - } - - /** - * Ask for user input, confirm the answers and continue until the user is satisfied - * @param array an array of arrays, format array('name' => 'paramname', 'prompt' => - * 'text to display', 'type' => 'string'[, default => 'default value']) - * @return array - */ - function confirmDialog($params) - { - $answers = array(); - $prompts = $types = array(); - foreach ($params as $param) { - $prompts[$param['name']] = $param['prompt']; - $types[$param['name']] = $param['type']; - if (isset($param['default'])) { - $answers[$param['name']] = $param['default']; - } else { - $answers[$param['name']] = ''; - } - } - $tried = false; - do { - if ($tried) { - $i = 1; - foreach ($answers as $var => $value) { - if (!strlen($value)) { - echo $this->bold("* Enter an answer for #" . $i . ": ({$prompts[$var]})\n"); - } - $i++; - } - } - $answers = $this->userDialog('', $prompts, $types, $answers); - $tried = true; - } while (is_array($answers) && count(array_filter($answers)) != count($prompts)); - return $answers; - } - // {{{ userDialog(prompt, [type], [default]) - - function userDialog($command, $prompts, $types = array(), $defaults = array(), - $screensize = 20) - { - if (!is_array($prompts)) { - return array(); - } - $testprompts = array_keys($prompts); - $result = $defaults; - if (!defined('STDIN')) { - $fp = fopen('php://stdin', 'r'); - } else { - $fp = STDIN; - } - reset($prompts); - if (count($prompts) == 1 && $types[key($prompts)] == 'yesno') { - foreach ($prompts as $key => $prompt) { - $type = $types[$key]; - $default = @$defaults[$key]; - print "$prompt "; - if ($default) { - print "[$default] "; - } - print ": "; - if (version_compare(phpversion(), '5.0.0', '<')) { - $line = fgets($fp, 2048); - } else { - if (!defined('STDIN')) { - define('STDIN', fopen('php://stdin', 'r')); - } - $line = fgets(STDIN, 2048); - } - if ($default && trim($line) == "") { - $result[$key] = $default; - } else { - $result[$key] = trim($line); - } - } - return $result; - } - while (true) { - $descLength = max(array_map('strlen', $prompts)); - $descFormat = "%-{$descLength}s"; - $last = count($prompts); - - $i = 0; - foreach ($prompts as $n => $var) { - printf("%2d. $descFormat : %s\n", ++$i, $prompts[$n], isset($result[$n]) ? - $result[$n] : null); - } - - print "\n1-$last, 'all', 'abort', or Enter to continue: "; - $tmp = trim(fgets($fp, 1024)); - if (empty($tmp)) { - break; - } - if ($tmp == 'abort') { - return false; - } - if (isset($testprompts[(int)$tmp - 1])) { - $var = $testprompts[(int)$tmp - 1]; - $desc = $prompts[$var]; - $current = @$result[$var]; - print "$desc [$current] : "; - $tmp = trim(fgets($fp, 1024)); - if (trim($tmp) !== '') { - $result[$var] = trim($tmp); - } - } elseif ($tmp == 'all') { - foreach ($prompts as $var => $desc) { - $current = $result[$var]; - print "$desc [$current] : "; - $tmp = trim(fgets($fp, 1024)); - if (trim($tmp) !== '') { - $result[$var] = trim($tmp); - } - } - } - } - if (!defined('STDIN')) { - fclose($fp); - } - return $result; - } - - // }}} - // {{{ userConfirm(prompt, [default]) - - function userConfirm($prompt, $default = 'yes') - { - trigger_error("PEAR_Frontend_CLI::userConfirm not yet converted", E_USER_ERROR); - static $positives = array('y', 'yes', 'on', '1'); - static $negatives = array('n', 'no', 'off', '0'); - print "$this->lp$prompt [$default] : "; - $fp = fopen("php://stdin", "r"); - $line = fgets($fp, 2048); - fclose($fp); - $answer = strtolower(trim($line)); - if (empty($answer)) { - $answer = $default; - } - if (in_array($answer, $positives)) { - return true; - } - if (in_array($answer, $negatives)) { - return false; - } - if (in_array($default, $positives)) { - return true; - } - return false; - } - - // }}} - // {{{ startTable([params]) - - function startTable($params = array()) - { - trigger_error("PEAR_Frontend_CLI::startTable deprecated", E_USER_ERROR); - } - - function _startTable($params = array()) - { - $params['table_data'] = array(); - $params['widest'] = array(); // indexed by column - $params['highest'] = array(); // indexed by row - $params['ncols'] = 0; - $this->params = $params; - } - - // }}} - // {{{ tableRow(columns, [rowparams], [colparams]) - - function tableRow($columns, $rowparams = array(), $colparams = array()) - { - trigger_error("PEAR_Frontend_CLI::tableRow deprecated", E_USER_ERROR); - } - - function _tableRow($columns, $rowparams = array(), $colparams = array()) - { - $highest = 1; - for ($i = 0; $i < sizeof($columns); $i++) { - $col = &$columns[$i]; - if (isset($colparams[$i]) && !empty($colparams[$i]['wrap'])) { - $col = wordwrap($col, $colparams[$i]['wrap'], "\n", 0); - } - if (strpos($col, "\n") !== false) { - $multiline = explode("\n", $col); - $w = 0; - foreach ($multiline as $n => $line) { - if (strlen($line) > $w) { - $w = strlen($line); - } - } - $lines = sizeof($multiline); - } else { - $w = strlen($col); - } - - if (isset($this->params['widest'][$i])) { - if ($w > $this->params['widest'][$i]) { - $this->params['widest'][$i] = $w; - } - } else { - $this->params['widest'][$i] = $w; - } - $tmp = count_chars($columns[$i], 1); - // handle unix, mac and windows formats - $lines = (isset($tmp[10]) ? $tmp[10] : (isset($tmp[13]) ? $tmp[13] : 0)) + 1; - if ($lines > $highest) { - $highest = $lines; - } - } - if (sizeof($columns) > $this->params['ncols']) { - $this->params['ncols'] = sizeof($columns); - } - $new_row = array( - 'data' => $columns, - 'height' => $highest, - 'rowparams' => $rowparams, - 'colparams' => $colparams, - ); - $this->params['table_data'][] = $new_row; - } - - // }}} - // {{{ endTable() - - function endTable() - { - trigger_error("PEAR_Frontend_CLI::endTable deprecated", E_USER_ERROR); - } - - function _endTable() - { - extract($this->params); - if (!empty($caption)) { - $this->_displayHeading($caption); - } - if (count($table_data) == 0) { - return; - } - if (!isset($width)) { - $width = $widest; - } else { - for ($i = 0; $i < $ncols; $i++) { - if (!isset($width[$i])) { - $width[$i] = $widest[$i]; - } - } - } - $border = false; - if (empty($border)) { - $cellstart = ''; - $cellend = ' '; - $rowend = ''; - $padrowend = false; - $borderline = ''; - } else { - $cellstart = '| '; - $cellend = ' '; - $rowend = '|'; - $padrowend = true; - $borderline = '+'; - foreach ($width as $w) { - $borderline .= str_repeat('-', $w + strlen($cellstart) + strlen($cellend) - 1); - $borderline .= '+'; - } - } - if ($borderline) { - $this->_displayLine($borderline); - } - for ($i = 0; $i < sizeof($table_data); $i++) { - extract($table_data[$i]); - if (!is_array($rowparams)) { - $rowparams = array(); - } - if (!is_array($colparams)) { - $colparams = array(); - } - $rowlines = array(); - if ($height > 1) { - for ($c = 0; $c < sizeof($data); $c++) { - $rowlines[$c] = preg_split('/(\r?\n|\r)/', $data[$c]); - if (sizeof($rowlines[$c]) < $height) { - $rowlines[$c] = array_pad($rowlines[$c], $height, ''); - } - } - } else { - for ($c = 0; $c < sizeof($data); $c++) { - $rowlines[$c] = array($data[$c]); - } - } - for ($r = 0; $r < $height; $r++) { - $rowtext = ''; - for ($c = 0; $c < sizeof($data); $c++) { - if (isset($colparams[$c])) { - $attribs = array_merge($rowparams, $colparams); - } else { - $attribs = $rowparams; - } - $w = isset($width[$c]) ? $width[$c] : 0; - //$cell = $data[$c]; - $cell = $rowlines[$c][$r]; - $l = strlen($cell); - if ($l > $w) { - $cell = substr($cell, 0, $w); - } - if (isset($attribs['bold'])) { - $cell = $this->bold($cell); - } - if ($l < $w) { - // not using str_pad here because we may - // add bold escape characters to $cell - $cell .= str_repeat(' ', $w - $l); - } - - $rowtext .= $cellstart . $cell . $cellend; - } - if (!$border) { - $rowtext = rtrim($rowtext); - } - $rowtext .= $rowend; - $this->_displayLine($rowtext); - } - } - if ($borderline) { - $this->_displayLine($borderline); - } - } - - // }}} - // {{{ outputData() - - function outputData($data, $command = '_default') - { - switch ($command) { - case 'channel-info': - foreach ($data as $type => $section) { - if ($type == 'main') { - $section['data'] = array_values($section['data']); - } - $this->outputData($section); - } - break; - case 'install': - case 'upgrade': - case 'upgrade-all': - if (isset($data['release_warnings'])) { - $this->_displayLine(''); - $this->_startTable(array( - 'border' => false, - 'caption' => 'Release Warnings' - )); - $this->_tableRow(array($data['release_warnings']), null, array(1 => array('wrap' => 55))); - $this->_endTable(); - $this->_displayLine(''); - } - $this->_displayLine($data['data']); - break; - case 'search': - $this->_startTable($data); - if (isset($data['headline']) && is_array($data['headline'])) { - $this->_tableRow($data['headline'], array('bold' => true), array(1 => array('wrap' => 55))); - } - - foreach($data['data'] as $category) { - foreach($category as $pkg) { - $this->_tableRow($pkg, null, array(1 => array('wrap' => 55))); - } - }; - $this->_endTable(); - break; - case 'list-all': - if (!isset($data['data'])) { - $this->_displayLine('No packages in channel'); - break; - } - $this->_startTable($data); - if (isset($data['headline']) && is_array($data['headline'])) { - $this->_tableRow($data['headline'], array('bold' => true), array(1 => array('wrap' => 55))); - } - - foreach($data['data'] as $category) { - foreach($category as $pkg) { - unset($pkg[4]); - unset($pkg[5]); - $this->_tableRow($pkg, null, array(1 => array('wrap' => 55))); - } - }; - $this->_endTable(); - break; - case 'config-show': - $data['border'] = false; - $opts = array(0 => array('wrap' => 30), - 1 => array('wrap' => 20), - 2 => array('wrap' => 35)); - $this->_startTable($data); - if (isset($data['headline']) && is_array($data['headline'])) { - $this->_tableRow($data['headline'], - array('bold' => true), - $opts); - } - foreach($data['data'] as $group) { - foreach($group as $value) { - if ($value[2] == '') { - $value[2] = "<not set>"; - } - $this->_tableRow($value, null, $opts); - } - } - $this->_endTable(); - break; - case 'remote-info': - $d = $data; - $data = array( - 'caption' => 'Package details:', - 'border' => false, - 'data' => array( - array("Latest", $data['stable']), - array("Installed", $data['installed']), - array("Package", $data['name']), - array("License", $data['license']), - array("Category", $data['category']), - array("Summary", $data['summary']), - array("Description", $data['description']), - ), - ); - if (isset($d['deprecated']) && $d['deprecated']) { - $conf = &PEAR_Config::singleton(); - $reg = $conf->getRegistry(); - $name = $reg->parsedPackageNameToString($d['deprecated'], true); - $data['data'][] = array('Deprecated! use', $name); - } - default: { - if (is_array($data)) { - $this->_startTable($data); - $count = count($data['data'][0]); - if ($count == 2) { - $opts = array(0 => array('wrap' => 25), - 1 => array('wrap' => 48) - ); - } elseif ($count == 3) { - $opts = array(0 => array('wrap' => 30), - 1 => array('wrap' => 20), - 2 => array('wrap' => 35) - ); - } else { - $opts = null; - } - if (isset($data['headline']) && is_array($data['headline'])) { - $this->_tableRow($data['headline'], - array('bold' => true), - $opts); - } - foreach($data['data'] as $row) { - $this->_tableRow($row, null, $opts); - } - $this->_endTable(); - } else { - $this->_displayLine($data); - } - } - } - } - - // }}} - // {{{ log(text) - - - function log($text, $append_crlf = true) - { - if ($append_crlf) { - return $this->_displayLine($text); - } - return $this->_display($text); - } - - - // }}} - // {{{ bold($text) - - function bold($text) - { - if (empty($this->term['bold'])) { - return strtoupper($text); - } - return $this->term['bold'] . $text . $this->term['normal']; - } - - // }}} -} - -?> diff --git a/src/vitis/vas/rest/class/PEAR/Installer.php b/src/vitis/vas/rest/class/PEAR/Installer.php deleted file mode 100755 index d3f31621..00000000 --- a/src/vitis/vas/rest/class/PEAR/Installer.php +++ /dev/null @@ -1,1723 +0,0 @@ -<?php -/** - * PEAR_Installer - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Stig Bakken <ssb@php.net> - * @author Tomas V.V. Cox <cox@idecnet.com> - * @author Martin Jansen <mj@php.net> - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Installer.php,v 1.253 2008/05/13 22:46:07 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 0.1 - */ - -/** - * Used for installation groups in package.xml 2.0 and platform exceptions - */ -require_once 'OS/Guess.php'; -require_once 'PEAR/Downloader.php'; - -define('PEAR_INSTALLER_NOBINARY', -240); -/** - * Administration class used to install PEAR packages and maintain the - * installed package database. - * - * @category pear - * @package PEAR - * @author Stig Bakken <ssb@php.net> - * @author Tomas V.V. Cox <cox@idecnet.com> - * @author Martin Jansen <mj@php.net> - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 0.1 - */ -class PEAR_Installer extends PEAR_Downloader -{ - // {{{ properties - - /** name of the package directory, for example Foo-1.0 - * @var string - */ - var $pkgdir; - - /** directory where PHP code files go - * @var string - */ - var $phpdir; - - /** directory where PHP extension files go - * @var string - */ - var $extdir; - - /** directory where documentation goes - * @var string - */ - var $docdir; - - /** installation root directory (ala PHP's INSTALL_ROOT or - * automake's DESTDIR - * @var string - */ - var $installroot = ''; - - /** debug level - * @var int - */ - var $debug = 1; - - /** temporary directory - * @var string - */ - var $tmpdir; - - /** - * PEAR_Registry object used by the installer - * @var PEAR_Registry - */ - var $registry; - - /** - * array of PEAR_Downloader_Packages - * @var array - */ - var $_downloadedPackages; - - /** List of file transactions queued for an install/upgrade/uninstall. - * - * Format: - * array( - * 0 => array("rename => array("from-file", "to-file")), - * 1 => array("delete" => array("file-to-delete")), - * ... - * ) - * - * @var array - */ - var $file_operations = array(); - - // }}} - - // {{{ constructor - - /** - * PEAR_Installer constructor. - * - * @param object $ui user interface object (instance of PEAR_Frontend_*) - * - * @access public - */ - function PEAR_Installer(&$ui) - { - parent::PEAR_Common(); - $this->setFrontendObject($ui); - $this->debug = $this->config->get('verbose'); - } - - function setOptions($options) - { - $this->_options = $options; - } - - function setConfig(&$config) - { - $this->config = &$config; - $this->_registry = &$config->getRegistry(); - } - - // }}} - - function _removeBackups($files) - { - foreach ($files as $path) { - $this->addFileOperation('removebackup', array($path)); - } - } - - // {{{ _deletePackageFiles() - - /** - * Delete a package's installed files, does not remove empty directories. - * - * @param string package name - * @param string channel name - * @param bool if true, then files are backed up first - * @return bool TRUE on success, or a PEAR error on failure - * @access protected - */ - function _deletePackageFiles($package, $channel = false, $backup = false) - { - if (!$channel) { - $channel = 'pear.php.net'; - } - if (!strlen($package)) { - return $this->raiseError("No package to uninstall given"); - } - if (strtolower($package) == 'pear' && $channel == 'pear.php.net') { - // to avoid race conditions, include all possible needed files - require_once 'PEAR/Task/Common.php'; - require_once 'PEAR/Task/Replace.php'; - require_once 'PEAR/Task/Unixeol.php'; - require_once 'PEAR/Task/Windowseol.php'; - require_once 'PEAR/PackageFile/v1.php'; - require_once 'PEAR/PackageFile/v2.php'; - require_once 'PEAR/PackageFile/Generator/v1.php'; - require_once 'PEAR/PackageFile/Generator/v2.php'; - } - $filelist = $this->_registry->packageInfo($package, 'filelist', $channel); - if ($filelist == null) { - return $this->raiseError("$channel/$package not installed"); - } - $ret = array(); - foreach ($filelist as $file => $props) { - if (empty($props['installed_as'])) { - continue; - } - $path = $props['installed_as']; - if ($backup) { - $this->addFileOperation('backup', array($path)); - $ret[] = $path; - } - $this->addFileOperation('delete', array($path)); - } - if ($backup) { - return $ret; - } - return true; - } - - // }}} - // {{{ _installFile() - - /** - * @param string filename - * @param array attributes from <file> tag in package.xml - * @param string path to install the file in - * @param array options from command-line - * @access private - */ - function _installFile($file, $atts, $tmp_path, $options) - { - // {{{ return if this file is meant for another platform - static $os; - if (!isset($this->_registry)) { - $this->_registry = &$this->config->getRegistry(); - } - if (isset($atts['platform'])) { - if (empty($os)) { - $os = new OS_Guess(); - } - if (strlen($atts['platform']) && $atts['platform']{0} == '!') { - $negate = true; - $platform = substr($atts['platform'], 1); - } else { - $negate = false; - $platform = $atts['platform']; - } - if ((bool) $os->matchSignature($platform) === $negate) { - $this->log(3, "skipped $file (meant for $atts[platform], we are ".$os->getSignature().")"); - return PEAR_INSTALLER_SKIPPED; - } - } - // }}} - - $channel = $this->pkginfo->getChannel(); - // {{{ assemble the destination paths - switch ($atts['role']) { - case 'src': - case 'extsrc': - $this->source_files++; - return; - case 'doc': - case 'data': - case 'test': - $dest_dir = $this->config->get($atts['role'] . '_dir', null, $channel) . - DIRECTORY_SEPARATOR . $this->pkginfo->getPackage(); - unset($atts['baseinstalldir']); - break; - case 'ext': - case 'php': - $dest_dir = $this->config->get($atts['role'] . '_dir', null, $channel); - break; - case 'script': - $dest_dir = $this->config->get('bin_dir', null, $channel); - break; - default: - return $this->raiseError("Invalid role `$atts[role]' for file $file"); - } - $save_destdir = $dest_dir; - if (!empty($atts['baseinstalldir'])) { - $dest_dir .= DIRECTORY_SEPARATOR . $atts['baseinstalldir']; - } - if (dirname($file) != '.' && empty($atts['install-as'])) { - $dest_dir .= DIRECTORY_SEPARATOR . dirname($file); - } - if (empty($atts['install-as'])) { - $dest_file = $dest_dir . DIRECTORY_SEPARATOR . basename($file); - } else { - $dest_file = $dest_dir . DIRECTORY_SEPARATOR . $atts['install-as']; - } - $orig_file = $tmp_path . DIRECTORY_SEPARATOR . $file; - - // Clean up the DIRECTORY_SEPARATOR mess - $ds2 = DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR; - list($dest_file, $orig_file) = preg_replace(array('!\\\\+!', '!/!', "!$ds2+!"), - array(DIRECTORY_SEPARATOR, - DIRECTORY_SEPARATOR, - DIRECTORY_SEPARATOR), - array($dest_file, $orig_file)); - $final_dest_file = $installed_as = $dest_file; - if (isset($this->_options['packagingroot'])) { - $installedas_dest_dir = dirname($final_dest_file); - $installedas_dest_file = $dest_dir . DIRECTORY_SEPARATOR . '.tmp' . basename($final_dest_file); - $final_dest_file = $this->_prependPath($final_dest_file, - $this->_options['packagingroot']); - } else { - $installedas_dest_dir = dirname($final_dest_file); - $installedas_dest_file = $installedas_dest_dir . DIRECTORY_SEPARATOR . '.tmp' . basename($final_dest_file); - } - $dest_dir = dirname($final_dest_file); - $dest_file = $dest_dir . DIRECTORY_SEPARATOR . '.tmp' . basename($final_dest_file); - if (preg_match('~/\.\.(/|\\z)|^\.\./~', str_replace('\\', '/', $dest_file))) { - return $this->raiseError("SECURITY ERROR: file $file (installed to $dest_file) contains parent directory reference ..", PEAR_INSTALLER_FAILED); - } - // }}} - - if (empty($this->_options['register-only']) && - (!file_exists($dest_dir) || !is_dir($dest_dir))) { - if (!$this->mkDirHier($dest_dir)) { - return $this->raiseError("failed to mkdir $dest_dir", - PEAR_INSTALLER_FAILED); - } - $this->log(3, "+ mkdir $dest_dir"); - } - // pretty much nothing happens if we are only registering the install - if (empty($this->_options['register-only'])) { - if (empty($atts['replacements'])) { - if (!file_exists($orig_file)) { - return $this->raiseError("file $orig_file does not exist", - PEAR_INSTALLER_FAILED); - } - if (!@copy($orig_file, $dest_file)) { - return $this->raiseError("failed to write $dest_file: $php_errormsg", - PEAR_INSTALLER_FAILED); - } - $this->log(3, "+ cp $orig_file $dest_file"); - if (isset($atts['md5sum'])) { - $md5sum = md5_file($dest_file); - } - } else { - // {{{ file with replacements - if (!file_exists($orig_file)) { - return $this->raiseError("file does not exist", - PEAR_INSTALLER_FAILED); - } - $contents = file_get_contents($orig_file); - if ($contents === false) { - $contents = ''; - } - if (isset($atts['md5sum'])) { - $md5sum = md5($contents); - } - $subst_from = $subst_to = array(); - foreach ($atts['replacements'] as $a) { - $to = ''; - if ($a['type'] == 'php-const') { - if (preg_match('/^[a-z0-9_]+\\z/i', $a['to'])) { - eval("\$to = $a[to];"); - } else { - if (!isset($options['soft'])) { - $this->log(0, "invalid php-const replacement: $a[to]"); - } - continue; - } - } elseif ($a['type'] == 'pear-config') { - if ($a['to'] == 'master_server') { - $chan = $this->_registry->getChannel($channel); - if (!PEAR::isError($chan)) { - $to = $chan->getServer(); - } else { - $to = $this->config->get($a['to'], null, $channel); - } - } else { - $to = $this->config->get($a['to'], null, $channel); - } - if (is_null($to)) { - if (!isset($options['soft'])) { - $this->log(0, "invalid pear-config replacement: $a[to]"); - } - continue; - } - } elseif ($a['type'] == 'package-info') { - if ($t = $this->pkginfo->packageInfo($a['to'])) { - $to = $t; - } else { - if (!isset($options['soft'])) { - $this->log(0, "invalid package-info replacement: $a[to]"); - } - continue; - } - } - if (!is_null($to)) { - $subst_from[] = $a['from']; - $subst_to[] = $to; - } - } - $this->log(3, "doing ".sizeof($subst_from)." substitution(s) for $final_dest_file"); - if (sizeof($subst_from)) { - $contents = str_replace($subst_from, $subst_to, $contents); - } - $wp = @fopen($dest_file, "wb"); - if (!is_resource($wp)) { - return $this->raiseError("failed to create $dest_file: $php_errormsg", - PEAR_INSTALLER_FAILED); - } - if (@fwrite($wp, $contents) === false) { - return $this->raiseError("failed writing to $dest_file: $php_errormsg", - PEAR_INSTALLER_FAILED); - } - fclose($wp); - // }}} - } - // {{{ check the md5 - if (isset($md5sum)) { - if (strtolower($md5sum) === strtolower($atts['md5sum'])) { - $this->log(2, "md5sum ok: $final_dest_file"); - } else { - if (empty($options['force'])) { - // delete the file - if (file_exists($dest_file)) { - unlink($dest_file); - } - if (!isset($options['ignore-errors'])) { - return $this->raiseError("bad md5sum for file $final_dest_file", - PEAR_INSTALLER_FAILED); - } else { - if (!isset($options['soft'])) { - $this->log(0, "warning : bad md5sum for file $final_dest_file"); - } - } - } else { - if (!isset($options['soft'])) { - $this->log(0, "warning : bad md5sum for file $final_dest_file"); - } - } - } - } - // }}} - // {{{ set file permissions - if (!OS_WINDOWS) { - if ($atts['role'] == 'script') { - $mode = 0777 & ~(int)octdec($this->config->get('umask')); - $this->log(3, "+ chmod +x $dest_file"); - } else { - $mode = 0666 & ~(int)octdec($this->config->get('umask')); - } - if ($atts['role'] != 'src') { - $this->addFileOperation("chmod", array($mode, $dest_file)); - if (!@chmod($dest_file, $mode)) { - if (!isset($options['soft'])) { - $this->log(0, "failed to change mode of $dest_file: $php_errormsg"); - } - } - } - } - // }}} - if ($atts['role'] == 'src') { - rename($dest_file, $final_dest_file); - $this->log(2, "renamed source file $dest_file to $final_dest_file"); - } else { - $this->addFileOperation("rename", array($dest_file, $final_dest_file, - $atts['role'] == 'ext')); - } - } - // Store the full path where the file was installed for easy unistall - if ($atts['role'] != 'script') { - $loc = $this->config->get($atts['role'] . '_dir'); - } else { - $loc = $this->config->get('bin_dir'); - } - if ($atts['role'] != 'src') { - $this->addFileOperation("installed_as", array($file, $installed_as, - $loc, - dirname(substr($installedas_dest_file, strlen($loc))))); - } - - //$this->log(2, "installed: $dest_file"); - return PEAR_INSTALLER_OK; - } - - // }}} - // {{{ _installFile2() - - /** - * @param PEAR_PackageFile_v1|PEAR_PackageFile_v2 - * @param string filename - * @param array attributes from <file> tag in package.xml - * @param string path to install the file in - * @param array options from command-line - * @access private - */ - function _installFile2(&$pkg, $file, &$real_atts, $tmp_path, $options) - { - $atts = $real_atts; - if (!isset($this->_registry)) { - $this->_registry = &$this->config->getRegistry(); - } - - $channel = $pkg->getChannel(); - // {{{ assemble the destination paths - if (!in_array($atts['attribs']['role'], - PEAR_Installer_Role::getValidRoles($pkg->getPackageType()))) { - return $this->raiseError('Invalid role `' . $atts['attribs']['role'] . - "' for file $file"); - } - $role = &PEAR_Installer_Role::factory($pkg, $atts['attribs']['role'], $this->config); - $err = $role->setup($this, $pkg, $atts['attribs'], $file); - if (PEAR::isError($err)) { - return $err; - } - if (!$role->isInstallable()) { - return; - } - $info = $role->processInstallation($pkg, $atts['attribs'], $file, $tmp_path); - if (PEAR::isError($info)) { - return $info; - } else { - list($save_destdir, $dest_dir, $dest_file, $orig_file) = $info; - } - if (preg_match('~/\.\.(/|\\z)|^\.\./~', str_replace('\\', '/', $dest_file))) { - return $this->raiseError("SECURITY ERROR: file $file (installed to $dest_file) contains parent directory reference ..", PEAR_INSTALLER_FAILED); - } - $final_dest_file = $installed_as = $dest_file; - if (isset($this->_options['packagingroot'])) { - $final_dest_file = $this->_prependPath($final_dest_file, - $this->_options['packagingroot']); - } - $dest_dir = dirname($final_dest_file); - $dest_file = $dest_dir . DIRECTORY_SEPARATOR . '.tmp' . basename($final_dest_file); - // }}} - - if (empty($this->_options['register-only'])) { - if (!file_exists($dest_dir) || !is_dir($dest_dir)) { - if (!$this->mkDirHier($dest_dir)) { - return $this->raiseError("failed to mkdir $dest_dir", - PEAR_INSTALLER_FAILED); - } - $this->log(3, "+ mkdir $dest_dir"); - } - } - $attribs = $atts['attribs']; - unset($atts['attribs']); - // pretty much nothing happens if we are only registering the install - if (empty($this->_options['register-only'])) { - if (!count($atts)) { // no tasks - if (!file_exists($orig_file)) { - return $this->raiseError("file $orig_file does not exist", - PEAR_INSTALLER_FAILED); - } - if (!@copy($orig_file, $dest_file)) { - return $this->raiseError("failed to write $dest_file: $php_errormsg", - PEAR_INSTALLER_FAILED); - } - $this->log(3, "+ cp $orig_file $dest_file"); - if (isset($attribs['md5sum'])) { - $md5sum = md5_file($dest_file); - } - } else { // file with tasks - if (!file_exists($orig_file)) { - return $this->raiseError("file $orig_file does not exist", - PEAR_INSTALLER_FAILED); - } - $contents = file_get_contents($orig_file); - if ($contents === false) { - $contents = ''; - } - if (isset($attribs['md5sum'])) { - $md5sum = md5($contents); - } - foreach ($atts as $tag => $raw) { - $tag = str_replace(array($pkg->getTasksNs() . ':', '-'), - array('', '_'), $tag); - $task = "PEAR_Task_$tag"; - $task = &new $task($this->config, $this, PEAR_TASK_INSTALL); - if (!$task->isScript()) { // scripts are only handled after installation - $task->init($raw, $attribs, $pkg->getLastInstalledVersion()); - $res = $task->startSession($pkg, $contents, $final_dest_file); - if ($res === false) { - continue; // skip this file - } - if (PEAR::isError($res)) { - return $res; - } - $contents = $res; // save changes - } - $wp = @fopen($dest_file, "wb"); - if (!is_resource($wp)) { - return $this->raiseError("failed to create $dest_file: $php_errormsg", - PEAR_INSTALLER_FAILED); - } - if (fwrite($wp, $contents) === false) { - return $this->raiseError("failed writing to $dest_file: $php_errormsg", - PEAR_INSTALLER_FAILED); - } - fclose($wp); - } - } - // {{{ check the md5 - if (isset($md5sum)) { - if (strtolower($md5sum) === strtolower($attribs['md5sum'])) { - $this->log(2, "md5sum ok: $final_dest_file"); - } else { - if (empty($options['force'])) { - // delete the file - if (file_exists($dest_file)) { - unlink($dest_file); - } - if (!isset($options['ignore-errors'])) { - return $this->raiseError("bad md5sum for file $final_dest_file", - PEAR_INSTALLER_FAILED); - } else { - if (!isset($options['soft'])) { - $this->log(0, "warning : bad md5sum for file $final_dest_file"); - } - } - } else { - if (!isset($options['soft'])) { - $this->log(0, "warning : bad md5sum for file $final_dest_file"); - } - } - } - } else { - $real_atts['attribs']['md5sum'] = md5_file($dest_file); - } - // }}} - // {{{ set file permissions - if (!OS_WINDOWS) { - if ($role->isExecutable()) { - $mode = 0777 & ~(int)octdec($this->config->get('umask')); - $this->log(3, "+ chmod +x $dest_file"); - } else { - $mode = 0666 & ~(int)octdec($this->config->get('umask')); - } - if ($attribs['role'] != 'src') { - $this->addFileOperation("chmod", array($mode, $dest_file)); - if (!@chmod($dest_file, $mode)) { - if (!isset($options['soft'])) { - $this->log(0, "failed to change mode of $dest_file: $php_errormsg"); - } - } - } - } - // }}} - if ($attribs['role'] == 'src') { - rename($dest_file, $final_dest_file); - $this->log(2, "renamed source file $dest_file to $final_dest_file"); - } else { - $this->addFileOperation("rename", array($dest_file, $final_dest_file, $role->isExtension())); - } - } - // Store the full path where the file was installed for easy uninstall - if ($attribs['role'] != 'src') { - $loc = $this->config->get($role->getLocationConfig(), null, $channel); - $this->addFileOperation("installed_as", array($file, $installed_as, - $loc, - dirname(substr($installed_as, strlen($loc))))); - } - - //$this->log(2, "installed: $dest_file"); - return PEAR_INSTALLER_OK; - } - - // }}} - // {{{ addFileOperation() - - /** - * Add a file operation to the current file transaction. - * - * @see startFileTransaction() - * @param string $type This can be one of: - * - rename: rename a file ($data has 3 values) - * - backup: backup an existing file ($data has 1 value) - * - removebackup: clean up backups created during install ($data has 1 value) - * - chmod: change permissions on a file ($data has 2 values) - * - delete: delete a file ($data has 1 value) - * - rmdir: delete a directory if empty ($data has 1 value) - * - installed_as: mark a file as installed ($data has 4 values). - * @param array $data For all file operations, this array must contain the - * full path to the file or directory that is being operated on. For - * the rename command, the first parameter must be the file to rename, - * the second its new name, the third whether this is a PHP extension. - * - * The installed_as operation contains 4 elements in this order: - * 1. Filename as listed in the filelist element from package.xml - * 2. Full path to the installed file - * 3. Full path from the php_dir configuration variable used in this - * installation - * 4. Relative path from the php_dir that this file is installed in - */ - function addFileOperation($type, $data) - { - if (!is_array($data)) { - return $this->raiseError('Internal Error: $data in addFileOperation' - . ' must be an array, was ' . gettype($data)); - } - if ($type == 'chmod') { - $octmode = decoct($data[0]); - $this->log(3, "adding to transaction: $type $octmode $data[1]"); - } else { - $this->log(3, "adding to transaction: $type " . implode(" ", $data)); - } - $this->file_operations[] = array($type, $data); - } - - // }}} - // {{{ startFileTransaction() - - function startFileTransaction($rollback_in_case = false) - { - if (count($this->file_operations) && $rollback_in_case) { - $this->rollbackFileTransaction(); - } - $this->file_operations = array(); - } - - // }}} - // {{{ commitFileTransaction() - - function commitFileTransaction() - { - $n = count($this->file_operations); - $this->log(2, "about to commit $n file operations"); - // {{{ first, check permissions and such manually - $errors = array(); - foreach ($this->file_operations as $tr) { - list($type, $data) = $tr; - switch ($type) { - case 'rename': - if (!file_exists($data[0])) { - $errors[] = "cannot rename file $data[0], doesn't exist"; - } - // check that dest dir. is writable - if (!is_writable(dirname($data[1]))) { - $errors[] = "permission denied ($type): $data[1]"; - } - break; - case 'chmod': - // check that file is writable - if (!is_writable($data[1])) { - $errors[] = "permission denied ($type): $data[1] " . decoct($data[0]); - } - break; - case 'delete': - if (!file_exists($data[0])) { - $this->log(2, "warning: file $data[0] doesn't exist, can't be deleted"); - } - // check that directory is writable - if (file_exists($data[0])) { - if (!is_writable(dirname($data[0]))) { - $errors[] = "permission denied ($type): $data[0]"; - } else { - // make sure the file to be deleted can be opened for writing - $fp = false; - if (!is_dir($data[0]) && - (!is_writable($data[0]) || !($fp = @fopen($data[0], 'a')))) { - $errors[] = "permission denied ($type): $data[0]"; - } elseif ($fp) { - fclose($fp); - } - } - } - break; - } - - } - // }}} - $m = sizeof($errors); - if ($m > 0) { - foreach ($errors as $error) { - if (!isset($this->_options['soft'])) { - $this->log(1, $error); - } - } - if (!isset($this->_options['ignore-errors'])) { - return false; - } - } - $this->_dirtree = array(); - // {{{ really commit the transaction - foreach ($this->file_operations as $i => $tr) { - if (!$tr) { - // support removal of non-existing backups - continue; - } - list($type, $data) = $tr; - switch ($type) { - case 'backup': - if (!file_exists($data[0])) { - $this->file_operations[$i] = false; - break; - } - if (!@copy($data[0], $data[0] . '.bak')) { - $this->log(1, 'Could not copy ' . $data[0] . ' to ' . $data[0] . - '.bak ' . $php_errormsg); - return false; - } - $this->log(3, "+ backup $data[0] to $data[0].bak"); - break; - case 'removebackup': - if (file_exists($data[0] . '.bak') && is_writable($data[0] . '.bak')) { - unlink($data[0] . '.bak'); - $this->log(3, "+ rm backup of $data[0] ($data[0].bak)"); - } - break; - case 'rename': - if (file_exists($data[1])) { - $test = @unlink($data[1]); - } else { - $test = null; - } - if (!$test && file_exists($data[1])) { - if ($data[2]) { - $extra = ', this extension must be installed manually. Rename to "' . - basename($data[1]) . '"'; - } else { - $extra = ''; - } - if (!isset($this->_options['soft'])) { - $this->log(1, 'Could not delete ' . $data[1] . ', cannot rename ' . - $data[0] . $extra); - } - if (!isset($this->_options['ignore-errors'])) { - return false; - } - } - // permissions issues with rename - copy() is far superior - $perms = @fileperms($data[0]); - if (!@copy($data[0], $data[1])) { - $this->log(1, 'Could not rename ' . $data[0] . ' to ' . $data[1] . - ' ' . $php_errormsg); - return false; - } - // copy over permissions, otherwise they are lost - @chmod($data[1], $perms); - @unlink($data[0]); - $this->log(3, "+ mv $data[0] $data[1]"); - break; - case 'chmod': - if (!@chmod($data[1], $data[0])) { - $this->log(1, 'Could not chmod ' . $data[1] . ' to ' . - decoct($data[0]) . ' ' . $php_errormsg); - return false; - } - $octmode = decoct($data[0]); - $this->log(3, "+ chmod $octmode $data[1]"); - break; - case 'delete': - if (file_exists($data[0])) { - if (!@unlink($data[0])) { - $this->log(1, 'Could not delete ' . $data[0] . ' ' . - $php_errormsg); - return false; - } - $this->log(3, "+ rm $data[0]"); - } - break; - case 'rmdir': - if (file_exists($data[0])) { - do { - $testme = opendir($data[0]); - while (false !== ($entry = readdir($testme))) { - if ($entry == '.' || $entry == '..') { - continue; - } - closedir($testme); - break 2; // this directory is not empty and can't be - // deleted - } - closedir($testme); - if (!@rmdir($data[0])) { - $this->log(1, 'Could not rmdir ' . $data[0] . ' ' . - $php_errormsg); - return false; - } - $this->log(3, "+ rmdir $data[0]"); - } while (false); - } - break; - case 'installed_as': - $this->pkginfo->setInstalledAs($data[0], $data[1]); - if (!isset($this->_dirtree[dirname($data[1])])) { - $this->_dirtree[dirname($data[1])] = true; - $this->pkginfo->setDirtree(dirname($data[1])); - - while(!empty($data[3]) && dirname($data[3]) != $data[3] && - $data[3] != '/' && $data[3] != '\\') { - $this->pkginfo->setDirtree($pp = - $this->_prependPath($data[3], $data[2])); - $this->_dirtree[$pp] = true; - $data[3] = dirname($data[3]); - } - } - break; - } - } - // }}} - $this->log(2, "successfully committed $n file operations"); - $this->file_operations = array(); - return true; - } - - // }}} - // {{{ rollbackFileTransaction() - - function rollbackFileTransaction() - { - $n = count($this->file_operations); - $this->log(2, "rolling back $n file operations"); - foreach ($this->file_operations as $tr) { - list($type, $data) = $tr; - switch ($type) { - case 'backup': - if (file_exists($data[0] . '.bak')) { - if (file_exists($data[0] && is_writable($data[0]))) { - unlink($data[0]); - } - @copy($data[0] . '.bak', $data[0]); - $this->log(3, "+ restore $data[0] from $data[0].bak"); - } - break; - case 'removebackup': - if (file_exists($data[0] . '.bak') && is_writable($data[0] . '.bak')) { - unlink($data[0] . '.bak'); - $this->log(3, "+ rm backup of $data[0] ($data[0].bak)"); - } - break; - case 'rename': - @unlink($data[0]); - $this->log(3, "+ rm $data[0]"); - break; - case 'mkdir': - @rmdir($data[0]); - $this->log(3, "+ rmdir $data[0]"); - break; - case 'chmod': - break; - case 'delete': - break; - case 'installed_as': - $this->pkginfo->setInstalledAs($data[0], false); - break; - } - } - $this->pkginfo->resetDirtree(); - $this->file_operations = array(); - } - - // }}} - // {{{ mkDirHier($dir) - - function mkDirHier($dir) - { - $this->addFileOperation('mkdir', array($dir)); - return parent::mkDirHier($dir); - } - - // }}} - // {{{ download() - - /** - * Download any files and their dependencies, if necessary - * - * @param array a mixed list of package names, local files, or package.xml - * @param PEAR_Config - * @param array options from the command line - * @param array this is the array that will be populated with packages to - * install. Format of each entry: - * - * <code> - * array('pkg' => 'package_name', 'file' => '/path/to/local/file', - * 'info' => array() // parsed package.xml - * ); - * </code> - * @param array this will be populated with any error messages - * @param false private recursion variable - * @param false private recursion variable - * @param false private recursion variable - * @deprecated in favor of PEAR_Downloader - */ - function download($packages, $options, &$config, &$installpackages, - &$errors, $installed = false, $willinstall = false, $state = false) - { - // trickiness: initialize here - parent::PEAR_Downloader($this->ui, $options, $config); - $ret = parent::download($packages); - $errors = $this->getErrorMsgs(); - $installpackages = $this->getDownloadedPackages(); - trigger_error("PEAR Warning: PEAR_Installer::download() is deprecated " . - "in favor of PEAR_Downloader class", E_USER_WARNING); - return $ret; - } - - // }}} - // {{{ _parsePackageXml() - - function _parsePackageXml(&$descfile, &$tmpdir) - { - if (substr($descfile, -4) == '.xml') { - $tmpdir = false; - } else { - // {{{ Decompress pack in tmp dir ------------------------------------- - - // To allow relative package file names - $descfile = realpath($descfile); - - if (PEAR::isError($tmpdir = System::mktemp('-d'))) { - return $tmpdir; - } - $this->log(3, '+ tmp dir created at ' . $tmpdir); - // }}} - } - // Parse xml file ----------------------------------------------- - $pkg = new PEAR_PackageFile($this->config, $this->debug, $tmpdir); - PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); - $p = &$pkg->fromAnyFile($descfile, PEAR_VALIDATE_INSTALLING); - PEAR::staticPopErrorHandling(); - if (PEAR::isError($p)) { - if (is_array($p->getUserInfo())) { - foreach ($p->getUserInfo() as $err) { - $loglevel = $err['level'] == 'error' ? 0 : 1; - if (!isset($this->_options['soft'])) { - $this->log($loglevel, ucfirst($err['level']) . ': ' . $err['message']); - } - } - } - return $this->raiseError('Installation failed: invalid package file'); - } else { - $descfile = $p->getPackageFile(); - } - return $p; - } - - // }}} - /** - * Set the list of PEAR_Downloader_Package objects to allow more sane - * dependency validation - * @param array - */ - function setDownloadedPackages(&$pkgs) - { - PEAR::pushErrorHandling(PEAR_ERROR_RETURN); - $err = $this->analyzeDependencies($pkgs); - PEAR::popErrorHandling(); - if (PEAR::isError($err)) { - return $err; - } - $this->_downloadedPackages = &$pkgs; - } - - /** - * Set the list of PEAR_Downloader_Package objects to allow more sane - * dependency validation - * @param array - */ - function setUninstallPackages(&$pkgs) - { - $this->_downloadedPackages = &$pkgs; - } - - function getInstallPackages() - { - return $this->_downloadedPackages; - } - - // {{{ install() - - /** - * Installs the files within the package file specified. - * - * @param string|PEAR_Downloader_Package $pkgfile path to the package file, - * or a pre-initialized packagefile object - * @param array $options - * recognized options: - * - installroot : optional prefix directory for installation - * - force : force installation - * - register-only : update registry but don't install files - * - upgrade : upgrade existing install - * - soft : fail silently - * - nodeps : ignore dependency conflicts/missing dependencies - * - alldeps : install all dependencies - * - onlyreqdeps : install only required dependencies - * - * @return array|PEAR_Error package info if successful - */ - - function install($pkgfile, $options = array()) - { - $this->_options = $options; - $this->_registry = &$this->config->getRegistry(); - if (is_object($pkgfile)) { - $dlpkg = &$pkgfile; - $pkg = $pkgfile->getPackageFile(); - $pkgfile = $pkg->getArchiveFile(); - $descfile = $pkg->getPackageFile(); - $tmpdir = dirname($descfile); - } else { - $descfile = $pkgfile; - $tmpdir = ''; - if (PEAR::isError($pkg = &$this->_parsePackageXml($descfile, $tmpdir))) { - return $pkg; - } - } - - if (realpath($descfile) != realpath($pkgfile)) { - $tar = new Archive_Tar($pkgfile); - if (!$tar->extract($tmpdir)) { - return $this->raiseError("unable to unpack $pkgfile"); - } - } - - $pkgname = $pkg->getName(); - $channel = $pkg->getChannel(); - if (isset($this->_options['packagingroot'])) { - $regdir = $this->_prependPath( - $this->config->get('php_dir', null, 'pear.php.net'), - $this->_options['packagingroot']); - $packrootphp_dir = $this->_prependPath( - $this->config->get('php_dir', null, $channel), - $this->_options['packagingroot']); - } - - if (isset($options['installroot'])) { - $this->config->setInstallRoot($options['installroot']); - $this->_registry = &$this->config->getRegistry(); - $installregistry = &$this->_registry; - $this->installroot = ''; // all done automagically now - $php_dir = $this->config->get('php_dir', null, $channel); - } else { - $this->config->setInstallRoot(false); - $this->_registry = &$this->config->getRegistry(); - if (isset($this->_options['packagingroot'])) { - $installregistry = &new PEAR_Registry($regdir); - if (!$installregistry->channelExists($channel, true)) { - // we need to fake a channel-discover of this channel - $chanobj = $this->_registry->getChannel($channel, true); - $installregistry->addChannel($chanobj); - } - $php_dir = $packrootphp_dir; - } else { - $installregistry = &$this->_registry; - $php_dir = $this->config->get('php_dir', null, $channel); - } - $this->installroot = ''; - } - - // {{{ checks to do when not in "force" mode - if (empty($options['force']) && - (file_exists($this->config->get('php_dir')) && - is_dir($this->config->get('php_dir')))) { - $testp = $channel == 'pear.php.net' ? $pkgname : array($channel, $pkgname); - $instfilelist = $pkg->getInstallationFileList(true); - if (PEAR::isError($instfilelist)) { - return $instfilelist; - } - // ensure we have the most accurate registry - $installregistry->flushFileMap(); - $test = $installregistry->checkFileMap($instfilelist, $testp, '1.1'); - if (PEAR::isError($test)) { - return $test; - } - if (sizeof($test)) { - $pkgs = $this->getInstallPackages(); - $found = false; - foreach ($pkgs as $param) { - if ($pkg->isSubpackageOf($param)) { - $found = true; - break; - } - } - if ($found) { - // subpackages can conflict with earlier versions of parent packages - $parentreg = $installregistry->packageInfo($param->getPackage(), null, $param->getChannel()); - $tmp = $test; - foreach ($tmp as $file => $info) { - if (is_array($info)) { - if (strtolower($info[1]) == strtolower($param->getPackage()) && - strtolower($info[0]) == strtolower($param->getChannel())) { - unset($test[$file]); - unset($parentreg['filelist'][$file]); - } - } else { - if (strtolower($param->getChannel()) != 'pear.php.net') { - continue; - } - if (strtolower($info) == strtolower($param->getPackage())) { - unset($test[$file]); - unset($parentreg['filelist'][$file]); - } - } - } - $pfk = &new PEAR_PackageFile($this->config); - $parentpkg = &$pfk->fromArray($parentreg); - $installregistry->updatePackage2($parentpkg); - } - if ($param->getChannel() == 'pecl.php.net' && isset($options['upgrade'])) { - $tmp = $test; - foreach ($tmp as $file => $info) { - if (is_string($info)) { - // pear.php.net packages are always stored as strings - if (strtolower($info) == strtolower($param->getPackage())) { - // upgrading existing package - unset($test[$file]); - } - } - } - } - if (sizeof($test)) { - $msg = "$channel/$pkgname: conflicting files found:\n"; - $longest = max(array_map("strlen", array_keys($test))); - $fmt = "%${longest}s (%s)\n"; - foreach ($test as $file => $info) { - if (!is_array($info)) { - $info = array('pear.php.net', $info); - } - $info = $info[0] . '/' . $info[1]; - $msg .= sprintf($fmt, $file, $info); - } - if (!isset($options['ignore-errors'])) { - return $this->raiseError($msg); - } else { - if (!isset($options['soft'])) { - $this->log(0, "WARNING: $msg"); - } - } - } - } - } - // }}} - - $this->startFileTransaction(); - - if (empty($options['upgrade']) && empty($options['soft'])) { - // checks to do only when installing new packages - if ($channel == 'pecl.php.net') { - $test = $installregistry->packageExists($pkgname, $channel); - if (!$test) { - $test = $installregistry->packageExists($pkgname, 'pear.php.net'); - } - } else { - $test = $installregistry->packageExists($pkgname, $channel); - } - if (empty($options['force']) && $test) { - return $this->raiseError("$channel/$pkgname is already installed"); - } - } else { - $usechannel = $channel; - if ($channel == 'pecl.php.net') { - $test = $installregistry->packageExists($pkgname, $channel); - if (!$test) { - $test = $installregistry->packageExists($pkgname, 'pear.php.net'); - $usechannel = 'pear.php.net'; - } - } else { - $test = $installregistry->packageExists($pkgname, $channel); - } - if ($test) { - $v1 = $installregistry->packageInfo($pkgname, 'version', $usechannel); - $v2 = $pkg->getVersion(); - $cmp = version_compare("$v1", "$v2", 'gt'); - if (empty($options['force']) && !version_compare("$v2", "$v1", 'gt')) { - return $this->raiseError("upgrade to a newer version ($v2 is not newer than $v1)"); - } - if (empty($options['register-only'])) { - // when upgrading, remove old release's files first: - if (PEAR::isError($err = $this->_deletePackageFiles($pkgname, $usechannel, - true))) { - if (!isset($options['ignore-errors'])) { - return $this->raiseError($err); - } else { - if (!isset($options['soft'])) { - $this->log(0, 'WARNING: ' . $err->getMessage()); - } - } - } else { - $backedup = $err; - } - } - } - } - - // {{{ Copy files to dest dir --------------------------------------- - - // info from the package it self we want to access from _installFile - $this->pkginfo = &$pkg; - // used to determine whether we should build any C code - $this->source_files = 0; - - $savechannel = $this->config->get('default_channel'); - if (empty($options['register-only']) && !is_dir($php_dir)) { - if (PEAR::isError(System::mkdir(array('-p'), $php_dir))) { - return $this->raiseError("no installation destination directory '$php_dir'\n"); - } - } - - $tmp_path = dirname($descfile); - if (substr($pkgfile, -4) != '.xml') { - $tmp_path .= DIRECTORY_SEPARATOR . $pkgname . '-' . $pkg->getVersion(); - } - - $this->configSet('default_channel', $channel); - // {{{ install files - - $ver = $pkg->getPackagexmlVersion(); - if (version_compare($ver, '2.0', '>=')) { - $filelist = $pkg->getInstallationFilelist(); - } else { - $filelist = $pkg->getFileList(); - } - if (PEAR::isError($filelist)) { - return $filelist; - } - $p = &$installregistry->getPackage($pkgname, $channel); - if (empty($options['register-only']) && $p) { - $dirtree = $p->getDirTree(); - } else { - $dirtree = false; - } - $pkg->resetFilelist(); - $pkg->setLastInstalledVersion($installregistry->packageInfo($pkg->getPackage(), - 'version', $pkg->getChannel())); - foreach ($filelist as $file => $atts) { - if ($pkg->getPackagexmlVersion() == '1.0') { - $this->expectError(PEAR_INSTALLER_FAILED); - $res = $this->_installFile($file, $atts, $tmp_path, $options); - $this->popExpect(); - } else { - $this->expectError(PEAR_INSTALLER_FAILED); - $res = $this->_installFile2($pkg, $file, $atts, $tmp_path, $options); - $this->popExpect(); - } - if (PEAR::isError($res)) { - if (empty($options['ignore-errors'])) { - $this->rollbackFileTransaction(); - if ($res->getMessage() == "file does not exist") { - $this->raiseError("file $file in package.xml does not exist"); - } - return $this->raiseError($res); - } else { - if (!isset($options['soft'])) { - $this->log(0, "Warning: " . $res->getMessage()); - } - } - } - $real = isset($atts['attribs']) ? $atts['attribs'] : $atts; - if ($res == PEAR_INSTALLER_OK && $real['role'] != 'src') { - // Register files that were installed - $pkg->installedFile($file, $atts); - } - } - // }}} - - // {{{ compile and install source files - if ($this->source_files > 0 && empty($options['nobuild'])) { - if (PEAR::isError($err = - $this->_compileSourceFiles($savechannel, $pkg))) { - return $err; - } - } - // }}} - - if (isset($backedup)) { - $this->_removeBackups($backedup); - } - if (!$this->commitFileTransaction()) { - $this->rollbackFileTransaction(); - $this->configSet('default_channel', $savechannel); - return $this->raiseError("commit failed", PEAR_INSTALLER_FAILED); - } - // }}} - - $ret = false; - $installphase = 'install'; - $oldversion = false; - // {{{ Register that the package is installed ----------------------- - if (empty($options['upgrade'])) { - // if 'force' is used, replace the info in registry - $usechannel = $channel; - if ($channel == 'pecl.php.net') { - $test = $installregistry->packageExists($pkgname, $channel); - if (!$test) { - $test = $installregistry->packageExists($pkgname, 'pear.php.net'); - $usechannel = 'pear.php.net'; - } - } else { - $test = $installregistry->packageExists($pkgname, $channel); - } - if (!empty($options['force']) && $test) { - $oldversion = $installregistry->packageInfo($pkgname, 'version', $usechannel); - $installregistry->deletePackage($pkgname, $usechannel); - } - $ret = $installregistry->addPackage2($pkg); - } else { - if ($dirtree) { - $this->startFileTransaction(); - // attempt to delete empty directories - uksort($dirtree, array($this, '_sortDirs')); - foreach($dirtree as $dir => $notused) { - $this->addFileOperation('rmdir', array($dir)); - } - $this->commitFileTransaction(); - } - $usechannel = $channel; - if ($channel == 'pecl.php.net') { - $test = $installregistry->packageExists($pkgname, $channel); - if (!$test) { - $test = $installregistry->packageExists($pkgname, 'pear.php.net'); - $usechannel = 'pear.php.net'; - } - } else { - $test = $installregistry->packageExists($pkgname, $channel); - } - // new: upgrade installs a package if it isn't installed - if (!$test) { - $ret = $installregistry->addPackage2($pkg); - } else { - if ($usechannel != $channel) { - $installregistry->deletePackage($pkgname, $usechannel); - $ret = $installregistry->addPackage2($pkg); - } else { - $ret = $installregistry->updatePackage2($pkg); - } - $installphase = 'upgrade'; - } - } - if (!$ret) { - $this->configSet('default_channel', $savechannel); - return $this->raiseError("Adding package $channel/$pkgname to registry failed"); - } - // }}} - $this->configSet('default_channel', $savechannel); - if (class_exists('PEAR_Task_Common')) { // this is auto-included if any tasks exist - if (PEAR_Task_Common::hasPostinstallTasks()) { - PEAR_Task_Common::runPostinstallTasks($installphase); - } - } - return $pkg->toArray(true); - } - - // }}} - - // {{{ _compileSourceFiles() - /** - * @param string - * @param PEAR_PackageFile_v1|PEAR_PackageFile_v2 - */ - function _compileSourceFiles($savechannel, &$filelist) - { - require_once 'PEAR/Builder.php'; - $this->log(1, "$this->source_files source files, building"); - $bob = &new PEAR_Builder($this->ui); - $bob->debug = $this->debug; - $built = $bob->build($filelist, array(&$this, '_buildCallback')); - if (PEAR::isError($built)) { - $this->rollbackFileTransaction(); - $this->configSet('default_channel', $savechannel); - return $built; - } - $this->log(1, "\nBuild process completed successfully"); - foreach ($built as $ext) { - $bn = basename($ext['file']); - list($_ext_name, $_ext_suff) = explode('.', $bn); - if ($_ext_suff == '.so' || $_ext_suff == '.dll') { - if (extension_loaded($_ext_name)) { - $this->raiseError("Extension '$_ext_name' already loaded. " . - 'Please unload it in your php.ini file ' . - 'prior to install or upgrade'); - } - $role = 'ext'; - } else { - $role = 'src'; - } - $dest = $ext['dest']; - $packagingroot = ''; - if (isset($this->_options['packagingroot'])) { - $packagingroot = $this->_options['packagingroot']; - } - $copyto = $this->_prependPath($dest, $packagingroot); - if ($copyto != $dest) { - $this->log(1, "Installing '$dest' as '$copyto'"); - } else { - $this->log(1, "Installing '$dest'"); - } - $copydir = dirname($copyto); - // pretty much nothing happens if we are only registering the install - if (empty($this->_options['register-only'])) { - if (!file_exists($copydir) || !is_dir($copydir)) { - if (!$this->mkDirHier($copydir)) { - return $this->raiseError("failed to mkdir $copydir", - PEAR_INSTALLER_FAILED); - } - $this->log(3, "+ mkdir $copydir"); - } - if (!@copy($ext['file'], $copyto)) { - return $this->raiseError("failed to write $copyto ($php_errormsg)", PEAR_INSTALLER_FAILED); - } - $this->log(3, "+ cp $ext[file] $copyto"); - $this->addFileOperation('rename', array($ext['file'], $copyto)); - if (!OS_WINDOWS) { - $mode = 0666 & ~(int)octdec($this->config->get('umask')); - $this->addFileOperation('chmod', array($mode, $copyto)); - if (!@chmod($copyto, $mode)) { - $this->log(0, "failed to change mode of $copyto ($php_errormsg)"); - } - } - } - - if ($filelist->getPackageXmlVersion() == '1.0') { - $filelist->installedFile($bn, array( - 'role' => $role, - 'name' => $bn, - 'installed_as' => $dest, - 'php_api' => $ext['php_api'], - 'zend_mod_api' => $ext['zend_mod_api'], - 'zend_ext_api' => $ext['zend_ext_api'], - )); - } else { - $filelist->installedFile($bn, array('attribs' => array( - 'role' => $role, - 'name' => $bn, - 'installed_as' => $dest, - 'php_api' => $ext['php_api'], - 'zend_mod_api' => $ext['zend_mod_api'], - 'zend_ext_api' => $ext['zend_ext_api'], - ))); - } - } - } - - // }}} - function &getUninstallPackages() - { - return $this->_downloadedPackages; - } - // {{{ uninstall() - - /** - * Uninstall a package - * - * This method removes all files installed by the application, and then - * removes any empty directories. - * @param string package name - * @param array Command-line options. Possibilities include: - * - * - installroot: base installation dir, if not the default - * - register-only : update registry but don't remove files - * - nodeps: do not process dependencies of other packages to ensure - * uninstallation does not break things - */ - function uninstall($package, $options = array()) - { - if (isset($options['installroot'])) { - $this->config->setInstallRoot($options['installroot']); - $this->installroot = ''; - } else { - $this->config->setInstallRoot(''); - $this->installroot = ''; - } - $this->_registry = &$this->config->getRegistry(); - if (is_object($package)) { - $channel = $package->getChannel(); - $pkg = $package; - $package = $pkg->getPackage(); - } else { - $pkg = false; - $info = $this->_registry->parsePackageName($package, - $this->config->get('default_channel')); - $channel = $info['channel']; - $package = $info['package']; - } - $savechannel = $this->config->get('default_channel'); - $this->configSet('default_channel', $channel); - if (!is_object($pkg)) { - $pkg = $this->_registry->getPackage($package, $channel); - } - if (!$pkg) { - $this->configSet('default_channel', $savechannel); - return $this->raiseError($this->_registry->parsedPackageNameToString( - array( - 'channel' => $channel, - 'package' => $package - ), true) . ' not installed'); - } - if ($pkg->getInstalledBinary()) { - // this is just an alias for a binary package - return $this->_registry->deletePackage($package, $channel); - } - $filelist = $pkg->getFilelist(); - PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); - if (!class_exists('PEAR_Dependency2')) { - require_once 'PEAR/Dependency2.php'; - } - $depchecker = &new PEAR_Dependency2($this->config, $options, - array('channel' => $channel, 'package' => $package), - PEAR_VALIDATE_UNINSTALLING); - $e = $depchecker->validatePackageUninstall($this); - PEAR::staticPopErrorHandling(); - if (PEAR::isError($e)) { - if (!isset($options['ignore-errors'])) { - return $this->raiseError($e); - } else { - if (!isset($options['soft'])) { - $this->log(0, 'WARNING: ' . $e->getMessage()); - } - } - } elseif (is_array($e)) { - if (!isset($options['soft'])) { - $this->log(0, $e[0]); - } - } - $this->pkginfo = &$pkg; - // pretty much nothing happens if we are only registering the uninstall - if (empty($options['register-only'])) { - // {{{ Delete the files - $this->startFileTransaction(); - PEAR::pushErrorHandling(PEAR_ERROR_RETURN); - if (PEAR::isError($err = $this->_deletePackageFiles($package, $channel))) { - PEAR::popErrorHandling(); - $this->rollbackFileTransaction(); - $this->configSet('default_channel', $savechannel); - if (!isset($options['ignore-errors'])) { - return $this->raiseError($err); - } else { - if (!isset($options['soft'])) { - $this->log(0, 'WARNING: ' . $err->getMessage()); - } - } - } else { - PEAR::popErrorHandling(); - } - if (!$this->commitFileTransaction()) { - $this->rollbackFileTransaction(); - if (!isset($options['ignore-errors'])) { - return $this->raiseError("uninstall failed"); - } elseif (!isset($options['soft'])) { - $this->log(0, 'WARNING: uninstall failed'); - } - } else { - $this->startFileTransaction(); - if ($dirtree = $pkg->getDirTree()) { - // attempt to delete empty directories - uksort($dirtree, array($this, '_sortDirs')); - foreach($dirtree as $dir => $notused) { - $this->addFileOperation('rmdir', array($dir)); - } - } else { - $this->configSet('default_channel', $savechannel); - return $this->_registry->deletePackage($package, $channel); - } - if (!$this->commitFileTransaction()) { - $this->rollbackFileTransaction(); - if (!isset($options['ignore-errors'])) { - return $this->raiseError("uninstall failed"); - } elseif (!isset($options['soft'])) { - $this->log(0, 'WARNING: uninstall failed'); - } - } - } - // }}} - } - - $this->configSet('default_channel', $savechannel); - // Register that the package is no longer installed - return $this->_registry->deletePackage($package, $channel); - } - - /** - * Sort a list of arrays of array(downloaded packagefilename) by dependency. - * - * It also removes duplicate dependencies - * @param array an array of PEAR_PackageFile_v[1/2] objects - * @return array|PEAR_Error array of array(packagefilename, package.xml contents) - */ - function sortPackagesForUninstall(&$packages) - { - $this->_dependencyDB = &PEAR_DependencyDB::singleton($this->config); - if (PEAR::isError($this->_dependencyDB)) { - return $this->_dependencyDB; - } - usort($packages, array(&$this, '_sortUninstall')); - } - - function _sortUninstall($a, $b) - { - if (!$a->getDeps() && !$b->getDeps()) { - return 0; // neither package has dependencies, order is insignificant - } - if ($a->getDeps() && !$b->getDeps()) { - return -1; // $a must be installed after $b because $a has dependencies - } - if (!$a->getDeps() && $b->getDeps()) { - return 1; // $b must be installed after $a because $b has dependencies - } - // both packages have dependencies - if ($this->_dependencyDB->dependsOn($a, $b)) { - return -1; - } - if ($this->_dependencyDB->dependsOn($b, $a)) { - return 1; - } - return 0; - } - - // }}} - // {{{ _sortDirs() - function _sortDirs($a, $b) - { - if (strnatcmp($a, $b) == -1) return 1; - if (strnatcmp($a, $b) == 1) return -1; - return 0; - } - - // }}} - - // {{{ _buildCallback() - - function _buildCallback($what, $data) - { - if (($what == 'cmdoutput' && $this->debug > 1) || - ($what == 'output' && $this->debug > 0)) { - $this->ui->outputData(rtrim($data), 'build'); - } - } - - // }}} -} - -// {{{ md5_file() utility function -if (!function_exists("md5_file")) { - function md5_file($filename) { - if (!$fd = @fopen($file, 'r')) { - return false; - } - fclose($fd); - return md5(file_get_contents($filename)); - } -} -// }}} - -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/Installer/Role.php b/src/vitis/vas/rest/class/PEAR/Installer/Role.php deleted file mode 100755 index 3b50db3c..00000000 --- a/src/vitis/vas/rest/class/PEAR/Installer/Role.php +++ /dev/null @@ -1,253 +0,0 @@ -<?php -/** - * PEAR_Installer_Role - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Role.php,v 1.20 2008/01/03 20:26:36 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 1.4.0a1 - */ - -/** - * base class for installer roles - */ -require_once 'PEAR/Installer/Role/Common.php'; -require_once 'PEAR/XMLParser.php'; -/** - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 1.4.0a1 - */ -class PEAR_Installer_Role -{ - /** - * Set up any additional configuration variables that file roles require - * - * Never call this directly, it is called by the PEAR_Config constructor - * @param PEAR_Config - * @access private - * @static - */ - function initializeConfig(&$config) - { - if (!isset($GLOBALS['_PEAR_INSTALLER_ROLES'])) { - PEAR_Installer_Role::registerRoles(); - } - foreach ($GLOBALS['_PEAR_INSTALLER_ROLES'] as $class => $info) { - if (!$info['config_vars']) { - continue; - } - $config->_addConfigVars($class, $info['config_vars']); - } - } - - /** - * @param PEAR_PackageFile_v2 - * @param string role name - * @param PEAR_Config - * @return PEAR_Installer_Role_Common - * @static - */ - function &factory($pkg, $role, &$config) - { - if (!isset($GLOBALS['_PEAR_INSTALLER_ROLES'])) { - PEAR_Installer_Role::registerRoles(); - } - if (!in_array($role, PEAR_Installer_Role::getValidRoles($pkg->getPackageType()))) { - $a = false; - return $a; - } - $a = 'PEAR_Installer_Role_' . ucfirst($role); - if (!class_exists($a)) { - require_once str_replace('_', '/', $a) . '.php'; - } - $b = new $a($config); - return $b; - } - - /** - * Get a list of file roles that are valid for the particular release type. - * - * For instance, src files serve no purpose in regular php releases. - * @param string - * @param bool clear cache - * @return array - * @static - */ - function getValidRoles($release, $clear = false) - { - if (!isset($GLOBALS['_PEAR_INSTALLER_ROLES'])) { - PEAR_Installer_Role::registerRoles(); - } - static $ret = array(); - if ($clear) { - $ret = array(); - } - if (isset($ret[$release])) { - return $ret[$release]; - } - $ret[$release] = array(); - foreach ($GLOBALS['_PEAR_INSTALLER_ROLES'] as $role => $okreleases) { - if (in_array($release, $okreleases['releasetypes'])) { - $ret[$release][] = strtolower(str_replace('PEAR_Installer_Role_', '', $role)); - } - } - return $ret[$release]; - } - - /** - * Get a list of roles that require their files to be installed - * - * Most roles must be installed, but src and package roles, for instance - * are pseudo-roles. src files are compiled into a new extension. Package - * roles are actually fully bundled releases of a package - * @param bool clear cache - * @return array - * @static - */ - function getInstallableRoles($clear = false) - { - if (!isset($GLOBALS['_PEAR_INSTALLER_ROLES'])) { - PEAR_Installer_Role::registerRoles(); - } - static $ret; - if ($clear) { - unset($ret); - } - if (!isset($ret)) { - $ret = array(); - foreach ($GLOBALS['_PEAR_INSTALLER_ROLES'] as $role => $okreleases) { - if ($okreleases['installable']) { - $ret[] = strtolower(str_replace('PEAR_Installer_Role_', '', $role)); - } - } - } - return $ret; - } - - /** - * Return an array of roles that are affected by the baseinstalldir attribute - * - * Most roles ignore this attribute, and instead install directly into: - * PackageName/filepath - * so a tests file tests/file.phpt is installed into PackageName/tests/filepath.php - * @param bool clear cache - * @return array - * @static - */ - function getBaseinstallRoles($clear = false) - { - if (!isset($GLOBALS['_PEAR_INSTALLER_ROLES'])) { - PEAR_Installer_Role::registerRoles(); - } - static $ret; - if ($clear) { - unset($ret); - } - if (!isset($ret)) { - $ret = array(); - foreach ($GLOBALS['_PEAR_INSTALLER_ROLES'] as $role => $okreleases) { - if ($okreleases['honorsbaseinstall']) { - $ret[] = strtolower(str_replace('PEAR_Installer_Role_', '', $role)); - } - } - } - return $ret; - } - - /** - * Return an array of file roles that should be analyzed for PHP content at package time, - * like the "php" role. - * @param bool clear cache - * @return array - * @static - */ - function getPhpRoles($clear = false) - { - if (!isset($GLOBALS['_PEAR_INSTALLER_ROLES'])) { - PEAR_Installer_Role::registerRoles(); - } - static $ret; - if ($clear) { - unset($ret); - } - if (!isset($ret)) { - $ret = array(); - foreach ($GLOBALS['_PEAR_INSTALLER_ROLES'] as $role => $okreleases) { - if ($okreleases['phpfile']) { - $ret[] = strtolower(str_replace('PEAR_Installer_Role_', '', $role)); - } - } - } - return $ret; - } - - /** - * Scan through the Command directory looking for classes - * and see what commands they implement. - * @param string which directory to look for classes, defaults to - * the Installer/Roles subdirectory of - * the directory from where this file (__FILE__) is - * included. - * - * @return bool TRUE on success, a PEAR error on failure - * @access public - * @static - */ - function registerRoles($dir = null) - { - $GLOBALS['_PEAR_INSTALLER_ROLES'] = array(); - $parser = new PEAR_XMLParser; - if ($dir === null) { - $dir = dirname(__FILE__) . '/Role'; - } - if (!file_exists($dir) || !is_dir($dir)) { - return PEAR::raiseError("registerRoles: opendir($dir) failed: does not exist/is not directory"); - } - $dp = @opendir($dir); - if (empty($dp)) { - return PEAR::raiseError("registerRoles: opendir($dir) failed: $php_errmsg"); - } - while ($entry = readdir($dp)) { - if ($entry{0} == '.' || substr($entry, -4) != '.xml') { - continue; - } - $class = "PEAR_Installer_Role_".substr($entry, 0, -4); - // List of roles - if (!isset($GLOBALS['_PEAR_INSTALLER_ROLES'][$class])) { - $file = "$dir/$entry"; - $parser->parse(file_get_contents($file)); - $data = $parser->getData(); - if (!is_array($data['releasetypes'])) { - $data['releasetypes'] = array($data['releasetypes']); - } - $GLOBALS['_PEAR_INSTALLER_ROLES'][$class] = $data; - } - } - closedir($dp); - ksort($GLOBALS['_PEAR_INSTALLER_ROLES']); - PEAR_Installer_Role::getBaseinstallRoles(true); - PEAR_Installer_Role::getInstallableRoles(true); - PEAR_Installer_Role::getPhpRoles(true); - PEAR_Installer_Role::getValidRoles('****', true); - return true; - } -} -?> diff --git a/src/vitis/vas/rest/class/PEAR/Installer/Role/Cfg.php b/src/vitis/vas/rest/class/PEAR/Installer/Role/Cfg.php deleted file mode 100755 index 1f85ebb5..00000000 --- a/src/vitis/vas/rest/class/PEAR/Installer/Role/Cfg.php +++ /dev/null @@ -1,108 +0,0 @@ -<?php -/** - * PEAR_Installer_Role_Cfg - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 2007-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Cfg.php,v 1.8 2008/05/14 21:26:30 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 1.7.0 - */ - -/** - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 2007-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 1.7.0 - */ -class PEAR_Installer_Role_Cfg extends PEAR_Installer_Role_Common -{ - /** - * @var PEAR_Installer - */ - var $installer; - /** - * the md5 of the original file - * - * @var unknown_type - */ - var $md5 = null; - /** - * Do any unusual setup here - * @param PEAR_Installer - * @param PEAR_PackageFile_v2 - * @param array file attributes - * @param string file name - */ - function setup(&$installer, $pkg, $atts, $file) - { - $this->installer = &$installer; - $reg = &$this->installer->config->getRegistry(); - $package = $reg->getPackage($pkg->getPackage(), $pkg->getChannel()); - if ($package) { - $filelist = $package->getFilelist(); - if (isset($filelist[$file]) && isset($filelist[$file]['md5sum'])) { - $this->md5 = $filelist[$file]['md5sum']; - } - } - } - - function processInstallation($pkg, $atts, $file, $tmp_path, $layer = null) - { - $test = parent::processInstallation($pkg, $atts, $file, $tmp_path, $layer); - if (@file_exists($test[2]) && @file_exists($test[3])) { - $md5 = md5_file($test[2]); - // configuration has already been installed, check for mods - if ($md5 !== $this->md5 && $md5 !== md5_file($test[3])) { - // configuration has been modified, so save our version as - // configfile-version - $old = $test[2]; - $test[2] .= '.new-' . $pkg->getVersion(); - // backup original and re-install it - PEAR::pushErrorHandling(PEAR_ERROR_RETURN); - $tmpcfg = $this->config->get('temp_dir'); - $newloc = System::mkdir(array('-p', $tmpcfg)); - if (!$newloc) { - // try temp_dir - $newloc = System::mktemp(array('-d')); - if (!$newloc || PEAR::isError($newloc)) { - PEAR::popErrorHandling(); - return PEAR::raiseError('Could not save existing configuration file '. - $old . ', unable to install. Please set temp_dir ' . - 'configuration variable to a writeable location and try again'); - } - } else { - $newloc = $tmpcfg; - } - $temp_file = $newloc . DIRECTORY_SEPARATOR . uniqid('savefile'); - if (!@copy($old, $temp_file)) { - PEAR::popErrorHandling(); - return PEAR::raiseError('Could not save existing configuration file '. - $old . ', unable to install. Please set temp_dir ' . - 'configuration variable to a writeable location and try again'); - } - PEAR::popErrorHandling(); - $this->installer->log(0, "WARNING: configuration file $old is being installed as $test[2], you should manually merge in changes to the existing configuration file"); - $this->installer->addFileOperation('rename', array($temp_file, $old, false)); - $this->installer->addFileOperation('delete', array($temp_file)); - } - } - return $test; - } -} -?> diff --git a/src/vitis/vas/rest/class/PEAR/Installer/Role/Cfg.xml b/src/vitis/vas/rest/class/PEAR/Installer/Role/Cfg.xml deleted file mode 100755 index 7a415dc4..00000000 --- a/src/vitis/vas/rest/class/PEAR/Installer/Role/Cfg.xml +++ /dev/null @@ -1,15 +0,0 @@ -<role version="1.0"> - <releasetypes>php</releasetypes> - <releasetypes>extsrc</releasetypes> - <releasetypes>extbin</releasetypes> - <releasetypes>zendextsrc</releasetypes> - <releasetypes>zendextbin</releasetypes> - <installable>1</installable> - <locationconfig>cfg_dir</locationconfig> - <honorsbaseinstall /> - <unusualbaseinstall>1</unusualbaseinstall> - <phpfile /> - <executable /> - <phpextension /> - <config_vars /> -</role> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/Installer/Role/Common.php b/src/vitis/vas/rest/class/PEAR/Installer/Role/Common.php deleted file mode 100755 index 32cd8217..00000000 --- a/src/vitis/vas/rest/class/PEAR/Installer/Role/Common.php +++ /dev/null @@ -1,180 +0,0 @@ -<?php -/** - * Base class for all installation roles. - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2006 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Common.php,v 1.12 2006/10/19 23:55:32 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 1.4.0a1 - */ -/** - * Base class for all installation roles. - * - * This class allows extensibility of file roles. Packages with complex - * customization can now provide custom file roles along with the possibility of - * adding configuration values to match. - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2006 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 1.4.0a1 - */ -class PEAR_Installer_Role_Common -{ - /** - * @var PEAR_Config - * @access protected - */ - var $config; - - /** - * @param PEAR_Config - */ - function PEAR_Installer_Role_Common(&$config) - { - $this->config = $config; - } - - /** - * Retrieve configuration information about a file role from its XML info - * - * @param string $role Role Classname, as in "PEAR_Installer_Role_Data" - * @return array - */ - function getInfo($role) - { - if (empty($GLOBALS['_PEAR_INSTALLER_ROLES'][$role])) { - return PEAR::raiseError('Unknown Role class: "' . $role . '"'); - } - return $GLOBALS['_PEAR_INSTALLER_ROLES'][$role]; - } - - /** - * This is called for each file to set up the directories and files - * @param PEAR_PackageFile_v1|PEAR_PackageFile_v2 - * @param array attributes from the <file> tag - * @param string file name - * @return array an array consisting of: - * - * 1 the original, pre-baseinstalldir installation directory - * 2 the final installation directory - * 3 the full path to the final location of the file - * 4 the location of the pre-installation file - */ - function processInstallation($pkg, $atts, $file, $tmp_path, $layer = null) - { - $roleInfo = PEAR_Installer_Role_Common::getInfo('PEAR_Installer_Role_' . - ucfirst(str_replace('pear_installer_role_', '', strtolower(get_class($this))))); - if (PEAR::isError($roleInfo)) { - return $roleInfo; - } - if (!$roleInfo['locationconfig']) { - return false; - } - if ($roleInfo['honorsbaseinstall']) { - $dest_dir = $save_destdir = $this->config->get($roleInfo['locationconfig'], $layer, - $pkg->getChannel()); - if (!empty($atts['baseinstalldir'])) { - $dest_dir .= DIRECTORY_SEPARATOR . $atts['baseinstalldir']; - } - } elseif ($roleInfo['unusualbaseinstall']) { - $dest_dir = $save_destdir = $this->config->get($roleInfo['locationconfig'], - $layer, $pkg->getChannel()) . DIRECTORY_SEPARATOR . $pkg->getPackage(); - if (!empty($atts['baseinstalldir'])) { - $dest_dir .= DIRECTORY_SEPARATOR . $atts['baseinstalldir']; - } - } else { - $dest_dir = $save_destdir = $this->config->get($roleInfo['locationconfig'], - $layer, $pkg->getChannel()) . DIRECTORY_SEPARATOR . $pkg->getPackage(); - } - if (dirname($file) != '.' && empty($atts['install-as'])) { - $dest_dir .= DIRECTORY_SEPARATOR . dirname($file); - } - if (empty($atts['install-as'])) { - $dest_file = $dest_dir . DIRECTORY_SEPARATOR . basename($file); - } else { - $dest_file = $dest_dir . DIRECTORY_SEPARATOR . $atts['install-as']; - } - $orig_file = $tmp_path . DIRECTORY_SEPARATOR . $file; - - // Clean up the DIRECTORY_SEPARATOR mess - $ds2 = DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR; - - list($dest_dir, $dest_file, $orig_file) = preg_replace(array('!\\\\+!', '!/!', "!$ds2+!"), - array(DIRECTORY_SEPARATOR, DIRECTORY_SEPARATOR, - DIRECTORY_SEPARATOR), - array($dest_dir, $dest_file, $orig_file)); - return array($save_destdir, $dest_dir, $dest_file, $orig_file); - } - - /** - * Get the name of the configuration variable that specifies the location of this file - * @return string|false - */ - function getLocationConfig() - { - $roleInfo = PEAR_Installer_Role_Common::getInfo('PEAR_Installer_Role_' . - ucfirst(str_replace('pear_installer_role_', '', strtolower(get_class($this))))); - if (PEAR::isError($roleInfo)) { - return $roleInfo; - } - return $roleInfo['locationconfig']; - } - - /** - * Do any unusual setup here - * @param PEAR_Installer - * @param PEAR_PackageFile_v2 - * @param array file attributes - * @param string file name - */ - function setup(&$installer, $pkg, $atts, $file) - { - } - - function isExecutable() - { - $roleInfo = PEAR_Installer_Role_Common::getInfo('PEAR_Installer_Role_' . - ucfirst(str_replace('pear_installer_role_', '', strtolower(get_class($this))))); - if (PEAR::isError($roleInfo)) { - return $roleInfo; - } - return $roleInfo['executable']; - } - - function isInstallable() - { - $roleInfo = PEAR_Installer_Role_Common::getInfo('PEAR_Installer_Role_' . - ucfirst(str_replace('pear_installer_role_', '', strtolower(get_class($this))))); - if (PEAR::isError($roleInfo)) { - return $roleInfo; - } - return $roleInfo['installable']; - } - - function isExtension() - { - $roleInfo = PEAR_Installer_Role_Common::getInfo('PEAR_Installer_Role_' . - ucfirst(str_replace('pear_installer_role_', '', strtolower(get_class($this))))); - if (PEAR::isError($roleInfo)) { - return $roleInfo; - } - return $roleInfo['phpextension']; - } -} -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/Installer/Role/Data.php b/src/vitis/vas/rest/class/PEAR/Installer/Role/Data.php deleted file mode 100755 index 394f68ce..00000000 --- a/src/vitis/vas/rest/class/PEAR/Installer/Role/Data.php +++ /dev/null @@ -1,34 +0,0 @@ -<?php -/** - * PEAR_Installer_Role_Data - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Data.php,v 1.7 2008/01/03 20:26:36 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 1.4.0a1 - */ - -/** - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 1.4.0a1 - */ -class PEAR_Installer_Role_Data extends PEAR_Installer_Role_Common {} -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/Installer/Role/Data.xml b/src/vitis/vas/rest/class/PEAR/Installer/Role/Data.xml deleted file mode 100755 index eae63720..00000000 --- a/src/vitis/vas/rest/class/PEAR/Installer/Role/Data.xml +++ /dev/null @@ -1,15 +0,0 @@ -<role version="1.0"> - <releasetypes>php</releasetypes> - <releasetypes>extsrc</releasetypes> - <releasetypes>extbin</releasetypes> - <releasetypes>zendextsrc</releasetypes> - <releasetypes>zendextbin</releasetypes> - <installable>1</installable> - <locationconfig>data_dir</locationconfig> - <honorsbaseinstall /> - <unusualbaseinstall /> - <phpfile /> - <executable /> - <phpextension /> - <config_vars /> -</role> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/Installer/Role/Doc.php b/src/vitis/vas/rest/class/PEAR/Installer/Role/Doc.php deleted file mode 100755 index b974dc68..00000000 --- a/src/vitis/vas/rest/class/PEAR/Installer/Role/Doc.php +++ /dev/null @@ -1,34 +0,0 @@ -<?php -/** - * PEAR_Installer_Role_Doc - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Doc.php,v 1.7 2008/01/03 20:26:36 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 1.4.0a1 - */ - -/** - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 1.4.0a1 - */ -class PEAR_Installer_Role_Doc extends PEAR_Installer_Role_Common {} -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/Installer/Role/Doc.xml b/src/vitis/vas/rest/class/PEAR/Installer/Role/Doc.xml deleted file mode 100755 index 173afba0..00000000 --- a/src/vitis/vas/rest/class/PEAR/Installer/Role/Doc.xml +++ /dev/null @@ -1,15 +0,0 @@ -<role version="1.0"> - <releasetypes>php</releasetypes> - <releasetypes>extsrc</releasetypes> - <releasetypes>extbin</releasetypes> - <releasetypes>zendextsrc</releasetypes> - <releasetypes>zendextbin</releasetypes> - <installable>1</installable> - <locationconfig>doc_dir</locationconfig> - <honorsbaseinstall /> - <unusualbaseinstall /> - <phpfile /> - <executable /> - <phpextension /> - <config_vars /> -</role> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/Installer/Role/Ext.php b/src/vitis/vas/rest/class/PEAR/Installer/Role/Ext.php deleted file mode 100755 index 38c0e9af..00000000 --- a/src/vitis/vas/rest/class/PEAR/Installer/Role/Ext.php +++ /dev/null @@ -1,34 +0,0 @@ -<?php -/** - * PEAR_Installer_Role_Ext - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Ext.php,v 1.7 2008/01/03 20:26:36 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 1.4.0a1 - */ - -/** - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 1.4.0a1 - */ -class PEAR_Installer_Role_Ext extends PEAR_Installer_Role_Common {} -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/Installer/Role/Ext.xml b/src/vitis/vas/rest/class/PEAR/Installer/Role/Ext.xml deleted file mode 100755 index e2940fe1..00000000 --- a/src/vitis/vas/rest/class/PEAR/Installer/Role/Ext.xml +++ /dev/null @@ -1,12 +0,0 @@ -<role version="1.0"> - <releasetypes>extbin</releasetypes> - <releasetypes>zendextbin</releasetypes> - <installable>1</installable> - <locationconfig>ext_dir</locationconfig> - <honorsbaseinstall>1</honorsbaseinstall> - <unusualbaseinstall /> - <phpfile /> - <executable /> - <phpextension>1</phpextension> - <config_vars /> -</role> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/Installer/Role/Php.php b/src/vitis/vas/rest/class/PEAR/Installer/Role/Php.php deleted file mode 100755 index f232b723..00000000 --- a/src/vitis/vas/rest/class/PEAR/Installer/Role/Php.php +++ /dev/null @@ -1,34 +0,0 @@ -<?php -/** - * PEAR_Installer_Role_Php - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Php.php,v 1.8 2008/01/03 20:26:36 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 1.4.0a1 - */ - -/** - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 1.4.0a1 - */ -class PEAR_Installer_Role_Php extends PEAR_Installer_Role_Common {} -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/Installer/Role/Php.xml b/src/vitis/vas/rest/class/PEAR/Installer/Role/Php.xml deleted file mode 100755 index 6b9a0e67..00000000 --- a/src/vitis/vas/rest/class/PEAR/Installer/Role/Php.xml +++ /dev/null @@ -1,15 +0,0 @@ -<role version="1.0"> - <releasetypes>php</releasetypes> - <releasetypes>extsrc</releasetypes> - <releasetypes>extbin</releasetypes> - <releasetypes>zendextsrc</releasetypes> - <releasetypes>zendextbin</releasetypes> - <installable>1</installable> - <locationconfig>php_dir</locationconfig> - <honorsbaseinstall>1</honorsbaseinstall> - <unusualbaseinstall /> - <phpfile>1</phpfile> - <executable /> - <phpextension /> - <config_vars /> -</role> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/Installer/Role/Script.php b/src/vitis/vas/rest/class/PEAR/Installer/Role/Script.php deleted file mode 100755 index b8affdbb..00000000 --- a/src/vitis/vas/rest/class/PEAR/Installer/Role/Script.php +++ /dev/null @@ -1,34 +0,0 @@ -<?php -/** - * PEAR_Installer_Role_Script - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Script.php,v 1.7 2008/01/03 20:26:36 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 1.4.0a1 - */ - -/** - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 1.4.0a1 - */ -class PEAR_Installer_Role_Script extends PEAR_Installer_Role_Common {} -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/Installer/Role/Script.xml b/src/vitis/vas/rest/class/PEAR/Installer/Role/Script.xml deleted file mode 100755 index e732cf2a..00000000 --- a/src/vitis/vas/rest/class/PEAR/Installer/Role/Script.xml +++ /dev/null @@ -1,15 +0,0 @@ -<role version="1.0"> - <releasetypes>php</releasetypes> - <releasetypes>extsrc</releasetypes> - <releasetypes>extbin</releasetypes> - <releasetypes>zendextsrc</releasetypes> - <releasetypes>zendextbin</releasetypes> - <installable>1</installable> - <locationconfig>bin_dir</locationconfig> - <honorsbaseinstall>1</honorsbaseinstall> - <unusualbaseinstall /> - <phpfile /> - <executable>1</executable> - <phpextension /> - <config_vars /> -</role> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/Installer/Role/Src.php b/src/vitis/vas/rest/class/PEAR/Installer/Role/Src.php deleted file mode 100755 index 68d07e4d..00000000 --- a/src/vitis/vas/rest/class/PEAR/Installer/Role/Src.php +++ /dev/null @@ -1,40 +0,0 @@ -<?php -/** - * PEAR_Installer_Role_Src - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Src.php,v 1.7 2008/01/03 20:26:36 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 1.4.0a1 - */ - -/** - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 1.4.0a1 - */ -class PEAR_Installer_Role_Src extends PEAR_Installer_Role_Common -{ - function setup(&$installer, $pkg, $atts, $file) - { - $installer->source_files++; - } -} -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/Installer/Role/Src.xml b/src/vitis/vas/rest/class/PEAR/Installer/Role/Src.xml deleted file mode 100755 index 10348340..00000000 --- a/src/vitis/vas/rest/class/PEAR/Installer/Role/Src.xml +++ /dev/null @@ -1,12 +0,0 @@ -<role version="1.0"> - <releasetypes>extsrc</releasetypes> - <releasetypes>zendextsrc</releasetypes> - <installable>1</installable> - <locationconfig>temp_dir</locationconfig> - <honorsbaseinstall /> - <unusualbaseinstall /> - <phpfile /> - <executable /> - <phpextension /> - <config_vars /> -</role> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/Installer/Role/Test.php b/src/vitis/vas/rest/class/PEAR/Installer/Role/Test.php deleted file mode 100755 index 63979b93..00000000 --- a/src/vitis/vas/rest/class/PEAR/Installer/Role/Test.php +++ /dev/null @@ -1,34 +0,0 @@ -<?php -/** - * PEAR_Installer_Role_Test - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Test.php,v 1.7 2008/01/03 20:26:36 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 1.4.0a1 - */ - -/** - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 1.4.0a1 - */ -class PEAR_Installer_Role_Test extends PEAR_Installer_Role_Common {} -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/Installer/Role/Test.xml b/src/vitis/vas/rest/class/PEAR/Installer/Role/Test.xml deleted file mode 100755 index 51d5b894..00000000 --- a/src/vitis/vas/rest/class/PEAR/Installer/Role/Test.xml +++ /dev/null @@ -1,15 +0,0 @@ -<role version="1.0"> - <releasetypes>php</releasetypes> - <releasetypes>extsrc</releasetypes> - <releasetypes>extbin</releasetypes> - <releasetypes>zendextsrc</releasetypes> - <releasetypes>zendextbin</releasetypes> - <installable>1</installable> - <locationconfig>test_dir</locationconfig> - <honorsbaseinstall /> - <unusualbaseinstall /> - <phpfile /> - <executable /> - <phpextension /> - <config_vars /> -</role> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/Installer/Role/Www.php b/src/vitis/vas/rest/class/PEAR/Installer/Role/Www.php deleted file mode 100755 index 801097f9..00000000 --- a/src/vitis/vas/rest/class/PEAR/Installer/Role/Www.php +++ /dev/null @@ -1,34 +0,0 @@ -<?php -/** - * PEAR_Installer_Role_Www - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 2007-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Www.php,v 1.2 2008/01/03 20:26:36 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 1.7.0 - */ - -/** - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 2007-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 1.7.0 - */ -class PEAR_Installer_Role_Www extends PEAR_Installer_Role_Common {} -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/Installer/Role/Www.xml b/src/vitis/vas/rest/class/PEAR/Installer/Role/Www.xml deleted file mode 100755 index 7598be38..00000000 --- a/src/vitis/vas/rest/class/PEAR/Installer/Role/Www.xml +++ /dev/null @@ -1,15 +0,0 @@ -<role version="1.0"> - <releasetypes>php</releasetypes> - <releasetypes>extsrc</releasetypes> - <releasetypes>extbin</releasetypes> - <releasetypes>zendextsrc</releasetypes> - <releasetypes>zendextbin</releasetypes> - <installable>1</installable> - <locationconfig>www_dir</locationconfig> - <honorsbaseinstall>1</honorsbaseinstall> - <unusualbaseinstall /> - <phpfile /> - <executable /> - <phpextension /> - <config_vars /> -</role> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/Mail.php b/src/vitis/vas/rest/class/PEAR/Mail.php deleted file mode 100755 index 51421869..00000000 --- a/src/vitis/vas/rest/class/PEAR/Mail.php +++ /dev/null @@ -1,245 +0,0 @@ -<?php -// -// +----------------------------------------------------------------------+ -// | PHP Version 4 | -// +----------------------------------------------------------------------+ -// | Copyright (c) 1997-2003 The PHP Group | -// +----------------------------------------------------------------------+ -// | This source file is subject to version 2.02 of the PHP license, | -// | that is bundled with this package in the file LICENSE, and is | -// | available at through the world-wide-web at | -// | http://www.php.net/license/2_02.txt. | -// | If you did not receive a copy of the PHP license and are unable to | -// | obtain it through the world-wide-web, please send a note to | -// | license@php.net so we can mail you a copy immediately. | -// +----------------------------------------------------------------------+ -// | Author: Chuck Hagenbuch <chuck@horde.org> | -// +----------------------------------------------------------------------+ -// -// $Id: Mail.php,v 1.20 2007/10/06 17:00:00 chagenbu Exp $ - -require_once 'PEAR.php'; - -/** - * PEAR's Mail:: interface. Defines the interface for implementing - * mailers under the PEAR hierarchy, and provides supporting functions - * useful in multiple mailer backends. - * - * @access public - * @version $Revision: 1.20 $ - * @package Mail - */ -class Mail -{ - /** - * Line terminator used for separating header lines. - * @var string - */ - var $sep = "\r\n"; - - /** - * Provides an interface for generating Mail:: objects of various - * types - * - * @param string $driver The kind of Mail:: object to instantiate. - * @param array $params The parameters to pass to the Mail:: object. - * @return object Mail a instance of the driver class or if fails a PEAR Error - * @access public - */ - function &factory($driver, $params = array()) - { - $driver = strtolower($driver); - @include_once 'Mail/' . $driver . '.php'; - $class = 'Mail_' . $driver; - if (class_exists($class)) { - $mailer = new $class($params); - return $mailer; - } else { - return PEAR::raiseError('Unable to find class for driver ' . $driver); - } - } - - /** - * Implements Mail::send() function using php's built-in mail() - * command. - * - * @param mixed $recipients Either a comma-seperated list of recipients - * (RFC822 compliant), or an array of recipients, - * each RFC822 valid. This may contain recipients not - * specified in the headers, for Bcc:, resending - * messages, etc. - * - * @param array $headers The array of headers to send with the mail, in an - * associative array, where the array key is the - * header name (ie, 'Subject'), and the array value - * is the header value (ie, 'test'). The header - * produced from those values would be 'Subject: - * test'. - * - * @param string $body The full text of the message body, including any - * Mime parts, etc. - * - * @return mixed Returns true on success, or a PEAR_Error - * containing a descriptive error message on - * failure. - * - * @access public - * @deprecated use Mail_mail::send instead - */ - function send($recipients, $headers, $body) - { - if (!is_array($headers)) { - return PEAR::raiseError('$headers must be an array'); - } - - $result = $this->_sanitizeHeaders($headers); - if (is_a($result, 'PEAR_Error')) { - return $result; - } - - // if we're passed an array of recipients, implode it. - if (is_array($recipients)) { - $recipients = implode(', ', $recipients); - } - - // get the Subject out of the headers array so that we can - // pass it as a seperate argument to mail(). - $subject = ''; - if (isset($headers['Subject'])) { - $subject = $headers['Subject']; - unset($headers['Subject']); - } - - // flatten the headers out. - list(, $text_headers) = Mail::prepareHeaders($headers); - - return mail($recipients, $subject, $body, $text_headers); - } - - /** - * Sanitize an array of mail headers by removing any additional header - * strings present in a legitimate header's value. The goal of this - * filter is to prevent mail injection attacks. - * - * @param array $headers The associative array of headers to sanitize. - * - * @access private - */ - function _sanitizeHeaders(&$headers) - { - foreach ($headers as $key => $value) { - $headers[$key] = - preg_replace('=((<CR>|<LF>|0x0A/%0A|0x0D/%0D|\\n|\\r)\S).*=i', - null, $value); - } - } - - /** - * Take an array of mail headers and return a string containing - * text usable in sending a message. - * - * @param array $headers The array of headers to prepare, in an associative - * array, where the array key is the header name (ie, - * 'Subject'), and the array value is the header - * value (ie, 'test'). The header produced from those - * values would be 'Subject: test'. - * - * @return mixed Returns false if it encounters a bad address, - * otherwise returns an array containing two - * elements: Any From: address found in the headers, - * and the plain text version of the headers. - * @access private - */ - function prepareHeaders($headers) - { - $lines = array(); - $from = null; - - foreach ($headers as $key => $value) { - if (strcasecmp($key, 'From') === 0) { - include_once 'Mail/RFC822.php'; - $parser = new Mail_RFC822(); - $addresses = $parser->parseAddressList($value, 'localhost', false); - if (is_a($addresses, 'PEAR_Error')) { - return $addresses; - } - - $from = $addresses[0]->mailbox . '@' . $addresses[0]->host; - - // Reject envelope From: addresses with spaces. - if (strstr($from, ' ')) { - return false; - } - - $lines[] = $key . ': ' . $value; - } elseif (strcasecmp($key, 'Received') === 0) { - $received = array(); - if (is_array($value)) { - foreach ($value as $line) { - $received[] = $key . ': ' . $line; - } - } - else { - $received[] = $key . ': ' . $value; - } - // Put Received: headers at the top. Spam detectors often - // flag messages with Received: headers after the Subject: - // as spam. - $lines = array_merge($received, $lines); - } else { - // If $value is an array (i.e., a list of addresses), convert - // it to a comma-delimited string of its elements (addresses). - if (is_array($value)) { - $value = implode(', ', $value); - } - $lines[] = $key . ': ' . $value; - } - } - - return array($from, join($this->sep, $lines)); - } - - /** - * Take a set of recipients and parse them, returning an array of - * bare addresses (forward paths) that can be passed to sendmail - * or an smtp server with the rcpt to: command. - * - * @param mixed Either a comma-seperated list of recipients - * (RFC822 compliant), or an array of recipients, - * each RFC822 valid. - * - * @return mixed An array of forward paths (bare addresses) or a PEAR_Error - * object if the address list could not be parsed. - * @access private - */ - function parseRecipients($recipients) - { - include_once 'Mail/RFC822.php'; - - // if we're passed an array, assume addresses are valid and - // implode them before parsing. - if (is_array($recipients)) { - $recipients = implode(', ', $recipients); - } - - // Parse recipients, leaving out all personal info. This is - // for smtp recipients, etc. All relevant personal information - // should already be in the headers. - $addresses = Mail_RFC822::parseAddressList($recipients, 'localhost', false); - - // If parseAddressList() returned a PEAR_Error object, just return it. - if (is_a($addresses, 'PEAR_Error')) { - return $addresses; - } - - $recipients = array(); - if (is_array($addresses)) { - foreach ($addresses as $ob) { - $recipients[] = $ob->mailbox . '@' . $ob->host; - } - } - - return $recipients; - } - -} diff --git a/src/vitis/vas/rest/class/PEAR/Mail/RFC822.php b/src/vitis/vas/rest/class/PEAR/Mail/RFC822.php deleted file mode 100755 index 09938c48..00000000 --- a/src/vitis/vas/rest/class/PEAR/Mail/RFC822.php +++ /dev/null @@ -1,940 +0,0 @@ -<?php -// +-----------------------------------------------------------------------+ -// | Copyright (c) 2001-2002, Richard Heyes | -// | All rights reserved. | -// | | -// | Redistribution and use in source and binary forms, with or without | -// | modification, are permitted provided that the following conditions | -// | are met: | -// | | -// | o Redistributions of source code must retain the above copyright | -// | notice, this list of conditions and the following disclaimer. | -// | o Redistributions in binary form must reproduce the above copyright | -// | notice, this list of conditions and the following disclaimer in the | -// | documentation and/or other materials provided with the distribution.| -// | o The names of the authors may not be used to endorse or promote | -// | products derived from this software without specific prior written | -// | permission. | -// | | -// | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | -// | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | -// | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | -// | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | -// | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | -// | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | -// | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | -// | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | -// | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | -// | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | -// | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | -// | | -// +-----------------------------------------------------------------------+ -// | Authors: Richard Heyes <richard@phpguru.org> | -// | Chuck Hagenbuch <chuck@horde.org> | -// +-----------------------------------------------------------------------+ - -/** - * RFC 822 Email address list validation Utility - * - * What is it? - * - * This class will take an address string, and parse it into it's consituent - * parts, be that either addresses, groups, or combinations. Nested groups - * are not supported. The structure it returns is pretty straight forward, - * and is similar to that provided by the imap_rfc822_parse_adrlist(). Use - * print_r() to view the structure. - * - * How do I use it? - * - * $address_string = 'My Group: "Richard" <richard@localhost> (A comment), ted@example.com (Ted Bloggs), Barney;'; - * $structure = Mail_RFC822::parseAddressList($address_string, 'example.com', true) - * print_r($structure); - * - * @author Richard Heyes <richard@phpguru.org> - * @author Chuck Hagenbuch <chuck@horde.org> - * @version $Revision: 1.24 $ - * @license BSD - * @package Mail - */ -class Mail_RFC822 { - - /** - * The address being parsed by the RFC822 object. - * @var string $address - */ - var $address = ''; - - /** - * The default domain to use for unqualified addresses. - * @var string $default_domain - */ - var $default_domain = 'localhost'; - - /** - * Should we return a nested array showing groups, or flatten everything? - * @var boolean $nestGroups - */ - var $nestGroups = true; - - /** - * Whether or not to validate atoms for non-ascii characters. - * @var boolean $validate - */ - var $validate = true; - - /** - * The array of raw addresses built up as we parse. - * @var array $addresses - */ - var $addresses = array(); - - /** - * The final array of parsed address information that we build up. - * @var array $structure - */ - var $structure = array(); - - /** - * The current error message, if any. - * @var string $error - */ - var $error = null; - - /** - * An internal counter/pointer. - * @var integer $index - */ - var $index = null; - - /** - * The number of groups that have been found in the address list. - * @var integer $num_groups - * @access public - */ - var $num_groups = 0; - - /** - * A variable so that we can tell whether or not we're inside a - * Mail_RFC822 object. - * @var boolean $mailRFC822 - */ - var $mailRFC822 = true; - - /** - * A limit after which processing stops - * @var int $limit - */ - var $limit = null; - - /** - * Sets up the object. The address must either be set here or when - * calling parseAddressList(). One or the other. - * - * @access public - * @param string $address The address(es) to validate. - * @param string $default_domain Default domain/host etc. If not supplied, will be set to localhost. - * @param boolean $nest_groups Whether to return the structure with groups nested for easier viewing. - * @param boolean $validate Whether to validate atoms. Turn this off if you need to run addresses through before encoding the personal names, for instance. - * - * @return object Mail_RFC822 A new Mail_RFC822 object. - */ - function Mail_RFC822($address = null, $default_domain = null, $nest_groups = null, $validate = null, $limit = null) - { - if (isset($address)) $this->address = $address; - if (isset($default_domain)) $this->default_domain = $default_domain; - if (isset($nest_groups)) $this->nestGroups = $nest_groups; - if (isset($validate)) $this->validate = $validate; - if (isset($limit)) $this->limit = $limit; - } - - /** - * Starts the whole process. The address must either be set here - * or when creating the object. One or the other. - * - * @access public - * @param string $address The address(es) to validate. - * @param string $default_domain Default domain/host etc. - * @param boolean $nest_groups Whether to return the structure with groups nested for easier viewing. - * @param boolean $validate Whether to validate atoms. Turn this off if you need to run addresses through before encoding the personal names, for instance. - * - * @return array A structured array of addresses. - */ - function parseAddressList($address = null, $default_domain = null, $nest_groups = null, $validate = null, $limit = null) - { - if (!isset($this) || !isset($this->mailRFC822)) { - $obj = new Mail_RFC822($address, $default_domain, $nest_groups, $validate, $limit); - return $obj->parseAddressList(); - } - - if (isset($address)) $this->address = $address; - if (isset($default_domain)) $this->default_domain = $default_domain; - if (isset($nest_groups)) $this->nestGroups = $nest_groups; - if (isset($validate)) $this->validate = $validate; - if (isset($limit)) $this->limit = $limit; - - $this->structure = array(); - $this->addresses = array(); - $this->error = null; - $this->index = null; - - // Unfold any long lines in $this->address. - $this->address = preg_replace('/\r?\n/', "\r\n", $this->address); - $this->address = preg_replace('/\r\n(\t| )+/', ' ', $this->address); - - while ($this->address = $this->_splitAddresses($this->address)); - - if ($this->address === false || isset($this->error)) { - require_once 'PEAR/PEAR.php'; - return PEAR::raiseError($this->error); - } - - // Validate each address individually. If we encounter an invalid - // address, stop iterating and return an error immediately. - foreach ($this->addresses as $address) { - $valid = $this->_validateAddress($address); - - if ($valid === false || isset($this->error)) { - require_once 'PEAR/PEAR.php'; - return PEAR::raiseError($this->error); - } - - if (!$this->nestGroups) { - $this->structure = array_merge($this->structure, $valid); - } else { - $this->structure[] = $valid; - } - } - - return $this->structure; - } - - /** - * Splits an address into separate addresses. - * - * @access private - * @param string $address The addresses to split. - * @return boolean Success or failure. - */ - function _splitAddresses($address) - { - if (!empty($this->limit) && count($this->addresses) == $this->limit) { - return ''; - } - - if ($this->_isGroup($address) && !isset($this->error)) { - $split_char = ';'; - $is_group = true; - } elseif (!isset($this->error)) { - $split_char = ','; - $is_group = false; - } elseif (isset($this->error)) { - return false; - } - - // Split the string based on the above ten or so lines. - $parts = explode($split_char, $address); - $string = $this->_splitCheck($parts, $split_char); - - // If a group... - if ($is_group) { - // If $string does not contain a colon outside of - // brackets/quotes etc then something's fubar. - - // First check there's a colon at all: - if (strpos($string, ':') === false) { - $this->error = 'Invalid address: ' . $string; - return false; - } - - // Now check it's outside of brackets/quotes: - if (!$this->_splitCheck(explode(':', $string), ':')) { - return false; - } - - // We must have a group at this point, so increase the counter: - $this->num_groups++; - } - - // $string now contains the first full address/group. - // Add to the addresses array. - $this->addresses[] = array( - 'address' => trim($string), - 'group' => $is_group - ); - - // Remove the now stored address from the initial line, the +1 - // is to account for the explode character. - $address = trim(substr($address, strlen($string) + 1)); - - // If the next char is a comma and this was a group, then - // there are more addresses, otherwise, if there are any more - // chars, then there is another address. - if ($is_group && substr($address, 0, 1) == ','){ - $address = trim(substr($address, 1)); - return $address; - - } elseif (strlen($address) > 0) { - return $address; - - } else { - return ''; - } - - // If you got here then something's off - return false; - } - - /** - * Checks for a group at the start of the string. - * - * @access private - * @param string $address The address to check. - * @return boolean Whether or not there is a group at the start of the string. - */ - function _isGroup($address) - { - // First comma not in quotes, angles or escaped: - $parts = explode(',', $address); - $string = $this->_splitCheck($parts, ','); - - // Now we have the first address, we can reliably check for a - // group by searching for a colon that's not escaped or in - // quotes or angle brackets. - if (count($parts = explode(':', $string)) > 1) { - $string2 = $this->_splitCheck($parts, ':'); - return ($string2 !== $string); - } else { - return false; - } - } - - /** - * A common function that will check an exploded string. - * - * @access private - * @param array $parts The exloded string. - * @param string $char The char that was exploded on. - * @return mixed False if the string contains unclosed quotes/brackets, or the string on success. - */ - function _splitCheck($parts, $char) - { - $string = $parts[0]; - - for ($i = 0; $i < count($parts); $i++) { - if ($this->_hasUnclosedQuotes($string) - || $this->_hasUnclosedBrackets($string, '<>') - || $this->_hasUnclosedBrackets($string, '[]') - || $this->_hasUnclosedBrackets($string, '()') - || substr($string, -1) == '\\') { - if (isset($parts[$i + 1])) { - $string = $string . $char . $parts[$i + 1]; - } else { - $this->error = 'Invalid address spec. Unclosed bracket or quotes'; - return false; - } - } else { - $this->index = $i; - break; - } - } - - return $string; - } - - /** - * Checks if a string has unclosed quotes or not. - * - * @access private - * @param string $string The string to check. - * @return boolean True if there are unclosed quotes inside the string, - * false otherwise. - */ - function _hasUnclosedQuotes($string) - { - $string = trim($string); - $iMax = strlen($string); - $in_quote = false; - $i = $slashes = 0; - - for (; $i < $iMax; ++$i) { - switch ($string[$i]) { - case '\\': - ++$slashes; - break; - - case '"': - if ($slashes % 2 == 0) { - $in_quote = !$in_quote; - } - // Fall through to default action below. - - default: - $slashes = 0; - break; - } - } - - return $in_quote; - } - - /** - * Checks if a string has an unclosed brackets or not. IMPORTANT: - * This function handles both angle brackets and square brackets; - * - * @access private - * @param string $string The string to check. - * @param string $chars The characters to check for. - * @return boolean True if there are unclosed brackets inside the string, false otherwise. - */ - function _hasUnclosedBrackets($string, $chars) - { - $num_angle_start = substr_count($string, $chars[0]); - $num_angle_end = substr_count($string, $chars[1]); - - $this->_hasUnclosedBracketsSub($string, $num_angle_start, $chars[0]); - $this->_hasUnclosedBracketsSub($string, $num_angle_end, $chars[1]); - - if ($num_angle_start < $num_angle_end) { - $this->error = 'Invalid address spec. Unmatched quote or bracket (' . $chars . ')'; - return false; - } else { - return ($num_angle_start > $num_angle_end); - } - } - - /** - * Sub function that is used only by hasUnclosedBrackets(). - * - * @access private - * @param string $string The string to check. - * @param integer &$num The number of occurences. - * @param string $char The character to count. - * @return integer The number of occurences of $char in $string, adjusted for backslashes. - */ - function _hasUnclosedBracketsSub($string, &$num, $char) - { - $parts = explode($char, $string); - for ($i = 0; $i < count($parts); $i++){ - if (substr($parts[$i], -1) == '\\' || $this->_hasUnclosedQuotes($parts[$i])) - $num--; - if (isset($parts[$i + 1])) - $parts[$i + 1] = $parts[$i] . $char . $parts[$i + 1]; - } - - return $num; - } - - /** - * Function to begin checking the address. - * - * @access private - * @param string $address The address to validate. - * @return mixed False on failure, or a structured array of address information on success. - */ - function _validateAddress($address) - { - $is_group = false; - $addresses = array(); - - if ($address['group']) { - $is_group = true; - - // Get the group part of the name - $parts = explode(':', $address['address']); - $groupname = $this->_splitCheck($parts, ':'); - $structure = array(); - - // And validate the group part of the name. - if (!$this->_validatePhrase($groupname)){ - $this->error = 'Group name did not validate.'; - return false; - } else { - // Don't include groups if we are not nesting - // them. This avoids returning invalid addresses. - if ($this->nestGroups) { - $structure = new stdClass; - $structure->groupname = $groupname; - } - } - - $address['address'] = ltrim(substr($address['address'], strlen($groupname . ':'))); - } - - // If a group then split on comma and put into an array. - // Otherwise, Just put the whole address in an array. - if ($is_group) { - while (strlen($address['address']) > 0) { - $parts = explode(',', $address['address']); - $addresses[] = $this->_splitCheck($parts, ','); - $address['address'] = trim(substr($address['address'], strlen(end($addresses) . ','))); - } - } else { - $addresses[] = $address['address']; - } - - // Check that $addresses is set, if address like this: - // Groupname:; - // Then errors were appearing. - if (!count($addresses)){ - $this->error = 'Empty group.'; - return false; - } - - // Trim the whitespace from all of the address strings. - array_map('trim', $addresses); - - // Validate each mailbox. - // Format could be one of: name <geezer@domain.com> - // geezer@domain.com - // geezer - // ... or any other format valid by RFC 822. - for ($i = 0; $i < count($addresses); $i++) { - if (!$this->validateMailbox($addresses[$i])) { - if (empty($this->error)) { - $this->error = 'Validation failed for: ' . $addresses[$i]; - } - return false; - } - } - - // Nested format - if ($this->nestGroups) { - if ($is_group) { - $structure->addresses = $addresses; - } else { - $structure = $addresses[0]; - } - - // Flat format - } else { - if ($is_group) { - $structure = array_merge($structure, $addresses); - } else { - $structure = $addresses; - } - } - - return $structure; - } - - /** - * Function to validate a phrase. - * - * @access private - * @param string $phrase The phrase to check. - * @return boolean Success or failure. - */ - function _validatePhrase($phrase) - { - // Splits on one or more Tab or space. - $parts = preg_split('/[ \\x09]+/', $phrase, -1, PREG_SPLIT_NO_EMPTY); - - $phrase_parts = array(); - while (count($parts) > 0){ - $phrase_parts[] = $this->_splitCheck($parts, ' '); - for ($i = 0; $i < $this->index + 1; $i++) - array_shift($parts); - } - - foreach ($phrase_parts as $part) { - // If quoted string: - if (substr($part, 0, 1) == '"') { - if (!$this->_validateQuotedString($part)) { - return false; - } - continue; - } - - // Otherwise it's an atom: - if (!$this->_validateAtom($part)) return false; - } - - return true; - } - - /** - * Function to validate an atom which from rfc822 is: - * atom = 1*<any CHAR except specials, SPACE and CTLs> - * - * If validation ($this->validate) has been turned off, then - * validateAtom() doesn't actually check anything. This is so that you - * can split a list of addresses up before encoding personal names - * (umlauts, etc.), for example. - * - * @access private - * @param string $atom The string to check. - * @return boolean Success or failure. - */ - function _validateAtom($atom) - { - if (!$this->validate) { - // Validation has been turned off; assume the atom is okay. - return true; - } - - // Check for any char from ASCII 0 - ASCII 127 - if (!preg_match('/^[\\x00-\\x7E]+$/i', $atom, $matches)) { - return false; - } - - // Check for specials: - if (preg_match('/[][()<>@,;\\:" ]/', $atom)) { - return false; - } - - // Check for control characters (ASCII 0-31): - if (preg_match('/[\\x00-\\x1F]+/', $atom)) { - return false; - } - - return true; - } - - /** - * Function to validate quoted string, which is: - * quoted-string = <"> *(qtext/quoted-pair) <"> - * - * @access private - * @param string $qstring The string to check - * @return boolean Success or failure. - */ - function _validateQuotedString($qstring) - { - // Leading and trailing " - $qstring = substr($qstring, 1, -1); - - // Perform check, removing quoted characters first. - return !preg_match('/[\x0D\\\\"]/', preg_replace('/\\\\./', '', $qstring)); - } - - /** - * Function to validate a mailbox, which is: - * mailbox = addr-spec ; simple address - * / phrase route-addr ; name and route-addr - * - * @access public - * @param string &$mailbox The string to check. - * @return boolean Success or failure. - */ - function validateMailbox(&$mailbox) - { - // A couple of defaults. - $phrase = ''; - $comment = ''; - $comments = array(); - - // Catch any RFC822 comments and store them separately. - $_mailbox = $mailbox; - while (strlen(trim($_mailbox)) > 0) { - $parts = explode('(', $_mailbox); - $before_comment = $this->_splitCheck($parts, '('); - if ($before_comment != $_mailbox) { - // First char should be a (. - $comment = substr(str_replace($before_comment, '', $_mailbox), 1); - $parts = explode(')', $comment); - $comment = $this->_splitCheck($parts, ')'); - $comments[] = $comment; - - // +1 is for the trailing ) - $_mailbox = substr($_mailbox, strpos($_mailbox, $comment)+strlen($comment)+1); - } else { - break; - } - } - - foreach ($comments as $comment) { - $mailbox = str_replace("($comment)", '', $mailbox); - } - - $mailbox = trim($mailbox); - - // Check for name + route-addr - if (substr($mailbox, -1) == '>' && substr($mailbox, 0, 1) != '<') { - $parts = explode('<', $mailbox); - $name = $this->_splitCheck($parts, '<'); - - $phrase = trim($name); - $route_addr = trim(substr($mailbox, strlen($name.'<'), -1)); - - if ($this->_validatePhrase($phrase) === false || ($route_addr = $this->_validateRouteAddr($route_addr)) === false) { - return false; - } - - // Only got addr-spec - } else { - // First snip angle brackets if present. - if (substr($mailbox, 0, 1) == '<' && substr($mailbox, -1) == '>') { - $addr_spec = substr($mailbox, 1, -1); - } else { - $addr_spec = $mailbox; - } - - if (($addr_spec = $this->_validateAddrSpec($addr_spec)) === false) { - return false; - } - } - - // Construct the object that will be returned. - $mbox = new stdClass(); - - // Add the phrase (even if empty) and comments - $mbox->personal = $phrase; - $mbox->comment = isset($comments) ? $comments : array(); - - if (isset($route_addr)) { - $mbox->mailbox = $route_addr['local_part']; - $mbox->host = $route_addr['domain']; - $route_addr['adl'] !== '' ? $mbox->adl = $route_addr['adl'] : ''; - } else { - $mbox->mailbox = $addr_spec['local_part']; - $mbox->host = $addr_spec['domain']; - } - - $mailbox = $mbox; - return true; - } - - /** - * This function validates a route-addr which is: - * route-addr = "<" [route] addr-spec ">" - * - * Angle brackets have already been removed at the point of - * getting to this function. - * - * @access private - * @param string $route_addr The string to check. - * @return mixed False on failure, or an array containing validated address/route information on success. - */ - function _validateRouteAddr($route_addr) - { - // Check for colon. - if (strpos($route_addr, ':') !== false) { - $parts = explode(':', $route_addr); - $route = $this->_splitCheck($parts, ':'); - } else { - $route = $route_addr; - } - - // If $route is same as $route_addr then the colon was in - // quotes or brackets or, of course, non existent. - if ($route === $route_addr){ - unset($route); - $addr_spec = $route_addr; - if (($addr_spec = $this->_validateAddrSpec($addr_spec)) === false) { - return false; - } - } else { - // Validate route part. - if (($route = $this->_validateRoute($route)) === false) { - return false; - } - - $addr_spec = substr($route_addr, strlen($route . ':')); - - // Validate addr-spec part. - if (($addr_spec = $this->_validateAddrSpec($addr_spec)) === false) { - return false; - } - } - - if (isset($route)) { - $return['adl'] = $route; - } else { - $return['adl'] = ''; - } - - $return = array_merge($return, $addr_spec); - return $return; - } - - /** - * Function to validate a route, which is: - * route = 1#("@" domain) ":" - * - * @access private - * @param string $route The string to check. - * @return mixed False on failure, or the validated $route on success. - */ - function _validateRoute($route) - { - // Split on comma. - $domains = explode(',', trim($route)); - - foreach ($domains as $domain) { - $domain = str_replace('@', '', trim($domain)); - if (!$this->_validateDomain($domain)) return false; - } - - return $route; - } - - /** - * Function to validate a domain, though this is not quite what - * you expect of a strict internet domain. - * - * domain = sub-domain *("." sub-domain) - * - * @access private - * @param string $domain The string to check. - * @return mixed False on failure, or the validated domain on success. - */ - function _validateDomain($domain) - { - // Note the different use of $subdomains and $sub_domains - $subdomains = explode('.', $domain); - - while (count($subdomains) > 0) { - $sub_domains[] = $this->_splitCheck($subdomains, '.'); - for ($i = 0; $i < $this->index + 1; $i++) - array_shift($subdomains); - } - - foreach ($sub_domains as $sub_domain) { - if (!$this->_validateSubdomain(trim($sub_domain))) - return false; - } - - // Managed to get here, so return input. - return $domain; - } - - /** - * Function to validate a subdomain: - * subdomain = domain-ref / domain-literal - * - * @access private - * @param string $subdomain The string to check. - * @return boolean Success or failure. - */ - function _validateSubdomain($subdomain) - { - if (preg_match('|^\[(.*)]$|', $subdomain, $arr)){ - if (!$this->_validateDliteral($arr[1])) return false; - } else { - if (!$this->_validateAtom($subdomain)) return false; - } - - // Got here, so return successful. - return true; - } - - /** - * Function to validate a domain literal: - * domain-literal = "[" *(dtext / quoted-pair) "]" - * - * @access private - * @param string $dliteral The string to check. - * @return boolean Success or failure. - */ - function _validateDliteral($dliteral) - { - return !preg_match('/(.)[][\x0D\\\\]/', $dliteral, $matches) && $matches[1] != '\\'; - } - - /** - * Function to validate an addr-spec. - * - * addr-spec = local-part "@" domain - * - * @access private - * @param string $addr_spec The string to check. - * @return mixed False on failure, or the validated addr-spec on success. - */ - function _validateAddrSpec($addr_spec) - { - $addr_spec = trim($addr_spec); - - // Split on @ sign if there is one. - if (strpos($addr_spec, '@') !== false) { - $parts = explode('@', $addr_spec); - $local_part = $this->_splitCheck($parts, '@'); - $domain = substr($addr_spec, strlen($local_part . '@')); - - // No @ sign so assume the default domain. - } else { - $local_part = $addr_spec; - $domain = $this->default_domain; - } - - if (($local_part = $this->_validateLocalPart($local_part)) === false) return false; - if (($domain = $this->_validateDomain($domain)) === false) return false; - - // Got here so return successful. - return array('local_part' => $local_part, 'domain' => $domain); - } - - /** - * Function to validate the local part of an address: - * local-part = word *("." word) - * - * @access private - * @param string $local_part - * @return mixed False on failure, or the validated local part on success. - */ - function _validateLocalPart($local_part) - { - $parts = explode('.', $local_part); - $words = array(); - - // Split the local_part into words. - while (count($parts) > 0){ - $words[] = $this->_splitCheck($parts, '.'); - for ($i = 0; $i < $this->index + 1; $i++) { - array_shift($parts); - } - } - - // Validate each word. - foreach ($words as $word) { - // If this word contains an unquoted space, it is invalid. (6.2.4) - if (strpos($word, ' ') && $word[0] !== '"') - { - return false; - } - - if ($this->_validatePhrase(trim($word)) === false) return false; - } - - // Managed to get here, so return the input. - return $local_part; - } - - /** - * Returns an approximate count of how many addresses are in the - * given string. This is APPROXIMATE as it only splits based on a - * comma which has no preceding backslash. Could be useful as - * large amounts of addresses will end up producing *large* - * structures when used with parseAddressList(). - * - * @param string $data Addresses to count - * @return int Approximate count - */ - function approximateCount($data) - { - return count(preg_split('/(?<!\\\\),/', $data)); - } - - /** - * This is a email validating function separate to the rest of the - * class. It simply validates whether an email is of the common - * internet form: <user>@<domain>. This can be sufficient for most - * people. Optional stricter mode can be utilised which restricts - * mailbox characters allowed to alphanumeric, full stop, hyphen - * and underscore. - * - * @param string $data Address to check - * @param boolean $strict Optional stricter mode - * @return mixed False if it fails, an indexed array - * username/domain if it matches - */ - function isValidInetAddress($data, $strict = false) - { - $regex = $strict ? '/^([.0-9a-z_+-]+)@(([0-9a-z-]+\.)+[0-9a-z]{2,})$/i' : '/^([*+!.&#$|\'\\%\/0-9a-z^_`{}=?~:-]+)@(([0-9a-z-]+\.)+[0-9a-z]{2,})$/i'; - if (preg_match($regex, trim($data), $matches)) { - return array($matches[1], $matches[2]); - } else { - return false; - } - } - -} diff --git a/src/vitis/vas/rest/class/PEAR/Mail/mail.php b/src/vitis/vas/rest/class/PEAR/Mail/mail.php deleted file mode 100755 index b13d6956..00000000 --- a/src/vitis/vas/rest/class/PEAR/Mail/mail.php +++ /dev/null @@ -1,143 +0,0 @@ -<?php -// -// +----------------------------------------------------------------------+ -// | PHP Version 4 | -// +----------------------------------------------------------------------+ -// | Copyright (c) 1997-2003 The PHP Group | -// +----------------------------------------------------------------------+ -// | This source file is subject to version 2.02 of the PHP license, | -// | that is bundled with this package in the file LICENSE, and is | -// | available at through the world-wide-web at | -// | http://www.php.net/license/2_02.txt. | -// | If you did not receive a copy of the PHP license and are unable to | -// | obtain it through the world-wide-web, please send a note to | -// | license@php.net so we can mail you a copy immediately. | -// +----------------------------------------------------------------------+ -// | Author: Chuck Hagenbuch <chuck@horde.org> | -// +----------------------------------------------------------------------+ -// -// $Id: mail.php,v 1.20 2007/10/06 17:00:00 chagenbu Exp $ - -/** - * internal PHP-mail() implementation of the PEAR Mail:: interface. - * @package Mail - * @version $Revision: 1.20 $ - */ -class Mail_mail extends Mail { - - /** - * Any arguments to pass to the mail() function. - * @var string - */ - var $_params = ''; - - /** - * Constructor. - * - * Instantiates a new Mail_mail:: object based on the parameters - * passed in. - * - * @param array $params Extra arguments for the mail() function. - */ - function Mail_mail($params = null) - { - // The other mail implementations accept parameters as arrays. - // In the interest of being consistent, explode an array into - // a string of parameter arguments. - if (is_array($params)) { - $this->_params = join(' ', $params); - } else { - $this->_params = $params; - } - - /* Because the mail() function may pass headers as command - * line arguments, we can't guarantee the use of the standard - * "\r\n" separator. Instead, we use the system's native line - * separator. */ - if (defined('PHP_EOL')) { - $this->sep = PHP_EOL; - } else { - $this->sep = (strpos(PHP_OS, 'WIN') === false) ? "\n" : "\r\n"; - } - } - - /** - * Implements Mail_mail::send() function using php's built-in mail() - * command. - * - * @param mixed $recipients Either a comma-seperated list of recipients - * (RFC822 compliant), or an array of recipients, - * each RFC822 valid. This may contain recipients not - * specified in the headers, for Bcc:, resending - * messages, etc. - * - * @param array $headers The array of headers to send with the mail, in an - * associative array, where the array key is the - * header name (ie, 'Subject'), and the array value - * is the header value (ie, 'test'). The header - * produced from those values would be 'Subject: - * test'. - * - * @param string $body The full text of the message body, including any - * Mime parts, etc. - * - * @return mixed Returns true on success, or a PEAR_Error - * containing a descriptive error message on - * failure. - * - * @access public - */ - function send($recipients, $headers, $body) - { - if (!is_array($headers)) { - return PEAR::raiseError('$headers must be an array'); - } - - $result = $this->_sanitizeHeaders($headers); - if (is_a($result, 'PEAR_Error')) { - return $result; - } - - // If we're passed an array of recipients, implode it. - if (is_array($recipients)) { - $recipients = implode(', ', $recipients); - } - - // Get the Subject out of the headers array so that we can - // pass it as a seperate argument to mail(). - $subject = ''; - if (isset($headers['Subject'])) { - $subject = $headers['Subject']; - unset($headers['Subject']); - } - - // Also remove the To: header. The mail() function will add its own - // To: header based on the contents of $recipients. - unset($headers['To']); - - // Flatten the headers out. - $headerElements = $this->prepareHeaders($headers); - if (is_a($headerElements, 'PEAR_Error')) { - return $headerElements; - } - list(, $text_headers) = $headerElements; - - // We only use mail()'s optional fifth parameter if the additional - // parameters have been provided and we're not running in safe mode. - if (empty($this->_params) || ini_get('safe_mode')) { - $result = mail($recipients, $subject, $body, $text_headers); - } else { - $result = mail($recipients, $subject, $body, $text_headers, - $this->_params); - } - - // If the mail() function returned failure, we need to create a - // PEAR_Error object and return it instead of the boolean result. - if ($result === false) { - $result = PEAR::raiseError('mail() returned failure'); - } - - return $result; - } - -} diff --git a/src/vitis/vas/rest/class/PEAR/Mail/mime.php b/src/vitis/vas/rest/class/PEAR/Mail/mime.php deleted file mode 100755 index 30d876f0..00000000 --- a/src/vitis/vas/rest/class/PEAR/Mail/mime.php +++ /dev/null @@ -1,1495 +0,0 @@ -<?php -/** - * The Mail_Mime class is used to create MIME E-mail messages - * - * The Mail_Mime class provides an OO interface to create MIME - * enabled email messages. This way you can create emails that - * contain plain-text bodies, HTML bodies, attachments, inline - * images and specific headers. - * - * Compatible with PHP versions 4 and 5 - * - * LICENSE: This LICENSE is in the BSD license style. - * Copyright (c) 2002-2003, Richard Heyes <richard@phpguru.org> - * Copyright (c) 2003-2006, PEAR <pear-group@php.net> - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or - * without modification, are permitted provided that the following - * conditions are met: - * - * - Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - Neither the name of the authors, nor the names of its contributors - * may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF - * THE POSSIBILITY OF SUCH DAMAGE. - * - * @category Mail - * @package Mail_Mime - * @author Richard Heyes <richard@phpguru.org> - * @author Tomas V.V. Cox <cox@idecnet.com> - * @author Cipriano Groenendal <cipri@php.net> - * @author Sean Coates <sean@php.net> - * @author Aleksander Machniak <alec@php.net> - * @copyright 2003-2006 PEAR <pear-group@php.net> - * @license http://www.opensource.org/licenses/bsd-license.php BSD License - * @version CVS: $Id$ - * @link http://pear.php.net/package/Mail_mime - * - * This class is based on HTML Mime Mail class from - * Richard Heyes <richard@phpguru.org> which was based also - * in the mime_mail.class by Tobias Ratschiller <tobias@dnet.it> - * and Sascha Schumann <sascha@schumann.cx> - */ - - -/** - * require PEAR - * - * This package depends on PEAR to raise errors. - */ -require_once 'PEAR/PEAR.php'; - -/** - * require Mail_mimePart - * - * Mail_mimePart contains the code required to - * create all the different parts a mail can - * consist of. - */ -require_once 'mimePart.php'; - - -/** - * The Mail_Mime class provides an OO interface to create MIME - * enabled email messages. This way you can create emails that - * contain plain-text bodies, HTML bodies, attachments, inline - * images and specific headers. - * - * @category Mail - * @package Mail_Mime - * @author Richard Heyes <richard@phpguru.org> - * @author Tomas V.V. Cox <cox@idecnet.com> - * @author Cipriano Groenendal <cipri@php.net> - * @author Sean Coates <sean@php.net> - * @copyright 2003-2006 PEAR <pear-group@php.net> - * @license http://www.opensource.org/licenses/bsd-license.php BSD License - * @version Release: @package_version@ - * @link http://pear.php.net/package/Mail_mime - */ -class Mail_mime -{ - /** - * Contains the plain text part of the email - * - * @var string - * @access private - */ - var $_txtbody; - - /** - * Contains the html part of the email - * - * @var string - * @access private - */ - var $_htmlbody; - - /** - * list of the attached images - * - * @var array - * @access private - */ - var $_html_images = array(); - - /** - * list of the attachements - * - * @var array - * @access private - */ - var $_parts = array(); - - /** - * Headers for the mail - * - * @var array - * @access private - */ - var $_headers = array(); - - /** - * Build parameters - * - * @var array - * @access private - */ - var $_build_params = array( - // What encoding to use for the headers - // Options: quoted-printable or base64 - 'head_encoding' => 'quoted-printable', - // What encoding to use for plain text - // Options: 7bit, 8bit, base64, or quoted-printable - 'text_encoding' => 'quoted-printable', - // What encoding to use for html - // Options: 7bit, 8bit, base64, or quoted-printable - 'html_encoding' => 'quoted-printable', - // The character set to use for html - 'html_charset' => 'ISO-8859-1', - // The character set to use for text - 'text_charset' => 'ISO-8859-1', - // The character set to use for headers - 'head_charset' => 'ISO-8859-1', - // End-of-line sequence - 'eol' => "\r\n", - // Delay attachment files IO until building the message - 'delay_file_io' => false - ); - - /** - * Constructor function - * - * @param mixed $params Build parameters that change the way the email - * is built. Should be an associative array. - * See $_build_params. - * - * @return void - * @access public - */ - function __construct($params = array()) - { - // Backward-compatible EOL setting - if (is_string($params)) { - $this->_build_params['eol'] = $params; - } else if (defined('MAIL_MIME_CRLF') && !isset($params['eol'])) { - $this->_build_params['eol'] = MAIL_MIME_CRLF; - } - - // Update build parameters - if (!empty($params) && is_array($params)) { - while (list($key, $value) = each($params)) { - $this->_build_params[$key] = $value; - } - } - } - - /** - * Set build parameter value - * - * @param string $name Parameter name - * @param string $value Parameter value - * - * @return void - * @access public - * @since 1.6.0 - */ - function setParam($name, $value) - { - $this->_build_params[$name] = $value; - } - - /** - * Get build parameter value - * - * @param string $name Parameter name - * - * @return mixed Parameter value - * @access public - * @since 1.6.0 - */ - function getParam($name) - { - return isset($this->_build_params[$name]) ? $this->_build_params[$name] : null; - } - - /** - * Accessor function to set the body text. Body text is used if - * it's not an html mail being sent or else is used to fill the - * text/plain part that emails clients who don't support - * html should show. - * - * @param string $data Either a string or - * the file name with the contents - * @param bool $isfile If true the first param should be treated - * as a file name, else as a string (default) - * @param bool $append If true the text or file is appended to - * the existing body, else the old body is - * overwritten - * - * @return mixed True on success or PEAR_Error object - * @access public - */ - function setTXTBody($data, $isfile = false, $append = false) - { - if (!$isfile) { - if (!$append) { - $this->_txtbody = $data; - } else { - $this->_txtbody .= $data; - } - } else { - $cont = $this->_file2str($data); - if ($this->_isError($cont)) { - return $cont; - } - if (!$append) { - $this->_txtbody = $cont; - } else { - $this->_txtbody .= $cont; - } - } - - return true; - } - - /** - * Get message text body - * - * @return string Text body - * @access public - * @since 1.6.0 - */ - function getTXTBody() - { - return $this->_txtbody; - } - - /** - * Adds a html part to the mail. - * - * @param string $data Either a string or the file name with the - * contents - * @param bool $isfile A flag that determines whether $data is a - * filename, or a string(false, default) - * - * @return bool True on success - * @access public - */ - function setHTMLBody($data, $isfile = false) - { - if (!$isfile) { - $this->_htmlbody = $data; - } else { - $cont = $this->_file2str($data); - if ($this->_isError($cont)) { - return $cont; - } - $this->_htmlbody = $cont; - } - - return true; - } - - /** - * Get message HTML body - * - * @return string HTML body - * @access public - * @since 1.6.0 - */ - function getHTMLBody() - { - return $this->_htmlbody; - } - - /** - * Adds an image to the list of embedded images. - * - * @param string $file The image file name OR image data itself - * @param string $c_type The content type - * @param string $name The filename of the image. - * Only used if $file is the image data. - * @param bool $isfile Whether $file is a filename or not. - * Defaults to true - * @param string $content_id Desired Content-ID of MIME part - * Defaults to generated unique ID - * - * @return bool True on success - * @access public - */ - function addHTMLImage($file, - $c_type='application/octet-stream', - $name = '', - $isfile = true, - $content_id = null - ) { - $bodyfile = null; - - if ($isfile) { - // Don't load file into memory - if ($this->_build_params['delay_file_io']) { - $filedata = null; - $bodyfile = $file; - } else { - if ($this->_isError($filedata = $this->_file2str($file))) { - return $filedata; - } - } - $filename = ($name ? $name : $file); - } else { - $filedata = $file; - $filename = $name; - } - - if (!$content_id) { - $content_id = preg_replace('/[^0-9a-zA-Z]/', '', uniqid(time(), true)); - } - - $this->_html_images[] = array( - 'body' => $filedata, - 'body_file' => $bodyfile, - 'name' => $filename, - 'c_type' => $c_type, - 'cid' => $content_id - ); - - return true; - } - - /** - * Adds a file to the list of attachments. - * - * @param string $file The file name of the file to attach - * or the file contents itself - * @param string $c_type The content type - * @param string $name The filename of the attachment - * Only use if $file is the contents - * @param bool $isfile Whether $file is a filename or not. Defaults to true - * @param string $encoding The type of encoding to use. Defaults to base64. - * Possible values: 7bit, 8bit, base64 or quoted-printable. - * @param string $disposition The content-disposition of this file - * Defaults to attachment. - * Possible values: attachment, inline. - * @param string $charset The character set of attachment's content. - * @param string $language The language of the attachment - * @param string $location The RFC 2557.4 location of the attachment - * @param string $n_encoding Encoding of the attachment's name in Content-Type - * By default filenames are encoded using RFC2231 method - * Here you can set RFC2047 encoding (quoted-printable - * or base64) instead - * @param string $f_encoding Encoding of the attachment's filename - * in Content-Disposition header. - * @param string $description Content-Description header - * @param string $h_charset The character set of the headers e.g. filename - * If not specified, $charset will be used - * @param array $add_headers Additional part headers. Array keys can be in form - * of <header_name>:<parameter_name> - * - * @return mixed True on success or PEAR_Error object - * @access public - */ - function addAttachment($file, - $c_type = 'application/octet-stream', - $name = '', - $isfile = true, - $encoding = 'base64', - $disposition = 'attachment', - $charset = '', - $language = '', - $location = '', - $n_encoding = null, - $f_encoding = null, - $description = '', - $h_charset = null, - $add_headers = array() - ) { - $bodyfile = null; - - if ($isfile) { - // Don't load file into memory - if ($this->_build_params['delay_file_io']) { - $filedata = null; - $bodyfile = $file; - } else { - if ($this->_isError($filedata = $this->_file2str($file))) { - return $filedata; - } - } - // Force the name the user supplied, otherwise use $file - $filename = ($name ? $name : $this->_basename($file)); - } else { - $filedata = $file; - $filename = $name; - } - - if (!strlen($filename)) { - $msg = "The supplied filename for the attachment can't be empty"; - return $this->_raiseError($msg); - } - - $this->_parts[] = array( - 'body' => $filedata, - 'body_file' => $bodyfile, - 'name' => $filename, - 'c_type' => $c_type, - 'charset' => $charset, - 'encoding' => $encoding, - 'language' => $language, - 'location' => $location, - 'disposition' => $disposition, - 'description' => $description, - 'add_headers' => $add_headers, - 'name_encoding' => $n_encoding, - 'filename_encoding' => $f_encoding, - 'headers_charset' => $h_charset, - ); - - return true; - } - - /** - * Get the contents of the given file name as string - * - * @param string $file_name Path of file to process - * - * @return string Contents of $file_name - * @access private - */ - function _file2str($file_name) - { - // Check state of file and raise an error properly - if (!file_exists($file_name)) { - return $this->_raiseError('File not found: ' . $file_name); - } - if (!is_file($file_name)) { - return $this->_raiseError('Not a regular file: ' . $file_name); - } - if (!is_readable($file_name)) { - return $this->_raiseError('File is not readable: ' . $file_name); - } - - // Temporarily reset magic_quotes_runtime and read file contents - if ($magic_quote_setting = get_magic_quotes_runtime()) { - @ini_set('magic_quotes_runtime', 0); - } - $cont = file_get_contents($file_name); - if ($magic_quote_setting) { - @ini_set('magic_quotes_runtime', $magic_quote_setting); - } - - return $cont; - } - - /** - * Adds a text subpart to the mimePart object and - * returns it during the build process. - * - * @param mixed &$obj The object to add the part to, or - * null if a new object is to be created. - * @param string $text The text to add. - * - * @return object The text mimePart object - * @access private - */ - function &_addTextPart(&$obj = null, $text = '') - { - $params['content_type'] = 'text/plain'; - $params['encoding'] = $this->_build_params['text_encoding']; - $params['charset'] = $this->_build_params['text_charset']; - $params['eol'] = $this->_build_params['eol']; - - if (is_object($obj)) { - $ret = $obj->addSubpart($text, $params); - } else { - $ret = new Mail_mimePart($text, $params); - } - - return $ret; - } - - /** - * Adds a html subpart to the mimePart object and - * returns it during the build process. - * - * @param mixed &$obj The object to add the part to, or - * null if a new object is to be created. - * - * @return object The html mimePart object - * @access private - */ - function &_addHtmlPart(&$obj = null) - { - $params['content_type'] = 'text/html'; - $params['encoding'] = $this->_build_params['html_encoding']; - $params['charset'] = $this->_build_params['html_charset']; - $params['eol'] = $this->_build_params['eol']; - - if (is_object($obj)) { - $ret = $obj->addSubpart($this->_htmlbody, $params); - } else { - $ret = new Mail_mimePart($this->_htmlbody, $params); - } - - return $ret; - } - - /** - * Creates a new mimePart object, using multipart/mixed as - * the initial content-type and returns it during the - * build process. - * - * @return object The multipart/mixed mimePart object - * @access private - */ - function &_addMixedPart() - { - $params['content_type'] = 'multipart/mixed'; - $params['eol'] = $this->_build_params['eol']; - - // Create empty multipart/mixed Mail_mimePart object to return - $ret = new Mail_mimePart('', $params); - return $ret; - } - - /** - * Adds a multipart/alternative part to a mimePart - * object (or creates one), and returns it during - * the build process. - * - * @param mixed &$obj The object to add the part to, or - * null if a new object is to be created. - * - * @return object The multipart/mixed mimePart object - * @access private - */ - function &_addAlternativePart(&$obj = null) - { - $params['content_type'] = 'multipart/alternative'; - $params['eol'] = $this->_build_params['eol']; - - if (is_object($obj)) { - $ret = $obj->addSubpart('', $params); - } else { - $ret = new Mail_mimePart('', $params); - } - - return $ret; - } - - /** - * Adds a multipart/related part to a mimePart - * object (or creates one), and returns it during - * the build process. - * - * @param mixed &$obj The object to add the part to, or - * null if a new object is to be created - * - * @return object The multipart/mixed mimePart object - * @access private - */ - function &_addRelatedPart(&$obj = null) - { - $params['content_type'] = 'multipart/related'; - $params['eol'] = $this->_build_params['eol']; - - if (is_object($obj)) { - $ret = $obj->addSubpart('', $params); - } else { - $ret = new Mail_mimePart('', $params); - } - - return $ret; - } - - /** - * Adds an html image subpart to a mimePart object - * and returns it during the build process. - * - * @param object &$obj The mimePart to add the image to - * @param array $value The image information - * - * @return object The image mimePart object - * @access private - */ - function &_addHtmlImagePart(&$obj, $value) - { - $params['content_type'] = $value['c_type']; - $params['encoding'] = 'base64'; - $params['disposition'] = 'inline'; - $params['filename'] = $value['name']; - $params['cid'] = $value['cid']; - $params['body_file'] = $value['body_file']; - $params['eol'] = $this->_build_params['eol']; - - if (!empty($value['name_encoding'])) { - $params['name_encoding'] = $value['name_encoding']; - } - if (!empty($value['filename_encoding'])) { - $params['filename_encoding'] = $value['filename_encoding']; - } - - $ret = $obj->addSubpart($value['body'], $params); - return $ret; - } - - /** - * Adds an attachment subpart to a mimePart object - * and returns it during the build process. - * - * @param object &$obj The mimePart to add the image to - * @param array $value The attachment information - * - * @return object The image mimePart object - * @access private - */ - function &_addAttachmentPart(&$obj, $value) - { - $params['eol'] = $this->_build_params['eol']; - $params['filename'] = $value['name']; - $params['encoding'] = $value['encoding']; - $params['content_type'] = $value['c_type']; - $params['body_file'] = $value['body_file']; - $params['disposition'] = isset($value['disposition']) ? - $value['disposition'] : 'attachment'; - - // content charset - if (!empty($value['charset'])) { - $params['charset'] = $value['charset']; - } - // headers charset (filename, description) - if (!empty($value['headers_charset'])) { - $params['headers_charset'] = $value['headers_charset']; - } - if (!empty($value['language'])) { - $params['language'] = $value['language']; - } - if (!empty($value['location'])) { - $params['location'] = $value['location']; - } - if (!empty($value['name_encoding'])) { - $params['name_encoding'] = $value['name_encoding']; - } - if (!empty($value['filename_encoding'])) { - $params['filename_encoding'] = $value['filename_encoding']; - } - if (!empty($value['description'])) { - $params['description'] = $value['description']; - } - if (is_array($value['add_headers'])) { - $params['headers'] = $value['add_headers']; - } - - $ret = $obj->addSubpart($value['body'], $params); - return $ret; - } - - /** - * Returns the complete e-mail, ready to send using an alternative - * mail delivery method. Note that only the mailpart that is made - * with Mail_Mime is created. This means that, - * YOU WILL HAVE NO TO: HEADERS UNLESS YOU SET IT YOURSELF - * using the $headers parameter! - * - * @param string $separation The separation between these two parts. - * @param array $params The Build parameters passed to the - * get() function. See get() for more info. - * @param array $headers The extra headers that should be passed - * to the headers() method. - * See that function for more info. - * @param bool $overwrite Overwrite the existing headers with new. - * - * @return mixed The complete e-mail or PEAR error object - * @access public - */ - function getMessage($separation = null, $params = null, $headers = null, - $overwrite = false - ) { - if ($separation === null) { - $separation = $this->_build_params['eol']; - } - - $body = $this->get($params); - - if ($this->_isError($body)) { - return $body; - } - - return $this->txtHeaders($headers, $overwrite) . $separation . $body; - } - - /** - * Returns the complete e-mail body, ready to send using an alternative - * mail delivery method. - * - * @param array $params The Build parameters passed to the - * get() method. See get() for more info. - * - * @return mixed The e-mail body or PEAR error object - * @access public - * @since 1.6.0 - */ - function getMessageBody($params = null) - { - return $this->get($params, null, true); - } - - /** - * Writes (appends) the complete e-mail into file. - * - * @param string $filename Output file location - * @param array $params The Build parameters passed to the - * get() method. See get() for more info. - * @param array $headers The extra headers that should be passed - * to the headers() function. - * See that function for more info. - * @param bool $overwrite Overwrite the existing headers with new. - * - * @return mixed True or PEAR error object - * @access public - * @since 1.6.0 - */ - function saveMessage($filename, $params = null, $headers = null, $overwrite = false) - { - // Check state of file and raise an error properly - if (file_exists($filename) && !is_writable($filename)) { - return $this->_raiseError('File is not writable: ' . $filename); - } - - // Temporarily reset magic_quotes_runtime and read file contents - if ($magic_quote_setting = get_magic_quotes_runtime()) { - @ini_set('magic_quotes_runtime', 0); - } - - if (!($fh = fopen($filename, 'ab'))) { - return $this->_raiseError('Unable to open file: ' . $filename); - } - - // Write message headers into file (skipping Content-* headers) - $head = $this->txtHeaders($headers, $overwrite, true); - if (fwrite($fh, $head) === false) { - return $this->_raiseError('Error writing to file: ' . $filename); - } - - fclose($fh); - - if ($magic_quote_setting) { - @ini_set('magic_quotes_runtime', $magic_quote_setting); - } - - // Write the rest of the message into file - $res = $this->get($params, $filename); - - return $res ? $res : true; - } - - /** - * Writes (appends) the complete e-mail body into file. - * - * @param string $filename Output file location - * @param array $params The Build parameters passed to the - * get() method. See get() for more info. - * - * @return mixed True or PEAR error object - * @access public - * @since 1.6.0 - */ - function saveMessageBody($filename, $params = null) - { - // Check state of file and raise an error properly - if (file_exists($filename) && !is_writable($filename)) { - return $this->_raiseError('File is not writable: ' . $filename); - } - - // Temporarily reset magic_quotes_runtime and read file contents - if ($magic_quote_setting = get_magic_quotes_runtime()) { - @ini_set('magic_quotes_runtime', 0); - } - - if (!($fh = fopen($filename, 'ab'))) { - return $this->_raiseError('Unable to open file: ' . $filename); - } - - // Write the rest of the message into file - $res = $this->get($params, $filename, true); - - return $res ? $res : true; - } - - /** - * Builds the multipart message from the list ($this->_parts) and - * returns the mime content. - * - * @param array $params Build parameters that change the way the email - * is built. Should be associative. See $_build_params. - * @param resource $filename Output file where to save the message instead of - * returning it - * @param boolean $skip_head True if you want to return/save only the message - * without headers - * - * @return mixed The MIME message content string, null or PEAR error object - * @access public - */ - function get($params = null, $filename = null, $skip_head = false) - { - if (isset($params)) { - while (list($key, $value) = each($params)) { - $this->_build_params[$key] = $value; - } - } - - if (isset($this->_headers['From'])) { - // Bug #11381: Illegal characters in domain ID - if (preg_match('#(@[0-9a-zA-Z\-\.]+)#', $this->_headers['From'], $matches)) { - $domainID = $matches[1]; - } else { - $domainID = '@localhost'; - } - foreach ($this->_html_images as $i => $img) { - $cid = $this->_html_images[$i]['cid']; - if (!preg_match('#'.preg_quote($domainID).'$#', $cid)) { - $this->_html_images[$i]['cid'] = $cid . $domainID; - } - } - } - - if (count($this->_html_images) && isset($this->_htmlbody)) { - foreach ($this->_html_images as $key => $value) { - $regex = array(); - $regex[] = '#(\s)((?i)src|background|href(?-i))\s*=\s*(["\']?)' . - preg_quote($value['name'], '#') . '\3#'; - $regex[] = '#(?i)url(?-i)\(\s*(["\']?)' . - preg_quote($value['name'], '#') . '\1\s*\)#'; - - $rep = array(); - $rep[] = '\1\2=\3cid:' . $value['cid'] .'\3'; - $rep[] = 'url(\1cid:' . $value['cid'] . '\1)'; - - $this->_htmlbody = preg_replace($regex, $rep, $this->_htmlbody); - $this->_html_images[$key]['name'] - = $this->_basename($this->_html_images[$key]['name']); - } - } - - $this->_checkParams(); - - $null = null; - $attachments = count($this->_parts) ? true : false; - $html_images = count($this->_html_images) ? true : false; - $html = strlen($this->_htmlbody) ? true : false; - $text = (!$html && strlen($this->_txtbody)) ? true : false; - - switch (true) { - case $text && !$attachments: - $message =& $this->_addTextPart($null, $this->_txtbody); - break; - - case !$text && !$html && $attachments: - $message =& $this->_addMixedPart(); - for ($i = 0; $i < count($this->_parts); $i++) { - $this->_addAttachmentPart($message, $this->_parts[$i]); - } - break; - - case $text && $attachments: - $message =& $this->_addMixedPart(); - $this->_addTextPart($message, $this->_txtbody); - for ($i = 0; $i < count($this->_parts); $i++) { - $this->_addAttachmentPart($message, $this->_parts[$i]); - } - break; - - case $html && !$attachments && !$html_images: - if (isset($this->_txtbody)) { - $message =& $this->_addAlternativePart($null); - $this->_addTextPart($message, $this->_txtbody); - $this->_addHtmlPart($message); - } else { - $message =& $this->_addHtmlPart($null); - } - break; - - case $html && !$attachments && $html_images: - // * Content-Type: multipart/alternative; - // * text - // * Content-Type: multipart/related; - // * html - // * image... - if (isset($this->_txtbody)) { - $message =& $this->_addAlternativePart($null); - $this->_addTextPart($message, $this->_txtbody); - - $ht =& $this->_addRelatedPart($message); - $this->_addHtmlPart($ht); - for ($i = 0; $i < count($this->_html_images); $i++) { - $this->_addHtmlImagePart($ht, $this->_html_images[$i]); - } - } else { - // * Content-Type: multipart/related; - // * html - // * image... - $message =& $this->_addRelatedPart($null); - $this->_addHtmlPart($message); - for ($i = 0; $i < count($this->_html_images); $i++) { - $this->_addHtmlImagePart($message, $this->_html_images[$i]); - } - } - /* - // #13444, #9725: the code below was a non-RFC compliant hack - // * Content-Type: multipart/related; - // * Content-Type: multipart/alternative; - // * text - // * html - // * image... - $message =& $this->_addRelatedPart($null); - if (isset($this->_txtbody)) { - $alt =& $this->_addAlternativePart($message); - $this->_addTextPart($alt, $this->_txtbody); - $this->_addHtmlPart($alt); - } else { - $this->_addHtmlPart($message); - } - for ($i = 0; $i < count($this->_html_images); $i++) { - $this->_addHtmlImagePart($message, $this->_html_images[$i]); - } - */ - break; - - case $html && $attachments && !$html_images: - $message =& $this->_addMixedPart(); - if (isset($this->_txtbody)) { - $alt =& $this->_addAlternativePart($message); - $this->_addTextPart($alt, $this->_txtbody); - $this->_addHtmlPart($alt); - } else { - $this->_addHtmlPart($message); - } - for ($i = 0; $i < count($this->_parts); $i++) { - $this->_addAttachmentPart($message, $this->_parts[$i]); - } - break; - - case $html && $attachments && $html_images: - $message =& $this->_addMixedPart(); - if (isset($this->_txtbody)) { - $alt =& $this->_addAlternativePart($message); - $this->_addTextPart($alt, $this->_txtbody); - $rel =& $this->_addRelatedPart($alt); - } else { - $rel =& $this->_addRelatedPart($message); - } - $this->_addHtmlPart($rel); - for ($i = 0; $i < count($this->_html_images); $i++) { - $this->_addHtmlImagePart($rel, $this->_html_images[$i]); - } - for ($i = 0; $i < count($this->_parts); $i++) { - $this->_addAttachmentPart($message, $this->_parts[$i]); - } - break; - - } - - if (!isset($message)) { - return null; - } - - // Use saved boundary - if (!empty($this->_build_params['boundary'])) { - $boundary = $this->_build_params['boundary']; - } else { - $boundary = null; - } - - // Write output to file - if ($filename) { - // Append mimePart message headers and body into file - $headers = $message->encodeToFile($filename, $boundary, $skip_head); - if ($this->_isError($headers)) { - return $headers; - } - $this->_headers = array_merge($this->_headers, $headers); - return null; - } else { - $output = $message->encode($boundary, $skip_head); - if ($this->_isError($output)) { - return $output; - } - $this->_headers = array_merge($this->_headers, $output['headers']); - return $output['body']; - } - } - - /** - * Returns an array with the headers needed to prepend to the email - * (MIME-Version and Content-Type). Format of argument is: - * $array['header-name'] = 'header-value'; - * - * @param array $xtra_headers Assoc array with any extra headers (optional) - * (Don't set Content-Type for multipart messages here!) - * @param bool $overwrite Overwrite already existing headers. - * @param bool $skip_content Don't return content headers: Content-Type, - * Content-Disposition and Content-Transfer-Encoding - * - * @return array Assoc array with the mime headers - * @access public - */ - function headers($xtra_headers = null, $overwrite = false, $skip_content = false) - { - // Add mime version header - $headers['MIME-Version'] = '1.0'; - - // Content-Type and Content-Transfer-Encoding headers should already - // be present if get() was called, but we'll re-set them to make sure - // we got them when called before get() or something in the message - // has been changed after get() [#14780] - if (!$skip_content) { - $headers += $this->_contentHeaders(); - } - - if (!empty($xtra_headers)) { - $headers = array_merge($headers, $xtra_headers); - } - - if ($overwrite) { - $this->_headers = array_merge($this->_headers, $headers); - } else { - $this->_headers = array_merge($headers, $this->_headers); - } - - $headers = $this->_headers; - - if ($skip_content) { - unset($headers['Content-Type']); - unset($headers['Content-Transfer-Encoding']); - unset($headers['Content-Disposition']); - } else if (!empty($this->_build_params['ctype'])) { - $headers['Content-Type'] = $this->_build_params['ctype']; - } - - $encodedHeaders = $this->_encodeHeaders($headers); - return $encodedHeaders; - } - - /** - * Get the text version of the headers - * (usefull if you want to use the PHP mail() function) - * - * @param array $xtra_headers Assoc array with any extra headers (optional) - * (Don't set Content-Type for multipart messages here!) - * @param bool $overwrite Overwrite the existing headers with new. - * @param bool $skip_content Don't return content headers: Content-Type, - * Content-Disposition and Content-Transfer-Encoding - * - * @return string Plain text headers - * @access public - */ - function txtHeaders($xtra_headers = null, $overwrite = false, $skip_content = false) - { - $headers = $this->headers($xtra_headers, $overwrite, $skip_content); - - // Place Received: headers at the beginning of the message - // Spam detectors often flag messages with it after the Subject: as spam - if (isset($headers['Received'])) { - $received = $headers['Received']; - unset($headers['Received']); - $headers = array('Received' => $received) + $headers; - } - - $ret = ''; - $eol = $this->_build_params['eol']; - - foreach ($headers as $key => $val) { - if (is_array($val)) { - foreach ($val as $value) { - $ret .= "$key: $value" . $eol; - } - } else { - $ret .= "$key: $val" . $eol; - } - } - - return $ret; - } - - /** - * Sets message Content-Type header. - * Use it to build messages with various content-types e.g. miltipart/raport - * not supported by _contentHeaders() function. - * - * @param string $type Type name - * @param array $params Hash array of header parameters - * - * @return void - * @access public - * @since 1.7.0 - */ - function setContentType($type, $params = array()) - { - $header = $type; - - $eol = !empty($this->_build_params['eol']) - ? $this->_build_params['eol'] : "\r\n"; - - // add parameters - $token_regexp = '#([^\x21\x23-\x27\x2A\x2B\x2D' - . '\x2E\x30-\x39\x41-\x5A\x5E-\x7E])#'; - if (is_array($params)) { - foreach ($params as $name => $value) { - if ($name == 'boundary') { - $this->_build_params['boundary'] = $value; - } - if (!preg_match($token_regexp, $value)) { - $header .= ";$eol $name=$value"; - } else { - $value = addcslashes($value, '\\"'); - $header .= ";$eol $name=\"$value\""; - } - } - } - - // add required boundary parameter if not defined - if (preg_match('/^multipart\//i', $type)) { - if (empty($this->_build_params['boundary'])) { - $this->_build_params['boundary'] = '=_' . md5(rand() . microtime()); - } - - $header .= ";$eol boundary=\"".$this->_build_params['boundary']."\""; - } - - $this->_build_params['ctype'] = $header; - } - - /** - * Sets the Subject header - * - * @param string $subject String to set the subject to. - * - * @return void - * @access public - */ - function setSubject($subject) - { - $this->_headers['Subject'] = $subject; - } - - /** - * Set an email to the From (the sender) header - * - * @param string $email The email address to use - * - * @return void - * @access public - */ - function setFrom($email) - { - $this->_headers['From'] = $email; - } - - /** - * Add an email to the To header - * (multiple calls to this method are allowed) - * - * @param string $email The email direction to add - * - * @return void - * @access public - */ - function addTo($email) - { - if (isset($this->_headers['To'])) { - $this->_headers['To'] .= ", $email"; - } else { - $this->_headers['To'] = $email; - } - } - - /** - * Add an email to the Cc (carbon copy) header - * (multiple calls to this method are allowed) - * - * @param string $email The email direction to add - * - * @return void - * @access public - */ - function addCc($email) - { - if (isset($this->_headers['Cc'])) { - $this->_headers['Cc'] .= ", $email"; - } else { - $this->_headers['Cc'] = $email; - } - } - - /** - * Add an email to the Bcc (blank carbon copy) header - * (multiple calls to this method are allowed) - * - * @param string $email The email direction to add - * - * @return void - * @access public - */ - function addBcc($email) - { - if (isset($this->_headers['Bcc'])) { - $this->_headers['Bcc'] .= ", $email"; - } else { - $this->_headers['Bcc'] = $email; - } - } - - /** - * Since the PHP send function requires you to specify - * recipients (To: header) separately from the other - * headers, the To: header is not properly encoded. - * To fix this, you can use this public method to - * encode your recipients before sending to the send - * function - * - * @param string $recipients A comma-delimited list of recipients - * - * @return string Encoded data - * @access public - */ - function encodeRecipients($recipients) - { - $input = array("To" => $recipients); - $retval = $this->_encodeHeaders($input); - return $retval["To"] ; - } - - /** - * Encodes headers as per RFC2047 - * - * @param array $input The header data to encode - * @param array $params Extra build parameters - * - * @return array Encoded data - * @access private - */ - function _encodeHeaders($input, $params = array()) - { - $build_params = $this->_build_params; - while (list($key, $value) = each($params)) { - $build_params[$key] = $value; - } - - foreach ($input as $hdr_name => $hdr_value) { - if (is_array($hdr_value)) { - foreach ($hdr_value as $idx => $value) { - $input[$hdr_name][$idx] = $this->encodeHeader( - $hdr_name, $value, - $build_params['head_charset'], $build_params['head_encoding'] - ); - } - } else { - $input[$hdr_name] = $this->encodeHeader( - $hdr_name, $hdr_value, - $build_params['head_charset'], $build_params['head_encoding'] - ); - } - } - - return $input; - } - - /** - * Encodes a header as per RFC2047 - * - * @param string $name The header name - * @param string $value The header data to encode - * @param string $charset Character set name - * @param string $encoding Encoding name (base64 or quoted-printable) - * - * @return string Encoded header data (without a name) - * @access public - * @since 1.5.3 - */ - function encodeHeader($name, $value, $charset, $encoding) - { - $mime_part = new Mail_mimePart; - return $mime_part->encodeHeader( - $name, $value, $charset, $encoding, $this->_build_params['eol'] - ); - } - - /** - * Get file's basename (locale independent) - * - * @param string $filename Filename - * - * @return string Basename - * @access private - */ - function _basename($filename) - { - // basename() is not unicode safe and locale dependent - if (stristr(PHP_OS, 'win') || stristr(PHP_OS, 'netware')) { - return preg_replace('/^.*[\\\\\\/]/', '', $filename); - } else { - return preg_replace('/^.*[\/]/', '', $filename); - } - } - - /** - * Get Content-Type and Content-Transfer-Encoding headers of the message - * - * @return array Headers array - * @access private - */ - function _contentHeaders() - { - $attachments = count($this->_parts) ? true : false; - $html_images = count($this->_html_images) ? true : false; - $html = strlen($this->_htmlbody) ? true : false; - $text = (!$html && strlen($this->_txtbody)) ? true : false; - $headers = array(); - - // See get() - switch (true) { - case $text && !$attachments: - $headers['Content-Type'] = 'text/plain'; - break; - - case !$text && !$html && $attachments: - case $text && $attachments: - case $html && $attachments && !$html_images: - case $html && $attachments && $html_images: - $headers['Content-Type'] = 'multipart/mixed'; - break; - - case $html && !$attachments && !$html_images && isset($this->_txtbody): - case $html && !$attachments && $html_images && isset($this->_txtbody): - $headers['Content-Type'] = 'multipart/alternative'; - break; - - case $html && !$attachments && !$html_images && !isset($this->_txtbody): - $headers['Content-Type'] = 'text/html'; - break; - - case $html && !$attachments && $html_images && !isset($this->_txtbody): - $headers['Content-Type'] = 'multipart/related'; - break; - - default: - return $headers; - } - - $this->_checkParams(); - - $eol = !empty($this->_build_params['eol']) - ? $this->_build_params['eol'] : "\r\n"; - - if ($headers['Content-Type'] == 'text/plain') { - // single-part message: add charset and encoding - $charset = 'charset=' . $this->_build_params['text_charset']; - // place charset parameter in the same line, if possible - // 26 = strlen("Content-Type: text/plain; ") - $headers['Content-Type'] - .= (strlen($charset) + 26 <= 76) ? "; $charset" : ";$eol $charset"; - $headers['Content-Transfer-Encoding'] - = $this->_build_params['text_encoding']; - } else if ($headers['Content-Type'] == 'text/html') { - // single-part message: add charset and encoding - $charset = 'charset=' . $this->_build_params['html_charset']; - // place charset parameter in the same line, if possible - $headers['Content-Type'] - .= (strlen($charset) + 25 <= 76) ? "; $charset" : ";$eol $charset"; - $headers['Content-Transfer-Encoding'] - = $this->_build_params['html_encoding']; - } else { - // multipart message: and boundary - if (!empty($this->_build_params['boundary'])) { - $boundary = $this->_build_params['boundary']; - } else if (!empty($this->_headers['Content-Type']) - && preg_match('/boundary="([^"]+)"/', $this->_headers['Content-Type'], $m) - ) { - $boundary = $m[1]; - } else { - $boundary = '=_' . md5(rand() . microtime()); - } - - $this->_build_params['boundary'] = $boundary; - $headers['Content-Type'] .= ";$eol boundary=\"$boundary\""; - } - - return $headers; - } - - /** - * Validate and set build parameters - * - * @return void - * @access private - */ - function _checkParams() - { - $encodings = array('7bit', '8bit', 'base64', 'quoted-printable'); - - $this->_build_params['text_encoding'] - = strtolower($this->_build_params['text_encoding']); - $this->_build_params['html_encoding'] - = strtolower($this->_build_params['html_encoding']); - - if (!in_array($this->_build_params['text_encoding'], $encodings)) { - $this->_build_params['text_encoding'] = '7bit'; - } - if (!in_array($this->_build_params['html_encoding'], $encodings)) { - $this->_build_params['html_encoding'] = '7bit'; - } - - // text body - if ($this->_build_params['text_encoding'] == '7bit' - && !preg_match('/ascii/i', $this->_build_params['text_charset']) - && preg_match('/[^\x00-\x7F]/', $this->_txtbody) - ) { - $this->_build_params['text_encoding'] = 'quoted-printable'; - } - // html body - if ($this->_build_params['html_encoding'] == '7bit' - && !preg_match('/ascii/i', $this->_build_params['html_charset']) - && preg_match('/[^\x00-\x7F]/', $this->_htmlbody) - ) { - $this->_build_params['html_encoding'] = 'quoted-printable'; - } - } - - /** - * PEAR::isError implementation - * - * @param mixed $data Object - * - * @return bool True if object is an instance of PEAR_Error - * @access private - */ - function _isError($data) - { - // PEAR::isError() is not PHP 5.4 compatible (see Bug #19473) - if (is_object($data) && is_a($data, 'PEAR_Error')) { - return true; - } - - return false; - } - - /** - * PEAR::raiseError implementation - * - * @param $message A text error message - * - * @return PEAR_Error Instance of PEAR_Error - * @access private - */ - function _raiseError($message) - { - // PEAR::raiseError() is not PHP 5.4 compatible - return new PEAR_Error($message); - } - -} // End of class diff --git a/src/vitis/vas/rest/class/PEAR/Mail/mimePart.php b/src/vitis/vas/rest/class/PEAR/Mail/mimePart.php deleted file mode 100755 index 0cbc18ad..00000000 --- a/src/vitis/vas/rest/class/PEAR/Mail/mimePart.php +++ /dev/null @@ -1,1261 +0,0 @@ -<?php -/** - * The Mail_mimePart class is used to create MIME E-mail messages - * - * This class enables you to manipulate and build a mime email - * from the ground up. The Mail_Mime class is a userfriendly api - * to this class for people who aren't interested in the internals - * of mime mail. - * This class however allows full control over the email. - * - * Compatible with PHP versions 4 and 5 - * - * LICENSE: This LICENSE is in the BSD license style. - * Copyright (c) 2002-2003, Richard Heyes <richard@phpguru.org> - * Copyright (c) 2003-2006, PEAR <pear-group@php.net> - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or - * without modification, are permitted provided that the following - * conditions are met: - * - * - Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - Neither the name of the authors, nor the names of its contributors - * may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF - * THE POSSIBILITY OF SUCH DAMAGE. - * - * @category Mail - * @package Mail_Mime - * @author Richard Heyes <richard@phpguru.org> - * @author Cipriano Groenendal <cipri@php.net> - * @author Sean Coates <sean@php.net> - * @author Aleksander Machniak <alec@php.net> - * @copyright 2003-2006 PEAR <pear-group@php.net> - * @license http://www.opensource.org/licenses/bsd-license.php BSD License - * @version CVS: $Id$ - * @link http://pear.php.net/package/Mail_mime - */ - - -/** - * The Mail_mimePart class is used to create MIME E-mail messages - * - * This class enables you to manipulate and build a mime email - * from the ground up. The Mail_Mime class is a userfriendly api - * to this class for people who aren't interested in the internals - * of mime mail. - * This class however allows full control over the email. - * - * @category Mail - * @package Mail_Mime - * @author Richard Heyes <richard@phpguru.org> - * @author Cipriano Groenendal <cipri@php.net> - * @author Sean Coates <sean@php.net> - * @author Aleksander Machniak <alec@php.net> - * @copyright 2003-2006 PEAR <pear-group@php.net> - * @license http://www.opensource.org/licenses/bsd-license.php BSD License - * @version Release: @package_version@ - * @link http://pear.php.net/package/Mail_mime - */ -class Mail_mimePart -{ - /** - * The encoding type of this part - * - * @var string - * @access private - */ - var $_encoding; - - /** - * An array of subparts - * - * @var array - * @access private - */ - var $_subparts; - - /** - * The output of this part after being built - * - * @var string - * @access private - */ - var $_encoded; - - /** - * Headers for this part - * - * @var array - * @access private - */ - var $_headers; - - /** - * The body of this part (not encoded) - * - * @var string - * @access private - */ - var $_body; - - /** - * The location of file with body of this part (not encoded) - * - * @var string - * @access private - */ - var $_body_file; - - /** - * The end-of-line sequence - * - * @var string - * @access private - */ - var $_eol = "\r\n"; - - - /** - * Constructor. - * - * Sets up the object. - * - * @param string $body The body of the mime part if any. - * @param array $params An associative array of optional parameters: - * content_type - The content type for this part eg multipart/mixed - * encoding - The encoding to use, 7bit, 8bit, - * base64, or quoted-printable - * charset - Content character set - * cid - Content ID to apply - * disposition - Content disposition, inline or attachment - * filename - Filename parameter for content disposition - * description - Content description - * name_encoding - Encoding of the attachment name (Content-Type) - * By default filenames are encoded using RFC2231 - * Here you can set RFC2047 encoding (quoted-printable - * or base64) instead - * filename_encoding - Encoding of the attachment filename (Content-Disposition) - * See 'name_encoding' - * headers_charset - Charset of the headers e.g. filename, description. - * If not set, 'charset' will be used - * eol - End of line sequence. Default: "\r\n" - * headers - Hash array with additional part headers. Array keys can be - * in form of <header_name>:<parameter_name> - * body_file - Location of file with part's body (instead of $body) - * - * @access public - */ - function __construct($body = '', $params = array()) - { - if (!empty($params['eol'])) { - $this->_eol = $params['eol']; - } else if (defined('MAIL_MIMEPART_CRLF')) { // backward-copat. - $this->_eol = MAIL_MIMEPART_CRLF; - } - - // Additional part headers - if (!empty($params['headers']) && is_array($params['headers'])) { - $headers = $params['headers']; - } - - foreach ($params as $key => $value) { - switch ($key) { - case 'encoding': - $this->_encoding = $value; - $headers['Content-Transfer-Encoding'] = $value; - break; - - case 'cid': - $headers['Content-ID'] = '<' . $value . '>'; - break; - - case 'location': - $headers['Content-Location'] = $value; - break; - - case 'body_file': - $this->_body_file = $value; - break; - - // for backward compatibility - case 'dfilename': - $params['filename'] = $value; - break; - } - } - - // Default content-type - if (empty($params['content_type'])) { - $params['content_type'] = 'text/plain'; - } - - // Content-Type - $headers['Content-Type'] = $params['content_type']; - if (!empty($params['charset'])) { - $charset = "charset={$params['charset']}"; - // place charset parameter in the same line, if possible - if ((strlen($headers['Content-Type']) + strlen($charset) + 16) <= 76) { - $headers['Content-Type'] .= '; '; - } else { - $headers['Content-Type'] .= ';' . $this->_eol . ' '; - } - $headers['Content-Type'] .= $charset; - - // Default headers charset - if (!isset($params['headers_charset'])) { - $params['headers_charset'] = $params['charset']; - } - } - - // header values encoding parameters - $h_charset = !empty($params['headers_charset']) ? $params['headers_charset'] : 'US-ASCII'; - $h_language = !empty($params['language']) ? $params['language'] : null; - $h_encoding = !empty($params['name_encoding']) ? $params['name_encoding'] : null; - - - if (!empty($params['filename'])) { - $headers['Content-Type'] .= ';' . $this->_eol; - $headers['Content-Type'] .= $this->_buildHeaderParam( - 'name', $params['filename'], $h_charset, $h_language, $h_encoding - ); - } - - // Content-Disposition - if (!empty($params['disposition'])) { - $headers['Content-Disposition'] = $params['disposition']; - if (!empty($params['filename'])) { - $headers['Content-Disposition'] .= ';' . $this->_eol; - $headers['Content-Disposition'] .= $this->_buildHeaderParam( - 'filename', $params['filename'], $h_charset, $h_language, - !empty($params['filename_encoding']) ? $params['filename_encoding'] : null - ); - } - - // add attachment size - $size = $this->_body_file ? filesize($this->_body_file) : strlen($body); - if ($size) { - $headers['Content-Disposition'] .= ';' . $this->_eol . ' size=' . $size; - } - } - - if (!empty($params['description'])) { - $headers['Content-Description'] = $this->encodeHeader( - 'Content-Description', $params['description'], $h_charset, $h_encoding, - $this->_eol - ); - } - - // Search and add existing headers' parameters - foreach ($headers as $key => $value) { - $items = explode(':', $key); - if (count($items) == 2) { - $header = $items[0]; - $param = $items[1]; - if (isset($headers[$header])) { - $headers[$header] .= ';' . $this->_eol; - } - $headers[$header] .= $this->_buildHeaderParam( - $param, $value, $h_charset, $h_language, $h_encoding - ); - unset($headers[$key]); - } - } - - // Default encoding - if (!isset($this->_encoding)) { - $this->_encoding = '7bit'; - } - - // Assign stuff to member variables - $this->_encoded = array(); - $this->_headers = $headers; - $this->_body = $body; - } - - /** - * Encodes and returns the email. Also stores - * it in the encoded member variable - * - * @param string $boundary Pre-defined boundary string - * - * @return An associative array containing two elements, - * body and headers. The headers element is itself - * an indexed array. On error returns PEAR error object. - * @access public - */ - function encode($boundary=null) - { - $encoded =& $this->_encoded; - - if (count($this->_subparts)) { - $boundary = $boundary ? $boundary : '=_' . md5(rand() . microtime()); - $eol = $this->_eol; - - $this->_headers['Content-Type'] .= ";$eol boundary=\"$boundary\""; - - $encoded['body'] = ''; - - for ($i = 0; $i < count($this->_subparts); $i++) { - $encoded['body'] .= '--' . $boundary . $eol; - $tmp = $this->_subparts[$i]->encode(); - if ($this->_isError($tmp)) { - return $tmp; - } - foreach ($tmp['headers'] as $key => $value) { - $encoded['body'] .= $key . ': ' . $value . $eol; - } - $encoded['body'] .= $eol . $tmp['body'] . $eol; - } - - $encoded['body'] .= '--' . $boundary . '--' . $eol; - - } else if ($this->_body) { - $encoded['body'] = $this->_getEncodedData($this->_body, $this->_encoding); - } else if ($this->_body_file) { - // Temporarily reset magic_quotes_runtime for file reads and writes - if ($magic_quote_setting = get_magic_quotes_runtime()) { - @ini_set('magic_quotes_runtime', 0); - } - $body = $this->_getEncodedDataFromFile($this->_body_file, $this->_encoding); - if ($magic_quote_setting) { - @ini_set('magic_quotes_runtime', $magic_quote_setting); - } - - if ($this->_isError($body)) { - return $body; - } - $encoded['body'] = $body; - } else { - $encoded['body'] = ''; - } - - // Add headers to $encoded - $encoded['headers'] =& $this->_headers; - - return $encoded; - } - - /** - * Encodes and saves the email into file. File must exist. - * Data will be appended to the file. - * - * @param string $filename Output file location - * @param string $boundary Pre-defined boundary string - * @param boolean $skip_head True if you don't want to save headers - * - * @return array An associative array containing message headers - * or PEAR error object - * @access public - * @since 1.6.0 - */ - function encodeToFile($filename, $boundary=null, $skip_head=false) - { - if (file_exists($filename) && !is_writable($filename)) { - $err = $this->_raiseError('File is not writeable: ' . $filename); - return $err; - } - - if (!($fh = fopen($filename, 'ab'))) { - $err = $this->_raiseError('Unable to open file: ' . $filename); - return $err; - } - - // Temporarily reset magic_quotes_runtime for file reads and writes - if ($magic_quote_setting = get_magic_quotes_runtime()) { - @ini_set('magic_quotes_runtime', 0); - } - - $res = $this->_encodePartToFile($fh, $boundary, $skip_head); - - fclose($fh); - - if ($magic_quote_setting) { - @ini_set('magic_quotes_runtime', $magic_quote_setting); - } - - return $this->_isError($res) ? $res : $this->_headers; - } - - /** - * Encodes given email part into file - * - * @param string $fh Output file handle - * @param string $boundary Pre-defined boundary string - * @param boolean $skip_head True if you don't want to save headers - * - * @return array True on sucess or PEAR error object - * @access private - */ - function _encodePartToFile($fh, $boundary=null, $skip_head=false) - { - $eol = $this->_eol; - - if (count($this->_subparts)) { - $boundary = $boundary ? $boundary : '=_' . md5(rand() . microtime()); - $this->_headers['Content-Type'] .= ";$eol boundary=\"$boundary\""; - } - - if (!$skip_head) { - foreach ($this->_headers as $key => $value) { - fwrite($fh, $key . ': ' . $value . $eol); - } - $f_eol = $eol; - } else { - $f_eol = ''; - } - - if (count($this->_subparts)) { - for ($i = 0; $i < count($this->_subparts); $i++) { - fwrite($fh, $f_eol . '--' . $boundary . $eol); - $res = $this->_subparts[$i]->_encodePartToFile($fh); - if ($this->_isError($res)) { - return $res; - } - $f_eol = $eol; - } - - fwrite($fh, $eol . '--' . $boundary . '--' . $eol); - - } else if ($this->_body) { - fwrite($fh, $f_eol . $this->_getEncodedData($this->_body, $this->_encoding)); - } else if ($this->_body_file) { - fwrite($fh, $f_eol); - $res = $this->_getEncodedDataFromFile( - $this->_body_file, $this->_encoding, $fh - ); - if ($this->_isError($res)) { - return $res; - } - } - - return true; - } - - /** - * Adds a subpart to current mime part and returns - * a reference to it - * - * @param string $body The body of the subpart, if any. - * @param array $params The parameters for the subpart, same - * as the $params argument for constructor. - * - * @return Mail_mimePart A reference to the part you just added. In PHP4, it is - * crucial if using multipart/* in your subparts that - * you use =& in your script when calling this function, - * otherwise you will not be able to add further subparts. - * @access public - */ - function &addSubpart($body, $params) - { - $this->_subparts[] = $part = new Mail_mimePart($body, $params); - return $part; - } - - /** - * Returns encoded data based upon encoding passed to it - * - * @param string $data The data to encode. - * @param string $encoding The encoding type to use, 7bit, base64, - * or quoted-printable. - * - * @return string - * @access private - */ - function _getEncodedData($data, $encoding) - { - switch ($encoding) { - case 'quoted-printable': - return $this->_quotedPrintableEncode($data); - break; - - case 'base64': - return rtrim(chunk_split(base64_encode($data), 76, $this->_eol)); - break; - - case '8bit': - case '7bit': - default: - return $data; - } - } - - /** - * Returns encoded data based upon encoding passed to it - * - * @param string $filename Data file location - * @param string $encoding The encoding type to use, 7bit, base64, - * or quoted-printable. - * @param resource $fh Output file handle. If set, data will be - * stored into it instead of returning it - * - * @return string Encoded data or PEAR error object - * @access private - */ - function _getEncodedDataFromFile($filename, $encoding, $fh=null) - { - if (!is_readable($filename)) { - $err = $this->_raiseError('Unable to read file: ' . $filename); - return $err; - } - - if (!($fd = fopen($filename, 'rb'))) { - $err = $this->_raiseError('Could not open file: ' . $filename); - return $err; - } - - $data = ''; - - switch ($encoding) { - case 'quoted-printable': - while (!feof($fd)) { - $buffer = $this->_quotedPrintableEncode(fgets($fd)); - if ($fh) { - fwrite($fh, $buffer); - } else { - $data .= $buffer; - } - } - break; - - case 'base64': - while (!feof($fd)) { - // Should read in a multiple of 57 bytes so that - // the output is 76 bytes per line. Don't use big chunks - // because base64 encoding is memory expensive - $buffer = fread($fd, 57 * 9198); // ca. 0.5 MB - $buffer = base64_encode($buffer); - $buffer = chunk_split($buffer, 76, $this->_eol); - if (feof($fd)) { - $buffer = rtrim($buffer); - } - - if ($fh) { - fwrite($fh, $buffer); - } else { - $data .= $buffer; - } - } - break; - - case '8bit': - case '7bit': - default: - while (!feof($fd)) { - $buffer = fread($fd, 1048576); // 1 MB - if ($fh) { - fwrite($fh, $buffer); - } else { - $data .= $buffer; - } - } - } - - fclose($fd); - - if (!$fh) { - return $data; - } - } - - /** - * Encodes data to quoted-printable standard. - * - * @param string $input The data to encode - * @param int $line_max Optional max line length. Should - * not be more than 76 chars - * - * @return string Encoded data - * - * @access private - */ - function _quotedPrintableEncode($input , $line_max = 76) - { - $eol = $this->_eol; - /* - // imap_8bit() is extremely fast, but doesn't handle properly some characters - if (function_exists('imap_8bit') && $line_max == 76) { - $input = preg_replace('/\r?\n/', "\r\n", $input); - $input = imap_8bit($input); - if ($eol != "\r\n") { - $input = str_replace("\r\n", $eol, $input); - } - return $input; - } - */ - $lines = preg_split("/\r?\n/", $input); - $escape = '='; - $output = ''; - - while (list($idx, $line) = each($lines)) { - $newline = ''; - $i = 0; - - while (isset($line[$i])) { - $char = $line[$i]; - $dec = ord($char); - $i++; - - if (($dec == 32) && (!isset($line[$i]))) { - // convert space at eol only - $char = '=20'; - } elseif ($dec == 9 && isset($line[$i])) { - ; // Do nothing if a TAB is not on eol - } elseif (($dec == 61) || ($dec < 32) || ($dec > 126)) { - $char = $escape . sprintf('%02X', $dec); - } elseif (($dec == 46) && (($newline == '') - || ((strlen($newline) + strlen("=2E")) >= $line_max)) - ) { - // Bug #9722: convert full-stop at bol, - // some Windows servers need this, won't break anything (cipri) - // Bug #11731: full-stop at bol also needs to be encoded - // if this line would push us over the line_max limit. - $char = '=2E'; - } - - // Note, when changing this line, also change the ($dec == 46) - // check line, as it mimics this line due to Bug #11731 - // EOL is not counted - if ((strlen($newline) + strlen($char)) >= $line_max) { - // soft line break; " =\r\n" is okay - $output .= $newline . $escape . $eol; - $newline = ''; - } - $newline .= $char; - } // end of for - $output .= $newline . $eol; - unset($lines[$idx]); - } - // Don't want last crlf - $output = substr($output, 0, -1 * strlen($eol)); - return $output; - } - - /** - * Encodes the parameter of a header. - * - * @param string $name The name of the header-parameter - * @param string $value The value of the paramter - * @param string $charset The characterset of $value - * @param string $language The language used in $value - * @param string $encoding Parameter encoding. If not set, parameter value - * is encoded according to RFC2231 - * @param int $maxLength The maximum length of a line. Defauls to 75 - * - * @return string - * - * @access private - */ - function _buildHeaderParam($name, $value, $charset=null, $language=null, - $encoding=null, $maxLength=75 - ) { - // RFC 2045: - // value needs encoding if contains non-ASCII chars or is longer than 78 chars - if (!preg_match('#[^\x20-\x7E]#', $value)) { - $token_regexp = '#([^\x21\x23-\x27\x2A\x2B\x2D' - . '\x2E\x30-\x39\x41-\x5A\x5E-\x7E])#'; - if (!preg_match($token_regexp, $value)) { - // token - if (strlen($name) + strlen($value) + 3 <= $maxLength) { - return " {$name}={$value}"; - } - } else { - // quoted-string - $quoted = addcslashes($value, '\\"'); - if (strlen($name) + strlen($quoted) + 5 <= $maxLength) { - return " {$name}=\"{$quoted}\""; - } - } - } - - // RFC2047: use quoted-printable/base64 encoding - if ($encoding == 'quoted-printable' || $encoding == 'base64') { - return $this->_buildRFC2047Param($name, $value, $charset, $encoding); - } - - // RFC2231: - $encValue = preg_replace_callback( - '/([^\x21\x23\x24\x26\x2B\x2D\x2E\x30-\x39\x41-\x5A\x5E-\x7E])/', - array($this, '_encodeReplaceCallback'), $value - ); - $value = "$charset'$language'$encValue"; - - $header = " {$name}*={$value}"; - if (strlen($header) <= $maxLength) { - return $header; - } - - $preLength = strlen(" {$name}*0*="); - $maxLength = max(16, $maxLength - $preLength - 3); - $maxLengthReg = "|(.{0,$maxLength}[^\%][^\%])|"; - - $headers = array(); - $headCount = 0; - while ($value) { - $matches = array(); - $found = preg_match($maxLengthReg, $value, $matches); - if ($found) { - $headers[] = " {$name}*{$headCount}*={$matches[0]}"; - $value = substr($value, strlen($matches[0])); - } else { - $headers[] = " {$name}*{$headCount}*={$value}"; - $value = ''; - } - $headCount++; - } - - $headers = implode(';' . $this->_eol, $headers); - return $headers; - } - - /** - * Encodes header parameter as per RFC2047 if needed - * - * @param string $name The parameter name - * @param string $value The parameter value - * @param string $charset The parameter charset - * @param string $encoding Encoding type (quoted-printable or base64) - * @param int $maxLength Encoded parameter max length. Default: 76 - * - * @return string Parameter line - * @access private - */ - function _buildRFC2047Param($name, $value, $charset, - $encoding='quoted-printable', $maxLength=76 - ) { - // WARNING: RFC 2047 says: "An 'encoded-word' MUST NOT be used in - // parameter of a MIME Content-Type or Content-Disposition field", - // but... it's supported by many clients/servers - $quoted = ''; - - if ($encoding == 'base64') { - $value = base64_encode($value); - $prefix = '=?' . $charset . '?B?'; - $suffix = '?='; - - // 2 x SPACE, 2 x '"', '=', ';' - $add_len = strlen($prefix . $suffix) + strlen($name) + 6; - $len = $add_len + strlen($value); - - while ($len > $maxLength) { - // We can cut base64-encoded string every 4 characters - $real_len = floor(($maxLength - $add_len) / 4) * 4; - $_quote = substr($value, 0, $real_len); - $value = substr($value, $real_len); - - $quoted .= $prefix . $_quote . $suffix . $this->_eol . ' '; - $add_len = strlen($prefix . $suffix) + 4; // 2 x SPACE, '"', ';' - $len = strlen($value) + $add_len; - } - $quoted .= $prefix . $value . $suffix; - - } else { - // quoted-printable - $value = $this->encodeQP($value); - $prefix = '=?' . $charset . '?Q?'; - $suffix = '?='; - - // 2 x SPACE, 2 x '"', '=', ';' - $add_len = strlen($prefix . $suffix) + strlen($name) + 6; - $len = $add_len + strlen($value); - - while ($len > $maxLength) { - $length = $maxLength - $add_len; - // don't break any encoded letters - if (preg_match("/^(.{0,$length}[^\=][^\=])/", $value, $matches)) { - $_quote = $matches[1]; - } - - $quoted .= $prefix . $_quote . $suffix . $this->_eol . ' '; - $value = substr($value, strlen($_quote)); - $add_len = strlen($prefix . $suffix) + 4; // 2 x SPACE, '"', ';' - $len = strlen($value) + $add_len; - } - - $quoted .= $prefix . $value . $suffix; - } - - return " {$name}=\"{$quoted}\""; - } - - /** - * Encodes a header as per RFC2047 - * - * @param string $name The header name - * @param string $value The header data to encode - * @param string $charset Character set name - * @param string $encoding Encoding name (base64 or quoted-printable) - * @param string $eol End-of-line sequence. Default: "\r\n" - * - * @return string Encoded header data (without a name) - * @access public - * @since 1.6.1 - */ - function encodeHeader($name, $value, $charset='ISO-8859-1', - $encoding='quoted-printable', $eol="\r\n" - ) { - // Structured headers - $comma_headers = array( - 'from', 'to', 'cc', 'bcc', 'sender', 'reply-to', - 'resent-from', 'resent-to', 'resent-cc', 'resent-bcc', - 'resent-sender', 'resent-reply-to', - 'mail-reply-to', 'mail-followup-to', - 'return-receipt-to', 'disposition-notification-to', - ); - $other_headers = array( - 'references', 'in-reply-to', 'message-id', 'resent-message-id', - ); - - $name = strtolower($name); - - if (in_array($name, $comma_headers)) { - $separator = ','; - } else if (in_array($name, $other_headers)) { - $separator = ' '; - } - - if (!$charset) { - $charset = 'ISO-8859-1'; - } - - // Structured header (make sure addr-spec inside is not encoded) - if (!empty($separator)) { - // Simple e-mail address regexp - $email_regexp = '([^\s<]+|("[^\r\n"]+"))@\S+'; - - $parts = Mail_mimePart::_explodeQuotedString($separator, $value); - $value = ''; - - foreach ($parts as $part) { - $part = preg_replace('/\r?\n[\s\t]*/', $eol . ' ', $part); - $part = trim($part); - - if (!$part) { - continue; - } - if ($value) { - $value .= $separator==',' ? $separator.' ' : ' '; - } else { - $value = $name . ': '; - } - - // let's find phrase (name) and/or addr-spec - if (preg_match('/^<' . $email_regexp . '>$/', $part)) { - $value .= $part; - } else if (preg_match('/^' . $email_regexp . '$/', $part)) { - // address without brackets and without name - $value .= $part; - } else if (preg_match('/<*' . $email_regexp . '>*$/', $part, $matches)) { - // address with name (handle name) - $address = $matches[0]; - $word = str_replace($address, '', $part); - $word = trim($word); - // check if phrase requires quoting - if ($word) { - // non-ASCII: require encoding - if (preg_match('#([\x80-\xFF]){1}#', $word)) { - if ($word[0] == '"' && $word[strlen($word)-1] == '"') { - // de-quote quoted-string, encoding changes - // string to atom - $search = array("\\\"", "\\\\"); - $replace = array("\"", "\\"); - $word = str_replace($search, $replace, $word); - $word = substr($word, 1, -1); - } - // find length of last line - if (($pos = strrpos($value, $eol)) !== false) { - $last_len = strlen($value) - $pos; - } else { - $last_len = strlen($value); - } - $word = Mail_mimePart::encodeHeaderValue( - $word, $charset, $encoding, $last_len, $eol - ); - } else if (($word[0] != '"' || $word[strlen($word)-1] != '"') - && preg_match('/[\(\)\<\>\\\.\[\]@,;:"]/', $word) - ) { - // ASCII: quote string if needed - $word = '"'.addcslashes($word, '\\"').'"'; - } - } - $value .= $word.' '.$address; - } else { - // addr-spec not found, don't encode (?) - $value .= $part; - } - - // RFC2822 recommends 78 characters limit, use 76 from RFC2047 - $value = wordwrap($value, 76, $eol . ' '); - } - - // remove header name prefix (there could be EOL too) - $value = preg_replace( - '/^'.$name.':('.preg_quote($eol, '/').')* /', '', $value - ); - - } else { - // Unstructured header - // non-ASCII: require encoding - if (preg_match('#([\x80-\xFF]){1}#', $value)) { - if ($value[0] == '"' && $value[strlen($value)-1] == '"') { - // de-quote quoted-string, encoding changes - // string to atom - $search = array("\\\"", "\\\\"); - $replace = array("\"", "\\"); - $value = str_replace($search, $replace, $value); - $value = substr($value, 1, -1); - } - $value = Mail_mimePart::encodeHeaderValue( - $value, $charset, $encoding, strlen($name) + 2, $eol - ); - } else if (strlen($name.': '.$value) > 78) { - // ASCII: check if header line isn't too long and use folding - $value = preg_replace('/\r?\n[\s\t]*/', $eol . ' ', $value); - $tmp = wordwrap($name.': '.$value, 78, $eol . ' '); - $value = preg_replace('/^'.$name.':\s*/', '', $tmp); - // hard limit 998 (RFC2822) - $value = wordwrap($value, 998, $eol . ' ', true); - } - } - - return $value; - } - - /** - * Explode quoted string - * - * @param string $delimiter Delimiter expression string for preg_match() - * @param string $string Input string - * - * @return array String tokens array - * @access private - */ - function _explodeQuotedString($delimiter, $string) - { - $result = array(); - $strlen = strlen($string); - - for ($q=$p=$i=0; $i < $strlen; $i++) { - if ($string[$i] == "\"" - && (empty($string[$i-1]) || $string[$i-1] != "\\") - ) { - $q = $q ? false : true; - } else if (!$q && preg_match("/$delimiter/", $string[$i])) { - $result[] = substr($string, $p, $i - $p); - $p = $i + 1; - } - } - - $result[] = substr($string, $p); - return $result; - } - - /** - * Encodes a header value as per RFC2047 - * - * @param string $value The header data to encode - * @param string $charset Character set name - * @param string $encoding Encoding name (base64 or quoted-printable) - * @param int $prefix_len Prefix length. Default: 0 - * @param string $eol End-of-line sequence. Default: "\r\n" - * - * @return string Encoded header data - * @access public - * @since 1.6.1 - */ - function encodeHeaderValue($value, $charset, $encoding, $prefix_len=0, $eol="\r\n") - { - // #17311: Use multibyte aware method (requires mbstring extension) - if ($result = Mail_mimePart::encodeMB($value, $charset, $encoding, $prefix_len, $eol)) { - return $result; - } - - // Generate the header using the specified params and dynamicly - // determine the maximum length of such strings. - // 75 is the value specified in the RFC. - $encoding = $encoding == 'base64' ? 'B' : 'Q'; - $prefix = '=?' . $charset . '?' . $encoding .'?'; - $suffix = '?='; - $maxLength = 75 - strlen($prefix . $suffix); - $maxLength1stLine = $maxLength - $prefix_len; - - if ($encoding == 'B') { - // Base64 encode the entire string - $value = base64_encode($value); - - // We can cut base64 every 4 characters, so the real max - // we can get must be rounded down. - $maxLength = $maxLength - ($maxLength % 4); - $maxLength1stLine = $maxLength1stLine - ($maxLength1stLine % 4); - - $cutpoint = $maxLength1stLine; - $output = ''; - - while ($value) { - // Split translated string at every $maxLength - $part = substr($value, 0, $cutpoint); - $value = substr($value, $cutpoint); - $cutpoint = $maxLength; - // RFC 2047 specifies that any split header should - // be separated by a CRLF SPACE. - if ($output) { - $output .= $eol . ' '; - } - $output .= $prefix . $part . $suffix; - } - $value = $output; - } else { - // quoted-printable encoding has been selected - $value = Mail_mimePart::encodeQP($value); - - // This regexp will break QP-encoded text at every $maxLength - // but will not break any encoded letters. - $reg1st = "|(.{0,$maxLength1stLine}[^\=][^\=])|"; - $reg2nd = "|(.{0,$maxLength}[^\=][^\=])|"; - - if (strlen($value) > $maxLength1stLine) { - // Begin with the regexp for the first line. - $reg = $reg1st; - $output = ''; - while ($value) { - // Split translated string at every $maxLength - // But make sure not to break any translated chars. - $found = preg_match($reg, $value, $matches); - - // After this first line, we need to use a different - // regexp for the first line. - $reg = $reg2nd; - - // Save the found part and encapsulate it in the - // prefix & suffix. Then remove the part from the - // $value_out variable. - if ($found) { - $part = $matches[0]; - $len = strlen($matches[0]); - $value = substr($value, $len); - } else { - $part = $value; - $value = ''; - } - - // RFC 2047 specifies that any split header should - // be separated by a CRLF SPACE - if ($output) { - $output .= $eol . ' '; - } - $output .= $prefix . $part . $suffix; - } - $value = $output; - } else { - $value = $prefix . $value . $suffix; - } - } - - return $value; - } - - /** - * Encodes the given string using quoted-printable - * - * @param string $str String to encode - * - * @return string Encoded string - * @access public - * @since 1.6.0 - */ - function encodeQP($str) - { - // Bug #17226 RFC 2047 restricts some characters - // if the word is inside a phrase, permitted chars are only: - // ASCII letters, decimal digits, "!", "*", "+", "-", "/", "=", and "_" - - // "=", "_", "?" must be encoded - $regexp = '/([\x22-\x29\x2C\x2E\x3A-\x40\x5B-\x60\x7B-\x7E\x80-\xFF])/'; - $str = preg_replace_callback( - $regexp, array('Mail_mimePart', '_qpReplaceCallback'), $str - ); - - return str_replace(' ', '_', $str); - } - - /** - * Encodes the given string using base64 or quoted-printable. - * This method makes sure that encoded-word represents an integral - * number of characters as per RFC2047. - * - * @param string $str String to encode - * @param string $charset Character set name - * @param string $encoding Encoding name (base64 or quoted-printable) - * @param int $prefix_len Prefix length. Default: 0 - * @param string $eol End-of-line sequence. Default: "\r\n" - * - * @return string Encoded string - * @access public - * @since 1.8.0 - */ - function encodeMB($str, $charset, $encoding, $prefix_len=0, $eol="\r\n") - { - if (!function_exists('mb_substr') || !function_exists('mb_strlen')) { - return; - } - - $encoding = $encoding == 'base64' ? 'B' : 'Q'; - // 75 is the value specified in the RFC - $prefix = '=?' . $charset . '?'.$encoding.'?'; - $suffix = '?='; - $maxLength = 75 - strlen($prefix . $suffix); - - // A multi-octet character may not be split across adjacent encoded-words - // So, we'll loop over each character - // mb_stlen() with wrong charset will generate a warning here and return null - $length = mb_strlen($str, $charset); - $result = ''; - $line_length = $prefix_len; - - if ($encoding == 'B') { - // base64 - $start = 0; - $prev = ''; - - for ($i=1; $i<=$length; $i++) { - // See #17311 - $chunk = mb_substr($str, $start, $i-$start, $charset); - $chunk = base64_encode($chunk); - $chunk_len = strlen($chunk); - - if ($line_length + $chunk_len == $maxLength || $i == $length) { - if ($result) { - $result .= "\n"; - } - $result .= $chunk; - $line_length = 0; - $start = $i; - } else if ($line_length + $chunk_len > $maxLength) { - if ($result) { - $result .= "\n"; - } - if ($prev) { - $result .= $prev; - } - $line_length = 0; - $start = $i - 1; - } else { - $prev = $chunk; - } - } - } else { - // quoted-printable - // see encodeQP() - $regexp = '/([\x22-\x29\x2C\x2E\x3A-\x40\x5B-\x60\x7B-\x7E\x80-\xFF])/'; - - for ($i=0; $i<=$length; $i++) { - $char = mb_substr($str, $i, 1, $charset); - // RFC recommends underline (instead of =20) in place of the space - // that's one of the reasons why we're not using iconv_mime_encode() - if ($char == ' ') { - $char = '_'; - $char_len = 1; - } else { - $char = preg_replace_callback( - $regexp, array('Mail_mimePart', '_qpReplaceCallback'), $char - ); - $char_len = strlen($char); - } - - if ($line_length + $char_len > $maxLength) { - if ($result) { - $result .= "\n"; - } - $line_length = 0; - } - - $result .= $char; - $line_length += $char_len; - } - } - - if ($result) { - $result = $prefix - .str_replace("\n", $suffix.$eol.' '.$prefix, $result).$suffix; - } - - return $result; - } - - /** - * Callback function to replace extended characters (\x80-xFF) with their - * ASCII values (RFC2047: quoted-printable) - * - * @param array $matches Preg_replace's matches array - * - * @return string Encoded character string - * @access private - */ - function _qpReplaceCallback($matches) - { - return sprintf('=%02X', ord($matches[1])); - } - - /** - * Callback function to replace extended characters (\x80-xFF) with their - * ASCII values (RFC2231) - * - * @param array $matches Preg_replace's matches array - * - * @return string Encoded character string - * @access private - */ - function _encodeReplaceCallback($matches) - { - return sprintf('%%%02X', ord($matches[1])); - } - - /** - * PEAR::isError implementation - * - * @param mixed $data Object - * - * @return bool True if object is an instance of PEAR_Error - * @access private - */ - function _isError($data) - { - // PEAR::isError() is not PHP 5.4 compatible (see Bug #19473) - if (is_object($data) && is_a($data, 'PEAR_Error')) { - return true; - } - - return false; - } - - /** - * PEAR::raiseError implementation - * - * @param $message A text error message - * - * @return PEAR_Error Instance of PEAR_Error - * @access private - */ - function _raiseError($message) - { - // PEAR::raiseError() is not PHP 5.4 compatible - return new PEAR_Error($message); - } - -} // End of class diff --git a/src/vitis/vas/rest/class/PEAR/Mail/mock.php b/src/vitis/vas/rest/class/PEAR/Mail/mock.php deleted file mode 100755 index 971dae6a..00000000 --- a/src/vitis/vas/rest/class/PEAR/Mail/mock.php +++ /dev/null @@ -1,119 +0,0 @@ -<?php -// -// +----------------------------------------------------------------------+ -// | PHP Version 4 | -// +----------------------------------------------------------------------+ -// | Copyright (c) 1997-2003 The PHP Group | -// +----------------------------------------------------------------------+ -// | This source file is subject to version 2.02 of the PHP license, | -// | that is bundled with this package in the file LICENSE, and is | -// | available at through the world-wide-web at | -// | http://www.php.net/license/2_02.txt. | -// | If you did not receive a copy of the PHP license and are unable to | -// | obtain it through the world-wide-web, please send a note to | -// | license@php.net so we can mail you a copy immediately. | -// +----------------------------------------------------------------------+ -// | Author: Chuck Hagenbuch <chuck@horde.org> | -// +----------------------------------------------------------------------+ -// -// $Id: mock.php,v 1.1 2007/12/08 17:57:54 chagenbu Exp $ -// - -/** - * Mock implementation of the PEAR Mail:: interface for testing. - * @access public - * @package Mail - * @version $Revision: 1.1 $ - */ -class Mail_mock extends Mail { - - /** - * Array of messages that have been sent with the mock. - * - * @var array - * @access public - */ - var $sentMessages = array(); - - /** - * Callback before sending mail. - * - * @var callback - */ - var $_preSendCallback; - - /** - * Callback after sending mai. - * - * @var callback - */ - var $_postSendCallback; - - /** - * Constructor. - * - * Instantiates a new Mail_mock:: object based on the parameters - * passed in. It looks for the following parameters, both optional: - * preSendCallback Called before an email would be sent. - * postSendCallback Called after an email would have been sent. - * - * @param array Hash containing any parameters. - * @access public - */ - function Mail_mock($params) - { - if (isset($params['preSendCallback']) && - is_callable($params['preSendCallback'])) { - $this->_preSendCallback = $params['preSendCallback']; - } - - if (isset($params['postSendCallback']) && - is_callable($params['postSendCallback'])) { - $this->_postSendCallback = $params['postSendCallback']; - } - } - - /** - * Implements Mail_mock::send() function. Silently discards all - * mail. - * - * @param mixed $recipients Either a comma-seperated list of recipients - * (RFC822 compliant), or an array of recipients, - * each RFC822 valid. This may contain recipients not - * specified in the headers, for Bcc:, resending - * messages, etc. - * - * @param array $headers The array of headers to send with the mail, in an - * associative array, where the array key is the - * header name (ie, 'Subject'), and the array value - * is the header value (ie, 'test'). The header - * produced from those values would be 'Subject: - * test'. - * - * @param string $body The full text of the message body, including any - * Mime parts, etc. - * - * @return mixed Returns true on success, or a PEAR_Error - * containing a descriptive error message on - * failure. - * @access public - */ - function send($recipients, $headers, $body) - { - if ($this->_preSendCallback) { - call_user_func_array($this->_preSendCallback, - array(&$this, $recipients, $headers, $body)); - } - - $entry = array('recipients' => $recipients, 'headers' => $headers, 'body' => $body); - $this->sentMessages[] = $entry; - - if ($this->_postSendCallback) { - call_user_func_array($this->_postSendCallback, - array(&$this, $recipients, $headers, $body)); - } - - return true; - } - -} diff --git a/src/vitis/vas/rest/class/PEAR/Mail/net/SMTP.php b/src/vitis/vas/rest/class/PEAR/Mail/net/SMTP.php deleted file mode 100755 index a7687459..00000000 --- a/src/vitis/vas/rest/class/PEAR/Mail/net/SMTP.php +++ /dev/null @@ -1,1082 +0,0 @@ -<?php -/* vim: set expandtab softtabstop=4 tabstop=4 shiftwidth=4: */ -// +----------------------------------------------------------------------+ -// | PHP Version 4 | -// +----------------------------------------------------------------------+ -// | Copyright (c) 1997-2003 The PHP Group | -// +----------------------------------------------------------------------+ -// | This source file is subject to version 2.02 of the PHP license, | -// | that is bundled with this package in the file LICENSE, and is | -// | available at through the world-wide-web at | -// | http://www.php.net/license/2_02.txt. | -// | If you did not receive a copy of the PHP license and are unable to | -// | obtain it through the world-wide-web, please send a note to | -// | license@php.net so we can mail you a copy immediately. | -// +----------------------------------------------------------------------+ -// | Authors: Chuck Hagenbuch <chuck@horde.org> | -// | Jon Parise <jon@php.net> | -// | Damian Alejandro Fernandez Sosa <damlists@cnba.uba.ar> | -// +----------------------------------------------------------------------+ -// -// $Id: SMTP.php,v 1.63 2008/06/10 05:39:12 jon Exp $ - -require_once 'PEAR/PEAR.php'; -require_once 'Socket.php'; - -/** - * Provides an implementation of the SMTP protocol using PEAR's - * Net_Socket:: class. - * - * @package Net_SMTP - * @author Chuck Hagenbuch <chuck@horde.org> - * @author Jon Parise <jon@php.net> - * @author Damian Alejandro Fernandez Sosa <damlists@cnba.uba.ar> - * - * @example basic.php A basic implementation of the Net_SMTP package. - */ -class Net_SMTP -{ - /** - * The server to connect to. - * @var string - * @access public - */ - var $host = 'localhost'; - - /** - * The port to connect to. - * @var int - * @access public - */ - var $port = 25; - - /** - * The value to give when sending EHLO or HELO. - * @var string - * @access public - */ - var $localhost = 'localhost'; - - /** - * List of supported authentication methods, in preferential order. - * @var array - * @access public - */ - var $auth_methods = array('DIGEST-MD5', 'CRAM-MD5', 'LOGIN', 'PLAIN'); - - /** - * Use SMTP command pipelining (specified in RFC 2920) if the SMTP - * server supports it. - * - * When pipeling is enabled, rcptTo(), mailFrom(), sendFrom(), - * somlFrom() and samlFrom() do not wait for a response from the - * SMTP server but return immediately. - * - * @var bool - * @access public - */ - var $pipelining = false; - - /** - * Number of pipelined commands. - * @var int - * @access private - */ - var $_pipelined_commands = 0; - - /** - * Should debugging output be enabled? - * @var boolean - * @access private - */ - var $_debug = false; - - /** - * The socket resource being used to connect to the SMTP server. - * @var resource - * @access private - */ - var $_socket = null; - - /** - * The most recent server response code. - * @var int - * @access private - */ - var $_code = -1; - - /** - * The most recent server response arguments. - * @var array - * @access private - */ - var $_arguments = array(); - - /** - * Stores detected features of the SMTP server. - * @var array - * @access private - */ - var $_esmtp = array(); - - /** - * Instantiates a new Net_SMTP object, overriding any defaults - * with parameters that are passed in. - * - * If you have SSL support in PHP, you can connect to a server - * over SSL using an 'ssl://' prefix: - * - * // 465 is a common smtps port. - * $smtp = new Net_SMTP('ssl://mail.host.com', 465); - * $smtp->connect(); - * - * @param string $host The server to connect to. - * @param integer $port The port to connect to. - * @param string $localhost The value to give when sending EHLO or HELO. - * @param boolean $pipeling Use SMTP command pipelining - * - * @access public - * @since 1.0 - */ - function Net_SMTP($host = null, $port = null, $localhost = null, $pipelining = false) - { - if (isset($host)) { - $this->host = $host; - } - if (isset($port)) { - $this->port = $port; - } - if (isset($localhost)) { - $this->localhost = $localhost; - } - $this->pipelining = $pipelining; - - $this->_socket = new Net_Socket(); - - /* Include the Auth_SASL package. If the package is not - * available, we disable the authentication methods that - * depend upon it. */ - if ((@include_once 'Auth/SASL.php') === false) { - $pos = array_search('DIGEST-MD5', $this->auth_methods); - unset($this->auth_methods[$pos]); - $pos = array_search('CRAM-MD5', $this->auth_methods); - unset($this->auth_methods[$pos]); - } - } - - /** - * Set the value of the debugging flag. - * - * @param boolean $debug New value for the debugging flag. - * - * @access public - * @since 1.1.0 - */ - function setDebug($debug) - { - $this->_debug = $debug; - } - - /** - * Send the given string of data to the server. - * - * @param string $data The string of data to send. - * - * @return mixed True on success or a PEAR_Error object on failure. - * - * @access private - * @since 1.1.0 - */ - function _send($data) - { - if ($this->_debug) { - echo "DEBUG: Send: $data\n"; - } - - if (PEAR::isError($error = $this->_socket->write($data))) { - return PEAR::raiseError('Failed to write to socket: ' . - $error->getMessage()); - } - - return true; - } - - /** - * Send a command to the server with an optional string of - * arguments. A carriage return / linefeed (CRLF) sequence will - * be appended to each command string before it is sent to the - * SMTP server - an error will be thrown if the command string - * already contains any newline characters. Use _send() for - * commands that must contain newlines. - * - * @param string $command The SMTP command to send to the server. - * @param string $args A string of optional arguments to append - * to the command. - * - * @return mixed The result of the _send() call. - * - * @access private - * @since 1.1.0 - */ - function _put($command, $args = '') - { - if (!empty($args)) { - $command .= ' ' . $args; - } - - if (strcspn($command, "\r\n") !== strlen($command)) { - return PEAR::raiseError('Commands cannot contain newlines'); - } - - return $this->_send($command . "\r\n"); - } - - /** - * Read a reply from the SMTP server. The reply consists of a response - * code and a response message. - * - * @param mixed $valid The set of valid response codes. These - * may be specified as an array of integer - * values or as a single integer value. - * @param bool $later Do not parse the response now, but wait - * until the last command in the pipelined - * command group - * - * @return mixed True if the server returned a valid response code or - * a PEAR_Error object is an error condition is reached. - * - * @access private - * @since 1.1.0 - * - * @see getResponse - */ - function _parseResponse($valid, $later = false) - { - $this->_code = -1; - $this->_arguments = array(); - - if ($later) { - $this->_pipelined_commands++; - return true; - } - - for ($i = 0; $i <= $this->_pipelined_commands; $i++) { - while ($line = $this->_socket->readLine()) { - if ($this->_debug) { - echo "DEBUG: Recv: $line\n"; - } - - /* If we receive an empty line, the connection has been closed. */ - if (empty($line)) { - $this->disconnect(); - return PEAR::raiseError('Connection was unexpectedly closed'); - } - - /* Read the code and store the rest in the arguments array. */ - $code = substr($line, 0, 3); - $this->_arguments[] = trim(substr($line, 4)); - - /* Check the syntax of the response code. */ - if (is_numeric($code)) { - $this->_code = (int)$code; - } else { - $this->_code = -1; - break; - } - - /* If this is not a multiline response, we're done. */ - if (substr($line, 3, 1) != '-') { - break; - } - } - } - - $this->_pipelined_commands = 0; - - /* Compare the server's response code with the valid code/codes. */ - if (is_int($valid) && ($this->_code === $valid)) { - return true; - } elseif (is_array($valid) && in_array($this->_code, $valid, true)) { - return true; - } - - return PEAR::raiseError('Invalid response code received from server', - $this->_code); - } - - /** - * Return a 2-tuple containing the last response from the SMTP server. - * - * @return array A two-element array: the first element contains the - * response code as an integer and the second element - * contains the response's arguments as a string. - * - * @access public - * @since 1.1.0 - */ - function getResponse() - { - return array($this->_code, join("\n", $this->_arguments)); - } - - /** - * Attempt to connect to the SMTP server. - * - * @param int $timeout The timeout value (in seconds) for the - * socket connection. - * @param bool $persistent Should a persistent socket connection - * be used? - * - * @return mixed Returns a PEAR_Error with an error message on any - * kind of failure, or true on success. - * @access public - * @since 1.0 - */ - function connect($timeout = null, $persistent = false) - { - $result = $this->_socket->connect($this->host, $this->port, - $persistent, $timeout); - if (PEAR::isError($result)) { - return PEAR::raiseError('Failed to connect socket: ' . - $result->getMessage()); - } - - if (PEAR::isError($error = $this->_parseResponse(220))) { - return $error; - } - if (PEAR::isError($error = $this->_negotiate())) { - return $error; - } - - return true; - } - - /** - * Attempt to disconnect from the SMTP server. - * - * @return mixed Returns a PEAR_Error with an error message on any - * kind of failure, or true on success. - * @access public - * @since 1.0 - */ - function disconnect() - { - if (PEAR::isError($error = $this->_put('QUIT'))) { - return $error; - } - if (PEAR::isError($error = $this->_parseResponse(221))) { - return $error; - } - if (PEAR::isError($error = $this->_socket->disconnect())) { - return PEAR::raiseError('Failed to disconnect socket: ' . - $error->getMessage()); - } - - return true; - } - - /** - * Attempt to send the EHLO command and obtain a list of ESMTP - * extensions available, and failing that just send HELO. - * - * @return mixed Returns a PEAR_Error with an error message on any - * kind of failure, or true on success. - * - * @access private - * @since 1.1.0 - */ - function _negotiate() - { - if (PEAR::isError($error = $this->_put('EHLO', $this->localhost))) { - return $error; - } - - if (PEAR::isError($this->_parseResponse(250))) { - /* If we receive a 503 response, we're already authenticated. */ - if ($this->_code === 503) { - return true; - } - - /* If the EHLO failed, try the simpler HELO command. */ - if (PEAR::isError($error = $this->_put('HELO', $this->localhost))) { - return $error; - } - if (PEAR::isError($this->_parseResponse(250))) { - return PEAR::raiseError('HELO was not accepted: ', $this->_code); - } - - return true; - } - - foreach ($this->_arguments as $argument) { - $verb = strtok($argument, ' '); - $arguments = substr($argument, strlen($verb) + 1, - strlen($argument) - strlen($verb) - 1); - $this->_esmtp[$verb] = $arguments; - } - - if (!isset($this->_esmtp['PIPELINING'])) { - $this->pipelining = false; - } - - return true; - } - - /** - * Returns the name of the best authentication method that the server - * has advertised. - * - * @return mixed Returns a string containing the name of the best - * supported authentication method or a PEAR_Error object - * if a failure condition is encountered. - * @access private - * @since 1.1.0 - */ - function _getBestAuthMethod() - { - $available_methods = explode(' ', $this->_esmtp['AUTH']); - - foreach ($this->auth_methods as $method) { - if (in_array($method, $available_methods)) { - return $method; - } - } - - return PEAR::raiseError('No supported authentication methods'); - } - - /** - * Attempt to do SMTP authentication. - * - * @param string The userid to authenticate as. - * @param string The password to authenticate with. - * @param string The requested authentication method. If none is - * specified, the best supported method will be used. - * - * @return mixed Returns a PEAR_Error with an error message on any - * kind of failure, or true on success. - * @access public - * @since 1.0 - */ - function auth($uid, $pwd , $method = '') - { - if (empty($this->_esmtp['AUTH'])) { - if (version_compare(PHP_VERSION, '5.1.0', '>=')) { - if (!isset($this->_esmtp['STARTTLS'])) { - return PEAR::raiseError('SMTP server does not support authentication'); - } - if (PEAR::isError($result = $this->_put('STARTTLS'))) { - return $result; - } - if (PEAR::isError($result = $this->_parseResponse(220))) { - return $result; - } - if (PEAR::isError($result = $this->_socket->enableCrypto(true, STREAM_CRYPTO_METHOD_TLS_CLIENT))) { - return $result; - } elseif ($result !== true) { - return PEAR::raiseError('STARTTLS failed'); - } - - /* Send EHLO again to recieve the AUTH string from the - * SMTP server. */ - $this->_negotiate(); - if (empty($this->_esmtp['AUTH'])) { - return PEAR::raiseError('SMTP server does not support authentication'); - } - } else { - return PEAR::raiseError('SMTP server does not support authentication'); - } - } - - /* If no method has been specified, get the name of the best - * supported method advertised by the SMTP server. */ - if (empty($method)) { - if (PEAR::isError($method = $this->_getBestAuthMethod())) { - /* Return the PEAR_Error object from _getBestAuthMethod(). */ - return $method; - } - } else { - $method = strtoupper($method); - if (!in_array($method, $this->auth_methods)) { - return PEAR::raiseError("$method is not a supported authentication method"); - } - } - - switch ($method) { - case 'DIGEST-MD5': - $result = $this->_authDigest_MD5($uid, $pwd); - break; - - case 'CRAM-MD5': - $result = $this->_authCRAM_MD5($uid, $pwd); - break; - - case 'LOGIN': - $result = $this->_authLogin($uid, $pwd); - break; - - case 'PLAIN': - $result = $this->_authPlain($uid, $pwd); - break; - - default: - $result = PEAR::raiseError("$method is not a supported authentication method"); - break; - } - - /* If an error was encountered, return the PEAR_Error object. */ - if (PEAR::isError($result)) { - return $result; - } - - return true; - } - - /** - * Authenticates the user using the DIGEST-MD5 method. - * - * @param string The userid to authenticate as. - * @param string The password to authenticate with. - * - * @return mixed Returns a PEAR_Error with an error message on any - * kind of failure, or true on success. - * @access private - * @since 1.1.0 - */ - function _authDigest_MD5($uid, $pwd) - { - if (PEAR::isError($error = $this->_put('AUTH', 'DIGEST-MD5'))) { - return $error; - } - /* 334: Continue authentication request */ - if (PEAR::isError($error = $this->_parseResponse(334))) { - /* 503: Error: already authenticated */ - if ($this->_code === 503) { - return true; - } - return $error; - } - - $challenge = base64_decode($this->_arguments[0]); - $digest = &Auth_SASL::factory('digestmd5'); - $auth_str = base64_encode($digest->getResponse($uid, $pwd, $challenge, - $this->host, "smtp")); - - if (PEAR::isError($error = $this->_put($auth_str))) { - return $error; - } - /* 334: Continue authentication request */ - if (PEAR::isError($error = $this->_parseResponse(334))) { - return $error; - } - - /* We don't use the protocol's third step because SMTP doesn't - * allow subsequent authentication, so we just silently ignore - * it. */ - if (PEAR::isError($error = $this->_put(''))) { - return $error; - } - /* 235: Authentication successful */ - if (PEAR::isError($error = $this->_parseResponse(235))) { - return $error; - } - } - - /** - * Authenticates the user using the CRAM-MD5 method. - * - * @param string The userid to authenticate as. - * @param string The password to authenticate with. - * - * @return mixed Returns a PEAR_Error with an error message on any - * kind of failure, or true on success. - * @access private - * @since 1.1.0 - */ - function _authCRAM_MD5($uid, $pwd) - { - if (PEAR::isError($error = $this->_put('AUTH', 'CRAM-MD5'))) { - return $error; - } - /* 334: Continue authentication request */ - if (PEAR::isError($error = $this->_parseResponse(334))) { - /* 503: Error: already authenticated */ - if ($this->_code === 503) { - return true; - } - return $error; - } - - $challenge = base64_decode($this->_arguments[0]); - $cram = &Auth_SASL::factory('crammd5'); - $auth_str = base64_encode($cram->getResponse($uid, $pwd, $challenge)); - - if (PEAR::isError($error = $this->_put($auth_str))) { - return $error; - } - - /* 235: Authentication successful */ - if (PEAR::isError($error = $this->_parseResponse(235))) { - return $error; - } - } - - /** - * Authenticates the user using the LOGIN method. - * - * @param string The userid to authenticate as. - * @param string The password to authenticate with. - * - * @return mixed Returns a PEAR_Error with an error message on any - * kind of failure, or true on success. - * @access private - * @since 1.1.0 - */ - function _authLogin($uid, $pwd) - { - if (PEAR::isError($error = $this->_put('AUTH', 'LOGIN'))) { - return $error; - } - /* 334: Continue authentication request */ - if (PEAR::isError($error = $this->_parseResponse(334))) { - /* 503: Error: already authenticated */ - if ($this->_code === 503) { - return true; - } - return $error; - } - - if (PEAR::isError($error = $this->_put(base64_encode($uid)))) { - return $error; - } - /* 334: Continue authentication request */ - if (PEAR::isError($error = $this->_parseResponse(334))) { - return $error; - } - - if (PEAR::isError($error = $this->_put(base64_encode($pwd)))) { - return $error; - } - - /* 235: Authentication successful */ - if (PEAR::isError($error = $this->_parseResponse(235))) { - return $error; - } - - return true; - } - - /** - * Authenticates the user using the PLAIN method. - * - * @param string The userid to authenticate as. - * @param string The password to authenticate with. - * - * @return mixed Returns a PEAR_Error with an error message on any - * kind of failure, or true on success. - * @access private - * @since 1.1.0 - */ - function _authPlain($uid, $pwd) - { - if (PEAR::isError($error = $this->_put('AUTH', 'PLAIN'))) { - return $error; - } - /* 334: Continue authentication request */ - if (PEAR::isError($error = $this->_parseResponse(334))) { - /* 503: Error: already authenticated */ - if ($this->_code === 503) { - return true; - } - return $error; - } - - $auth_str = base64_encode(chr(0) . $uid . chr(0) . $pwd); - - if (PEAR::isError($error = $this->_put($auth_str))) { - return $error; - } - - /* 235: Authentication successful */ - if (PEAR::isError($error = $this->_parseResponse(235))) { - return $error; - } - - return true; - } - - /** - * Send the HELO command. - * - * @param string The domain name to say we are. - * - * @return mixed Returns a PEAR_Error with an error message on any - * kind of failure, or true on success. - * @access public - * @since 1.0 - */ - function helo($domain) - { - if (PEAR::isError($error = $this->_put('HELO', $domain))) { - return $error; - } - if (PEAR::isError($error = $this->_parseResponse(250))) { - return $error; - } - - return true; - } - - /** - * Return the list of SMTP service extensions advertised by the server. - * - * @return array The list of SMTP service extensions. - * @access public - * @since 1.3 - */ - function getServiceExtensions() - { - return $this->_esmtp; - } - - /** - * Send the MAIL FROM: command. - * - * @param string $sender The sender (reverse path) to set. - * @param string $params String containing additional MAIL parameters, - * such as the NOTIFY flags defined by RFC 1891 - * or the VERP protocol. - * - * If $params is an array, only the 'verp' option - * is supported. If 'verp' is true, the XVERP - * parameter is appended to the MAIL command. If - * the 'verp' value is a string, the full - * XVERP=value parameter is appended. - * - * @return mixed Returns a PEAR_Error with an error message on any - * kind of failure, or true on success. - * @access public - * @since 1.0 - */ - function mailFrom($sender, $params = null) - { - $args = "FROM:<$sender>"; - - /* Support the deprecated array form of $params. */ - if (is_array($params) && isset($params['verp'])) { - /* XVERP */ - if ($params['verp'] === true) { - $args .= ' XVERP'; - - /* XVERP=something */ - } elseif (trim($params['verp'])) { - $args .= ' XVERP=' . $params['verp']; - } - } elseif (is_string($params)) { - $args .= ' ' . $params; - } - - if (PEAR::isError($error = $this->_put('MAIL', $args))) { - return $error; - } - if (PEAR::isError($error = $this->_parseResponse(250, $this->pipelining))) { - return $error; - } - - return true; - } - - /** - * Send the RCPT TO: command. - * - * @param string $recipient The recipient (forward path) to add. - * @param string $params String containing additional RCPT parameters, - * such as the NOTIFY flags defined by RFC 1891. - * - * @return mixed Returns a PEAR_Error with an error message on any - * kind of failure, or true on success. - * - * @access public - * @since 1.0 - */ - function rcptTo($recipient, $params = null) - { - $args = "TO:<$recipient>"; - if (is_string($params)) { - $args .= ' ' . $params; - } - - if (PEAR::isError($error = $this->_put('RCPT', $args))) { - return $error; - } - if (PEAR::isError($error = $this->_parseResponse(array(250, 251), $this->pipelining))) { - return $error; - } - - return true; - } - - /** - * Quote the data so that it meets SMTP standards. - * - * This is provided as a separate public function to facilitate - * easier overloading for the cases where it is desirable to - * customize the quoting behavior. - * - * @param string $data The message text to quote. The string must be passed - * by reference, and the text will be modified in place. - * - * @access public - * @since 1.2 - */ - function quotedata(&$data) - { - /* Change Unix (\n) and Mac (\r) linefeeds into - * Internet-standard CRLF (\r\n) linefeeds. */ - $data = preg_replace(array('/(?<!\r)\n/','/\r(?!\n)/'), "\r\n", $data); - - /* Because a single leading period (.) signifies an end to the - * data, legitimate leading periods need to be "doubled" - * (e.g. '..'). */ - $data = str_replace("\n.", "\n..", $data); - } - - /** - * Send the DATA command. - * - * @param string $data The message body to send. - * - * @return mixed Returns a PEAR_Error with an error message on any - * kind of failure, or true on success. - * @access public - * @since 1.0 - */ - function data($data) - { - /* RFC 1870, section 3, subsection 3 states "a value of zero - * indicates that no fixed maximum message size is in force". - * Furthermore, it says that if "the parameter is omitted no - * information is conveyed about the server's fixed maximum - * message size". */ - if (isset($this->_esmtp['SIZE']) && ($this->_esmtp['SIZE'] > 0)) { - if (strlen($data) >= $this->_esmtp['SIZE']) { - $this->disconnect(); - return PEAR::raiseError('Message size excedes the server limit'); - } - } - - /* Quote the data based on the SMTP standards. */ - $this->quotedata($data); - - if (PEAR::isError($error = $this->_put('DATA'))) { - return $error; - } - if (PEAR::isError($error = $this->_parseResponse(354))) { - return $error; - } - - if (PEAR::isError($result = $this->_send($data . "\r\n.\r\n"))) { - return $result; - } - if (PEAR::isError($error = $this->_parseResponse(250, $this->pipelining))) { - return $error; - } - - return true; - } - - /** - * Send the SEND FROM: command. - * - * @param string The reverse path to send. - * - * @return mixed Returns a PEAR_Error with an error message on any - * kind of failure, or true on success. - * @access public - * @since 1.2.6 - */ - function sendFrom($path) - { - if (PEAR::isError($error = $this->_put('SEND', "FROM:<$path>"))) { - return $error; - } - if (PEAR::isError($error = $this->_parseResponse(250, $this->pipelining))) { - return $error; - } - - return true; - } - - /** - * Backwards-compatibility wrapper for sendFrom(). - * - * @param string The reverse path to send. - * - * @return mixed Returns a PEAR_Error with an error message on any - * kind of failure, or true on success. - * - * @access public - * @since 1.0 - * @deprecated 1.2.6 - */ - function send_from($path) - { - return sendFrom($path); - } - - /** - * Send the SOML FROM: command. - * - * @param string The reverse path to send. - * - * @return mixed Returns a PEAR_Error with an error message on any - * kind of failure, or true on success. - * @access public - * @since 1.2.6 - */ - function somlFrom($path) - { - if (PEAR::isError($error = $this->_put('SOML', "FROM:<$path>"))) { - return $error; - } - if (PEAR::isError($error = $this->_parseResponse(250, $this->pipelining))) { - return $error; - } - - return true; - } - - /** - * Backwards-compatibility wrapper for somlFrom(). - * - * @param string The reverse path to send. - * - * @return mixed Returns a PEAR_Error with an error message on any - * kind of failure, or true on success. - * - * @access public - * @since 1.0 - * @deprecated 1.2.6 - */ - function soml_from($path) - { - return somlFrom($path); - } - - /** - * Send the SAML FROM: command. - * - * @param string The reverse path to send. - * - * @return mixed Returns a PEAR_Error with an error message on any - * kind of failure, or true on success. - * @access public - * @since 1.2.6 - */ - function samlFrom($path) - { - if (PEAR::isError($error = $this->_put('SAML', "FROM:<$path>"))) { - return $error; - } - if (PEAR::isError($error = $this->_parseResponse(250, $this->pipelining))) { - return $error; - } - - return true; - } - - /** - * Backwards-compatibility wrapper for samlFrom(). - * - * @param string The reverse path to send. - * - * @return mixed Returns a PEAR_Error with an error message on any - * kind of failure, or true on success. - * - * @access public - * @since 1.0 - * @deprecated 1.2.6 - */ - function saml_from($path) - { - return samlFrom($path); - } - - /** - * Send the RSET command. - * - * @return mixed Returns a PEAR_Error with an error message on any - * kind of failure, or true on success. - * @access public - * @since 1.0 - */ - function rset() - { - if (PEAR::isError($error = $this->_put('RSET'))) { - return $error; - } - if (PEAR::isError($error = $this->_parseResponse(250, $this->pipelining))) { - return $error; - } - - return true; - } - - /** - * Send the VRFY command. - * - * @param string The string to verify - * - * @return mixed Returns a PEAR_Error with an error message on any - * kind of failure, or true on success. - * @access public - * @since 1.0 - */ - function vrfy($string) - { - /* Note: 251 is also a valid response code */ - if (PEAR::isError($error = $this->_put('VRFY', $string))) { - return $error; - } - if (PEAR::isError($error = $this->_parseResponse(array(250, 252)))) { - return $error; - } - - return true; - } - - /** - * Send the NOOP command. - * - * @return mixed Returns a PEAR_Error with an error message on any - * kind of failure, or true on success. - * @access public - * @since 1.0 - */ - function noop() - { - if (PEAR::isError($error = $this->_put('NOOP'))) { - return $error; - } - if (PEAR::isError($error = $this->_parseResponse(250))) { - return $error; - } - - return true; - } - - /** - * Backwards-compatibility method. identifySender()'s functionality is - * now handled internally. - * - * @return boolean This method always return true. - * - * @access public - * @since 1.0 - */ - function identifySender() - { - return true; - } - -} diff --git a/src/vitis/vas/rest/class/PEAR/Mail/net/Socket.php b/src/vitis/vas/rest/class/PEAR/Mail/net/Socket.php deleted file mode 100755 index 845ce5e9..00000000 --- a/src/vitis/vas/rest/class/PEAR/Mail/net/Socket.php +++ /dev/null @@ -1,592 +0,0 @@ -<?php -// -// +----------------------------------------------------------------------+ -// | PHP Version 4 | -// +----------------------------------------------------------------------+ -// | Copyright (c) 1997-2003 The PHP Group | -// +----------------------------------------------------------------------+ -// | This source file is subject to version 2.0 of the PHP license, | -// | that is bundled with this package in the file LICENSE, and is | -// | available at through the world-wide-web at | -// | http://www.php.net/license/2_02.txt. | -// | If you did not receive a copy of the PHP license and are unable to | -// | obtain it through the world-wide-web, please send a note to | -// | license@php.net so we can mail you a copy immediately. | -// +----------------------------------------------------------------------+ -// | Authors: Stig Bakken <ssb@php.net> | -// | Chuck Hagenbuch <chuck@horde.org> | -// +----------------------------------------------------------------------+ -// -// $Id: Socket.php,v 1.38 2008/02/15 18:24:17 chagenbu Exp $ - -require_once 'PEAR/PEAR.php'; - -define('NET_SOCKET_READ', 1); -define('NET_SOCKET_WRITE', 2); -define('NET_SOCKET_ERROR', 4); - -/** - * Generalized Socket class. - * - * @version 1.1 - * @author Stig Bakken <ssb@php.net> - * @author Chuck Hagenbuch <chuck@horde.org> - */ -class Net_Socket extends PEAR { - - /** - * Socket file pointer. - * @var resource $fp - */ - var $fp = null; - - /** - * Whether the socket is blocking. Defaults to true. - * @var boolean $blocking - */ - var $blocking = true; - - /** - * Whether the socket is persistent. Defaults to false. - * @var boolean $persistent - */ - var $persistent = false; - - /** - * The IP address to connect to. - * @var string $addr - */ - var $addr = ''; - - /** - * The port number to connect to. - * @var integer $port - */ - var $port = 0; - - /** - * Number of seconds to wait on socket connections before assuming - * there's no more data. Defaults to no timeout. - * @var integer $timeout - */ - var $timeout = false; - - /** - * Number of bytes to read at a time in readLine() and - * readAll(). Defaults to 2048. - * @var integer $lineLength - */ - var $lineLength = 2048; - - /** - * Connect to the specified port. If called when the socket is - * already connected, it disconnects and connects again. - * - * @param string $addr IP address or host name. - * @param integer $port TCP port number. - * @param boolean $persistent (optional) Whether the connection is - * persistent (kept open between requests - * by the web server). - * @param integer $timeout (optional) How long to wait for data. - * @param array $options See options for stream_context_create. - * - * @access public - * - * @return boolean | PEAR_Error True on success or a PEAR_Error on failure. - */ - function connect($addr, $port = 0, $persistent = null, $timeout = null, $options = null) - { - if (is_resource($this->fp)) { - @fclose($this->fp); - $this->fp = null; - } - - if (!$addr) { - return $this->raiseError('$addr cannot be empty'); - } elseif (strspn($addr, '.0123456789') == strlen($addr) || - strstr($addr, '/') !== false) { - $this->addr = $addr; - } else { - $this->addr = @gethostbyname($addr); - } - - $this->port = $port % 65536; - - if ($persistent !== null) { - $this->persistent = $persistent; - } - - if ($timeout !== null) { - $this->timeout = $timeout; - } - - $openfunc = $this->persistent ? 'pfsockopen' : 'fsockopen'; - $errno = 0; - $errstr = ''; - $old_track_errors = @ini_set('track_errors', 1); - if ($options && function_exists('stream_context_create')) { - if ($this->timeout) { - $timeout = $this->timeout; - } else { - $timeout = 0; - } - $context = stream_context_create($options); - - // Since PHP 5 fsockopen doesn't allow context specification - if (function_exists('stream_socket_client')) { - $flags = $this->persistent ? STREAM_CLIENT_PERSISTENT : STREAM_CLIENT_CONNECT; - $addr = $this->addr . ':' . $this->port; - $fp = stream_socket_client($addr, $errno, $errstr, $timeout, $flags, $context); - } else { - $fp = @$openfunc($this->addr, $this->port, $errno, $errstr, $timeout, $context); - } - } else { - if ($this->timeout) { - $fp = @$openfunc($this->addr, $this->port, $errno, $errstr, $this->timeout); - } else { - $fp = @$openfunc($this->addr, $this->port, $errno, $errstr); - } - } - - if (!$fp) { - if ($errno == 0 && isset($php_errormsg)) { - $errstr = $php_errormsg; - } - @ini_set('track_errors', $old_track_errors); - return $this->raiseError($errstr, $errno); - } - - @ini_set('track_errors', $old_track_errors); - $this->fp = $fp; - - return $this->setBlocking($this->blocking); - } - - /** - * Disconnects from the peer, closes the socket. - * - * @access public - * @return mixed true on success or a PEAR_Error instance otherwise - */ - function disconnect() - { - if (!is_resource($this->fp)) { - return $this->raiseError('not connected'); - } - - @fclose($this->fp); - $this->fp = null; - return true; - } - - /** - * Find out if the socket is in blocking mode. - * - * @access public - * @return boolean The current blocking mode. - */ - function isBlocking() - { - return $this->blocking; - } - - /** - * Sets whether the socket connection should be blocking or - * not. A read call to a non-blocking socket will return immediately - * if there is no data available, whereas it will block until there - * is data for blocking sockets. - * - * @param boolean $mode True for blocking sockets, false for nonblocking. - * @access public - * @return mixed true on success or a PEAR_Error instance otherwise - */ - function setBlocking($mode) - { - if (!is_resource($this->fp)) { - return $this->raiseError('not connected'); - } - - $this->blocking = $mode; - socket_set_blocking($this->fp, $this->blocking); - return true; - } - - /** - * Sets the timeout value on socket descriptor, - * expressed in the sum of seconds and microseconds - * - * @param integer $seconds Seconds. - * @param integer $microseconds Microseconds. - * @access public - * @return mixed true on success or a PEAR_Error instance otherwise - */ - function setTimeout($seconds, $microseconds) - { - if (!is_resource($this->fp)) { - return $this->raiseError('not connected'); - } - - return socket_set_timeout($this->fp, $seconds, $microseconds); - } - - /** - * Sets the file buffering size on the stream. - * See php's stream_set_write_buffer for more information. - * - * @param integer $size Write buffer size. - * @access public - * @return mixed on success or an PEAR_Error object otherwise - */ - function setWriteBuffer($size) - { - if (!is_resource($this->fp)) { - return $this->raiseError('not connected'); - } - - $returned = stream_set_write_buffer($this->fp, $size); - if ($returned == 0) { - return true; - } - return $this->raiseError('Cannot set write buffer.'); - } - - /** - * Returns information about an existing socket resource. - * Currently returns four entries in the result array: - * - * <p> - * timed_out (bool) - The socket timed out waiting for data<br> - * blocked (bool) - The socket was blocked<br> - * eof (bool) - Indicates EOF event<br> - * unread_bytes (int) - Number of bytes left in the socket buffer<br> - * </p> - * - * @access public - * @return mixed Array containing information about existing socket resource or a PEAR_Error instance otherwise - */ - function getStatus() - { - if (!is_resource($this->fp)) { - return $this->raiseError('not connected'); - } - - return socket_get_status($this->fp); - } - - /** - * Get a specified line of data - * - * @access public - * @return $size bytes of data from the socket, or a PEAR_Error if - * not connected. - */ - function gets($size) - { - if (!is_resource($this->fp)) { - return $this->raiseError('not connected'); - } - - return @fgets($this->fp, $size); - } - - /** - * Read a specified amount of data. This is guaranteed to return, - * and has the added benefit of getting everything in one fread() - * chunk; if you know the size of the data you're getting - * beforehand, this is definitely the way to go. - * - * @param integer $size The number of bytes to read from the socket. - * @access public - * @return $size bytes of data from the socket, or a PEAR_Error if - * not connected. - */ - function read($size) - { - if (!is_resource($this->fp)) { - return $this->raiseError('not connected'); - } - - return @fread($this->fp, $size); - } - - /** - * Write a specified amount of data. - * - * @param string $data Data to write. - * @param integer $blocksize Amount of data to write at once. - * NULL means all at once. - * - * @access public - * @return mixed If the socket is not connected, returns an instance of PEAR_Error - * If the write succeeds, returns the number of bytes written - * If the write fails, returns false. - */ - function write($data, $blocksize = null) - { - if (!is_resource($this->fp)) { - return $this->raiseError('not connected'); - } - - if (is_null($blocksize) && !OS_WINDOWS) { - return @fwrite($this->fp, $data); - } else { - if (is_null($blocksize)) { - $blocksize = 1024; - } - - $pos = 0; - $size = strlen($data); - while ($pos < $size) { - $written = @fwrite($this->fp, substr($data, $pos, $blocksize)); - if ($written === false) { - return false; - } - $pos += $written; - } - - return $pos; - } - } - - /** - * Write a line of data to the socket, followed by a trailing "\r\n". - * - * @access public - * @return mixed fputs result, or an error - */ - function writeLine($data) - { - if (!is_resource($this->fp)) { - return $this->raiseError('not connected'); - } - - return fwrite($this->fp, $data . "\r\n"); - } - - /** - * Tests for end-of-file on a socket descriptor. - * - * Also returns true if the socket is disconnected. - * - * @access public - * @return bool - */ - function eof() - { - return (!is_resource($this->fp) || feof($this->fp)); - } - - /** - * Reads a byte of data - * - * @access public - * @return 1 byte of data from the socket, or a PEAR_Error if - * not connected. - */ - function readByte() - { - if (!is_resource($this->fp)) { - return $this->raiseError('not connected'); - } - - return ord(@fread($this->fp, 1)); - } - - /** - * Reads a word of data - * - * @access public - * @return 1 word of data from the socket, or a PEAR_Error if - * not connected. - */ - function readWord() - { - if (!is_resource($this->fp)) { - return $this->raiseError('not connected'); - } - - $buf = @fread($this->fp, 2); - return (ord($buf[0]) + (ord($buf[1]) << 8)); - } - - /** - * Reads an int of data - * - * @access public - * @return integer 1 int of data from the socket, or a PEAR_Error if - * not connected. - */ - function readInt() - { - if (!is_resource($this->fp)) { - return $this->raiseError('not connected'); - } - - $buf = @fread($this->fp, 4); - return (ord($buf[0]) + (ord($buf[1]) << 8) + - (ord($buf[2]) << 16) + (ord($buf[3]) << 24)); - } - - /** - * Reads a zero-terminated string of data - * - * @access public - * @return string, or a PEAR_Error if - * not connected. - */ - function readString() - { - if (!is_resource($this->fp)) { - return $this->raiseError('not connected'); - } - - $string = ''; - while (($char = @fread($this->fp, 1)) != "\x00") { - $string .= $char; - } - return $string; - } - - /** - * Reads an IP Address and returns it in a dot formatted string - * - * @access public - * @return Dot formatted string, or a PEAR_Error if - * not connected. - */ - function readIPAddress() - { - if (!is_resource($this->fp)) { - return $this->raiseError('not connected'); - } - - $buf = @fread($this->fp, 4); - return sprintf('%d.%d.%d.%d', ord($buf[0]), ord($buf[1]), - ord($buf[2]), ord($buf[3])); - } - - /** - * Read until either the end of the socket or a newline, whichever - * comes first. Strips the trailing newline from the returned data. - * - * @access public - * @return All available data up to a newline, without that - * newline, or until the end of the socket, or a PEAR_Error if - * not connected. - */ - function readLine() - { - if (!is_resource($this->fp)) { - return $this->raiseError('not connected'); - } - - $line = ''; - $timeout = time() + $this->timeout; - while (!feof($this->fp) && (!$this->timeout || time() < $timeout)) { - $line .= @fgets($this->fp, $this->lineLength); - if (substr($line, -1) == "\n") { - return rtrim($line, "\r\n"); - } - } - return $line; - } - - /** - * Read until the socket closes, or until there is no more data in - * the inner PHP buffer. If the inner buffer is empty, in blocking - * mode we wait for at least 1 byte of data. Therefore, in - * blocking mode, if there is no data at all to be read, this - * function will never exit (unless the socket is closed on the - * remote end). - * - * @access public - * - * @return string All data until the socket closes, or a PEAR_Error if - * not connected. - */ - function readAll() - { - if (!is_resource($this->fp)) { - return $this->raiseError('not connected'); - } - - $data = ''; - while (!feof($this->fp)) { - $data .= @fread($this->fp, $this->lineLength); - } - return $data; - } - - /** - * Runs the equivalent of the select() system call on the socket - * with a timeout specified by tv_sec and tv_usec. - * - * @param integer $state Which of read/write/error to check for. - * @param integer $tv_sec Number of seconds for timeout. - * @param integer $tv_usec Number of microseconds for timeout. - * - * @access public - * @return False if select fails, integer describing which of read/write/error - * are ready, or PEAR_Error if not connected. - */ - function select($state, $tv_sec, $tv_usec = 0) - { - if (!is_resource($this->fp)) { - return $this->raiseError('not connected'); - } - - $read = null; - $write = null; - $except = null; - if ($state & NET_SOCKET_READ) { - $read[] = $this->fp; - } - if ($state & NET_SOCKET_WRITE) { - $write[] = $this->fp; - } - if ($state & NET_SOCKET_ERROR) { - $except[] = $this->fp; - } - if (false === ($sr = stream_select($read, $write, $except, $tv_sec, $tv_usec))) { - return false; - } - - $result = 0; - if (count($read)) { - $result |= NET_SOCKET_READ; - } - if (count($write)) { - $result |= NET_SOCKET_WRITE; - } - if (count($except)) { - $result |= NET_SOCKET_ERROR; - } - return $result; - } - - /** - * Turns encryption on/off on a connected socket. - * - * @param bool $enabled Set this parameter to true to enable encryption - * and false to disable encryption. - * @param integer $type Type of encryption. See - * http://se.php.net/manual/en/function.stream-socket-enable-crypto.php for values. - * - * @access public - * @return false on error, true on success and 0 if there isn't enough data and the - * user should try again (non-blocking sockets only). A PEAR_Error object - * is returned if the socket is not connected - */ - function enableCrypto($enabled, $type) - { - if (version_compare(phpversion(), "5.1.0", ">=")) { - if (!is_resource($this->fp)) { - return $this->raiseError('not connected'); - } - return @stream_socket_enable_crypto($this->fp, $enabled, $type); - } else { - return $this->raiseError('Net_Socket::enableCrypto() requires php version >= 5.1.0'); - } - } - -} diff --git a/src/vitis/vas/rest/class/PEAR/Mail/net/docs/guide.txt b/src/vitis/vas/rest/class/PEAR/Mail/net/docs/guide.txt deleted file mode 100755 index 04b401c1..00000000 --- a/src/vitis/vas/rest/class/PEAR/Mail/net/docs/guide.txt +++ /dev/null @@ -1,211 +0,0 @@ -====================== - The Net_SMTP Package -====================== - --------------------- - User Documentation --------------------- - -:Author: Jon Parise -:Contact: jon@php.net -:Date: $Date: 2005/03/04 03:35:45 $ -:Revision: $Revision: 1.5 $ - -.. contents:: Table of Contents -.. section-numbering:: - -Dependencies -============ - -The `PEAR_Error` Class ----------------------- - -The Net_SMTP package uses the `PEAR_Error`_ class for all of its `error -handling`_. - -The `Net_Socket` Package ------------------------- - -The Net_Socket_ package is used as the basis for all network communications. - -The `Auth_SASL` Package ------------------------ - -The `Auth_SASL`_ package is an optional dependency. If it is available, the -Net_SMTP package will be able to support the DIGEST-MD5_ and CRAM-MD5_ SMTP -authentication methods. Otherwise, only the LOGIN_ and PLAIN_ methods will -be available. - -Error Handling -============== - -All of the Net_SMTP class's public methods return a PEAR_Error_ object if an -error occurs. The standard way to check for a PEAR_Error object is by using -`PEAR::isError()`_:: - - if (PEAR::isError($error = $smtp->connect())) { - die($error->getMessage()); - } - -.. _PEAR::isError(): http://pear.php.net/manual/en/core.pear.pear.iserror.php - -SMTP Authentication -=================== - -The Net_SMTP package supports the SMTP authentication standard (as defined -by RFC-2554_). The Net_SMTP package supports the following authentication -methods, in order of preference: - -.. _RFC-2554: http://www.ietf.org/rfc/rfc2554.txt - -DIGEST-MD5 ----------- - -The DIGEST-MD5 authentication method uses `RSA Data Security Inc.`_'s MD5 -Message Digest algorithm. It is considered the most secure method of SMTP -authentication. - -**Note:** The DIGEST-MD5 authentication method is only supported if the -AUTH_SASL_ package is available. - -.. _RSA Data Security Inc.: http://www.rsasecurity.com/ - -CRAM-MD5 --------- - -The CRAM-MD5 authentication method has been superseded by the DIGEST-MD5_ -method in terms of security. It is provided here for compatibility with -older SMTP servers that may not support the newer DIGEST-MD5 algorithm. - -**Note:** The CRAM-MD5 authentication method is only supported if the -AUTH_SASL_ package is available. - -LOGIN ------ - -The LOGIN authentication method encrypts the user's password using the -Base64_ encoding scheme. Because decrypting a Base64-encoded string is -trivial, LOGIN is not considered a secure authentication method and should -be avoided. - -.. _Base64: http://www.php.net/manual/en/function.base64-encode.php - -PLAIN ------ - -The PLAIN authentication method sends the user's password in plain text. -This method of authentication is not secure and should be avoided. - -Secure Connections -================== - -If `secure socket transports`_ have been enabled in PHP, it is possible to -establish a secure connection to the remote SMTP server:: - - $smtp = new Net_SMTP('ssl://mail.example.com', 465); - -This example connects to `mail.example.com` on port 465 (a common SMTPS -port) using the `ssl://` transport. - -.. _secure socket transports: http://www.php.net/transports - -Data Quoting -============ - -By default, all outbound string data is quoted in accordance with SMTP -standards. This means that all native Unix (`\\n`) and Mac (`\\r`) line -endings are converted to Internet-standard CRLF (`\\r\\n`) line endings. -Also, because the SMTP protocol uses a single leading period (`.`) to signal -an end to the message data, single leading periods in the original data -string are "doubled" (e.g. "`..`"). - -These string transformation can be expensive when large blocks of data are -involved. For example, the Net_SMTP package is not aware of MIME parts (it -just sees the MIME message as one big string of characters), so it is not -able to skip non-text attachments when searching for characters that may -need to be quoted. - -Because of this, it is possible to extend the Net_SMTP class in order to -implement your own custom quoting routine. Just create a new class based on -the Net_SMTP class and reimplement the `quotedata()` method:: - - require 'Net_SMTP.php'; - - class Net_SMTP_custom extends Net_SMTP - { - function quotedata($data) - { - /* Perform custom data quoting */ - } - } - -Note that the `$data` parameter will be passed to the `quotedata()` function -`by reference`_. This means that you can operate directly on `$data`. It -also the overhead of copying a large `$data` string to and from the -`quotedata()` method. - -.. _by reference: http://www.php.net/manual/en/language.references.pass.php - -Debugging -========= - -The Net_SMTP package contains built-in debugging output routines (disabled -by default). Debugging output must be explicitly enabled via the setDebug() -method:: - - $smtp->setDebug(true); - -The debugging messages will be sent to the standard output stream. - -Examples -======== - -Basic Use ---------- - -The following script demonstrates how a simple email message can be sent -using the Net_SMTP package:: - - require 'Net/SMTP.php'; - - $host = 'mail.example.com'; - $from = 'user@example.com'; - $rcpt = array('recipient1@example.com', 'recipient2@example.com'); - $subj = "Subject: Test Message\n"; - $body = "Body Line 1\nBody Line 2"; - - /* Create a new Net_SMTP object. */ - if (! ($smtp = new Net_SMTP($host))) { - die("Unable to instantiate Net_SMTP object\n"); - } - - /* Connect to the SMTP server. */ - if (PEAR::isError($e = $smtp->connect())) { - die($e->getMessage() . "\n"); - } - - /* Send the 'MAIL FROM:' SMTP command. */ - if (PEAR::isError($smtp->mailFrom($from))) { - die("Unable to set sender to <$from>\n"); - } - - /* Address the message to each of the recipients. */ - foreach ($rcpt as $to) { - if (PEAR::isError($res = $smtp->rcptTo($to))) { - die("Unable to add recipient <$to>: " . $res->getMessage() . "\n"); - } - } - - /* Set the body of the message. */ - if (PEAR::isError($smtp->data($subj . "\r\n" . $body))) { - die("Unable to send data\n"); - } - - /* Disconnect from the SMTP server. */ - $smtp->disconnect(); - -.. _PEAR_Error: http://pear.php.net/manual/en/core.pear.pear-error.php -.. _Net_Socket: http://pear.php.net/package/Net_Socket -.. _Auth_SASL: http://pear.php.net/package/Auth_SASL - -.. vim: tabstop=4 shiftwidth=4 softtabstop=4 expandtab textwidth=76: diff --git a/src/vitis/vas/rest/class/PEAR/Mail/net/examples/basic.php b/src/vitis/vas/rest/class/PEAR/Mail/net/examples/basic.php deleted file mode 100755 index 07a10587..00000000 --- a/src/vitis/vas/rest/class/PEAR/Mail/net/examples/basic.php +++ /dev/null @@ -1,39 +0,0 @@ -<?php - -require 'Net/SMTP.php'; - -$host = 'mail.example.com'; -$from = 'user@example.com'; -$rcpt = array('recipient1@example.com', 'recipient2@example.com'); -$subj = "Subject: Test Message\n"; -$body = "Body Line 1\nBody Line 2"; - -/* Create a new Net_SMTP object. */ -if (! ($smtp = new Net_SMTP($host))) { - die("Unable to instantiate Net_SMTP object\n"); -} - -/* Connect to the SMTP server. */ -if (PEAR::isError($e = $smtp->connect())) { - die($e->getMessage() . "\n"); -} - -/* Send the 'MAIL FROM:' SMTP command. */ -if (PEAR::isError($smtp->mailFrom($from))) { - die("Unable to set sender to <$from>\n"); -} - -/* Address the message to each of the recipients. */ -foreach ($rcpt as $to) { - if (PEAR::isError($res = $smtp->rcptTo($to))) { - die("Unable to add recipient <$to>: " . $res->getMessage() . "\n"); - } -} - -/* Set the body of the message. */ -if (PEAR::isError($smtp->data($subj . "\r\n" . $body))) { - die("Unable to send data\n"); -} - -/* Disconnect from the SMTP server. */ -$smtp->disconnect(); diff --git a/src/vitis/vas/rest/class/PEAR/Mail/net/tests/auth.phpt b/src/vitis/vas/rest/class/PEAR/Mail/net/tests/auth.phpt deleted file mode 100755 index 3b80bf81..00000000 --- a/src/vitis/vas/rest/class/PEAR/Mail/net/tests/auth.phpt +++ /dev/null @@ -1,40 +0,0 @@ ---TEST-- -Net_SMTP: SMTP Authentication ---SKIPIF-- -<?php if (!@include('config.php')) die("skip\n"); ---FILE-- -<?php - -require_once 'Net/SMTP.php'; -require_once 'config.php'; - -if (! ($smtp = new Net_SMTP(TEST_HOSTNAME, TEST_PORT, TEST_LOCALHOST))) { - die("Unable to instantiate Net_SMTP object\n"); -} - -if (PEAR::isError($e = $smtp->connect())) { - die($e->getMessage() . "\n"); -} - -if (PEAR::isError($e = $smtp->auth(TEST_AUTH_USER, TEST_AUTH_PASS))) { -} - -if (PEAR::isError($smtp->mailFrom(TEST_FROM))) { - die('Unable to set sender to <' . TEST_FROM . ">\n"); -} - -if (PEAR::isError($res = $smtp->rcptTo(TEST_TO))) { - die('Unable to add recipient <' . TEST_TO . '>: ' . - $res->getMessage() . "\n"); -} - -if (PEAR::isError($smtp->data(TEST_SUBJECT . "\r\n" . TEST_BODY))) { - die("Unable to send data\n"); -} - -$smtp->disconnect(); - -echo 'Success!'; - ---EXPECT-- -Success! diff --git a/src/vitis/vas/rest/class/PEAR/Mail/net/tests/basic.phpt b/src/vitis/vas/rest/class/PEAR/Mail/net/tests/basic.phpt deleted file mode 100755 index 94734d86..00000000 --- a/src/vitis/vas/rest/class/PEAR/Mail/net/tests/basic.phpt +++ /dev/null @@ -1,37 +0,0 @@ ---TEST-- -Net_SMTP: Basic Functionality ---SKIPIF-- -<?php if (!@include('config.php')) die("skip\n"); ---FILE-- -<?php - -require_once 'Net/SMTP.php'; -require_once 'config.php'; - -if (! ($smtp = new Net_SMTP(TEST_HOSTNAME, TEST_PORT, TEST_LOCALHOST))) { - die("Unable to instantiate Net_SMTP object\n"); -} - -if (PEAR::isError($e = $smtp->connect())) { - die($e->getMessage() . "\n"); -} - -if (PEAR::isError($smtp->mailFrom(TEST_FROM))) { - die('Unable to set sender to <' . TEST_FROM . ">\n"); -} - -if (PEAR::isError($res = $smtp->rcptTo(TEST_TO))) { - die('Unable to add recipient <' . TEST_TO . '>: ' . - $res->getMessage() . "\n"); -} - -if (PEAR::isError($smtp->data(TEST_SUBJECT . "\r\n" . TEST_BODY))) { - die("Unable to send data\n"); -} - -$smtp->disconnect(); - -echo 'Success!'; - ---EXPECT-- -Success! diff --git a/src/vitis/vas/rest/class/PEAR/Mail/net/tests/config.php.dist b/src/vitis/vas/rest/class/PEAR/Mail/net/tests/config.php.dist deleted file mode 100755 index fe4a0c97..00000000 --- a/src/vitis/vas/rest/class/PEAR/Mail/net/tests/config.php.dist +++ /dev/null @@ -1,15 +0,0 @@ -<?php -/** - * Copy this file to config.php and customize the following values to - * suit your configuration. - */ - -define('TEST_HOSTNAME', 'localhost'); -define('TEST_PORT', 25); -define('TEST_LOCALHOST', 'localhost'); -define('TEST_AUTH_USER', 'jon'); -define('TEST_AUTH_PASS', 'secret'); -define('TEST_FROM', 'from@example.com'); -define('TEST_TO', 'to@example.com'); -define('TEST_SUBJECT', 'Test Subject'); -define('TEST_BODY', 'Test Body'); diff --git a/src/vitis/vas/rest/class/PEAR/Mail/net/tests/quotedata.phpt b/src/vitis/vas/rest/class/PEAR/Mail/net/tests/quotedata.phpt deleted file mode 100755 index 518d4f69..00000000 --- a/src/vitis/vas/rest/class/PEAR/Mail/net/tests/quotedata.phpt +++ /dev/null @@ -1,62 +0,0 @@ ---TEST-- -Net_SMTP: quotedata() \n | \r => \r\n replacement ---FILE-- -<?php - -error_reporting(E_ALL); -require_once 'Net/SMTP.php'; - -$tests = array( - "\n" => "\r\n", - "\r\n" => "\r\n", - "\nxx" => "\r\nxx", - "xx\n" => "xx\r\n", - "xx\nxx" => "xx\r\nxx", - "\n\nxx" => "\r\n\r\nxx", - "xx\n\nxx" => "xx\r\n\r\nxx", - "xx\n\n" => "xx\r\n\r\n", - "\r\nxx" => "\r\nxx", - "xx\r\n" => "xx\r\n", - "xx\r\nxx" => "xx\r\nxx", - "\r\n\r\nxx" => "\r\n\r\nxx", - "xx\r\n\r\nxx" => "xx\r\n\r\nxx", - "xx\r\n\r\n" => "xx\r\n\r\n", - "\r\n\nxx" => "\r\n\r\nxx", - "\n\r\nxx" => "\r\n\r\nxx", - "xx\r\n\nxx" => "xx\r\n\r\nxx", - "xx\n\r\nxx" => "xx\r\n\r\nxx", - "xx\r\n\n" => "xx\r\n\r\n", - "xx\n\r\n" => "xx\r\n\r\n", - "\r" => "\r\n", - "\rxx" => "\r\nxx", - "xx\rxx" => "xx\r\nxx", - "xx\r" => "xx\r\n", - "\r\r" => "\r\n\r\n", - "\r\rxx" => "\r\n\r\nxx", - "xx\r\rxx" => "xx\r\n\r\nxx", - "xx\r\r" => "xx\r\n\r\n", - "xx\rxx\nxx\r\nxx" => "xx\r\nxx\r\nxx\r\nxx", - "\r\r\n\n" => "\r\n\r\n\r\n", -); - -$hadError = false; -foreach ($tests as $input => $expect) { - $output = $input; - Net_SMTP::quotedata($output); - if ($output != $expect) { - echo "Error: input " . prettyprint($input) . ", output " . prettyprint($output) . ", expected " . prettyprint($expect) . "\n"; - $hadError = true; - } -} - -if (!$hadError) { - echo "success\n"; -} - -function prettyprint($x) -{ - return str_replace(array("\r", "\n"), array('\r', '\n'), $x); -} - ---EXPECT-- -success diff --git a/src/vitis/vas/rest/class/PEAR/Mail/null.php b/src/vitis/vas/rest/class/PEAR/Mail/null.php deleted file mode 100755 index 982bfa45..00000000 --- a/src/vitis/vas/rest/class/PEAR/Mail/null.php +++ /dev/null @@ -1,60 +0,0 @@ -<?php -// -// +----------------------------------------------------------------------+ -// | PHP Version 4 | -// +----------------------------------------------------------------------+ -// | Copyright (c) 1997-2003 The PHP Group | -// +----------------------------------------------------------------------+ -// | This source file is subject to version 2.02 of the PHP license, | -// | that is bundled with this package in the file LICENSE, and is | -// | available at through the world-wide-web at | -// | http://www.php.net/license/2_02.txt. | -// | If you did not receive a copy of the PHP license and are unable to | -// | obtain it through the world-wide-web, please send a note to | -// | license@php.net so we can mail you a copy immediately. | -// +----------------------------------------------------------------------+ -// | Author: Phil Kernick <philk@rotfl.com.au> | -// +----------------------------------------------------------------------+ -// -// $Id: null.php,v 1.2 2004/04/06 05:19:03 jon Exp $ -// - -/** - * Null implementation of the PEAR Mail:: interface. - * @access public - * @package Mail - * @version $Revision: 1.2 $ - */ -class Mail_null extends Mail { - - /** - * Implements Mail_null::send() function. Silently discards all - * mail. - * - * @param mixed $recipients Either a comma-seperated list of recipients - * (RFC822 compliant), or an array of recipients, - * each RFC822 valid. This may contain recipients not - * specified in the headers, for Bcc:, resending - * messages, etc. - * - * @param array $headers The array of headers to send with the mail, in an - * associative array, where the array key is the - * header name (ie, 'Subject'), and the array value - * is the header value (ie, 'test'). The header - * produced from those values would be 'Subject: - * test'. - * - * @param string $body The full text of the message body, including any - * Mime parts, etc. - * - * @return mixed Returns true on success, or a PEAR_Error - * containing a descriptive error message on - * failure. - * @access public - */ - function send($recipients, $headers, $body) - { - return true; - } - -} diff --git a/src/vitis/vas/rest/class/PEAR/Mail/sendmail.php b/src/vitis/vas/rest/class/PEAR/Mail/sendmail.php deleted file mode 100755 index cd248e61..00000000 --- a/src/vitis/vas/rest/class/PEAR/Mail/sendmail.php +++ /dev/null @@ -1,170 +0,0 @@ -<?php -// -// +----------------------------------------------------------------------+ -// | PHP Version 4 | -// +----------------------------------------------------------------------+ -// | Copyright (c) 1997-2003 The PHP Group | -// +----------------------------------------------------------------------+ -// | This source file is subject to version 2.02 of the PHP license, | -// | that is bundled with this package in the file LICENSE, and is | -// | available at through the world-wide-web at | -// | http://www.php.net/license/2_02.txt. | -// | If you did not receive a copy of the PHP license and are unable to | -// | obtain it through the world-wide-web, please send a note to | -// | license@php.net so we can mail you a copy immediately. | -// +----------------------------------------------------------------------+ -// | Author: Chuck Hagenbuch <chuck@horde.org> | -// +----------------------------------------------------------------------+ - -/** - * Sendmail implementation of the PEAR Mail:: interface. - * @access public - * @package Mail - * @version $Revision: 1.19 $ - */ -class Mail_sendmail extends Mail { - - /** - * The location of the sendmail or sendmail wrapper binary on the - * filesystem. - * @var string - */ - var $sendmail_path = '/usr/sbin/sendmail'; - - /** - * Any extra command-line parameters to pass to the sendmail or - * sendmail wrapper binary. - * @var string - */ - var $sendmail_args = '-i'; - - /** - * Constructor. - * - * Instantiates a new Mail_sendmail:: object based on the parameters - * passed in. It looks for the following parameters: - * sendmail_path The location of the sendmail binary on the - * filesystem. Defaults to '/usr/sbin/sendmail'. - * - * sendmail_args Any extra parameters to pass to the sendmail - * or sendmail wrapper binary. - * - * If a parameter is present in the $params array, it replaces the - * default. - * - * @param array $params Hash containing any parameters different from the - * defaults. - * @access public - */ - function Mail_sendmail($params) - { - if (isset($params['sendmail_path'])) { - $this->sendmail_path = $params['sendmail_path']; - } - if (isset($params['sendmail_args'])) { - $this->sendmail_args = $params['sendmail_args']; - } - - /* - * Because we need to pass message headers to the sendmail program on - * the commandline, we can't guarantee the use of the standard "\r\n" - * separator. Instead, we use the system's native line separator. - */ - if (defined('PHP_EOL')) { - $this->sep = PHP_EOL; - } else { - $this->sep = (strpos(PHP_OS, 'WIN') === false) ? "\n" : "\r\n"; - } - } - - /** - * Implements Mail::send() function using the sendmail - * command-line binary. - * - * @param mixed $recipients Either a comma-seperated list of recipients - * (RFC822 compliant), or an array of recipients, - * each RFC822 valid. This may contain recipients not - * specified in the headers, for Bcc:, resending - * messages, etc. - * - * @param array $headers The array of headers to send with the mail, in an - * associative array, where the array key is the - * header name (ie, 'Subject'), and the array value - * is the header value (ie, 'test'). The header - * produced from those values would be 'Subject: - * test'. - * - * @param string $body The full text of the message body, including any - * Mime parts, etc. - * - * @return mixed Returns true on success, or a PEAR_Error - * containing a descriptive error message on - * failure. - * @access public - */ - function send($recipients, $headers, $body) - { - if (!is_array($headers)) { - return PEAR::raiseError('$headers must be an array'); - } - - $result = $this->_sanitizeHeaders($headers); - if (is_a($result, 'PEAR_Error')) { - return $result; - } - - $recipients = $this->parseRecipients($recipients); - if (is_a($recipients, 'PEAR_Error')) { - return $recipients; - } - $recipients = escapeShellCmd(implode(' ', $recipients)); - - $headerElements = $this->prepareHeaders($headers); - if (is_a($headerElements, 'PEAR_Error')) { - return $headerElements; - } - list($from, $text_headers) = $headerElements; - - /* Since few MTAs are going to allow this header to be forged - * unless it's in the MAIL FROM: exchange, we'll use - * Return-Path instead of From: if it's set. */ - if (!empty($headers['Return-Path'])) { - $from = $headers['Return-Path']; - } - - if (!isset($from)) { - return PEAR::raiseError('No from address given.'); - } elseif (strpos($from, ' ') !== false || - strpos($from, ';') !== false || - strpos($from, '&') !== false || - strpos($from, '`') !== false) { - return PEAR::raiseError('From address specified with dangerous characters.'); - } - - $from = escapeShellCmd($from); - $mail = @popen($this->sendmail_path . (!empty($this->sendmail_args) ? ' ' . $this->sendmail_args : '') . " -f$from -- $recipients", 'w'); - if (!$mail) { - return PEAR::raiseError('Failed to open sendmail [' . $this->sendmail_path . '] for execution.'); - } - - // Write the headers following by two newlines: one to end the headers - // section and a second to separate the headers block from the body. - fputs($mail, $text_headers . $this->sep . $this->sep); - - fputs($mail, $body); - $result = pclose($mail); - if (version_compare(phpversion(), '4.2.3') == -1) { - // With older php versions, we need to shift the pclose - // result to get the exit code. - $result = $result >> 8 & 0xFF; - } - - if ($result != 0) { - return PEAR::raiseError('sendmail returned error code ' . $result, - $result); - } - - return true; - } - -} diff --git a/src/vitis/vas/rest/class/PEAR/Mail/smtp.php b/src/vitis/vas/rest/class/PEAR/Mail/smtp.php deleted file mode 100755 index 52b95735..00000000 --- a/src/vitis/vas/rest/class/PEAR/Mail/smtp.php +++ /dev/null @@ -1,407 +0,0 @@ -<?php -// -// +----------------------------------------------------------------------+ -// | PHP Version 4 | -// +----------------------------------------------------------------------+ -// | Copyright (c) 1997-2003 The PHP Group | -// +----------------------------------------------------------------------+ -// | This source file is subject to version 2.02 of the PHP license, | -// | that is bundled with this package in the file LICENSE, and is | -// | available at through the world-wide-web at | -// | http://www.php.net/license/2_02.txt. | -// | If you did not receive a copy of the PHP license and are unable to | -// | obtain it through the world-wide-web, please send a note to | -// | license@php.net so we can mail you a copy immediately. | -// +----------------------------------------------------------------------+ -// | Authors: Chuck Hagenbuch <chuck@horde.org> | -// | Jon Parise <jon@php.net> | -// +----------------------------------------------------------------------+ - -/** Error: Failed to create a Net_SMTP object */ -define('PEAR_MAIL_SMTP_ERROR_CREATE', 10000); - -/** Error: Failed to connect to SMTP server */ -define('PEAR_MAIL_SMTP_ERROR_CONNECT', 10001); - -/** Error: SMTP authentication failure */ -define('PEAR_MAIL_SMTP_ERROR_AUTH', 10002); - -/** Error: No From: address has been provided */ -define('PEAR_MAIL_SMTP_ERROR_FROM', 10003); - -/** Error: Failed to set sender */ -define('PEAR_MAIL_SMTP_ERROR_SENDER', 10004); - -/** Error: Failed to add recipient */ -define('PEAR_MAIL_SMTP_ERROR_RECIPIENT', 10005); - -/** Error: Failed to send data */ -define('PEAR_MAIL_SMTP_ERROR_DATA', 10006); - -/** - * SMTP implementation of the PEAR Mail interface. Requires the Net_SMTP class. - * @access public - * @package Mail - * @version $Revision: 1.33 $ - */ -class Mail_smtp extends Mail { - - /** - * SMTP connection object. - * - * @var object - * @access private - */ - var $_smtp = null; - - /** - * The list of service extension parameters to pass to the Net_SMTP - * mailFrom() command. - * @var array - */ - var $_extparams = array(); - - /** - * The SMTP host to connect to. - * @var string - */ - var $host = 'localhost'; - - /** - * The port the SMTP server is on. - * @var integer - */ - var $port = 25; - - /** - * Should SMTP authentication be used? - * - * This value may be set to true, false or the name of a specific - * authentication method. - * - * If the value is set to true, the Net_SMTP package will attempt to use - * the best authentication method advertised by the remote SMTP server. - * - * @var mixed - */ - var $auth = false; - - /** - * The username to use if the SMTP server requires authentication. - * @var string - */ - var $username = ''; - - /** - * The password to use if the SMTP server requires authentication. - * @var string - */ - var $password = ''; - - /** - * Hostname or domain that will be sent to the remote SMTP server in the - * HELO / EHLO message. - * - * @var string - */ - var $localhost = 'localhost'; - - /** - * SMTP connection timeout value. NULL indicates no timeout. - * - * @var integer - */ - var $timeout = null; - - /** - * Turn on Net_SMTP debugging? - * - * @var boolean $debug - */ - var $debug = false; - - /** - * Indicates whether or not the SMTP connection should persist over - * multiple calls to the send() method. - * - * @var boolean - */ - var $persist = false; - - /** - * Use SMTP command pipelining (specified in RFC 2920) if the SMTP server - * supports it. This speeds up delivery over high-latency connections. By - * default, use the default value supplied by Net_SMTP. - * @var bool - */ - var $pipelining; - - /** - * Constructor. - * - * Instantiates a new Mail_smtp:: object based on the parameters - * passed in. It looks for the following parameters: - * host The server to connect to. Defaults to localhost. - * port The port to connect to. Defaults to 25. - * auth SMTP authentication. Defaults to none. - * username The username to use for SMTP auth. No default. - * password The password to use for SMTP auth. No default. - * localhost The local hostname / domain. Defaults to localhost. - * timeout The SMTP connection timeout. Defaults to none. - * verp Whether to use VERP or not. Defaults to false. - * DEPRECATED as of 1.2.0 (use setMailParams()). - * debug Activate SMTP debug mode? Defaults to false. - * persist Should the SMTP connection persist? - * pipelining Use SMTP command pipelining - * - * If a parameter is present in the $params array, it replaces the - * default. - * - * @param array Hash containing any parameters different from the - * defaults. - * @access public - */ - function Mail_smtp($params) - { - if (isset($params['host'])) $this->host = $params['host']; - if (isset($params['port'])) $this->port = $params['port']; - if (isset($params['auth'])) $this->auth = $params['auth']; - if (isset($params['username'])) $this->username = $params['username']; - if (isset($params['password'])) $this->password = $params['password']; - if (isset($params['localhost'])) $this->localhost = $params['localhost']; - if (isset($params['timeout'])) $this->timeout = $params['timeout']; - if (isset($params['debug'])) $this->debug = (bool)$params['debug']; - if (isset($params['persist'])) $this->persist = (bool)$params['persist']; - if (isset($params['pipelining'])) $this->pipelining = (bool)$params['pipelining']; - - // Deprecated options - if (isset($params['verp'])) { - $this->addServiceExtensionParameter('XVERP', is_bool($params['verp']) ? null : $params['verp']); - } - - register_shutdown_function(array(&$this, '_Mail_smtp')); - } - - /** - * Destructor implementation to ensure that we disconnect from any - * potentially-alive persistent SMTP connections. - */ - function _Mail_smtp() - { - $this->disconnect(); - } - - /** - * Implements Mail::send() function using SMTP. - * - * @param mixed $recipients Either a comma-seperated list of recipients - * (RFC822 compliant), or an array of recipients, - * each RFC822 valid. This may contain recipients not - * specified in the headers, for Bcc:, resending - * messages, etc. - * - * @param array $headers The array of headers to send with the mail, in an - * associative array, where the array key is the - * header name (e.g., 'Subject'), and the array value - * is the header value (e.g., 'test'). The header - * produced from those values would be 'Subject: - * test'. - * - * @param string $body The full text of the message body, including any - * MIME parts, etc. - * - * @return mixed Returns true on success, or a PEAR_Error - * containing a descriptive error message on - * failure. - * @access public - */ - function send($recipients, $headers, $body) - { - /* If we don't already have an SMTP object, create one. */ - $result = &$this->getSMTPObject(); - if (PEAR::isError($result)) { - return $result; - } - - if (!is_array($headers)) { - return PEAR::raiseError('$headers must be an array'); - } - - $this->_sanitizeHeaders($headers); - - $headerElements = $this->prepareHeaders($headers); - if (is_a($headerElements, 'PEAR_Error')) { - $this->_smtp->rset(); - return $headerElements; - } - list($from, $textHeaders) = $headerElements; - - /* Since few MTAs are going to allow this header to be forged - * unless it's in the MAIL FROM: exchange, we'll use - * Return-Path instead of From: if it's set. */ - if (!empty($headers['Return-Path'])) { - $from = $headers['Return-Path']; - } - - if (!isset($from)) { - $this->_smtp->rset(); - return PEAR::raiseError('No From: address has been provided', - PEAR_MAIL_SMTP_ERROR_FROM); - } - - $params = null; - if (!empty($this->_extparams)) { - foreach ($this->_extparams as $key => $val) { - $params .= ' ' . $key . (is_null($val) ? '' : '=' . $val); - } - } - if (PEAR::isError($res = $this->_smtp->mailFrom($from, ltrim($params)))) { - $error = $this->_error("Failed to set sender: $from", $res); - $this->_smtp->rset(); - return PEAR::raiseError($error, PEAR_MAIL_SMTP_ERROR_SENDER); - } - - $recipients = $this->parseRecipients($recipients); - if (is_a($recipients, 'PEAR_Error')) { - $this->_smtp->rset(); - return $recipients; - } - - foreach ($recipients as $recipient) { - $res = $this->_smtp->rcptTo($recipient); - if (is_a($res, 'PEAR_Error')) { - $error = $this->_error("Failed to add recipient: $recipient", $res); - $this->_smtp->rset(); - return PEAR::raiseError($error, PEAR_MAIL_SMTP_ERROR_RECIPIENT); - } - } - - /* Send the message's headers and the body as SMTP data. */ - $res = $this->_smtp->data($textHeaders . "\r\n\r\n" . $body); - if (is_a($res, 'PEAR_Error')) { - $error = $this->_error('Failed to send data', $res); - $this->_smtp->rset(); - return PEAR::raiseError($error, PEAR_MAIL_SMTP_ERROR_DATA); - } - - /* If persistent connections are disabled, destroy our SMTP object. */ - if ($this->persist === false) { - $this->disconnect(); - } - - return true; - } - - /** - * Connect to the SMTP server by instantiating a Net_SMTP object. - * - * @return mixed Returns a reference to the Net_SMTP object on success, or - * a PEAR_Error containing a descriptive error message on - * failure. - * - * @since 1.2.0 - * @access public - */ - function &getSMTPObject() - { - if (is_object($this->_smtp) !== false) { - return $this->_smtp; - } - - include_once 'net/SMTP.php'; - $this->_smtp = &new Net_SMTP($this->host, - $this->port, - $this->localhost); - - /* If we still don't have an SMTP object at this point, fail. */ - if (is_object($this->_smtp) === false) { - return PEAR::raiseError('Failed to create a Net_SMTP object', - PEAR_MAIL_SMTP_ERROR_CREATE); - } - - /* Configure the SMTP connection. */ - if ($this->debug) { - $this->_smtp->setDebug(true); - } - - /* Attempt to connect to the configured SMTP server. */ - if (PEAR::isError($res = $this->_smtp->connect($this->timeout))) { - $error = $this->_error('Failed to connect to ' . - $this->host . ':' . $this->port, - $res); - return PEAR::raiseError($error, PEAR_MAIL_SMTP_ERROR_CONNECT); - } - - /* Attempt to authenticate if authentication has been enabled. */ - if ($this->auth) { - $method = is_string($this->auth) ? $this->auth : ''; - - if (PEAR::isError($res = $this->_smtp->auth($this->username, - $this->password, - $method))) { - $error = $this->_error("$method authentication failure", - $res); - $this->_smtp->rset(); - return PEAR::raiseError($error, PEAR_MAIL_SMTP_ERROR_AUTH); - } - } - - return $this->_smtp; - } - - /** - * Add parameter associated with a SMTP service extension. - * - * @param string Extension keyword. - * @param string Any value the keyword needs. - * - * @since 1.2.0 - * @access public - */ - function addServiceExtensionParameter($keyword, $value = null) - { - $this->_extparams[$keyword] = $value; - } - - /** - * Disconnect and destroy the current SMTP connection. - * - * @return boolean True if the SMTP connection no longer exists. - * - * @since 1.1.9 - * @access public - */ - function disconnect() - { - /* If we have an SMTP object, disconnect and destroy it. */ - if (is_object($this->_smtp) && $this->_smtp->disconnect()) { - $this->_smtp = null; - } - - /* We are disconnected if we no longer have an SMTP object. */ - return ($this->_smtp === null); - } - - /** - * Build a standardized string describing the current SMTP error. - * - * @param string $text Custom string describing the error context. - * @param object $error Reference to the current PEAR_Error object. - * - * @return string A string describing the current SMTP error. - * - * @since 1.1.7 - * @access private - */ - function _error($text, &$error) - { - /* Split the SMTP response into a code and a response string. */ - list($code, $response) = $this->_smtp->getResponse(); - - /* Build our standardized error string. */ - return $text - . ' [SMTP: ' . $error->getMessage() - . " (code: $code, response: $response)]"; - } - -} diff --git a/src/vitis/vas/rest/class/PEAR/Mail/smtpmx.php b/src/vitis/vas/rest/class/PEAR/Mail/smtpmx.php deleted file mode 100755 index 9d2dccfb..00000000 --- a/src/vitis/vas/rest/class/PEAR/Mail/smtpmx.php +++ /dev/null @@ -1,478 +0,0 @@ -<?PHP -/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */ - -/** - * SMTP MX - * - * SMTP MX implementation of the PEAR Mail interface. Requires the Net_SMTP class. - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category Mail - * @package Mail_smtpmx - * @author gERD Schaufelberger <gerd@php-tools.net> - * @copyright 1997-2005 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: smtpmx.php,v 1.2 2007/10/06 17:00:00 chagenbu Exp $ - * @see Mail - */ - -require_once 'Net/SMTP.php'; - -/** - * SMTP MX implementation of the PEAR Mail interface. Requires the Net_SMTP class. - * - * - * @access public - * @author gERD Schaufelberger <gerd@php-tools.net> - * @package Mail - * @version $Revision: 1.2 $ - */ -class Mail_smtpmx extends Mail { - - /** - * SMTP connection object. - * - * @var object - * @access private - */ - var $_smtp = null; - - /** - * The port the SMTP server is on. - * @var integer - * @see getservicebyname() - */ - var $port = 25; - - /** - * Hostname or domain that will be sent to the remote SMTP server in the - * HELO / EHLO message. - * - * @var string - * @see posix_uname() - */ - var $mailname = 'localhost'; - - /** - * SMTP connection timeout value. NULL indicates no timeout. - * - * @var integer - */ - var $timeout = 10; - - /** - * use either PEAR:Net_DNS or getmxrr - * - * @var boolean - */ - var $withNetDns = true; - - /** - * PEAR:Net_DNS_Resolver - * - * @var object - */ - var $resolver; - - /** - * Whether to use VERP or not. If not a boolean, the string value - * will be used as the VERP separators. - * - * @var mixed boolean or string - */ - var $verp = false; - - /** - * Whether to use VRFY or not. - * - * @var boolean $vrfy - */ - var $vrfy = false; - - /** - * Switch to test mode - don't send emails for real - * - * @var boolean $debug - */ - var $test = false; - - /** - * Turn on Net_SMTP debugging? - * - * @var boolean $peardebug - */ - var $debug = false; - - /** - * internal error codes - * - * translate internal error identifier to PEAR-Error codes and human - * readable messages. - * - * @var boolean $debug - * @todo as I need unique error-codes to identify what exactly went wrond - * I did not use intergers as it should be. Instead I added a "namespace" - * for each code. This avoids conflicts with error codes from different - * classes. How can I use unique error codes and stay conform with PEAR? - */ - var $errorCode = array( - 'not_connected' => array( - 'code' => 1, - 'msg' => 'Could not connect to any mail server ({HOST}) at port {PORT} to send mail to {RCPT}.' - ), - 'failed_vrfy_rcpt' => array( - 'code' => 2, - 'msg' => 'Recipient "{RCPT}" could not be veryfied.' - ), - 'failed_set_from' => array( - 'code' => 3, - 'msg' => 'Failed to set sender: {FROM}.' - ), - 'failed_set_rcpt' => array( - 'code' => 4, - 'msg' => 'Failed to set recipient: {RCPT}.' - ), - 'failed_send_data' => array( - 'code' => 5, - 'msg' => 'Failed to send mail to: {RCPT}.' - ), - 'no_from' => array( - 'code' => 5, - 'msg' => 'No from address has be provided.' - ), - 'send_data' => array( - 'code' => 7, - 'msg' => 'Failed to create Net_SMTP object.' - ), - 'no_mx' => array( - 'code' => 8, - 'msg' => 'No MX-record for {RCPT} found.' - ), - 'no_resolver' => array( - 'code' => 9, - 'msg' => 'Could not start resolver! Install PEAR:Net_DNS or switch off "netdns"' - ), - 'failed_rset' => array( - 'code' => 10, - 'msg' => 'RSET command failed, SMTP-connection corrupt.' - ), - ); - - /** - * Constructor. - * - * Instantiates a new Mail_smtp:: object based on the parameters - * passed in. It looks for the following parameters: - * mailname The name of the local mail system (a valid hostname which matches the reverse lookup) - * port smtp-port - the default comes from getservicebyname() and should work fine - * timeout The SMTP connection timeout. Defaults to 30 seconds. - * vrfy Whether to use VRFY or not. Defaults to false. - * verp Whether to use VERP or not. Defaults to false. - * test Activate test mode? Defaults to false. - * debug Activate SMTP and Net_DNS debug mode? Defaults to false. - * netdns whether to use PEAR:Net_DNS or the PHP build in function getmxrr, default is true - * - * If a parameter is present in the $params array, it replaces the - * default. - * - * @access public - * @param array Hash containing any parameters different from the - * defaults. - * @see _Mail_smtpmx() - */ - function __construct($params) - { - if (isset($params['mailname'])) { - $this->mailname = $params['mailname']; - } else { - // try to find a valid mailname - if (function_exists('posix_uname')) { - $uname = posix_uname(); - $this->mailname = $uname['nodename']; - } - } - - // port number - if (isset($params['port'])) { - $this->_port = $params['port']; - } else { - $this->_port = getservbyname('smtp', 'tcp'); - } - - if (isset($params['timeout'])) $this->timeout = $params['timeout']; - if (isset($params['verp'])) $this->verp = $params['verp']; - if (isset($params['test'])) $this->test = $params['test']; - if (isset($params['peardebug'])) $this->test = $params['peardebug']; - if (isset($params['netdns'])) $this->withNetDns = $params['netdns']; - } - - /** - * Constructor wrapper for PHP4 - * - * @access public - * @param array Hash containing any parameters different from the defaults - * @see __construct() - */ - function Mail_smtpmx($params) - { - $this->__construct($params); - register_shutdown_function(array(&$this, '__destruct')); - } - - /** - * Destructor implementation to ensure that we disconnect from any - * potentially-alive persistent SMTP connections. - */ - function __destruct() - { - if (is_object($this->_smtp)) { - $this->_smtp->disconnect(); - $this->_smtp = null; - } - } - - /** - * Implements Mail::send() function using SMTP direct delivery - * - * @access public - * @param mixed $recipients in RFC822 style or array - * @param array $headers The array of headers to send with the mail. - * @param string $body The full text of the message body, - * @return mixed Returns true on success, or a PEAR_Error - */ - function send($recipients, $headers, $body) - { - if (!is_array($headers)) { - return PEAR::raiseError('$headers must be an array'); - } - - $result = $this->_sanitizeHeaders($headers); - if (is_a($result, 'PEAR_Error')) { - return $result; - } - - // Prepare headers - $headerElements = $this->prepareHeaders($headers); - if (is_a($headerElements, 'PEAR_Error')) { - return $headerElements; - } - list($from, $textHeaders) = $headerElements; - - // use 'Return-Path' if possible - if (!empty($headers['Return-Path'])) { - $from = $headers['Return-Path']; - } - if (!isset($from)) { - return $this->_raiseError('no_from'); - } - - // Prepare recipients - $recipients = $this->parseRecipients($recipients); - if (is_a($recipients, 'PEAR_Error')) { - return $recipients; - } - - foreach ($recipients as $rcpt) { - list($user, $host) = explode('@', $rcpt); - - $mx = $this->_getMx($host); - if (is_a($mx, 'PEAR_Error')) { - return $mx; - } - - if (empty($mx)) { - $info = array('rcpt' => $rcpt); - return $this->_raiseError('no_mx', $info); - } - - $connected = false; - foreach ($mx as $mserver => $mpriority) { - $this->_smtp = new Net_SMTP($mserver, $this->port, $this->mailname); - - // configure the SMTP connection. - if ($this->debug) { - $this->_smtp->setDebug(true); - } - - // attempt to connect to the configured SMTP server. - $res = $this->_smtp->connect($this->timeout); - if (is_a($res, 'PEAR_Error')) { - $this->_smtp = null; - continue; - } - - // connection established - if ($res) { - $connected = true; - break; - } - } - - if (!$connected) { - $info = array( - 'host' => implode(', ', array_keys($mx)), - 'port' => $this->port, - 'rcpt' => $rcpt, - ); - return $this->_raiseError('not_connected', $info); - } - - // Verify recipient - if ($this->vrfy) { - $res = $this->_smtp->vrfy($rcpt); - if (is_a($res, 'PEAR_Error')) { - $info = array('rcpt' => $rcpt); - return $this->_raiseError('failed_vrfy_rcpt', $info); - } - } - - // mail from: - $args['verp'] = $this->verp; - $res = $this->_smtp->mailFrom($from, $args); - if (is_a($res, 'PEAR_Error')) { - $info = array('from' => $from); - return $this->_raiseError('failed_set_from', $info); - } - - // rcpt to: - $res = $this->_smtp->rcptTo($rcpt); - if (is_a($res, 'PEAR_Error')) { - $info = array('rcpt' => $rcpt); - return $this->_raiseError('failed_set_rcpt', $info); - } - - // Don't send anything in test mode - if ($this->test) { - $result = $this->_smtp->rset(); - $res = $this->_smtp->rset(); - if (is_a($res, 'PEAR_Error')) { - return $this->_raiseError('failed_rset'); - } - - $this->_smtp->disconnect(); - $this->_smtp = null; - return true; - } - - // Send data - $res = $this->_smtp->data("$textHeaders\r\n$body"); - if (is_a($res, 'PEAR_Error')) { - $info = array('rcpt' => $rcpt); - return $this->_raiseError('failed_send_data', $info); - } - - $this->_smtp->disconnect(); - $this->_smtp = null; - } - - return true; - } - - /** - * Recieve mx rexords for a spciefied host - * - * The MX records - * - * @access private - * @param string $host mail host - * @return mixed sorted - */ - function _getMx($host) - { - $mx = array(); - - if ($this->withNetDns) { - $res = $this->_loadNetDns(); - if (is_a($res, 'PEAR_Error')) { - return $res; - } - - $response = $this->resolver->query($host, 'MX'); - if (!$response) { - return false; - } - - foreach ($response->answer as $rr) { - if ($rr->type == 'MX') { - $mx[$rr->exchange] = $rr->preference; - } - } - } else { - $mxHost = array(); - $mxWeight = array(); - - if (!getmxrr($host, $mxHost, $mxWeight)) { - return false; - } - for ($i = 0; $i < count($mxHost); ++$i) { - $mx[$mxHost[$i]] = $mxWeight[$i]; - } - } - - asort($mx); - return $mx; - } - - /** - * initialize PEAR:Net_DNS_Resolver - * - * @access private - * @return boolean true on success - */ - function _loadNetDns() - { - if (is_object($this->resolver)) { - return true; - } - - if (!include_once 'Net/DNS.php') { - return $this->_raiseError('no_resolver'); - } - - $this->resolver = new Net_DNS_Resolver(); - if ($this->debug) { - $this->resolver->test = 1; - } - - return true; - } - - /** - * raise standardized error - * - * include additional information in error message - * - * @access private - * @param string $id maps error ids to codes and message - * @param array $info optional information in associative array - * @see _errorCode - */ - function _raiseError($id, $info = array()) - { - $code = $this->errorCode[$id]['code']; - $msg = $this->errorCode[$id]['msg']; - - // include info to messages - if (!empty($info)) { - $search = array(); - $replace = array(); - - foreach ($info as $key => $value) { - array_push($search, '{' . strtoupper($key) . '}'); - array_push($replace, $value); - } - - $msg = str_replace($search, $replace, $msg); - } - - return PEAR::raiseError($msg, $code); - } - -} diff --git a/src/vitis/vas/rest/class/PEAR/PEAR.php b/src/vitis/vas/rest/class/PEAR/PEAR.php deleted file mode 100755 index 77d16cd1..00000000 --- a/src/vitis/vas/rest/class/PEAR/PEAR.php +++ /dev/null @@ -1,1118 +0,0 @@ -<?php -/** - * PEAR, the PHP Extension and Application Repository - * - * PEAR class and PEAR_Error class - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Sterling Hughes <sterling@php.net> - * @author Stig Bakken <ssb@php.net> - * @author Tomas V.V.Cox <cox@idecnet.com> - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: PEAR.php,v 1.104 2008/01/03 20:26:34 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 0.1 - */ - -/**#@+ - * ERROR constants - */ -define('PEAR_ERROR_RETURN', 1); -define('PEAR_ERROR_PRINT', 2); -define('PEAR_ERROR_TRIGGER', 4); -define('PEAR_ERROR_DIE', 8); -define('PEAR_ERROR_CALLBACK', 16); -/** - * WARNING: obsolete - * @deprecated - */ -define('PEAR_ERROR_EXCEPTION', 32); -/**#@-*/ -define('PEAR_ZE2', (function_exists('version_compare') && - version_compare(zend_version(), "2-dev", "ge"))); - -if (substr(PHP_OS, 0, 3) == 'WIN') { - define('OS_WINDOWS', true); - define('OS_UNIX', false); - define('PEAR_OS', 'Windows'); -} else { - define('OS_WINDOWS', false); - define('OS_UNIX', true); - define('PEAR_OS', 'Unix'); // blatant assumption -} - -// instant backwards compatibility -if (!defined('PATH_SEPARATOR')) { - if (OS_WINDOWS) { - define('PATH_SEPARATOR', ';'); - } else { - define('PATH_SEPARATOR', ':'); - } -} - -$GLOBALS['_PEAR_default_error_mode'] = PEAR_ERROR_RETURN; -$GLOBALS['_PEAR_default_error_options'] = E_USER_NOTICE; -$GLOBALS['_PEAR_destructor_object_list'] = array(); -$GLOBALS['_PEAR_shutdown_funcs'] = array(); -$GLOBALS['_PEAR_error_handler_stack'] = array(); - -@ini_set('track_errors', true); - -/** - * Base class for other PEAR classes. Provides rudimentary - * emulation of destructors. - * - * If you want a destructor in your class, inherit PEAR and make a - * destructor method called _yourclassname (same name as the - * constructor, but with a "_" prefix). Also, in your constructor you - * have to call the PEAR constructor: $this->PEAR();. - * The destructor method will be called without parameters. Note that - * at in some SAPI implementations (such as Apache), any output during - * the request shutdown (in which destructors are called) seems to be - * discarded. If you need to get any debug information from your - * destructor, use error_log(), syslog() or something similar. - * - * IMPORTANT! To use the emulated destructors you need to create the - * objects by reference: $obj =& new PEAR_child; - * - * @category pear - * @package PEAR - * @author Stig Bakken <ssb@php.net> - * @author Tomas V.V. Cox <cox@idecnet.com> - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2006 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @see PEAR_Error - * @since Class available since PHP 4.0.2 - * @link http://pear.php.net/manual/en/core.pear.php#core.pear.pear - */ -class PEAR -{ - // {{{ properties - - /** - * Whether to enable internal debug messages. - * - * @var bool - * @access private - */ - var $_debug = false; - - /** - * Default error mode for this object. - * - * @var int - * @access private - */ - var $_default_error_mode = null; - - /** - * Default error options used for this object when error mode - * is PEAR_ERROR_TRIGGER. - * - * @var int - * @access private - */ - var $_default_error_options = null; - - /** - * Default error handler (callback) for this object, if error mode is - * PEAR_ERROR_CALLBACK. - * - * @var string - * @access private - */ - var $_default_error_handler = ''; - - /** - * Which class to use for error objects. - * - * @var string - * @access private - */ - var $_error_class = 'PEAR_Error'; - - /** - * An array of expected errors. - * - * @var array - * @access private - */ - var $_expected_errors = array(); - - // }}} - - // {{{ constructor - - /** - * Constructor. Registers this object in - * $_PEAR_destructor_object_list for destructor emulation if a - * destructor object exists. - * - * @param string $error_class (optional) which class to use for - * error objects, defaults to PEAR_Error. - * @access public - * @return void - */ - function __construct($error_class = null) - { - $classname = strtolower(get_class($this)); - if ($this->_debug) { - print "PEAR constructor called, class=$classname\n"; - } - if ($error_class !== null) { - $this->_error_class = $error_class; - } - while ($classname && strcasecmp($classname, "pear")) { - $destructor = "_$classname"; - if (method_exists($this, $destructor)) { - global $_PEAR_destructor_object_list; - $_PEAR_destructor_object_list[] = &$this; - if (!isset($GLOBALS['_PEAR_SHUTDOWN_REGISTERED'])) { - register_shutdown_function("_PEAR_call_destructors"); - $GLOBALS['_PEAR_SHUTDOWN_REGISTERED'] = true; - } - break; - } else { - $classname = get_parent_class($classname); - } - } - } - - // }}} - // {{{ destructor - - /** - * Destructor (the emulated type of...). Does nothing right now, - * but is included for forward compatibility, so subclass - * destructors should always call it. - * - * See the note in the class desciption about output from - * destructors. - * - * @access public - * @return void - */ - function __destruct() { - if ($this->_debug) { - printf("PEAR destructor called, class=%s\n", strtolower(get_class($this))); - } - } - - // }}} - // {{{ getStaticProperty() - - /** - * If you have a class that's mostly/entirely static, and you need static - * properties, you can use this method to simulate them. Eg. in your method(s) - * do this: $myVar = &PEAR::getStaticProperty('myclass', 'myVar'); - * You MUST use a reference, or they will not persist! - * - * @access public - * @param string $class The calling classname, to prevent clashes - * @param string $var The variable to retrieve. - * @return mixed A reference to the variable. If not set it will be - * auto initialised to NULL. - */ - function &getStaticProperty($class, $var) - { - static $properties; - if (!isset($properties[$class])) { - $properties[$class] = array(); - } - if (!array_key_exists($var, $properties[$class])) { - $properties[$class][$var] = null; - } - return $properties[$class][$var]; - } - - // }}} - // {{{ registerShutdownFunc() - - /** - * Use this function to register a shutdown method for static - * classes. - * - * @access public - * @param mixed $func The function name (or array of class/method) to call - * @param mixed $args The arguments to pass to the function - * @return void - */ - function registerShutdownFunc($func, $args = array()) - { - // if we are called statically, there is a potential - // that no shutdown func is registered. Bug #6445 - if (!isset($GLOBALS['_PEAR_SHUTDOWN_REGISTERED'])) { - register_shutdown_function("_PEAR_call_destructors"); - $GLOBALS['_PEAR_SHUTDOWN_REGISTERED'] = true; - } - $GLOBALS['_PEAR_shutdown_funcs'][] = array($func, $args); - } - - // }}} - // {{{ isError() - - /** - * Tell whether a value is a PEAR error. - * - * @param mixed $data the value to test - * @param int $code if $data is an error object, return true - * only if $code is a string and - * $obj->getMessage() == $code or - * $code is an integer and $obj->getCode() == $code - * @access public - * @return bool true if parameter is an error - */ - function isError($data, $code = null) - { - if (is_a($data, 'PEAR_Error')) { - if (is_null($code)) { - return true; - } elseif (is_string($code)) { - return $data->getMessage() == $code; - } else { - return $data->getCode() == $code; - } - } - return false; - } - - // }}} - // {{{ setErrorHandling() - - /** - * Sets how errors generated by this object should be handled. - * Can be invoked both in objects and statically. If called - * statically, setErrorHandling sets the default behaviour for all - * PEAR objects. If called in an object, setErrorHandling sets - * the default behaviour for that object. - * - * @param int $mode - * One of PEAR_ERROR_RETURN, PEAR_ERROR_PRINT, - * PEAR_ERROR_TRIGGER, PEAR_ERROR_DIE, - * PEAR_ERROR_CALLBACK or PEAR_ERROR_EXCEPTION. - * - * @param mixed $options - * When $mode is PEAR_ERROR_TRIGGER, this is the error level (one - * of E_USER_NOTICE, E_USER_WARNING or E_USER_ERROR). - * - * When $mode is PEAR_ERROR_CALLBACK, this parameter is expected - * to be the callback function or method. A callback - * function is a string with the name of the function, a - * callback method is an array of two elements: the element - * at index 0 is the object, and the element at index 1 is - * the name of the method to call in the object. - * - * When $mode is PEAR_ERROR_PRINT or PEAR_ERROR_DIE, this is - * a printf format string used when printing the error - * message. - * - * @access public - * @return void - * @see PEAR_ERROR_RETURN - * @see PEAR_ERROR_PRINT - * @see PEAR_ERROR_TRIGGER - * @see PEAR_ERROR_DIE - * @see PEAR_ERROR_CALLBACK - * @see PEAR_ERROR_EXCEPTION - * - * @since PHP 4.0.5 - */ - - function setErrorHandling($mode = null, $options = null) - { - if (isset($this) && is_a($this, 'PEAR')) { - $setmode = &$this->_default_error_mode; - $setoptions = &$this->_default_error_options; - } else { - $setmode = &$GLOBALS['_PEAR_default_error_mode']; - $setoptions = &$GLOBALS['_PEAR_default_error_options']; - } - - switch ($mode) { - case PEAR_ERROR_EXCEPTION: - case PEAR_ERROR_RETURN: - case PEAR_ERROR_PRINT: - case PEAR_ERROR_TRIGGER: - case PEAR_ERROR_DIE: - case null: - $setmode = $mode; - $setoptions = $options; - break; - - case PEAR_ERROR_CALLBACK: - $setmode = $mode; - // class/object method callback - if (is_callable($options)) { - $setoptions = $options; - } else { - trigger_error("invalid error callback", E_USER_WARNING); - } - break; - - default: - trigger_error("invalid error mode", E_USER_WARNING); - break; - } - } - - // }}} - // {{{ expectError() - - /** - * This method is used to tell which errors you expect to get. - * Expected errors are always returned with error mode - * PEAR_ERROR_RETURN. Expected error codes are stored in a stack, - * and this method pushes a new element onto it. The list of - * expected errors are in effect until they are popped off the - * stack with the popExpect() method. - * - * Note that this method can not be called statically - * - * @param mixed $code a single error code or an array of error codes to expect - * - * @return int the new depth of the "expected errors" stack - * @access public - */ - function expectError($code = '*') - { - if (is_array($code)) { - array_push($this->_expected_errors, $code); - } else { - array_push($this->_expected_errors, array($code)); - } - return sizeof($this->_expected_errors); - } - - // }}} - // {{{ popExpect() - - /** - * This method pops one element off the expected error codes - * stack. - * - * @return array the list of error codes that were popped - */ - function popExpect() - { - return array_pop($this->_expected_errors); - } - - // }}} - // {{{ _checkDelExpect() - - /** - * This method checks unsets an error code if available - * - * @param mixed error code - * @return bool true if the error code was unset, false otherwise - * @access private - * @since PHP 4.3.0 - */ - function _checkDelExpect($error_code) - { - $deleted = false; - - foreach ($this->_expected_errors AS $key => $error_array) { - if (in_array($error_code, $error_array)) { - unset($this->_expected_errors[$key][array_search($error_code, $error_array)]); - $deleted = true; - } - - // clean up empty arrays - if (0 == count($this->_expected_errors[$key])) { - unset($this->_expected_errors[$key]); - } - } - return $deleted; - } - - // }}} - // {{{ delExpect() - - /** - * This method deletes all occurences of the specified element from - * the expected error codes stack. - * - * @param mixed $error_code error code that should be deleted - * @return mixed list of error codes that were deleted or error - * @access public - * @since PHP 4.3.0 - */ - function delExpect($error_code) - { - $deleted = false; - - if ((is_array($error_code) && (0 != count($error_code)))) { - // $error_code is a non-empty array here; - // we walk through it trying to unset all - // values - foreach($error_code as $key => $error) { - if ($this->_checkDelExpect($error)) { - $deleted = true; - } else { - $deleted = false; - } - } - return $deleted ? true : PEAR::raiseError("The expected error you submitted does not exist"); // IMPROVE ME - } elseif (!empty($error_code)) { - // $error_code comes alone, trying to unset it - if ($this->_checkDelExpect($error_code)) { - return true; - } else { - return PEAR::raiseError("The expected error you submitted does not exist"); // IMPROVE ME - } - } else { - // $error_code is empty - return PEAR::raiseError("The expected error you submitted is empty"); // IMPROVE ME - } - } - - // }}} - // {{{ raiseError() - - /** - * This method is a wrapper that returns an instance of the - * configured error class with this object's default error - * handling applied. If the $mode and $options parameters are not - * specified, the object's defaults are used. - * - * @param mixed $message a text error message or a PEAR error object - * - * @param int $code a numeric error code (it is up to your class - * to define these if you want to use codes) - * - * @param int $mode One of PEAR_ERROR_RETURN, PEAR_ERROR_PRINT, - * PEAR_ERROR_TRIGGER, PEAR_ERROR_DIE, - * PEAR_ERROR_CALLBACK, PEAR_ERROR_EXCEPTION. - * - * @param mixed $options If $mode is PEAR_ERROR_TRIGGER, this parameter - * specifies the PHP-internal error level (one of - * E_USER_NOTICE, E_USER_WARNING or E_USER_ERROR). - * If $mode is PEAR_ERROR_CALLBACK, this - * parameter specifies the callback function or - * method. In other error modes this parameter - * is ignored. - * - * @param string $userinfo If you need to pass along for example debug - * information, this parameter is meant for that. - * - * @param string $error_class The returned error object will be - * instantiated from this class, if specified. - * - * @param bool $skipmsg If true, raiseError will only pass error codes, - * the error message parameter will be dropped. - * - * @access public - * @return object a PEAR error object - * @see PEAR::setErrorHandling - * @since PHP 4.0.5 - */ - function &raiseError($message = null, - $code = null, - $mode = null, - $options = null, - $userinfo = null, - $error_class = null, - $skipmsg = false) - { - // The error is yet a PEAR error object - if (is_object($message)) { - $code = $message->getCode(); - $userinfo = $message->getUserInfo(); - $error_class = $message->getType(); - $message->error_message_prefix = ''; - $message = $message->getMessage(); - } - - if (isset($this) && isset($this->_expected_errors) && sizeof($this->_expected_errors) > 0 && sizeof($exp = end($this->_expected_errors))) { - if ($exp[0] == "*" || - (is_int(reset($exp)) && in_array($code, $exp)) || - (is_string(reset($exp)) && in_array($message, $exp))) { - $mode = PEAR_ERROR_RETURN; - } - } - // No mode given, try global ones - if ($mode === null) { - // Class error handler - if (isset($this) && isset($this->_default_error_mode)) { - $mode = $this->_default_error_mode; - $options = $this->_default_error_options; - // Global error handler - } elseif (isset($GLOBALS['_PEAR_default_error_mode'])) { - $mode = $GLOBALS['_PEAR_default_error_mode']; - $options = $GLOBALS['_PEAR_default_error_options']; - } - } - - if ($error_class !== null) { - $ec = $error_class; - } elseif (isset($this) && isset($this->_error_class)) { - $ec = $this->_error_class; - } else { - $ec = 'PEAR_Error'; - } - if (intval(PHP_VERSION) < 5) { - // little non-eval hack to fix bug #12147 - include 'PEAR/FixPHP5PEARWarnings.php'; - return $a; - } - if ($skipmsg) { - $a = new $ec($code, $mode, $options, $userinfo); - } else { - $a = new $ec($message, $code, $mode, $options, $userinfo); - } - return $a; - } - - // }}} - // {{{ throwError() - - /** - * Simpler form of raiseError with fewer options. In most cases - * message, code and userinfo are enough. - * - * @param string $message - * - */ - function &throwError($message = null, - $code = null, - $userinfo = null) - { - if (isset($this) && is_a($this, 'PEAR')) { - $a = &$this->raiseError($message, $code, null, null, $userinfo); - return $a; - } else { - $a = &PEAR::raiseError($message, $code, null, null, $userinfo); - return $a; - } - } - - // }}} - function staticPushErrorHandling($mode, $options = null) - { - $stack = &$GLOBALS['_PEAR_error_handler_stack']; - $def_mode = &$GLOBALS['_PEAR_default_error_mode']; - $def_options = &$GLOBALS['_PEAR_default_error_options']; - $stack[] = array($def_mode, $def_options); - switch ($mode) { - case PEAR_ERROR_EXCEPTION: - case PEAR_ERROR_RETURN: - case PEAR_ERROR_PRINT: - case PEAR_ERROR_TRIGGER: - case PEAR_ERROR_DIE: - case null: - $def_mode = $mode; - $def_options = $options; - break; - - case PEAR_ERROR_CALLBACK: - $def_mode = $mode; - // class/object method callback - if (is_callable($options)) { - $def_options = $options; - } else { - trigger_error("invalid error callback", E_USER_WARNING); - } - break; - - default: - trigger_error("invalid error mode", E_USER_WARNING); - break; - } - $stack[] = array($mode, $options); - return true; - } - - function staticPopErrorHandling() - { - $stack = &$GLOBALS['_PEAR_error_handler_stack']; - $setmode = &$GLOBALS['_PEAR_default_error_mode']; - $setoptions = &$GLOBALS['_PEAR_default_error_options']; - array_pop($stack); - list($mode, $options) = $stack[sizeof($stack) - 1]; - array_pop($stack); - switch ($mode) { - case PEAR_ERROR_EXCEPTION: - case PEAR_ERROR_RETURN: - case PEAR_ERROR_PRINT: - case PEAR_ERROR_TRIGGER: - case PEAR_ERROR_DIE: - case null: - $setmode = $mode; - $setoptions = $options; - break; - - case PEAR_ERROR_CALLBACK: - $setmode = $mode; - // class/object method callback - if (is_callable($options)) { - $setoptions = $options; - } else { - trigger_error("invalid error callback", E_USER_WARNING); - } - break; - - default: - trigger_error("invalid error mode", E_USER_WARNING); - break; - } - return true; - } - - // {{{ pushErrorHandling() - - /** - * Push a new error handler on top of the error handler options stack. With this - * you can easily override the actual error handler for some code and restore - * it later with popErrorHandling. - * - * @param mixed $mode (same as setErrorHandling) - * @param mixed $options (same as setErrorHandling) - * - * @return bool Always true - * - * @see PEAR::setErrorHandling - */ - function pushErrorHandling($mode, $options = null) - { - $stack = &$GLOBALS['_PEAR_error_handler_stack']; - if (isset($this) && is_a($this, 'PEAR')) { - $def_mode = &$this->_default_error_mode; - $def_options = &$this->_default_error_options; - } else { - $def_mode = &$GLOBALS['_PEAR_default_error_mode']; - $def_options = &$GLOBALS['_PEAR_default_error_options']; - } - $stack[] = array($def_mode, $def_options); - - if (isset($this) && is_a($this, 'PEAR')) { - $this->setErrorHandling($mode, $options); - } else { - PEAR::setErrorHandling($mode, $options); - } - $stack[] = array($mode, $options); - return true; - } - - // }}} - // {{{ popErrorHandling() - - /** - * Pop the last error handler used - * - * @return bool Always true - * - * @see PEAR::pushErrorHandling - */ - function popErrorHandling() - { - $stack = &$GLOBALS['_PEAR_error_handler_stack']; - array_pop($stack); - list($mode, $options) = $stack[sizeof($stack) - 1]; - array_pop($stack); - if (isset($this) && is_a($this, 'PEAR')) { - $this->setErrorHandling($mode, $options); - } else { - PEAR::setErrorHandling($mode, $options); - } - return true; - } - - // }}} - // {{{ loadExtension() - - /** - * OS independant PHP extension load. Remember to take care - * on the correct extension name for case sensitive OSes. - * - * @param string $ext The extension name - * @return bool Success or not on the dl() call - */ - function loadExtension($ext) - { - if (!extension_loaded($ext)) { - // if either returns true dl() will produce a FATAL error, stop that - if ((ini_get('enable_dl') != 1) || (ini_get('safe_mode') == 1)) { - return false; - } - if (OS_WINDOWS) { - $suffix = '.dll'; - } elseif (PHP_OS == 'HP-UX') { - $suffix = '.sl'; - } elseif (PHP_OS == 'AIX') { - $suffix = '.a'; - } elseif (PHP_OS == 'OSX') { - $suffix = '.bundle'; - } else { - $suffix = '.so'; - } - return @dl('php_'.$ext.$suffix) || @dl($ext.$suffix); - } - return true; - } - - // }}} -} - -// {{{ _PEAR_call_destructors() - -function _PEAR_call_destructors() -{ - global $_PEAR_destructor_object_list; - if (is_array($_PEAR_destructor_object_list) && - sizeof($_PEAR_destructor_object_list)) - { - reset($_PEAR_destructor_object_list); - if (PEAR::getStaticProperty('PEAR', 'destructlifo')) { - $_PEAR_destructor_object_list = array_reverse($_PEAR_destructor_object_list); - } - while (list($k, $objref) = each($_PEAR_destructor_object_list)) { - $classname = get_class($objref); - while ($classname) { - $destructor = "_$classname"; - if (method_exists($objref, $destructor)) { - $objref->$destructor(); - break; - } else { - $classname = get_parent_class($classname); - } - } - } - // Empty the object list to ensure that destructors are - // not called more than once. - $_PEAR_destructor_object_list = array(); - } - - // Now call the shutdown functions - if (is_array($GLOBALS['_PEAR_shutdown_funcs']) AND !empty($GLOBALS['_PEAR_shutdown_funcs'])) { - foreach ($GLOBALS['_PEAR_shutdown_funcs'] as $value) { - call_user_func_array($value[0], $value[1]); - } - } -} - -// }}} -/** - * Standard PEAR error class for PHP 4 - * - * This class is supserseded by {@link PEAR_Exception} in PHP 5 - * - * @category pear - * @package PEAR - * @author Stig Bakken <ssb@php.net> - * @author Tomas V.V. Cox <cox@idecnet.com> - * @author Gregory Beaver <cellog@php.net> - * @copyright 1997-2006 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/manual/en/core.pear.pear-error.php - * @see PEAR::raiseError(), PEAR::throwError() - * @since Class available since PHP 4.0.2 - */ -class PEAR_Error -{ - // {{{ properties - - var $error_message_prefix = ''; - var $mode = PEAR_ERROR_RETURN; - var $level = E_USER_NOTICE; - var $code = -1; - var $message = ''; - var $userinfo = ''; - var $backtrace = null; - - // }}} - // {{{ constructor - - /** - * PEAR_Error constructor - * - * @param string $message message - * - * @param int $code (optional) error code - * - * @param int $mode (optional) error mode, one of: PEAR_ERROR_RETURN, - * PEAR_ERROR_PRINT, PEAR_ERROR_DIE, PEAR_ERROR_TRIGGER, - * PEAR_ERROR_CALLBACK or PEAR_ERROR_EXCEPTION - * - * @param mixed $options (optional) error level, _OR_ in the case of - * PEAR_ERROR_CALLBACK, the callback function or object/method - * tuple. - * - * @param string $userinfo (optional) additional user/debug info - * - * @access public - * - */ - function __construct($message = 'unknown error', $code = null, - $mode = null, $options = null, $userinfo = null) - { - if ($mode === null) { - $mode = PEAR_ERROR_RETURN; - } - $this->message = $message; - $this->code = $code; - $this->mode = $mode; - $this->userinfo = $userinfo; - if (!PEAR::getStaticProperty('PEAR_Error', 'skiptrace')) { - $this->backtrace = debug_backtrace(); - if (isset($this->backtrace[0]) && isset($this->backtrace[0]['object'])) { - unset($this->backtrace[0]['object']); - } - } - if ($mode & PEAR_ERROR_CALLBACK) { - $this->level = E_USER_NOTICE; - $this->callback = $options; - } else { - if ($options === null) { - $options = E_USER_NOTICE; - } - $this->level = $options; - $this->callback = null; - } - if ($this->mode & PEAR_ERROR_PRINT) { - if (is_null($options) || is_int($options)) { - $format = "%s"; - } else { - $format = $options; - } - printf($format, $this->getMessage()); - } - if ($this->mode & PEAR_ERROR_TRIGGER) { - trigger_error($this->getMessage(), $this->level); - } - if ($this->mode & PEAR_ERROR_DIE) { - $msg = $this->getMessage(); - if (is_null($options) || is_int($options)) { - $format = "%s"; - if (substr($msg, -1) != "\n") { - $msg .= "\n"; - } - } else { - $format = $options; - } - die(sprintf($format, $msg)); - } - if ($this->mode & PEAR_ERROR_CALLBACK) { - if (is_callable($this->callback)) { - call_user_func($this->callback, $this); - } - } - if ($this->mode & PEAR_ERROR_EXCEPTION) { - trigger_error("PEAR_ERROR_EXCEPTION is obsolete, use class PEAR_Exception for exceptions", E_USER_WARNING); - eval('$e = new Exception($this->message, $this->code);throw($e);'); - } - } - - // }}} - // {{{ getMode() - - /** - * Get the error mode from an error object. - * - * @return int error mode - * @access public - */ - function getMode() { - return $this->mode; - } - - // }}} - // {{{ getCallback() - - /** - * Get the callback function/method from an error object. - * - * @return mixed callback function or object/method array - * @access public - */ - function getCallback() { - return $this->callback; - } - - // }}} - // {{{ getMessage() - - - /** - * Get the error message from an error object. - * - * @return string full error message - * @access public - */ - function getMessage() - { - return ($this->error_message_prefix . $this->message); - } - - - // }}} - // {{{ getCode() - - /** - * Get error code from an error object - * - * @return int error code - * @access public - */ - function getCode() - { - return $this->code; - } - - // }}} - // {{{ getType() - - /** - * Get the name of this error/exception. - * - * @return string error/exception name (type) - * @access public - */ - function getType() - { - return get_class($this); - } - - // }}} - // {{{ getUserInfo() - - /** - * Get additional user-supplied information. - * - * @return string user-supplied information - * @access public - */ - function getUserInfo() - { - return $this->userinfo; - } - - // }}} - // {{{ getDebugInfo() - - /** - * Get additional debug information supplied by the application. - * - * @return string debug information - * @access public - */ - function getDebugInfo() - { - return $this->getUserInfo(); - } - - // }}} - // {{{ getBacktrace() - - /** - * Get the call backtrace from where the error was generated. - * Supported with PHP 4.3.0 or newer. - * - * @param int $frame (optional) what frame to fetch - * @return array Backtrace, or NULL if not available. - * @access public - */ - function getBacktrace($frame = null) - { - if (defined('PEAR_IGNORE_BACKTRACE')) { - return null; - } - if ($frame === null) { - return $this->backtrace; - } - return $this->backtrace[$frame]; - } - - // }}} - // {{{ addUserInfo() - - function addUserInfo($info) - { - if (empty($this->userinfo)) { - $this->userinfo = $info; - } else { - $this->userinfo .= " ** $info"; - } - } - - // }}} - // {{{ toString() - function __toString() - { - return $this->getMessage(); - } - // }}} - // {{{ toString() - - /** - * Make a string representation of this object. - * - * @return string a string with an object summary - * @access public - */ - function toString() { - $modes = array(); - $levels = array(E_USER_NOTICE => 'notice', - E_USER_WARNING => 'warning', - E_USER_ERROR => 'error'); - if ($this->mode & PEAR_ERROR_CALLBACK) { - if (is_array($this->callback)) { - $callback = (is_object($this->callback[0]) ? - strtolower(get_class($this->callback[0])) : - $this->callback[0]) . '::' . - $this->callback[1]; - } else { - $callback = $this->callback; - } - return sprintf('[%s: message="%s" code=%d mode=callback '. - 'callback=%s prefix="%s" info="%s"]', - strtolower(get_class($this)), $this->message, $this->code, - $callback, $this->error_message_prefix, - $this->userinfo); - } - if ($this->mode & PEAR_ERROR_PRINT) { - $modes[] = 'print'; - } - if ($this->mode & PEAR_ERROR_TRIGGER) { - $modes[] = 'trigger'; - } - if ($this->mode & PEAR_ERROR_DIE) { - $modes[] = 'die'; - } - if ($this->mode & PEAR_ERROR_RETURN) { - $modes[] = 'return'; - } - return sprintf('[%s: message="%s" code=%d mode=%s level=%s '. - 'prefix="%s" info="%s"]', - strtolower(get_class($this)), $this->message, $this->code, - implode("|", $modes), $levels[$this->level], - $this->error_message_prefix, - $this->userinfo); - } - - // }}} -} - -/* - * Local Variables: - * mode: php - * tab-width: 4 - * c-basic-offset: 4 - * End: - */ -?> diff --git a/src/vitis/vas/rest/class/PEAR/PackageFile.php b/src/vitis/vas/rest/class/PEAR/PackageFile.php deleted file mode 100755 index 0dc42e97..00000000 --- a/src/vitis/vas/rest/class/PEAR/PackageFile.php +++ /dev/null @@ -1,474 +0,0 @@ -<?php -/** - * PEAR_PackageFile, package.xml parsing utility class - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: PackageFile.php,v 1.41 2008/01/03 20:26:36 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 1.4.0a1 - */ - -/** - * needed for PEAR_VALIDATE_* constants - */ -require_once 'PEAR/Validate.php'; -/** - * Error code if the package.xml <package> tag does not contain a valid version - */ -define('PEAR_PACKAGEFILE_ERROR_NO_PACKAGEVERSION', 1); -/** - * Error code if the package.xml <package> tag version is not supported (version 1.0 and 1.1 are the only supported versions, - * currently - */ -define('PEAR_PACKAGEFILE_ERROR_INVALID_PACKAGEVERSION', 2); -/** - * Abstraction for the package.xml package description file - * - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 1.4.0a1 - */ -class PEAR_PackageFile -{ - /** - * @var PEAR_Config - */ - var $_config; - var $_debug; - /** - * Temp directory for uncompressing tgz files. - * @var string|false - */ - var $_tmpdir; - var $_logger = false; - /** - * @var boolean - */ - var $_rawReturn = false; - - /** - * - * @param PEAR_Config $config - * @param ? $debug - * @param string @tmpdir Optional temporary directory for uncompressing - * files - */ - function PEAR_PackageFile(&$config, $debug = false, $tmpdir = false) - { - $this->_config = $config; - $this->_debug = $debug; - $this->_tmpdir = $tmpdir; - } - - /** - * Turn off validation - return a parsed package.xml without checking it - * - * This is used by the package-validate command - */ - function rawReturn() - { - $this->_rawReturn = true; - } - - function setLogger(&$l) - { - $this->_logger = &$l; - } - - /** - * Create a PEAR_PackageFile_Parser_v* of a given version. - * @param int $version - * @return PEAR_PackageFile_Parser_v1|PEAR_PackageFile_Parser_v1 - */ - function &parserFactory($version) - { - if (!in_array($version{0}, array('1', '2'))) { - $a = false; - return $a; - } - include_once 'PEAR/PackageFile/Parser/v' . $version{0} . '.php'; - $version = $version{0}; - $class = "PEAR_PackageFile_Parser_v$version"; - $a = new $class; - return $a; - } - - /** - * For simpler unit-testing - * @return string - */ - function getClassPrefix() - { - return 'PEAR_PackageFile_v'; - } - - /** - * Create a PEAR_PackageFile_v* of a given version. - * @param int $version - * @return PEAR_PackageFile_v1|PEAR_PackageFile_v1 - */ - function &factory($version) - { - if (!in_array($version{0}, array('1', '2'))) { - $a = false; - return $a; - } - include_once 'PEAR/PackageFile/v' . $version{0} . '.php'; - $version = $version{0}; - $class = $this->getClassPrefix() . $version; - $a = new $class; - return $a; - } - - /** - * Create a PEAR_PackageFile_v* from its toArray() method - * - * WARNING: no validation is performed, the array is assumed to be valid, - * always parse from xml if you want validation. - * @param array $arr - * @return PEAR_PackageFileManager_v1|PEAR_PackageFileManager_v2 - * @uses factory() to construct the returned object. - */ - function &fromArray($arr) - { - if (isset($arr['xsdversion'])) { - $obj = &$this->factory($arr['xsdversion']); - if ($this->_logger) { - $obj->setLogger($this->_logger); - } - $obj->setConfig($this->_config); - $obj->fromArray($arr); - return $obj; - } else { - if (isset($arr['package']['attribs']['version'])) { - $obj = &$this->factory($arr['package']['attribs']['version']); - } else { - $obj = &$this->factory('1.0'); - } - if ($this->_logger) { - $obj->setLogger($this->_logger); - } - $obj->setConfig($this->_config); - $obj->fromArray($arr); - return $obj; - } - } - - /** - * Create a PEAR_PackageFile_v* from an XML string. - * @access public - * @param string $data contents of package.xml file - * @param int $state package state (one of PEAR_VALIDATE_* constants) - * @param string $file full path to the package.xml file (and the files - * it references) - * @param string $archive optional name of the archive that the XML was - * extracted from, if any - * @return PEAR_PackageFile_v1|PEAR_PackageFile_v2 - * @uses parserFactory() to construct a parser to load the package. - */ - function &fromXmlString($data, $state, $file, $archive = false) - { - if (preg_match('/<package[^>]+version="([0-9]+\.[0-9]+)"/', $data, $packageversion)) { - if (!in_array($packageversion[1], array('1.0', '2.0', '2.1'))) { - return PEAR::raiseError('package.xml version "' . $packageversion[1] . - '" is not supported, only 1.0, 2.0, and 2.1 are supported.'); - } - $object = &$this->parserFactory($packageversion[1]); - if ($this->_logger) { - $object->setLogger($this->_logger); - } - $object->setConfig($this->_config); - $pf = $object->parse($data, $file, $archive); - if (PEAR::isError($pf)) { - return $pf; - } - if ($this->_rawReturn) { - return $pf; - } - if ($pf->validate($state)) { - if ($this->_logger) { - if ($pf->getValidationWarnings(false)) { - foreach ($pf->getValidationWarnings() as $warning) { - $this->_logger->log(0, 'WARNING: ' . $warning['message']); - } - } - } - if (method_exists($pf, 'flattenFilelist')) { - $pf->flattenFilelist(); // for v2 - } - return $pf; - } else { - if ($this->_config->get('verbose') > 0) { - if ($this->_logger) { - if ($pf->getValidationWarnings(false)) { - foreach ($pf->getValidationWarnings(false) as $warning) { - $this->_logger->log(0, 'ERROR: ' . $warning['message']); - } - } - } - } - $a = PEAR::raiseError('Parsing of package.xml from file "' . $file . '" failed', - 2, null, null, $pf->getValidationWarnings()); - return $a; - } - } elseif (preg_match('/<package[^>]+version="([^"]+)"/', $data, $packageversion)) { - $a = PEAR::raiseError('package.xml file "' . $file . - '" has unsupported package.xml <package> version "' . $packageversion[1] . '"'); - return $a; - } else { - if (!class_exists('PEAR_ErrorStack')) { - require_once 'PEAR/ErrorStack.php'; - } - PEAR_ErrorStack::staticPush('PEAR_PackageFile', - PEAR_PACKAGEFILE_ERROR_NO_PACKAGEVERSION, - 'warning', array('xml' => $data), 'package.xml "' . $file . - '" has no package.xml <package> version'); - $object = &$this->parserFactory('1.0'); - $object->setConfig($this->_config); - $pf = $object->parse($data, $file, $archive); - if (PEAR::isError($pf)) { - return $pf; - } - if ($this->_rawReturn) { - return $pf; - } - if ($pf->validate($state)) { - if ($this->_logger) { - if ($pf->getValidationWarnings(false)) { - foreach ($pf->getValidationWarnings() as $warning) { - $this->_logger->log(0, 'WARNING: ' . $warning['message']); - } - } - } - if (method_exists($pf, 'flattenFilelist')) { - $pf->flattenFilelist(); // for v2 - } - return $pf; - } else { - $a = PEAR::raiseError('Parsing of package.xml from file "' . $file . '" failed', - 2, null, null, $pf->getValidationWarnings()); - return $a; - } - } - } - - /** - * Register a temporary file or directory. When the destructor is - * executed, all registered temporary files and directories are - * removed. - * - * @param string $file name of file or directory - * @return void - */ - function addTempFile($file) - { - $GLOBALS['_PEAR_Common_tempfiles'][] = $file; - } - - /** - * Create a PEAR_PackageFile_v* from a compresed Tar or Tgz file. - * @access public - * @param string contents of package.xml file - * @param int package state (one of PEAR_VALIDATE_* constants) - * @return PEAR_PackageFile_v1|PEAR_PackageFile_v2 - * @using Archive_Tar to extract the files - * @using fromPackageFile() to load the package after the package.xml - * file is extracted. - */ - function &fromTgzFile($file, $state) - { - if (!class_exists('Archive_Tar')) { - require_once 'Archive/Tar.php'; - } - $tar = new Archive_Tar($file); - if ($this->_debug <= 1) { - $tar->pushErrorHandling(PEAR_ERROR_RETURN); - } - $content = $tar->listContent(); - if ($this->_debug <= 1) { - $tar->popErrorHandling(); - } - if (!is_array($content)) { - if (is_string($file) && strlen($file < 255) && - (!file_exists($file) || !@is_file($file))) { - $ret = PEAR::raiseError("could not open file \"$file\""); - return $ret; - } - $file = realpath($file); - $ret = PEAR::raiseError("Could not get contents of package \"$file\"". - '. Invalid tgz file.'); - return $ret; - } else { - if (!count($content) && !@is_file($file)) { - $ret = PEAR::raiseError("could not open file \"$file\""); - return $ret; - } - } - $xml = null; - $origfile = $file; - foreach ($content as $file) { - $name = $file['filename']; - if ($name == 'package2.xml') { // allow a .tgz to distribute both versions - $xml = $name; - break; - } - if ($name == 'package.xml') { - $xml = $name; - break; - } elseif (ereg('package.xml$', $name, $match)) { - $xml = $name; - break; - } - } - if ($this->_tmpdir) { - $tmpdir = $this->_tmpdir; - } else { - $tmpdir = System::mkTemp(array('-d', 'pear')); - PEAR_PackageFile::addTempFile($tmpdir); - } - $this->_extractErrors(); - PEAR::staticPushErrorHandling(PEAR_ERROR_CALLBACK, array($this, '_extractErrors')); - if (!$xml || !$tar->extractList(array($xml), $tmpdir)) { - $extra = implode("\n", $this->_extractErrors()); - if ($extra) { - $extra = ' ' . $extra; - } - PEAR::staticPopErrorHandling(); - $ret = PEAR::raiseError('could not extract the package.xml file from "' . - $origfile . '"' . $extra); - return $ret; - } - PEAR::staticPopErrorHandling(); - $ret = &PEAR_PackageFile::fromPackageFile("$tmpdir/$xml", $state, $origfile); - return $ret; - } - - /** - * helper for extracting Archive_Tar errors - * @var array - * @access private - */ - var $_extractErrors = array(); - - /** - * helper callback for extracting Archive_Tar errors - * - * @param PEAR_Error|null $err - * @return array - * @access private - */ - function _extractErrors($err = null) - { - static $errors = array(); - if ($err === null) { - $e = $errors; - $errors = array(); - return $e; - } - $errors[] = $err->getMessage(); - } - - /** - * Create a PEAR_PackageFile_v* from a package.xml file. - * - * @access public - * @param string $descfile name of package xml file - * @param int $state package state (one of PEAR_VALIDATE_* constants) - * @param string|false $archive name of the archive this package.xml came - * from, if any - * @return PEAR_PackageFile_v1|PEAR_PackageFile_v2 - * @uses PEAR_PackageFile::fromXmlString to create the oject after the - * XML is loaded from the package.xml file. - */ - function &fromPackageFile($descfile, $state, $archive = false) - { - if (is_string($descfile) && strlen($descfile) < 255 && - (!file_exists($descfile) || !is_file($descfile) || !is_readable($descfile) || - (!$fp = @fopen($descfile, 'r')))) { - $a = PEAR::raiseError("Unable to open $descfile"); - return $a; - } - - // read the whole thing so we only get one cdata callback - // for each block of cdata - fclose($fp); - $data = file_get_contents($descfile); - $ret = &PEAR_PackageFile::fromXmlString($data, $state, $descfile, $archive); - return $ret; - } - - - /** - * Create a PEAR_PackageFile_v* from a .tgz archive or package.xml file. - * - * This method is able to extract information about a package from a .tgz - * archive or from a XML package definition file. - * - * @access public - * @param string $info file name - * @param int $state package state (one of PEAR_VALIDATE_* constants) - * @return PEAR_PackageFile_v1|PEAR_PackageFile_v2 - * @uses fromPackageFile() if the file appears to be XML - * @uses fromTgzFile() to load all non-XML files - */ - function &fromAnyFile($info, $state) - { - if (is_dir($info)) { - $dir_name = realpath($info); - if (file_exists($dir_name . '/package.xml')) { - $info = PEAR_PackageFile::fromPackageFile($dir_name . '/package.xml', $state); - } elseif (file_exists($dir_name . '/package2.xml')) { - $info = PEAR_PackageFile::fromPackageFile($dir_name . '/package2.xml', $state); - } else { - $info = PEAR::raiseError("No package definition found in '$info' directory"); - } - return $info; - } - - $fp = false; - if (is_string($info) && strlen($info) < 255 && - (file_exists($info) || ($fp = @fopen($info, 'r')))) { - if ($fp) { - fclose($fp); - } - $tmp = substr($info, -4); - if ($tmp == '.xml') { - $info = &PEAR_PackageFile::fromPackageFile($info, $state); - } elseif ($tmp == '.tar' || $tmp == '.tgz') { - $info = &PEAR_PackageFile::fromTgzFile($info, $state); - } else { - $fp = fopen($info, "r"); - $test = fread($fp, 5); - fclose($fp); - if ($test == "<?xml") { - $info = &PEAR_PackageFile::fromPackageFile($info, $state); - } else { - $info = &PEAR_PackageFile::fromTgzFile($info, $state); - } - } - } else { - $info = PEAR::raiseError("Cannot open '$info' for parsing"); - return $info; - } - return $info; - } -} - -?> diff --git a/src/vitis/vas/rest/class/PEAR/PackageFile/Generator/v1.php b/src/vitis/vas/rest/class/PEAR/PackageFile/Generator/v1.php deleted file mode 100755 index e6c5c94c..00000000 --- a/src/vitis/vas/rest/class/PEAR/PackageFile/Generator/v1.php +++ /dev/null @@ -1,1272 +0,0 @@ -<?php -/** - * package.xml generation class, package.xml version 1.0 - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: v1.php,v 1.74 2008/01/03 20:26:37 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 1.4.0a1 - */ -/** - * needed for PEAR_VALIDATE_* constants - */ -require_once 'PEAR/Validate.php'; -require_once 'System.php'; -require_once 'PEAR/PackageFile/v2.php'; -/** - * This class converts a PEAR_PackageFile_v1 object into any output format. - * - * Supported output formats include array, XML string, and a PEAR_PackageFile_v2 - * object, for converting package.xml 1.0 into package.xml 2.0 with no sweat. - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 1.4.0a1 - */ -class PEAR_PackageFile_Generator_v1 -{ - /** - * @var PEAR_PackageFile_v1 - */ - var $_packagefile; - function PEAR_PackageFile_Generator_v1(&$packagefile) - { - $this->_packagefile = &$packagefile; - } - - function getPackagerVersion() - { - return '1.7.2'; - } - - /** - * @param PEAR_Packager - * @param bool if true, a .tgz is written, otherwise a .tar is written - * @param string|null directory in which to save the .tgz - * @return string|PEAR_Error location of package or error object - */ - function toTgz(&$packager, $compress = true, $where = null) - { - require_once 'Archive/Tar.php'; - if ($where === null) { - if (!($where = System::mktemp(array('-d')))) { - return PEAR::raiseError('PEAR_Packagefile_v1::toTgz: mktemp failed'); - } - } elseif (!@System::mkDir(array('-p', $where))) { - return PEAR::raiseError('PEAR_Packagefile_v1::toTgz: "' . $where . '" could' . - ' not be created'); - } - if (file_exists($where . DIRECTORY_SEPARATOR . 'package.xml') && - !is_file($where . DIRECTORY_SEPARATOR . 'package.xml')) { - return PEAR::raiseError('PEAR_Packagefile_v1::toTgz: unable to save package.xml as' . - ' "' . $where . DIRECTORY_SEPARATOR . 'package.xml"'); - } - if (!$this->_packagefile->validate(PEAR_VALIDATE_PACKAGING)) { - return PEAR::raiseError('PEAR_Packagefile_v1::toTgz: invalid package file'); - } - $pkginfo = $this->_packagefile->getArray(); - $ext = $compress ? '.tgz' : '.tar'; - $pkgver = $pkginfo['package'] . '-' . $pkginfo['version']; - $dest_package = getcwd() . DIRECTORY_SEPARATOR . $pkgver . $ext; - if (file_exists(getcwd() . DIRECTORY_SEPARATOR . $pkgver . $ext) && - !is_file(getcwd() . DIRECTORY_SEPARATOR . $pkgver . $ext)) { - return PEAR::raiseError('PEAR_Packagefile_v1::toTgz: cannot create tgz file "' . - getcwd() . DIRECTORY_SEPARATOR . $pkgver . $ext . '"'); - } - if ($pkgfile = $this->_packagefile->getPackageFile()) { - $pkgdir = dirname(realpath($pkgfile)); - $pkgfile = basename($pkgfile); - } else { - return PEAR::raiseError('PEAR_Packagefile_v1::toTgz: package file object must ' . - 'be created from a real file'); - } - // {{{ Create the package file list - $filelist = array(); - $i = 0; - - foreach ($this->_packagefile->getFilelist() as $fname => $atts) { - $file = $pkgdir . DIRECTORY_SEPARATOR . $fname; - if (!file_exists($file)) { - return PEAR::raiseError("File does not exist: $fname"); - } else { - $filelist[$i++] = $file; - if (!isset($atts['md5sum'])) { - $this->_packagefile->setFileAttribute($fname, 'md5sum', md5_file($file)); - } - $packager->log(2, "Adding file $fname"); - } - } - // }}} - $packagexml = $this->toPackageFile($where, PEAR_VALIDATE_PACKAGING, 'package.xml', true); - if ($packagexml) { - $tar =& new Archive_Tar($dest_package, $compress); - $tar->setErrorHandling(PEAR_ERROR_RETURN); // XXX Don't print errors - // ----- Creates with the package.xml file - $ok = $tar->createModify(array($packagexml), '', $where); - if (PEAR::isError($ok)) { - return $ok; - } elseif (!$ok) { - return PEAR::raiseError('PEAR_Packagefile_v1::toTgz: tarball creation failed'); - } - // ----- Add the content of the package - if (!$tar->addModify($filelist, $pkgver, $pkgdir)) { - return PEAR::raiseError('PEAR_Packagefile_v1::toTgz: tarball creation failed'); - } - return $dest_package; - } - } - - /** - * @param string|null directory to place the package.xml in, or null for a temporary dir - * @param int one of the PEAR_VALIDATE_* constants - * @param string name of the generated file - * @param bool if true, then no analysis will be performed on role="php" files - * @return string|PEAR_Error path to the created file on success - */ - function toPackageFile($where = null, $state = PEAR_VALIDATE_NORMAL, $name = 'package.xml', - $nofilechecking = false) - { - if (!$this->_packagefile->validate($state, $nofilechecking)) { - return PEAR::raiseError('PEAR_Packagefile_v1::toPackageFile: invalid package.xml', - null, null, null, $this->_packagefile->getValidationWarnings()); - } - if ($where === null) { - if (!($where = System::mktemp(array('-d')))) { - return PEAR::raiseError('PEAR_Packagefile_v1::toPackageFile: mktemp failed'); - } - } elseif (!@System::mkDir(array('-p', $where))) { - return PEAR::raiseError('PEAR_Packagefile_v1::toPackageFile: "' . $where . '" could' . - ' not be created'); - } - $newpkgfile = $where . DIRECTORY_SEPARATOR . $name; - $np = @fopen($newpkgfile, 'wb'); - if (!$np) { - return PEAR::raiseError('PEAR_Packagefile_v1::toPackageFile: unable to save ' . - "$name as $newpkgfile"); - } - fwrite($np, $this->toXml($state, true)); - fclose($np); - return $newpkgfile; - } - - /** - * fix both XML encoding to be UTF8, and replace standard XML entities < > " & ' - * - * @param string $string - * @return string - * @access private - */ - function _fixXmlEncoding($string) - { - if (version_compare(phpversion(), '5.0.0', 'lt')) { - $string = utf8_encode($string); - } - return strtr($string, array( - '&' => '&', - '>' => '>', - '<' => '<', - '"' => '"', - '\'' => ''' )); - } - - /** - * Return an XML document based on the package info (as returned - * by the PEAR_Common::infoFrom* methods). - * - * @return string XML data - */ - function toXml($state = PEAR_VALIDATE_NORMAL, $nofilevalidation = false) - { - $this->_packagefile->setDate(date('Y-m-d')); - if (!$this->_packagefile->validate($state, $nofilevalidation)) { - return false; - } - $pkginfo = $this->_packagefile->getArray(); - static $maint_map = array( - "handle" => "user", - "name" => "name", - "email" => "email", - "role" => "role", - ); - $ret = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n"; - $ret .= "<!DOCTYPE package SYSTEM \"http://pear.php.net/dtd/package-1.0\">\n"; - $ret .= "<package version=\"1.0\" packagerversion=\"1.7.2\">\n" . -" <name>$pkginfo[package]</name>"; - if (isset($pkginfo['extends'])) { - $ret .= "\n<extends>$pkginfo[extends]</extends>"; - } - $ret .= - "\n <summary>".$this->_fixXmlEncoding($pkginfo['summary'])."</summary>\n" . -" <description>".trim($this->_fixXmlEncoding($pkginfo['description']))."\n </description>\n" . -" <maintainers>\n"; - foreach ($pkginfo['maintainers'] as $maint) { - $ret .= " <maintainer>\n"; - foreach ($maint_map as $idx => $elm) { - $ret .= " <$elm>"; - $ret .= $this->_fixXmlEncoding($maint[$idx]); - $ret .= "</$elm>\n"; - } - $ret .= " </maintainer>\n"; - } - $ret .= " </maintainers>\n"; - $ret .= $this->_makeReleaseXml($pkginfo, false, $state); - if (isset($pkginfo['changelog']) && count($pkginfo['changelog']) > 0) { - $ret .= " <changelog>\n"; - foreach ($pkginfo['changelog'] as $oldrelease) { - $ret .= $this->_makeReleaseXml($oldrelease, true); - } - $ret .= " </changelog>\n"; - } - $ret .= "</package>\n"; - return $ret; - } - - // }}} - // {{{ _makeReleaseXml() - - /** - * Generate part of an XML description with release information. - * - * @param array $pkginfo array with release information - * @param bool $changelog whether the result will be in a changelog element - * - * @return string XML data - * - * @access private - */ - function _makeReleaseXml($pkginfo, $changelog = false, $state = PEAR_VALIDATE_NORMAL) - { - // XXX QUOTE ENTITIES IN PCDATA, OR EMBED IN CDATA BLOCKS!! - $indent = $changelog ? " " : ""; - $ret = "$indent <release>\n"; - if (!empty($pkginfo['version'])) { - $ret .= "$indent <version>$pkginfo[version]</version>\n"; - } - if (!empty($pkginfo['release_date'])) { - $ret .= "$indent <date>$pkginfo[release_date]</date>\n"; - } - if (!empty($pkginfo['release_license'])) { - $ret .= "$indent <license>$pkginfo[release_license]</license>\n"; - } - if (!empty($pkginfo['release_state'])) { - $ret .= "$indent <state>$pkginfo[release_state]</state>\n"; - } - if (!empty($pkginfo['release_notes'])) { - $ret .= "$indent <notes>".trim($this->_fixXmlEncoding($pkginfo['release_notes'])) - ."\n$indent </notes>\n"; - } - if (!empty($pkginfo['release_warnings'])) { - $ret .= "$indent <warnings>".$this->_fixXmlEncoding($pkginfo['release_warnings'])."</warnings>\n"; - } - if (isset($pkginfo['release_deps']) && sizeof($pkginfo['release_deps']) > 0) { - $ret .= "$indent <deps>\n"; - foreach ($pkginfo['release_deps'] as $dep) { - $ret .= "$indent <dep type=\"$dep[type]\" rel=\"$dep[rel]\""; - if (isset($dep['version'])) { - $ret .= " version=\"$dep[version]\""; - } - if (isset($dep['optional'])) { - $ret .= " optional=\"$dep[optional]\""; - } - if (isset($dep['name'])) { - $ret .= ">$dep[name]</dep>\n"; - } else { - $ret .= "/>\n"; - } - } - $ret .= "$indent </deps>\n"; - } - if (isset($pkginfo['configure_options'])) { - $ret .= "$indent <configureoptions>\n"; - foreach ($pkginfo['configure_options'] as $c) { - $ret .= "$indent <configureoption name=\"". - $this->_fixXmlEncoding($c['name']) . "\""; - if (isset($c['default'])) { - $ret .= " default=\"" . $this->_fixXmlEncoding($c['default']) . "\""; - } - $ret .= " prompt=\"" . $this->_fixXmlEncoding($c['prompt']) . "\""; - $ret .= "/>\n"; - } - $ret .= "$indent </configureoptions>\n"; - } - if (isset($pkginfo['provides'])) { - foreach ($pkginfo['provides'] as $key => $what) { - $ret .= "$indent <provides type=\"$what[type]\" "; - $ret .= "name=\"$what[name]\" "; - if (isset($what['extends'])) { - $ret .= "extends=\"$what[extends]\" "; - } - $ret .= "/>\n"; - } - } - if (isset($pkginfo['filelist'])) { - $ret .= "$indent <filelist>\n"; - if ($state ^ PEAR_VALIDATE_PACKAGING) { - $ret .= $this->recursiveXmlFilelist($pkginfo['filelist']); - } else { - foreach ($pkginfo['filelist'] as $file => $fa) { - if (!isset($fa['role'])) { - $fa['role'] = ''; - } - $ret .= "$indent <file role=\"$fa[role]\""; - if (isset($fa['baseinstalldir'])) { - $ret .= ' baseinstalldir="' . - $this->_fixXmlEncoding($fa['baseinstalldir']) . '"'; - } - if (isset($fa['md5sum'])) { - $ret .= " md5sum=\"$fa[md5sum]\""; - } - if (isset($fa['platform'])) { - $ret .= " platform=\"$fa[platform]\""; - } - if (!empty($fa['install-as'])) { - $ret .= ' install-as="' . - $this->_fixXmlEncoding($fa['install-as']) . '"'; - } - $ret .= ' name="' . $this->_fixXmlEncoding($file) . '"'; - if (empty($fa['replacements'])) { - $ret .= "/>\n"; - } else { - $ret .= ">\n"; - foreach ($fa['replacements'] as $r) { - $ret .= "$indent <replace"; - foreach ($r as $k => $v) { - $ret .= " $k=\"" . $this->_fixXmlEncoding($v) .'"'; - } - $ret .= "/>\n"; - } - $ret .= "$indent </file>\n"; - } - } - } - $ret .= "$indent </filelist>\n"; - } - $ret .= "$indent </release>\n"; - return $ret; - } - - /** - * @param array - * @access protected - */ - function recursiveXmlFilelist($list) - { - $this->_dirs = array(); - foreach ($list as $file => $attributes) { - $this->_addDir($this->_dirs, explode('/', dirname($file)), $file, $attributes); - } - return $this->_formatDir($this->_dirs); - } - - /** - * @param array - * @param array - * @param string|null - * @param array|null - * @access private - */ - function _addDir(&$dirs, $dir, $file = null, $attributes = null) - { - if ($dir == array() || $dir == array('.')) { - $dirs['files'][basename($file)] = $attributes; - return; - } - $curdir = array_shift($dir); - if (!isset($dirs['dirs'][$curdir])) { - $dirs['dirs'][$curdir] = array(); - } - $this->_addDir($dirs['dirs'][$curdir], $dir, $file, $attributes); - } - - /** - * @param array - * @param string - * @param string - * @access private - */ - function _formatDir($dirs, $indent = '', $curdir = '') - { - $ret = ''; - if (!count($dirs)) { - return ''; - } - if (isset($dirs['dirs'])) { - uksort($dirs['dirs'], 'strnatcasecmp'); - foreach ($dirs['dirs'] as $dir => $contents) { - $usedir = "$curdir/$dir"; - $ret .= "$indent <dir name=\"$dir\">\n"; - $ret .= $this->_formatDir($contents, "$indent ", $usedir); - $ret .= "$indent </dir> <!-- $usedir -->\n"; - } - } - if (isset($dirs['files'])) { - uksort($dirs['files'], 'strnatcasecmp'); - foreach ($dirs['files'] as $file => $attribs) { - $ret .= $this->_formatFile($file, $attribs, $indent); - } - } - return $ret; - } - - /** - * @param string - * @param array - * @param string - * @access private - */ - function _formatFile($file, $attributes, $indent) - { - $ret = "$indent <file role=\"$attributes[role]\""; - if (isset($attributes['baseinstalldir'])) { - $ret .= ' baseinstalldir="' . - $this->_fixXmlEncoding($attributes['baseinstalldir']) . '"'; - } - if (isset($attributes['md5sum'])) { - $ret .= " md5sum=\"$attributes[md5sum]\""; - } - if (isset($attributes['platform'])) { - $ret .= " platform=\"$attributes[platform]\""; - } - if (!empty($attributes['install-as'])) { - $ret .= ' install-as="' . - $this->_fixXmlEncoding($attributes['install-as']) . '"'; - } - $ret .= ' name="' . $this->_fixXmlEncoding($file) . '"'; - if (empty($attributes['replacements'])) { - $ret .= "/>\n"; - } else { - $ret .= ">\n"; - foreach ($attributes['replacements'] as $r) { - $ret .= "$indent <replace"; - foreach ($r as $k => $v) { - $ret .= " $k=\"" . $this->_fixXmlEncoding($v) .'"'; - } - $ret .= "/>\n"; - } - $ret .= "$indent </file>\n"; - } - return $ret; - } - - // {{{ _unIndent() - - /** - * Unindent given string (?) - * - * @param string $str The string that has to be unindented. - * @return string - * @access private - */ - function _unIndent($str) - { - // remove leading newlines - $str = preg_replace('/^[\r\n]+/', '', $str); - // find whitespace at the beginning of the first line - $indent_len = strspn($str, " \t"); - $indent = substr($str, 0, $indent_len); - $data = ''; - // remove the same amount of whitespace from following lines - foreach (explode("\n", $str) as $line) { - if (substr($line, 0, $indent_len) == $indent) { - $data .= substr($line, $indent_len) . "\n"; - } - } - return $data; - } - - /** - * @return array - */ - function dependenciesToV2() - { - $arr = array(); - $this->_convertDependencies2_0($arr); - return $arr['dependencies']; - } - - /** - * Convert a package.xml version 1.0 into version 2.0 - * - * Note that this does a basic conversion, to allow more advanced - * features like bundles and multiple releases - * @param string the classname to instantiate and return. This must be - * PEAR_PackageFile_v2 or a descendant - * @param boolean if true, only valid, deterministic package.xml 1.0 as defined by the - * strictest parameters will be converted - * @return PEAR_PackageFile_v2|PEAR_Error - */ - function &toV2($class = 'PEAR_PackageFile_v2', $strict = false) - { - if ($strict) { - if (!$this->_packagefile->validate()) { - $a = PEAR::raiseError('invalid package.xml version 1.0 cannot be converted' . - ' to version 2.0', null, null, null, - $this->_packagefile->getValidationWarnings(true)); - return $a; - } - } - $arr = array( - 'attribs' => array( - 'version' => '2.0', - 'xmlns' => 'http://pear.php.net/dtd/package-2.0', - 'xmlns:tasks' => 'http://pear.php.net/dtd/tasks-1.0', - 'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance', - 'xsi:schemaLocation' => "http://pear.php.net/dtd/tasks-1.0\n" . -"http://pear.php.net/dtd/tasks-1.0.xsd\n" . -"http://pear.php.net/dtd/package-2.0\n" . -'http://pear.php.net/dtd/package-2.0.xsd', - ), - 'name' => $this->_packagefile->getPackage(), - 'channel' => 'pear.php.net', - ); - $arr['summary'] = $this->_packagefile->getSummary(); - $arr['description'] = $this->_packagefile->getDescription(); - $maintainers = $this->_packagefile->getMaintainers(); - foreach ($maintainers as $maintainer) { - if ($maintainer['role'] != 'lead') { - continue; - } - $new = array( - 'name' => $maintainer['name'], - 'user' => $maintainer['handle'], - 'email' => $maintainer['email'], - 'active' => 'yes', - ); - $arr['lead'][] = $new; - } - if (!isset($arr['lead'])) { // some people... you know? - $arr['lead'] = array( - 'name' => 'unknown', - 'user' => 'unknown', - 'email' => 'noleadmaintainer@example.com', - 'active' => 'no', - ); - } - if (count($arr['lead']) == 1) { - $arr['lead'] = $arr['lead'][0]; - } - foreach ($maintainers as $maintainer) { - if ($maintainer['role'] == 'lead') { - continue; - } - $new = array( - 'name' => $maintainer['name'], - 'user' => $maintainer['handle'], - 'email' => $maintainer['email'], - 'active' => 'yes', - ); - $arr[$maintainer['role']][] = $new; - } - if (isset($arr['developer']) && count($arr['developer']) == 1) { - $arr['developer'] = $arr['developer'][0]; - } - if (isset($arr['contributor']) && count($arr['contributor']) == 1) { - $arr['contributor'] = $arr['contributor'][0]; - } - if (isset($arr['helper']) && count($arr['helper']) == 1) { - $arr['helper'] = $arr['helper'][0]; - } - $arr['date'] = $this->_packagefile->getDate(); - $arr['version'] = - array( - 'release' => $this->_packagefile->getVersion(), - 'api' => $this->_packagefile->getVersion(), - ); - $arr['stability'] = - array( - 'release' => $this->_packagefile->getState(), - 'api' => $this->_packagefile->getState(), - ); - $licensemap = - array( - 'php' => 'http://www.php.net/license', - 'php license' => 'http://www.php.net/license', - 'lgpl' => 'http://www.gnu.org/copyleft/lesser.html', - 'bsd' => 'http://www.opensource.org/licenses/bsd-license.php', - 'bsd style' => 'http://www.opensource.org/licenses/bsd-license.php', - 'bsd-style' => 'http://www.opensource.org/licenses/bsd-license.php', - 'mit' => 'http://www.opensource.org/licenses/mit-license.php', - 'gpl' => 'http://www.gnu.org/copyleft/gpl.html', - 'apache' => 'http://www.opensource.org/licenses/apache2.0.php' - ); - if (isset($licensemap[strtolower($this->_packagefile->getLicense())])) { - $arr['license'] = array( - 'attribs' => array('uri' => - $licensemap[strtolower($this->_packagefile->getLicense())]), - '_content' => $this->_packagefile->getLicense() - ); - } else { - // don't use bogus uri - $arr['license'] = $this->_packagefile->getLicense(); - } - $arr['notes'] = $this->_packagefile->getNotes(); - $temp = array(); - $arr['contents'] = $this->_convertFilelist2_0($temp); - $this->_convertDependencies2_0($arr); - $release = ($this->_packagefile->getConfigureOptions() || $this->_isExtension) ? - 'extsrcrelease' : 'phprelease'; - if ($release == 'extsrcrelease') { - $arr['channel'] = 'pecl.php.net'; - $arr['providesextension'] = $arr['name']; // assumption - } - $arr[$release] = array(); - if ($this->_packagefile->getConfigureOptions()) { - $arr[$release]['configureoption'] = $this->_packagefile->getConfigureOptions(); - foreach ($arr[$release]['configureoption'] as $i => $opt) { - $arr[$release]['configureoption'][$i] = array('attribs' => $opt); - } - if (count($arr[$release]['configureoption']) == 1) { - $arr[$release]['configureoption'] = $arr[$release]['configureoption'][0]; - } - } - $this->_convertRelease2_0($arr[$release], $temp); - if ($release == 'extsrcrelease' && count($arr[$release]) > 1) { - // multiple extsrcrelease tags added in PEAR 1.4.1 - $arr['dependencies']['required']['pearinstaller']['min'] = '1.4.1'; - } - if ($cl = $this->_packagefile->getChangelog()) { - foreach ($cl as $release) { - $rel = array(); - $rel['version'] = - array( - 'release' => $release['version'], - 'api' => $release['version'], - ); - if (!isset($release['release_state'])) { - $release['release_state'] = 'stable'; - } - $rel['stability'] = - array( - 'release' => $release['release_state'], - 'api' => $release['release_state'], - ); - if (isset($release['release_date'])) { - $rel['date'] = $release['release_date']; - } else { - $rel['date'] = date('Y-m-d'); - } - if (isset($release['release_license'])) { - if (isset($licensemap[strtolower($release['release_license'])])) { - $uri = $licensemap[strtolower($release['release_license'])]; - } else { - $uri = 'http://www.example.com'; - } - $rel['license'] = array( - 'attribs' => array('uri' => $uri), - '_content' => $release['release_license'] - ); - } else { - $rel['license'] = $arr['license']; - } - if (!isset($release['release_notes'])) { - $release['release_notes'] = 'no release notes'; - } - $rel['notes'] = $release['release_notes']; - $arr['changelog']['release'][] = $rel; - } - } - $ret = new $class; - $ret->setConfig($this->_packagefile->_config); - if (isset($this->_packagefile->_logger) && is_object($this->_packagefile->_logger)) { - $ret->setLogger($this->_packagefile->_logger); - } - $ret->fromArray($arr); - return $ret; - } - - /** - * @param array - * @param bool - * @access private - */ - function _convertDependencies2_0(&$release, $internal = false) - { - $peardep = array('pearinstaller' => - array('min' => '1.4.0b1')); // this is a lot safer - $required = $optional = array(); - $release['dependencies'] = array('required' => array()); - if ($this->_packagefile->hasDeps()) { - foreach ($this->_packagefile->getDeps() as $dep) { - if (!isset($dep['optional']) || $dep['optional'] == 'no') { - $required[] = $dep; - } else { - $optional[] = $dep; - } - } - foreach (array('required', 'optional') as $arr) { - $deps = array(); - foreach ($$arr as $dep) { - // organize deps by dependency type and name - if (!isset($deps[$dep['type']])) { - $deps[$dep['type']] = array(); - } - if (isset($dep['name'])) { - $deps[$dep['type']][$dep['name']][] = $dep; - } else { - $deps[$dep['type']][] = $dep; - } - } - do { - if (isset($deps['php'])) { - $php = array(); - if (count($deps['php']) > 1) { - $php = $this->_processPhpDeps($deps['php']); - } else { - if (!isset($deps['php'][0])) { - list($key, $blah) = each ($deps['php']); // stupid buggy versions - $deps['php'] = array($blah[0]); - } - $php = $this->_processDep($deps['php'][0]); - if (!$php) { - break; // poor mans throw - } - } - $release['dependencies'][$arr]['php'] = $php; - } - } while (false); - do { - if (isset($deps['pkg'])) { - $pkg = array(); - $pkg = $this->_processMultipleDepsName($deps['pkg']); - if (!$pkg) { - break; // poor mans throw - } - $release['dependencies'][$arr]['package'] = $pkg; - } - } while (false); - do { - if (isset($deps['ext'])) { - $pkg = array(); - $pkg = $this->_processMultipleDepsName($deps['ext']); - $release['dependencies'][$arr]['extension'] = $pkg; - } - } while (false); - // skip sapi - it's not supported so nobody will have used it - // skip os - it's not supported in 1.0 - } - } - if (isset($release['dependencies']['required'])) { - $release['dependencies']['required'] = - array_merge($peardep, $release['dependencies']['required']); - } else { - $release['dependencies']['required'] = $peardep; - } - if (!isset($release['dependencies']['required']['php'])) { - $release['dependencies']['required']['php'] = - array('min' => '4.0.0'); - } - $order = array(); - $bewm = $release['dependencies']['required']; - $order['php'] = $bewm['php']; - $order['pearinstaller'] = $bewm['pearinstaller']; - isset($bewm['package']) ? $order['package'] = $bewm['package'] :0; - isset($bewm['extension']) ? $order['extension'] = $bewm['extension'] :0; - $release['dependencies']['required'] = $order; - } - - /** - * @param array - * @access private - */ - function _convertFilelist2_0(&$package) - { - $ret = array('dir' => - array( - 'attribs' => array('name' => '/'), - 'file' => array() - ) - ); - $package['platform'] = - $package['install-as'] = array(); - $this->_isExtension = false; - foreach ($this->_packagefile->getFilelist() as $name => $file) { - $file['name'] = $name; - if (isset($file['role']) && $file['role'] == 'src') { - $this->_isExtension = true; - } - if (isset($file['replacements'])) { - $repl = $file['replacements']; - unset($file['replacements']); - } else { - unset($repl); - } - if (isset($file['install-as'])) { - $package['install-as'][$name] = $file['install-as']; - unset($file['install-as']); - } - if (isset($file['platform'])) { - $package['platform'][$name] = $file['platform']; - unset($file['platform']); - } - $file = array('attribs' => $file); - if (isset($repl)) { - foreach ($repl as $replace ) { - $file['tasks:replace'][] = array('attribs' => $replace); - } - if (count($repl) == 1) { - $file['tasks:replace'] = $file['tasks:replace'][0]; - } - } - $ret['dir']['file'][] = $file; - } - return $ret; - } - - /** - * Post-process special files with install-as/platform attributes and - * make the release tag. - * - * This complex method follows this work-flow to create the release tags: - * - * <pre> - * - if any install-as/platform exist, create a generic release and fill it with - * o <install as=..> tags for <file name=... install-as=...> - * o <install as=..> tags for <file name=... platform=!... install-as=..> - * o <ignore> tags for <file name=... platform=...> - * o <ignore> tags for <file name=... platform=... install-as=..> - * - create a release for each platform encountered and fill with - * o <install as..> tags for <file name=... install-as=...> - * o <install as..> tags for <file name=... platform=this platform install-as=..> - * o <install as..> tags for <file name=... platform=!other platform install-as=..> - * o <ignore> tags for <file name=... platform=!this platform> - * o <ignore> tags for <file name=... platform=other platform> - * o <ignore> tags for <file name=... platform=other platform install-as=..> - * o <ignore> tags for <file name=... platform=!this platform install-as=..> - * </pre> - * - * It does this by accessing the $package parameter, which contains an array with - * indices: - * - * - platform: mapping of file => OS the file should be installed on - * - install-as: mapping of file => installed name - * - osmap: mapping of OS => list of files that should be installed - * on that OS - * - notosmap: mapping of OS => list of files that should not be - * installed on that OS - * - * @param array - * @param array - * @access private - */ - function _convertRelease2_0(&$release, $package) - { - //- if any install-as/platform exist, create a generic release and fill it with - if (count($package['platform']) || count($package['install-as'])) { - $generic = array(); - $genericIgnore = array(); - foreach ($package['install-as'] as $file => $as) { - //o <install as=..> tags for <file name=... install-as=...> - if (!isset($package['platform'][$file])) { - $generic[] = $file; - continue; - } - //o <install as=..> tags for <file name=... platform=!... install-as=..> - if (isset($package['platform'][$file]) && - $package['platform'][$file]{0} == '!') { - $generic[] = $file; - continue; - } - //o <ignore> tags for <file name=... platform=... install-as=..> - if (isset($package['platform'][$file]) && - $package['platform'][$file]{0} != '!') { - $genericIgnore[] = $file; - continue; - } - } - foreach ($package['platform'] as $file => $platform) { - if (isset($package['install-as'][$file])) { - continue; - } - if ($platform{0} != '!') { - //o <ignore> tags for <file name=... platform=...> - $genericIgnore[] = $file; - } - } - if (count($package['platform'])) { - $oses = $notplatform = $platform = array(); - foreach ($package['platform'] as $file => $os) { - // get a list of oses - if ($os{0} == '!') { - if (isset($oses[substr($os, 1)])) { - continue; - } - $oses[substr($os, 1)] = count($oses); - } else { - if (isset($oses[$os])) { - continue; - } - $oses[$os] = count($oses); - } - } - //- create a release for each platform encountered and fill with - foreach ($oses as $os => $releaseNum) { - $release[$releaseNum]['installconditions']['os']['name'] = $os; - $release[$releaseNum]['filelist'] = array('install' => array(), - 'ignore' => array()); - foreach ($package['install-as'] as $file => $as) { - //o <install as=..> tags for <file name=... install-as=...> - if (!isset($package['platform'][$file])) { - $release[$releaseNum]['filelist']['install'][] = - array( - 'attribs' => array( - 'name' => $file, - 'as' => $as, - ), - ); - continue; - } - //o <install as..> tags for - // <file name=... platform=this platform install-as=..> - if (isset($package['platform'][$file]) && - $package['platform'][$file] == $os) { - $release[$releaseNum]['filelist']['install'][] = - array( - 'attribs' => array( - 'name' => $file, - 'as' => $as, - ), - ); - continue; - } - //o <install as..> tags for - // <file name=... platform=!other platform install-as=..> - if (isset($package['platform'][$file]) && - $package['platform'][$file] != "!$os" && - $package['platform'][$file]{0} == '!') { - $release[$releaseNum]['filelist']['install'][] = - array( - 'attribs' => array( - 'name' => $file, - 'as' => $as, - ), - ); - continue; - } - //o <ignore> tags for - // <file name=... platform=!this platform install-as=..> - if (isset($package['platform'][$file]) && - $package['platform'][$file] == "!$os") { - $release[$releaseNum]['filelist']['ignore'][] = - array( - 'attribs' => array( - 'name' => $file, - ), - ); - continue; - } - //o <ignore> tags for - // <file name=... platform=other platform install-as=..> - if (isset($package['platform'][$file]) && - $package['platform'][$file]{0} != '!' && - $package['platform'][$file] != $os) { - $release[$releaseNum]['filelist']['ignore'][] = - array( - 'attribs' => array( - 'name' => $file, - ), - ); - continue; - } - } - foreach ($package['platform'] as $file => $platform) { - if (isset($package['install-as'][$file])) { - continue; - } - //o <ignore> tags for <file name=... platform=!this platform> - if ($platform == "!$os") { - $release[$releaseNum]['filelist']['ignore'][] = - array( - 'attribs' => array( - 'name' => $file, - ), - ); - continue; - } - //o <ignore> tags for <file name=... platform=other platform> - if ($platform{0} != '!' && $platform != $os) { - $release[$releaseNum]['filelist']['ignore'][] = - array( - 'attribs' => array( - 'name' => $file, - ), - ); - } - } - if (!count($release[$releaseNum]['filelist']['install'])) { - unset($release[$releaseNum]['filelist']['install']); - } - if (!count($release[$releaseNum]['filelist']['ignore'])) { - unset($release[$releaseNum]['filelist']['ignore']); - } - } - if (count($generic) || count($genericIgnore)) { - $release[count($oses)] = array(); - if (count($generic)) { - foreach ($generic as $file) { - if (isset($package['install-as'][$file])) { - $installas = $package['install-as'][$file]; - } else { - $installas = $file; - } - $release[count($oses)]['filelist']['install'][] = - array( - 'attribs' => array( - 'name' => $file, - 'as' => $installas, - ) - ); - } - } - if (count($genericIgnore)) { - foreach ($genericIgnore as $file) { - $release[count($oses)]['filelist']['ignore'][] = - array( - 'attribs' => array( - 'name' => $file, - ) - ); - } - } - } - // cleanup - foreach ($release as $i => $rel) { - if (isset($rel['filelist']['install']) && - count($rel['filelist']['install']) == 1) { - $release[$i]['filelist']['install'] = - $release[$i]['filelist']['install'][0]; - } - if (isset($rel['filelist']['ignore']) && - count($rel['filelist']['ignore']) == 1) { - $release[$i]['filelist']['ignore'] = - $release[$i]['filelist']['ignore'][0]; - } - } - if (count($release) == 1) { - $release = $release[0]; - } - } else { - // no platform atts, but some install-as atts - foreach ($package['install-as'] as $file => $value) { - $release['filelist']['install'][] = - array( - 'attribs' => array( - 'name' => $file, - 'as' => $value - ) - ); - } - if (count($release['filelist']['install']) == 1) { - $release['filelist']['install'] = $release['filelist']['install'][0]; - } - } - } - } - - /** - * @param array - * @return array - * @access private - */ - function _processDep($dep) - { - if ($dep['type'] == 'php') { - if ($dep['rel'] == 'has') { - // come on - everyone has php! - return false; - } - } - $php = array(); - if ($dep['type'] != 'php') { - $php['name'] = $dep['name']; - if ($dep['type'] == 'pkg') { - $php['channel'] = 'pear.php.net'; - } - } - switch ($dep['rel']) { - case 'gt' : - $php['min'] = $dep['version']; - $php['exclude'] = $dep['version']; - break; - case 'ge' : - if (!isset($dep['version'])) { - if ($dep['type'] == 'php') { - if (isset($dep['name'])) { - $dep['version'] = $dep['name']; - } - } - } - $php['min'] = $dep['version']; - break; - case 'lt' : - $php['max'] = $dep['version']; - $php['exclude'] = $dep['version']; - break; - case 'le' : - $php['max'] = $dep['version']; - break; - case 'eq' : - $php['min'] = $dep['version']; - $php['max'] = $dep['version']; - break; - case 'ne' : - $php['exclude'] = $dep['version']; - break; - case 'not' : - $php['conflicts'] = 'yes'; - break; - } - return $php; - } - - /** - * @param array - * @return array - */ - function _processPhpDeps($deps) - { - $test = array(); - foreach ($deps as $dep) { - $test[] = $this->_processDep($dep); - } - $min = array(); - $max = array(); - foreach ($test as $dep) { - if (!$dep) { - continue; - } - if (isset($dep['min'])) { - $min[$dep['min']] = count($min); - } - if (isset($dep['max'])) { - $max[$dep['max']] = count($max); - } - } - if (count($min) > 0) { - uksort($min, 'version_compare'); - } - if (count($max) > 0) { - uksort($max, 'version_compare'); - } - if (count($min)) { - // get the highest minimum - $min = array_pop($a = array_flip($min)); - } else { - $min = false; - } - if (count($max)) { - // get the lowest maximum - $max = array_shift($a = array_flip($max)); - } else { - $max = false; - } - if ($min) { - $php['min'] = $min; - } - if ($max) { - $php['max'] = $max; - } - $exclude = array(); - foreach ($test as $dep) { - if (!isset($dep['exclude'])) { - continue; - } - $exclude[] = $dep['exclude']; - } - if (count($exclude)) { - $php['exclude'] = $exclude; - } - return $php; - } - - /** - * process multiple dependencies that have a name, like package deps - * @param array - * @return array - * @access private - */ - function _processMultipleDepsName($deps) - { - $tests = array(); - foreach ($deps as $name => $dep) { - foreach ($dep as $d) { - $tests[$name][] = $this->_processDep($d); - } - } - foreach ($tests as $name => $test) { - $php = array(); - $min = array(); - $max = array(); - $php['name'] = $name; - foreach ($test as $dep) { - if (!$dep) { - continue; - } - if (isset($dep['channel'])) { - $php['channel'] = 'pear.php.net'; - } - if (isset($dep['conflicts']) && $dep['conflicts'] == 'yes') { - $php['conflicts'] = 'yes'; - } - if (isset($dep['min'])) { - $min[$dep['min']] = count($min); - } - if (isset($dep['max'])) { - $max[$dep['max']] = count($max); - } - } - if (count($min) > 0) { - uksort($min, 'version_compare'); - } - if (count($max) > 0) { - uksort($max, 'version_compare'); - } - if (count($min)) { - // get the highest minimum - $min = array_pop($a = array_flip($min)); - } else { - $min = false; - } - if (count($max)) { - // get the lowest maximum - $max = array_shift($a = array_flip($max)); - } else { - $max = false; - } - if ($min) { - $php['min'] = $min; - } - if ($max) { - $php['max'] = $max; - } - $exclude = array(); - foreach ($test as $dep) { - if (!isset($dep['exclude'])) { - continue; - } - $exclude[] = $dep['exclude']; - } - if (count($exclude)) { - $php['exclude'] = $exclude; - } - $ret[] = $php; - } - return $ret; - } -} -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/PackageFile/Generator/v2.php b/src/vitis/vas/rest/class/PEAR/PackageFile/Generator/v2.php deleted file mode 100755 index fb8d2f97..00000000 --- a/src/vitis/vas/rest/class/PEAR/PackageFile/Generator/v2.php +++ /dev/null @@ -1,1531 +0,0 @@ -<?php -/** - * package.xml generation class, package.xml version 2.0 - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @author Stephan Schmidt (original XML_Serializer code) - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: v2.php,v 1.39 2008/05/13 05:29:24 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 1.4.0a1 - */ -/** - * file/dir manipulation routines - */ -require_once 'System.php'; -/** - * This class converts a PEAR_PackageFile_v2 object into any output format. - * - * Supported output formats include array, XML string (using S. Schmidt's - * XML_Serializer, slightly customized) - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @author Stephan Schmidt (original XML_Serializer code) - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 1.4.0a1 - */ -class PEAR_PackageFile_Generator_v2 -{ - /** - * default options for the serialization - * @access private - * @var array $_defaultOptions - */ - var $_defaultOptions = array( - 'indent' => ' ', // string used for indentation - 'linebreak' => "\n", // string used for newlines - 'typeHints' => false, // automatically add type hin attributes - 'addDecl' => true, // add an XML declaration - 'defaultTagName' => 'XML_Serializer_Tag', // tag used for indexed arrays or invalid names - 'classAsTagName' => false, // use classname for objects in indexed arrays - 'keyAttribute' => '_originalKey', // attribute where original key is stored - 'typeAttribute' => '_type', // attribute for type (only if typeHints => true) - 'classAttribute' => '_class', // attribute for class of objects (only if typeHints => true) - 'scalarAsAttributes' => false, // scalar values (strings, ints,..) will be serialized as attribute - 'prependAttributes' => '', // prepend string for attributes - 'indentAttributes' => false, // indent the attributes, if set to '_auto', it will indent attributes so they all start at the same column - 'mode' => 'simplexml', // use 'simplexml' to use parent name as tagname if transforming an indexed array - 'addDoctype' => false, // add a doctype declaration - 'doctype' => null, // supply a string or an array with id and uri ({@see PEAR_PackageFile_Generator_v2_PEAR_PackageFile_Generator_v2_XML_Util::getDoctypeDeclaration()} - 'rootName' => 'package', // name of the root tag - 'rootAttributes' => array( - 'version' => '2.0', - 'xmlns' => 'http://pear.php.net/dtd/package-2.0', - 'xmlns:tasks' => 'http://pear.php.net/dtd/tasks-1.0', - 'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance', - 'xsi:schemaLocation' => 'http://pear.php.net/dtd/tasks-1.0 -http://pear.php.net/dtd/tasks-1.0.xsd -http://pear.php.net/dtd/package-2.0 -http://pear.php.net/dtd/package-2.0.xsd', - ), // attributes of the root tag - 'attributesArray' => 'attribs', // all values in this key will be treated as attributes - 'contentName' => '_content', // this value will be used directly as content, instead of creating a new tag, may only be used in conjuction with attributesArray - 'beautifyFilelist' => false, - 'encoding' => 'UTF-8', - ); - - /** - * options for the serialization - * @access private - * @var array $options - */ - var $options = array(); - - /** - * current tag depth - * @var integer $_tagDepth - */ - var $_tagDepth = 0; - - /** - * serilialized representation of the data - * @var string $_serializedData - */ - var $_serializedData = null; - /** - * @var PEAR_PackageFile_v2 - */ - var $_packagefile; - /** - * @param PEAR_PackageFile_v2 - */ - function PEAR_PackageFile_Generator_v2(&$packagefile) - { - $this->_packagefile = &$packagefile; - } - - /** - * @return string - */ - function getPackagerVersion() - { - return '1.7.2'; - } - - /** - * @param PEAR_Packager - * @param bool generate a .tgz or a .tar - * @param string|null temporary directory to package in - */ - function toTgz(&$packager, $compress = true, $where = null) - { - $a = null; - return $this->toTgz2($packager, $a, $compress, $where); - } - - /** - * Package up both a package.xml and package2.xml for the same release - * @param PEAR_Packager - * @param PEAR_PackageFile_v1 - * @param bool generate a .tgz or a .tar - * @param string|null temporary directory to package in - */ - function toTgz2(&$packager, &$pf1, $compress = true, $where = null) - { - require_once 'Archive/Tar.php'; - if (!$this->_packagefile->isEquivalent($pf1)) { - return PEAR::raiseError('PEAR_Packagefile_v2::toTgz: "' . - basename($pf1->getPackageFile()) . - '" is not equivalent to "' . basename($this->_packagefile->getPackageFile()) - . '"'); - } - if ($where === null) { - if (!($where = System::mktemp(array('-d')))) { - return PEAR::raiseError('PEAR_Packagefile_v2::toTgz: mktemp failed'); - } - } elseif (!@System::mkDir(array('-p', $where))) { - return PEAR::raiseError('PEAR_Packagefile_v2::toTgz: "' . $where . '" could' . - ' not be created'); - } - if (file_exists($where . DIRECTORY_SEPARATOR . 'package.xml') && - !is_file($where . DIRECTORY_SEPARATOR . 'package.xml')) { - return PEAR::raiseError('PEAR_Packagefile_v2::toTgz: unable to save package.xml as' . - ' "' . $where . DIRECTORY_SEPARATOR . 'package.xml"'); - } - if (!$this->_packagefile->validate(PEAR_VALIDATE_PACKAGING)) { - return PEAR::raiseError('PEAR_Packagefile_v2::toTgz: invalid package.xml'); - } - $ext = $compress ? '.tgz' : '.tar'; - $pkgver = $this->_packagefile->getPackage() . '-' . $this->_packagefile->getVersion(); - $dest_package = getcwd() . DIRECTORY_SEPARATOR . $pkgver . $ext; - if (file_exists(getcwd() . DIRECTORY_SEPARATOR . $pkgver . $ext) && - !is_file(getcwd() . DIRECTORY_SEPARATOR . $pkgver . $ext)) { - return PEAR::raiseError('PEAR_Packagefile_v2::toTgz: cannot create tgz file "' . - getcwd() . DIRECTORY_SEPARATOR . $pkgver . $ext . '"'); - } - if ($pkgfile = $this->_packagefile->getPackageFile()) { - $pkgdir = dirname(realpath($pkgfile)); - $pkgfile = basename($pkgfile); - } else { - return PEAR::raiseError('PEAR_Packagefile_v2::toTgz: package file object must ' . - 'be created from a real file'); - } - // {{{ Create the package file list - $filelist = array(); - $i = 0; - $this->_packagefile->flattenFilelist(); - $contents = $this->_packagefile->getContents(); - if (isset($contents['bundledpackage'])) { // bundles of packages - $contents = $contents['bundledpackage']; - if (!isset($contents[0])) { - $contents = array($contents); - } - $packageDir = $where; - foreach ($contents as $i => $package) { - $fname = $package; - $file = $pkgdir . DIRECTORY_SEPARATOR . $fname; - if (!file_exists($file)) { - return $packager->raiseError("File does not exist: $fname"); - } - $tfile = $packageDir . DIRECTORY_SEPARATOR . $fname; - System::mkdir(array('-p', dirname($tfile))); - copy($file, $tfile); - $filelist[$i++] = $tfile; - $packager->log(2, "Adding package $fname"); - } - } else { // normal packages - $contents = $contents['dir']['file']; - if (!isset($contents[0])) { - $contents = array($contents); - } - - $packageDir = $where; - foreach ($contents as $i => $file) { - $fname = $file['attribs']['name']; - $atts = $file['attribs']; - $orig = $file; - $file = $pkgdir . DIRECTORY_SEPARATOR . $fname; - if (!file_exists($file)) { - return $packager->raiseError("File does not exist: $fname"); - } else { - $origperms = fileperms($file); - $tfile = $packageDir . DIRECTORY_SEPARATOR . $fname; - unset($orig['attribs']); - if (count($orig)) { // file with tasks - // run any package-time tasks - $contents = file_get_contents($file); - foreach ($orig as $tag => $raw) { - $tag = str_replace( - array($this->_packagefile->getTasksNs() . ':', '-'), - array('', '_'), $tag); - $task = "PEAR_Task_$tag"; - $task = &new $task($this->_packagefile->_config, - $this->_packagefile->_logger, - PEAR_TASK_PACKAGE); - $task->init($raw, $atts, null); - $res = $task->startSession($this->_packagefile, $contents, $tfile); - if (!$res) { - continue; // skip this task - } - if (PEAR::isError($res)) { - return $res; - } - $contents = $res; // save changes - System::mkdir(array('-p', dirname($tfile))); - $wp = fopen($tfile, "wb"); - fwrite($wp, $contents); - fclose($wp); - } - } - if (!file_exists($tfile)) { - System::mkdir(array('-p', dirname($tfile))); - copy($file, $tfile); - } - chmod($tfile, $origperms); - $filelist[$i++] = $tfile; - $this->_packagefile->setFileAttribute($fname, 'md5sum', md5_file($tfile), $i - 1); - $packager->log(2, "Adding file $fname"); - } - } - } - // }}} - if ($pf1 !== null) { - $name = 'package2.xml'; - } else { - $name = 'package.xml'; - } - $packagexml = $this->toPackageFile($where, PEAR_VALIDATE_PACKAGING, $name); - if ($packagexml) { - $tar =& new Archive_Tar($dest_package, $compress); - $tar->setErrorHandling(PEAR_ERROR_RETURN); // XXX Don't print errors - // ----- Creates with the package.xml file - $ok = $tar->createModify(array($packagexml), '', $where); - if (PEAR::isError($ok)) { - return $packager->raiseError($ok); - } elseif (!$ok) { - return $packager->raiseError('PEAR_Packagefile_v2::toTgz(): adding ' . $name . - ' failed'); - } - // ----- Add the content of the package - if (!$tar->addModify($filelist, $pkgver, $where)) { - return $packager->raiseError( - 'PEAR_Packagefile_v2::toTgz(): tarball creation failed'); - } - // add the package.xml version 1.0 - if ($pf1 !== null) { - $pfgen = &$pf1->getDefaultGenerator(); - $packagexml1 = $pfgen->toPackageFile($where, PEAR_VALIDATE_PACKAGING, - 'package.xml', true); - if (!$tar->addModify(array($packagexml1), '', $where)) { - return $packager->raiseError( - 'PEAR_Packagefile_v2::toTgz(): adding package.xml failed'); - } - } - return $dest_package; - } - } - - function toPackageFile($where = null, $state = PEAR_VALIDATE_NORMAL, $name = 'package.xml') - { - if (!$this->_packagefile->validate($state)) { - return PEAR::raiseError('PEAR_Packagefile_v2::toPackageFile: invalid package.xml', - null, null, null, $this->_packagefile->getValidationWarnings()); - } - if ($where === null) { - if (!($where = System::mktemp(array('-d')))) { - return PEAR::raiseError('PEAR_Packagefile_v2::toPackageFile: mktemp failed'); - } - } elseif (!@System::mkDir(array('-p', $where))) { - return PEAR::raiseError('PEAR_Packagefile_v2::toPackageFile: "' . $where . '" could' . - ' not be created'); - } - $newpkgfile = $where . DIRECTORY_SEPARATOR . $name; - $np = @fopen($newpkgfile, 'wb'); - if (!$np) { - return PEAR::raiseError('PEAR_Packagefile_v2::toPackageFile: unable to save ' . - "$name as $newpkgfile"); - } - fwrite($np, $this->toXml($state)); - fclose($np); - return $newpkgfile; - } - - function &toV2() - { - return $this->_packagefile; - } - - /** - * Return an XML document based on the package info (as returned - * by the PEAR_Common::infoFrom* methods). - * - * @return string XML data - */ - function toXml($state = PEAR_VALIDATE_NORMAL, $options = array()) - { - $this->_packagefile->setDate(date('Y-m-d')); - $this->_packagefile->setTime(date('H:i:s')); - if (!$this->_packagefile->validate($state)) { - return false; - } - if (is_array($options)) { - $this->options = array_merge($this->_defaultOptions, $options); - } else { - $this->options = $this->_defaultOptions; - } - $arr = $this->_packagefile->getArray(); - if (isset($arr['filelist'])) { - unset($arr['filelist']); - } - if (isset($arr['_lastversion'])) { - unset($arr['_lastversion']); - } - if ($state ^ PEAR_VALIDATE_PACKAGING && !isset($arr['bundle'])) { - $use = $this->_recursiveXmlFilelist($arr['contents']['dir']['file']); - unset($arr['contents']['dir']['file']); - if (isset($use['dir'])) { - $arr['contents']['dir']['dir'] = $use['dir']; - } - if (isset($use['file'])) { - $arr['contents']['dir']['file'] = $use['file']; - } - $this->options['beautifyFilelist'] = true; - } - $arr['attribs']['packagerversion'] = '1.7.2'; - if ($this->serialize($arr, $options)) { - return $this->_serializedData . "\n"; - } - return false; - } - - - function _recursiveXmlFilelist($list) - { - $dirs = array(); - if (isset($list['attribs'])) { - $file = $list['attribs']['name']; - unset($list['attribs']['name']); - $attributes = $list['attribs']; - $this->_addDir($dirs, explode('/', dirname($file)), $file, $attributes); - } else { - foreach ($list as $a) { - $file = $a['attribs']['name']; - $attributes = $a['attribs']; - unset($a['attribs']); - $this->_addDir($dirs, explode('/', dirname($file)), $file, $attributes, $a); - } - } - $this->_formatDir($dirs); - $this->_deFormat($dirs); - return $dirs; - } - - function _addDir(&$dirs, $dir, $file = null, $attributes = null, $tasks = null) - { - if (!$tasks) { - $tasks = array(); - } - if ($dir == array() || $dir == array('.')) { - $dirs['file'][basename($file)] = $tasks; - $attributes['name'] = basename($file); - $dirs['file'][basename($file)]['attribs'] = $attributes; - return; - } - $curdir = array_shift($dir); - if (!isset($dirs['dir'][$curdir])) { - $dirs['dir'][$curdir] = array(); - } - $this->_addDir($dirs['dir'][$curdir], $dir, $file, $attributes, $tasks); - } - - function _formatDir(&$dirs) - { - if (!count($dirs)) { - return array(); - } - $newdirs = array(); - if (isset($dirs['dir'])) { - $newdirs['dir'] = $dirs['dir']; - } - if (isset($dirs['file'])) { - $newdirs['file'] = $dirs['file']; - } - $dirs = $newdirs; - if (isset($dirs['dir'])) { - uksort($dirs['dir'], 'strnatcasecmp'); - foreach ($dirs['dir'] as $dir => $contents) { - $this->_formatDir($dirs['dir'][$dir]); - } - } - if (isset($dirs['file'])) { - uksort($dirs['file'], 'strnatcasecmp'); - }; - } - - function _deFormat(&$dirs) - { - if (!count($dirs)) { - return array(); - } - $newdirs = array(); - if (isset($dirs['dir'])) { - foreach ($dirs['dir'] as $dir => $contents) { - $newdir = array(); - $newdir['attribs']['name'] = $dir; - $this->_deFormat($contents); - foreach ($contents as $tag => $val) { - $newdir[$tag] = $val; - } - $newdirs['dir'][] = $newdir; - } - if (count($newdirs['dir']) == 1) { - $newdirs['dir'] = $newdirs['dir'][0]; - } - } - if (isset($dirs['file'])) { - foreach ($dirs['file'] as $name => $file) { - $newdirs['file'][] = $file; - } - if (count($newdirs['file']) == 1) { - $newdirs['file'] = $newdirs['file'][0]; - } - } - $dirs = $newdirs; - } - - /** - * reset all options to default options - * - * @access public - * @see setOption(), XML_Unserializer() - */ - function resetOptions() - { - $this->options = $this->_defaultOptions; - } - - /** - * set an option - * - * You can use this method if you do not want to set all options in the constructor - * - * @access public - * @see resetOption(), XML_Serializer() - */ - function setOption($name, $value) - { - $this->options[$name] = $value; - } - - /** - * sets several options at once - * - * You can use this method if you do not want to set all options in the constructor - * - * @access public - * @see resetOption(), XML_Unserializer(), setOption() - */ - function setOptions($options) - { - $this->options = array_merge($this->options, $options); - } - - /** - * serialize data - * - * @access public - * @param mixed $data data to serialize - * @return boolean true on success, pear error on failure - */ - function serialize($data, $options = null) - { - // if options have been specified, use them instead - // of the previously defined ones - if (is_array($options)) { - $optionsBak = $this->options; - if (isset($options['overrideOptions']) && $options['overrideOptions'] == true) { - $this->options = array_merge($this->_defaultOptions, $options); - } else { - $this->options = array_merge($this->options, $options); - } - } - else { - $optionsBak = null; - } - - // start depth is zero - $this->_tagDepth = 0; - - $this->_serializedData = ''; - // serialize an array - if (is_array($data)) { - if (isset($this->options['rootName'])) { - $tagName = $this->options['rootName']; - } else { - $tagName = 'array'; - } - - $this->_serializedData .= $this->_serializeArray($data, $tagName, $this->options['rootAttributes']); - } - - // add doctype declaration - if ($this->options['addDoctype'] === true) { - $this->_serializedData = PEAR_PackageFile_Generator_v2_XML_Util::getDoctypeDeclaration($tagName, $this->options['doctype']) - . $this->options['linebreak'] - . $this->_serializedData; - } - - // build xml declaration - if ($this->options['addDecl']) { - $atts = array(); - if (isset($this->options['encoding']) ) { - $encoding = $this->options['encoding']; - } else { - $encoding = null; - } - $this->_serializedData = PEAR_PackageFile_Generator_v2_XML_Util::getXMLDeclaration('1.0', $encoding) - . $this->options['linebreak'] - . $this->_serializedData; - } - - - if ($optionsBak !== null) { - $this->options = $optionsBak; - } - - return true; - } - - /** - * get the result of the serialization - * - * @access public - * @return string serialized XML - */ - function getSerializedData() - { - if ($this->_serializedData == null ) { - return $this->raiseError('No serialized data available. Use XML_Serializer::serialize() first.', XML_SERIALIZER_ERROR_NO_SERIALIZATION); - } - return $this->_serializedData; - } - - /** - * serialize any value - * - * This method checks for the type of the value and calls the appropriate method - * - * @access private - * @param mixed $value - * @param string $tagName - * @param array $attributes - * @return string - */ - function _serializeValue($value, $tagName = null, $attributes = array()) - { - if (is_array($value)) { - $xml = $this->_serializeArray($value, $tagName, $attributes); - } elseif (is_object($value)) { - $xml = $this->_serializeObject($value, $tagName); - } else { - $tag = array( - 'qname' => $tagName, - 'attributes' => $attributes, - 'content' => $value - ); - $xml = $this->_createXMLTag($tag); - } - return $xml; - } - - /** - * serialize an array - * - * @access private - * @param array $array array to serialize - * @param string $tagName name of the root tag - * @param array $attributes attributes for the root tag - * @return string $string serialized data - * @uses PEAR_PackageFile_Generator_v2_XML_Util::isValidName() to check, whether key has to be substituted - */ - function _serializeArray(&$array, $tagName = null, $attributes = array()) - { - $_content = null; - - /** - * check for special attributes - */ - if ($this->options['attributesArray'] !== null) { - if (isset($array[$this->options['attributesArray']])) { - $attributes = $array[$this->options['attributesArray']]; - unset($array[$this->options['attributesArray']]); - } - /** - * check for special content - */ - if ($this->options['contentName'] !== null) { - if (isset($array[$this->options['contentName']])) { - $_content = $array[$this->options['contentName']]; - unset($array[$this->options['contentName']]); - } - } - } - - /* - * if mode is set to simpleXML, check whether - * the array is associative or indexed - */ - if (is_array($array) && $this->options['mode'] == 'simplexml') { - $indexed = true; - if (!count($array)) { - $indexed = false; - } - foreach ($array as $key => $val) { - if (!is_int($key)) { - $indexed = false; - break; - } - } - - if ($indexed && $this->options['mode'] == 'simplexml') { - $string = ''; - foreach ($array as $key => $val) { - if ($this->options['beautifyFilelist'] && $tagName == 'dir') { - if (!isset($this->_curdir)) { - $this->_curdir = ''; - } - $savedir = $this->_curdir; - if (isset($val['attribs'])) { - if ($val['attribs']['name'] == '/') { - $this->_curdir = '/'; - } else { - if ($this->_curdir == '/') { - $this->_curdir = ''; - } - $this->_curdir .= '/' . $val['attribs']['name']; - } - } - } - $string .= $this->_serializeValue( $val, $tagName, $attributes); - if ($this->options['beautifyFilelist'] && $tagName == 'dir') { - $string .= ' <!-- ' . $this->_curdir . ' -->'; - if (empty($savedir)) { - unset($this->_curdir); - } else { - $this->_curdir = $savedir; - } - } - - $string .= $this->options['linebreak']; - // do indentation - if ($this->options['indent']!==null && $this->_tagDepth>0) { - $string .= str_repeat($this->options['indent'], $this->_tagDepth); - } - } - return rtrim($string); - } - } - - if ($this->options['scalarAsAttributes'] === true) { - foreach ($array as $key => $value) { - if (is_scalar($value) && (PEAR_PackageFile_Generator_v2_XML_Util::isValidName($key) === true)) { - unset($array[$key]); - $attributes[$this->options['prependAttributes'].$key] = $value; - } - } - } - - // check for empty array => create empty tag - if (empty($array)) { - $tag = array( - 'qname' => $tagName, - 'content' => $_content, - 'attributes' => $attributes - ); - - } else { - $this->_tagDepth++; - $tmp = $this->options['linebreak']; - foreach ($array as $key => $value) { - // do indentation - if ($this->options['indent']!==null && $this->_tagDepth>0) { - $tmp .= str_repeat($this->options['indent'], $this->_tagDepth); - } - - // copy key - $origKey = $key; - // key cannot be used as tagname => use default tag - $valid = PEAR_PackageFile_Generator_v2_XML_Util::isValidName($key); - if (PEAR::isError($valid)) { - if ($this->options['classAsTagName'] && is_object($value)) { - $key = get_class($value); - } else { - $key = $this->options['defaultTagName']; - } - } - $atts = array(); - if ($this->options['typeHints'] === true) { - $atts[$this->options['typeAttribute']] = gettype($value); - if ($key !== $origKey) { - $atts[$this->options['keyAttribute']] = (string)$origKey; - } - - } - if ($this->options['beautifyFilelist'] && $key == 'dir') { - if (!isset($this->_curdir)) { - $this->_curdir = ''; - } - $savedir = $this->_curdir; - if (isset($value['attribs'])) { - if ($value['attribs']['name'] == '/') { - $this->_curdir = '/'; - } else { - $this->_curdir .= '/' . $value['attribs']['name']; - } - } - } - - if (is_string($value) && $value && ($value{strlen($value) - 1} == "\n")) { - $value .= str_repeat($this->options['indent'], $this->_tagDepth); - } - $tmp .= $this->_createXMLTag(array( - 'qname' => $key, - 'attributes' => $atts, - 'content' => $value ) - ); - if ($this->options['beautifyFilelist'] && $key == 'dir') { - if (isset($value['attribs'])) { - $tmp .= ' <!-- ' . $this->_curdir . ' -->'; - if (empty($savedir)) { - unset($this->_curdir); - } else { - $this->_curdir = $savedir; - } - } - } - $tmp .= $this->options['linebreak']; - } - - $this->_tagDepth--; - if ($this->options['indent']!==null && $this->_tagDepth>0) { - $tmp .= str_repeat($this->options['indent'], $this->_tagDepth); - } - - if (trim($tmp) === '') { - $tmp = null; - } - - $tag = array( - 'qname' => $tagName, - 'content' => $tmp, - 'attributes' => $attributes - ); - } - if ($this->options['typeHints'] === true) { - if (!isset($tag['attributes'][$this->options['typeAttribute']])) { - $tag['attributes'][$this->options['typeAttribute']] = 'array'; - } - } - - $string = $this->_createXMLTag($tag, false); - return $string; - } - - /** - * create a tag from an array - * this method awaits an array in the following format - * array( - * 'qname' => $tagName, - * 'attributes' => array(), - * 'content' => $content, // optional - * 'namespace' => $namespace // optional - * 'namespaceUri' => $namespaceUri // optional - * ) - * - * @access private - * @param array $tag tag definition - * @param boolean $replaceEntities whether to replace XML entities in content or not - * @return string $string XML tag - */ - function _createXMLTag( $tag, $replaceEntities = true ) - { - if ($this->options['indentAttributes'] !== false) { - $multiline = true; - $indent = str_repeat($this->options['indent'], $this->_tagDepth); - - if ($this->options['indentAttributes'] == '_auto') { - $indent .= str_repeat(' ', (strlen($tag['qname'])+2)); - - } else { - $indent .= $this->options['indentAttributes']; - } - } else { - $multiline = false; - $indent = false; - } - - if (is_array($tag['content'])) { - if (empty($tag['content'])) { - $tag['content'] = ''; - } - } elseif(is_scalar($tag['content']) && (string)$tag['content'] == '') { - $tag['content'] = ''; - } - - if (is_scalar($tag['content']) || is_null($tag['content'])) { - if ($this->options['encoding'] == 'UTF-8' && - version_compare(phpversion(), '5.0.0', 'lt')) { - $encoding = PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_UTF8_XML; - } else { - $encoding = PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_XML; - } - $tag = PEAR_PackageFile_Generator_v2_XML_Util::createTagFromArray($tag, $replaceEntities, $multiline, $indent, $this->options['linebreak'], $encoding); - } elseif (is_array($tag['content'])) { - $tag = $this->_serializeArray($tag['content'], $tag['qname'], $tag['attributes']); - } elseif (is_object($tag['content'])) { - $tag = $this->_serializeObject($tag['content'], $tag['qname'], $tag['attributes']); - } elseif (is_resource($tag['content'])) { - settype($tag['content'], 'string'); - $tag = PEAR_PackageFile_Generator_v2_XML_Util::createTagFromArray($tag, $replaceEntities); - } - return $tag; - } -} - -// well, it's one way to do things without extra deps ... -/* vim: set expandtab tabstop=4 shiftwidth=4: */ -// +----------------------------------------------------------------------+ -// | PHP Version 4 | -// +----------------------------------------------------------------------+ -// | Copyright (c) 1997-2002 The PHP Group | -// +----------------------------------------------------------------------+ -// | This source file is subject to version 2.0 of the PHP license, | -// | that is bundled with this package in the file LICENSE, and is | -// | available at through the world-wide-web at | -// | http://www.php.net/license/2_02.txt. | -// | If you did not receive a copy of the PHP license and are unable to | -// | obtain it through the world-wide-web, please send a note to | -// | license@php.net so we can mail you a copy immediately. | -// +----------------------------------------------------------------------+ -// | Authors: Stephan Schmidt <schst@php-tools.net> | -// +----------------------------------------------------------------------+ -// -// $Id: v2.php,v 1.39 2008/05/13 05:29:24 cellog Exp $ - -/** - * error code for invalid chars in XML name - */ -define("PEAR_PackageFile_Generator_v2_XML_Util_ERROR_INVALID_CHARS", 51); - -/** - * error code for invalid chars in XML name - */ -define("PEAR_PackageFile_Generator_v2_XML_Util_ERROR_INVALID_START", 52); - -/** - * error code for non-scalar tag content - */ -define("PEAR_PackageFile_Generator_v2_XML_Util_ERROR_NON_SCALAR_CONTENT", 60); - -/** - * error code for missing tag name - */ -define("PEAR_PackageFile_Generator_v2_XML_Util_ERROR_NO_TAG_NAME", 61); - -/** - * replace XML entities - */ -define("PEAR_PackageFile_Generator_v2_XML_Util_REPLACE_ENTITIES", 1); - -/** - * embedd content in a CData Section - */ -define("PEAR_PackageFile_Generator_v2_XML_Util_CDATA_SECTION", 2); - -/** - * do not replace entitites - */ -define("PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_NONE", 0); - -/** - * replace all XML entitites - * This setting will replace <, >, ", ' and & - */ -define("PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_XML", 1); - -/** - * replace only required XML entitites - * This setting will replace <, " and & - */ -define("PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_XML_REQUIRED", 2); - -/** - * replace HTML entitites - * @link http://www.php.net/htmlentities - */ -define("PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_HTML", 3); - -/** - * replace all XML entitites, and encode from ISO-8859-1 to UTF-8 - * This setting will replace <, >, ", ' and & - */ -define("PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_UTF8_XML", 4); - -/** - * utility class for working with XML documents - * - * customized version of XML_Util 0.6.0 - * - * @category XML - * @package PEAR - * @version 0.6.0 - * @author Stephan Schmidt <schst@php.net> - * @author Gregory Beaver <cellog@php.net> - */ -class PEAR_PackageFile_Generator_v2_XML_Util { - - /** - * return API version - * - * @access public - * @static - * @return string $version API version - */ - function apiVersion() - { - return "0.6"; - } - - /** - * replace XML entities - * - * With the optional second parameter, you may select, which - * entities should be replaced. - * - * <code> - * require_once 'XML/Util.php'; - * - * // replace XML entites: - * $string = PEAR_PackageFile_Generator_v2_XML_Util::replaceEntities("This string contains < & >."); - * </code> - * - * @access public - * @static - * @param string string where XML special chars should be replaced - * @param integer setting for entities in attribute values (one of PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_XML, PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_XML_REQUIRED, PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_HTML) - * @return string string with replaced chars - */ - function replaceEntities($string, $replaceEntities = PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_XML) - { - switch ($replaceEntities) { - case PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_UTF8_XML: - return strtr(utf8_encode($string),array( - '&' => '&', - '>' => '>', - '<' => '<', - '"' => '"', - '\'' => ''' )); - break; - case PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_XML: - return strtr($string,array( - '&' => '&', - '>' => '>', - '<' => '<', - '"' => '"', - '\'' => ''' )); - break; - case PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_XML_REQUIRED: - return strtr($string,array( - '&' => '&', - '<' => '<', - '"' => '"' )); - break; - case PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_HTML: - return htmlspecialchars($string); - break; - } - return $string; - } - - /** - * build an xml declaration - * - * <code> - * require_once 'XML/Util.php'; - * - * // get an XML declaration: - * $xmlDecl = PEAR_PackageFile_Generator_v2_XML_Util::getXMLDeclaration("1.0", "UTF-8", true); - * </code> - * - * @access public - * @static - * @param string $version xml version - * @param string $encoding character encoding - * @param boolean $standAlone document is standalone (or not) - * @return string $decl xml declaration - * @uses PEAR_PackageFile_Generator_v2_XML_Util::attributesToString() to serialize the attributes of the XML declaration - */ - function getXMLDeclaration($version = "1.0", $encoding = null, $standalone = null) - { - $attributes = array( - "version" => $version, - ); - // add encoding - if ($encoding !== null) { - $attributes["encoding"] = $encoding; - } - // add standalone, if specified - if ($standalone !== null) { - $attributes["standalone"] = $standalone ? "yes" : "no"; - } - - return sprintf("<?xml%s?>", PEAR_PackageFile_Generator_v2_XML_Util::attributesToString($attributes, false)); - } - - /** - * build a document type declaration - * - * <code> - * require_once 'XML/Util.php'; - * - * // get a doctype declaration: - * $xmlDecl = PEAR_PackageFile_Generator_v2_XML_Util::getDocTypeDeclaration("rootTag","myDocType.dtd"); - * </code> - * - * @access public - * @static - * @param string $root name of the root tag - * @param string $uri uri of the doctype definition (or array with uri and public id) - * @param string $internalDtd internal dtd entries - * @return string $decl doctype declaration - * @since 0.2 - */ - function getDocTypeDeclaration($root, $uri = null, $internalDtd = null) - { - if (is_array($uri)) { - $ref = sprintf( ' PUBLIC "%s" "%s"', $uri["id"], $uri["uri"] ); - } elseif (!empty($uri)) { - $ref = sprintf( ' SYSTEM "%s"', $uri ); - } else { - $ref = ""; - } - - if (empty($internalDtd)) { - return sprintf("<!DOCTYPE %s%s>", $root, $ref); - } else { - return sprintf("<!DOCTYPE %s%s [\n%s\n]>", $root, $ref, $internalDtd); - } - } - - /** - * create string representation of an attribute list - * - * <code> - * require_once 'XML/Util.php'; - * - * // build an attribute string - * $att = array( - * "foo" => "bar", - * "argh" => "tomato" - * ); - * - * $attList = PEAR_PackageFile_Generator_v2_XML_Util::attributesToString($att); - * </code> - * - * @access public - * @static - * @param array $attributes attribute array - * @param boolean|array $sort sort attribute list alphabetically, may also be an assoc array containing the keys 'sort', 'multiline', 'indent', 'linebreak' and 'entities' - * @param boolean $multiline use linebreaks, if more than one attribute is given - * @param string $indent string used for indentation of multiline attributes - * @param string $linebreak string used for linebreaks of multiline attributes - * @param integer $entities setting for entities in attribute values (one of PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_NONE, PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_XML, PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_XML_REQUIRED, PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_HTML) - * @return string string representation of the attributes - * @uses PEAR_PackageFile_Generator_v2_XML_Util::replaceEntities() to replace XML entities in attribute values - * @todo allow sort also to be an options array - */ - function attributesToString($attributes, $sort = true, $multiline = false, $indent = ' ', $linebreak = "\n", $entities = PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_XML) - { - /** - * second parameter may be an array - */ - if (is_array($sort)) { - if (isset($sort['multiline'])) { - $multiline = $sort['multiline']; - } - if (isset($sort['indent'])) { - $indent = $sort['indent']; - } - if (isset($sort['linebreak'])) { - $multiline = $sort['linebreak']; - } - if (isset($sort['entities'])) { - $entities = $sort['entities']; - } - if (isset($sort['sort'])) { - $sort = $sort['sort']; - } else { - $sort = true; - } - } - $string = ''; - if (is_array($attributes) && !empty($attributes)) { - if ($sort) { - ksort($attributes); - } - if( !$multiline || count($attributes) == 1) { - foreach ($attributes as $key => $value) { - if ($entities != PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_NONE) { - $value = PEAR_PackageFile_Generator_v2_XML_Util::replaceEntities($value, $entities); - } - $string .= ' '.$key.'="'.$value.'"'; - } - } else { - $first = true; - foreach ($attributes as $key => $value) { - if ($entities != PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_NONE) { - $value = PEAR_PackageFile_Generator_v2_XML_Util::replaceEntities($value, $entities); - } - if ($first) { - $string .= " ".$key.'="'.$value.'"'; - $first = false; - } else { - $string .= $linebreak.$indent.$key.'="'.$value.'"'; - } - } - } - } - return $string; - } - - /** - * create a tag - * - * This method will call PEAR_PackageFile_Generator_v2_XML_Util::createTagFromArray(), which - * is more flexible. - * - * <code> - * require_once 'XML/Util.php'; - * - * // create an XML tag: - * $tag = PEAR_PackageFile_Generator_v2_XML_Util::createTag("myNs:myTag", array("foo" => "bar"), "This is inside the tag", "http://www.w3c.org/myNs#"); - * </code> - * - * @access public - * @static - * @param string $qname qualified tagname (including namespace) - * @param array $attributes array containg attributes - * @param mixed $content - * @param string $namespaceUri URI of the namespace - * @param integer $replaceEntities whether to replace XML special chars in content, embedd it in a CData section or none of both - * @param boolean $multiline whether to create a multiline tag where each attribute gets written to a single line - * @param string $indent string used to indent attributes (_auto indents attributes so they start at the same column) - * @param string $linebreak string used for linebreaks - * @param string $encoding encoding that should be used to translate content - * @return string $string XML tag - * @see PEAR_PackageFile_Generator_v2_XML_Util::createTagFromArray() - * @uses PEAR_PackageFile_Generator_v2_XML_Util::createTagFromArray() to create the tag - */ - function createTag($qname, $attributes = array(), $content = null, $namespaceUri = null, $replaceEntities = PEAR_PackageFile_Generator_v2_XML_Util_REPLACE_ENTITIES, $multiline = false, $indent = "_auto", $linebreak = "\n", $encoding = PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_XML) - { - $tag = array( - "qname" => $qname, - "attributes" => $attributes - ); - - // add tag content - if ($content !== null) { - $tag["content"] = $content; - } - - // add namespace Uri - if ($namespaceUri !== null) { - $tag["namespaceUri"] = $namespaceUri; - } - - return PEAR_PackageFile_Generator_v2_XML_Util::createTagFromArray($tag, $replaceEntities, $multiline, $indent, $linebreak, $encoding); - } - - /** - * create a tag from an array - * this method awaits an array in the following format - * <pre> - * array( - * "qname" => $qname // qualified name of the tag - * "namespace" => $namespace // namespace prefix (optional, if qname is specified or no namespace) - * "localpart" => $localpart, // local part of the tagname (optional, if qname is specified) - * "attributes" => array(), // array containing all attributes (optional) - * "content" => $content, // tag content (optional) - * "namespaceUri" => $namespaceUri // namespaceUri for the given namespace (optional) - * ) - * </pre> - * - * <code> - * require_once 'XML/Util.php'; - * - * $tag = array( - * "qname" => "foo:bar", - * "namespaceUri" => "http://foo.com", - * "attributes" => array( "key" => "value", "argh" => "fruit&vegetable" ), - * "content" => "I'm inside the tag", - * ); - * // creating a tag with qualified name and namespaceUri - * $string = PEAR_PackageFile_Generator_v2_XML_Util::createTagFromArray($tag); - * </code> - * - * @access public - * @static - * @param array $tag tag definition - * @param integer $replaceEntities whether to replace XML special chars in content, embedd it in a CData section or none of both - * @param boolean $multiline whether to create a multiline tag where each attribute gets written to a single line - * @param string $indent string used to indent attributes (_auto indents attributes so they start at the same column) - * @param string $linebreak string used for linebreaks - * @return string $string XML tag - * @see PEAR_PackageFile_Generator_v2_XML_Util::createTag() - * @uses PEAR_PackageFile_Generator_v2_XML_Util::attributesToString() to serialize the attributes of the tag - * @uses PEAR_PackageFile_Generator_v2_XML_Util::splitQualifiedName() to get local part and namespace of a qualified name - */ - function createTagFromArray($tag, $replaceEntities = PEAR_PackageFile_Generator_v2_XML_Util_REPLACE_ENTITIES, $multiline = false, $indent = "_auto", $linebreak = "\n", $encoding = PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_XML) - { - if (isset($tag["content"]) && !is_scalar($tag["content"])) { - return PEAR_PackageFile_Generator_v2_XML_Util::raiseError( "Supplied non-scalar value as tag content", PEAR_PackageFile_Generator_v2_XML_Util_ERROR_NON_SCALAR_CONTENT ); - } - - if (!isset($tag['qname']) && !isset($tag['localPart'])) { - return PEAR_PackageFile_Generator_v2_XML_Util::raiseError( 'You must either supply a qualified name (qname) or local tag name (localPart).', PEAR_PackageFile_Generator_v2_XML_Util_ERROR_NO_TAG_NAME ); - } - - // if no attributes hav been set, use empty attributes - if (!isset($tag["attributes"]) || !is_array($tag["attributes"])) { - $tag["attributes"] = array(); - } - - // qualified name is not given - if (!isset($tag["qname"])) { - // check for namespace - if (isset($tag["namespace"]) && !empty($tag["namespace"])) { - $tag["qname"] = $tag["namespace"].":".$tag["localPart"]; - } else { - $tag["qname"] = $tag["localPart"]; - } - // namespace URI is set, but no namespace - } elseif (isset($tag["namespaceUri"]) && !isset($tag["namespace"])) { - $parts = PEAR_PackageFile_Generator_v2_XML_Util::splitQualifiedName($tag["qname"]); - $tag["localPart"] = $parts["localPart"]; - if (isset($parts["namespace"])) { - $tag["namespace"] = $parts["namespace"]; - } - } - - if (isset($tag["namespaceUri"]) && !empty($tag["namespaceUri"])) { - // is a namespace given - if (isset($tag["namespace"]) && !empty($tag["namespace"])) { - $tag["attributes"]["xmlns:".$tag["namespace"]] = $tag["namespaceUri"]; - } else { - // define this Uri as the default namespace - $tag["attributes"]["xmlns"] = $tag["namespaceUri"]; - } - } - - // check for multiline attributes - if ($multiline === true) { - if ($indent === "_auto") { - $indent = str_repeat(" ", (strlen($tag["qname"])+2)); - } - } - - // create attribute list - $attList = PEAR_PackageFile_Generator_v2_XML_Util::attributesToString($tag["attributes"], true, $multiline, $indent, $linebreak ); - if (!isset($tag["content"]) || (string)$tag["content"] == '') { - $tag = sprintf("<%s%s />", $tag["qname"], $attList); - } else { - if ($replaceEntities == PEAR_PackageFile_Generator_v2_XML_Util_REPLACE_ENTITIES) { - $tag["content"] = PEAR_PackageFile_Generator_v2_XML_Util::replaceEntities($tag["content"], $encoding); - } elseif ($replaceEntities == PEAR_PackageFile_Generator_v2_XML_Util_CDATA_SECTION) { - $tag["content"] = PEAR_PackageFile_Generator_v2_XML_Util::createCDataSection($tag["content"]); - } - $tag = sprintf("<%s%s>%s</%s>", $tag["qname"], $attList, $tag["content"], $tag["qname"] ); - } - return $tag; - } - - /** - * create a start element - * - * <code> - * require_once 'XML/Util.php'; - * - * // create an XML start element: - * $tag = PEAR_PackageFile_Generator_v2_XML_Util::createStartElement("myNs:myTag", array("foo" => "bar") ,"http://www.w3c.org/myNs#"); - * </code> - * - * @access public - * @static - * @param string $qname qualified tagname (including namespace) - * @param array $attributes array containg attributes - * @param string $namespaceUri URI of the namespace - * @param boolean $multiline whether to create a multiline tag where each attribute gets written to a single line - * @param string $indent string used to indent attributes (_auto indents attributes so they start at the same column) - * @param string $linebreak string used for linebreaks - * @return string $string XML start element - * @see PEAR_PackageFile_Generator_v2_XML_Util::createEndElement(), PEAR_PackageFile_Generator_v2_XML_Util::createTag() - */ - function createStartElement($qname, $attributes = array(), $namespaceUri = null, $multiline = false, $indent = '_auto', $linebreak = "\n") - { - // if no attributes hav been set, use empty attributes - if (!isset($attributes) || !is_array($attributes)) { - $attributes = array(); - } - - if ($namespaceUri != null) { - $parts = PEAR_PackageFile_Generator_v2_XML_Util::splitQualifiedName($qname); - } - - // check for multiline attributes - if ($multiline === true) { - if ($indent === "_auto") { - $indent = str_repeat(" ", (strlen($qname)+2)); - } - } - - if ($namespaceUri != null) { - // is a namespace given - if (isset($parts["namespace"]) && !empty($parts["namespace"])) { - $attributes["xmlns:".$parts["namespace"]] = $namespaceUri; - } else { - // define this Uri as the default namespace - $attributes["xmlns"] = $namespaceUri; - } - } - - // create attribute list - $attList = PEAR_PackageFile_Generator_v2_XML_Util::attributesToString($attributes, true, $multiline, $indent, $linebreak); - $element = sprintf("<%s%s>", $qname, $attList); - return $element; - } - - /** - * create an end element - * - * <code> - * require_once 'XML/Util.php'; - * - * // create an XML start element: - * $tag = PEAR_PackageFile_Generator_v2_XML_Util::createEndElement("myNs:myTag"); - * </code> - * - * @access public - * @static - * @param string $qname qualified tagname (including namespace) - * @return string $string XML end element - * @see PEAR_PackageFile_Generator_v2_XML_Util::createStartElement(), PEAR_PackageFile_Generator_v2_XML_Util::createTag() - */ - function createEndElement($qname) - { - $element = sprintf("</%s>", $qname); - return $element; - } - - /** - * create an XML comment - * - * <code> - * require_once 'XML/Util.php'; - * - * // create an XML start element: - * $tag = PEAR_PackageFile_Generator_v2_XML_Util::createComment("I am a comment"); - * </code> - * - * @access public - * @static - * @param string $content content of the comment - * @return string $comment XML comment - */ - function createComment($content) - { - $comment = sprintf("<!-- %s -->", $content); - return $comment; - } - - /** - * create a CData section - * - * <code> - * require_once 'XML/Util.php'; - * - * // create a CData section - * $tag = PEAR_PackageFile_Generator_v2_XML_Util::createCDataSection("I am content."); - * </code> - * - * @access public - * @static - * @param string $data data of the CData section - * @return string $string CData section with content - */ - function createCDataSection($data) - { - return sprintf("<![CDATA[%s]]>", $data); - } - - /** - * split qualified name and return namespace and local part - * - * <code> - * require_once 'XML/Util.php'; - * - * // split qualified tag - * $parts = PEAR_PackageFile_Generator_v2_XML_Util::splitQualifiedName("xslt:stylesheet"); - * </code> - * the returned array will contain two elements: - * <pre> - * array( - * "namespace" => "xslt", - * "localPart" => "stylesheet" - * ); - * </pre> - * - * @access public - * @static - * @param string $qname qualified tag name - * @param string $defaultNs default namespace (optional) - * @return array $parts array containing namespace and local part - */ - function splitQualifiedName($qname, $defaultNs = null) - { - if (strstr($qname, ':')) { - $tmp = explode(":", $qname); - return array( - "namespace" => $tmp[0], - "localPart" => $tmp[1] - ); - } - return array( - "namespace" => $defaultNs, - "localPart" => $qname - ); - } - - /** - * check, whether string is valid XML name - * - * <p>XML names are used for tagname, attribute names and various - * other, lesser known entities.</p> - * <p>An XML name may only consist of alphanumeric characters, - * dashes, undescores and periods, and has to start with a letter - * or an underscore. - * </p> - * - * <code> - * require_once 'XML/Util.php'; - * - * // verify tag name - * $result = PEAR_PackageFile_Generator_v2_XML_Util::isValidName("invalidTag?"); - * if (PEAR_PackageFile_Generator_v2_XML_Util::isError($result)) { - * print "Invalid XML name: " . $result->getMessage(); - * } - * </code> - * - * @access public - * @static - * @param string $string string that should be checked - * @return mixed $valid true, if string is a valid XML name, PEAR error otherwise - * @todo support for other charsets - */ - function isValidName($string) - { - // check for invalid chars - if (!preg_match("/^[[:alnum:]_\-.]\\z/", $string{0})) { - return PEAR_PackageFile_Generator_v2_XML_Util::raiseError( "XML names may only start with letter or underscore", PEAR_PackageFile_Generator_v2_XML_Util_ERROR_INVALID_START ); - } - - // check for invalid chars - if (!preg_match("/^([a-zA-Z_]([a-zA-Z0-9_\-\.]*)?:)?[a-zA-Z_]([a-zA-Z0-9_\-\.]+)?\\z/", $string)) { - return PEAR_PackageFile_Generator_v2_XML_Util::raiseError( "XML names may only contain alphanumeric chars, period, hyphen, colon and underscores", PEAR_PackageFile_Generator_v2_XML_Util_ERROR_INVALID_CHARS ); - } - // XML name is valid - return true; - } - - /** - * replacement for PEAR_PackageFile_Generator_v2_XML_Util::raiseError - * - * Avoids the necessity to always require - * PEAR.php - * - * @access public - * @param string error message - * @param integer error code - * @return object PEAR_Error - */ - function raiseError($msg, $code) - { - require_once 'PEAR.php'; - return PEAR::raiseError($msg, $code); - } -} -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/PackageFile/Parser/v1.php b/src/vitis/vas/rest/class/PEAR/PackageFile/Parser/v1.php deleted file mode 100755 index 1134dc60..00000000 --- a/src/vitis/vas/rest/class/PEAR/PackageFile/Parser/v1.php +++ /dev/null @@ -1,465 +0,0 @@ -<?php -/** - * package.xml parsing class, package.xml version 1.0 - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: v1.php,v 1.27 2008/01/03 20:55:16 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 1.4.0a1 - */ -/** - * package.xml abstraction class - */ -require_once 'PEAR/PackageFile/v1.php'; -/** - * Parser for package.xml version 1.0 - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: @PEAR-VER@ - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 1.4.0a1 - */ -class PEAR_PackageFile_Parser_v1 -{ - var $_registry; - var $_config; - var $_logger; - /** - * BC hack to allow PEAR_Common::infoFromString() to sort of - * work with the version 2.0 format - there's no filelist though - * @param PEAR_PackageFile_v2 - */ - function fromV2($packagefile) - { - $info = $packagefile->getArray(true); - $ret = new PEAR_PackageFile_v1; - $ret->fromArray($info['old']); - } - - function setConfig(&$c) - { - $this->_config = &$c; - $this->_registry = &$c->getRegistry(); - } - - function setLogger(&$l) - { - $this->_logger = &$l; - } - - /** - * @param string contents of package.xml file, version 1.0 - * @return bool success of parsing - */ - function &parse($data, $file, $archive = false) - { - if (!extension_loaded('xml')) { - return PEAR::raiseError('Cannot create xml parser for parsing package.xml, no xml extension'); - } - $xp = xml_parser_create(); - if (!$xp) { - $a = &PEAR::raiseError('Cannot create xml parser for parsing package.xml'); - return $a; - } - xml_set_object($xp, $this); - xml_set_element_handler($xp, '_element_start_1_0', '_element_end_1_0'); - xml_set_character_data_handler($xp, '_pkginfo_cdata_1_0'); - xml_parser_set_option($xp, XML_OPTION_CASE_FOLDING, false); - - $this->element_stack = array(); - $this->_packageInfo = array('provides' => array()); - $this->current_element = false; - unset($this->dir_install); - $this->_packageInfo['filelist'] = array(); - $this->filelist =& $this->_packageInfo['filelist']; - $this->dir_names = array(); - $this->in_changelog = false; - $this->d_i = 0; - $this->cdata = ''; - $this->_isValid = true; - - if (!xml_parse($xp, $data, 1)) { - $code = xml_get_error_code($xp); - $line = xml_get_current_line_number($xp); - xml_parser_free($xp); - $a = &PEAR::raiseError(sprintf("XML error: %s at line %d", - $str = xml_error_string($code), $line), 2); - return $a; - } - - xml_parser_free($xp); - - $pf = new PEAR_PackageFile_v1; - $pf->setConfig($this->_config); - if (isset($this->_logger)) { - $pf->setLogger($this->_logger); - } - $pf->setPackagefile($file, $archive); - $pf->fromArray($this->_packageInfo); - return $pf; - } - // {{{ _unIndent() - - /** - * Unindent given string - * - * @param string $str The string that has to be unindented. - * @return string - * @access private - */ - function _unIndent($str) - { - // remove leading newlines - $str = preg_replace('/^[\r\n]+/', '', $str); - // find whitespace at the beginning of the first line - $indent_len = strspn($str, " \t"); - $indent = substr($str, 0, $indent_len); - $data = ''; - // remove the same amount of whitespace from following lines - foreach (explode("\n", $str) as $line) { - if (substr($line, 0, $indent_len) == $indent) { - $data .= substr($line, $indent_len) . "\n"; - } elseif (trim(substr($line, 0, $indent_len))) { - $data .= ltrim($line); - } - } - return $data; - } - - // Support for package DTD v1.0: - // {{{ _element_start_1_0() - - /** - * XML parser callback for ending elements. Used for version 1.0 - * packages. - * - * @param resource $xp XML parser resource - * @param string $name name of ending element - * - * @return void - * - * @access private - */ - function _element_start_1_0($xp, $name, $attribs) - { - array_push($this->element_stack, $name); - $this->current_element = $name; - $spos = sizeof($this->element_stack) - 2; - $this->prev_element = ($spos >= 0) ? $this->element_stack[$spos] : ''; - $this->current_attributes = $attribs; - $this->cdata = ''; - switch ($name) { - case 'dir': - if ($this->in_changelog) { - break; - } - if (array_key_exists('name', $attribs) && $attribs['name'] != '/') { - $attribs['name'] = preg_replace(array('!\\\\+!', '!/+!'), array('/', '/'), - $attribs['name']); - if (strrpos($attribs['name'], '/') === strlen($attribs['name']) - 1) { - $attribs['name'] = substr($attribs['name'], 0, - strlen($attribs['name']) - 1); - } - if (strpos($attribs['name'], '/') === 0) { - $attribs['name'] = substr($attribs['name'], 1); - } - $this->dir_names[] = $attribs['name']; - } - if (isset($attribs['baseinstalldir'])) { - $this->dir_install = $attribs['baseinstalldir']; - } - if (isset($attribs['role'])) { - $this->dir_role = $attribs['role']; - } - break; - case 'file': - if ($this->in_changelog) { - break; - } - if (isset($attribs['name'])) { - $path = ''; - if (count($this->dir_names)) { - foreach ($this->dir_names as $dir) { - $path .= $dir . '/'; - } - } - $path .= preg_replace(array('!\\\\+!', '!/+!'), array('/', '/'), - $attribs['name']); - unset($attribs['name']); - $this->current_path = $path; - $this->filelist[$path] = $attribs; - // Set the baseinstalldir only if the file don't have this attrib - if (!isset($this->filelist[$path]['baseinstalldir']) && - isset($this->dir_install)) - { - $this->filelist[$path]['baseinstalldir'] = $this->dir_install; - } - // Set the Role - if (!isset($this->filelist[$path]['role']) && isset($this->dir_role)) { - $this->filelist[$path]['role'] = $this->dir_role; - } - } - break; - case 'replace': - if (!$this->in_changelog) { - $this->filelist[$this->current_path]['replacements'][] = $attribs; - } - break; - case 'maintainers': - $this->_packageInfo['maintainers'] = array(); - $this->m_i = 0; // maintainers array index - break; - case 'maintainer': - // compatibility check - if (!isset($this->_packageInfo['maintainers'])) { - $this->_packageInfo['maintainers'] = array(); - $this->m_i = 0; - } - $this->_packageInfo['maintainers'][$this->m_i] = array(); - $this->current_maintainer =& $this->_packageInfo['maintainers'][$this->m_i]; - break; - case 'changelog': - $this->_packageInfo['changelog'] = array(); - $this->c_i = 0; // changelog array index - $this->in_changelog = true; - break; - case 'release': - if ($this->in_changelog) { - $this->_packageInfo['changelog'][$this->c_i] = array(); - $this->current_release = &$this->_packageInfo['changelog'][$this->c_i]; - } else { - $this->current_release = &$this->_packageInfo; - } - break; - case 'deps': - if (!$this->in_changelog) { - $this->_packageInfo['release_deps'] = array(); - } - break; - case 'dep': - // dependencies array index - if (!$this->in_changelog) { - $this->d_i++; - isset($attribs['type']) ? ($attribs['type'] = strtolower($attribs['type'])) : false; - $this->_packageInfo['release_deps'][$this->d_i] = $attribs; - } - break; - case 'configureoptions': - if (!$this->in_changelog) { - $this->_packageInfo['configure_options'] = array(); - } - break; - case 'configureoption': - if (!$this->in_changelog) { - $this->_packageInfo['configure_options'][] = $attribs; - } - break; - case 'provides': - if (empty($attribs['type']) || empty($attribs['name'])) { - break; - } - $attribs['explicit'] = true; - $this->_packageInfo['provides']["$attribs[type];$attribs[name]"] = $attribs; - break; - case 'package' : - if (isset($attribs['version'])) { - $this->_packageInfo['xsdversion'] = trim($attribs['version']); - } else { - $this->_packageInfo['xsdversion'] = '1.0'; - } - if (isset($attribs['packagerversion'])) { - $this->_packageInfo['packagerversion'] = $attribs['packagerversion']; - } - break; - } - } - - // }}} - // {{{ _element_end_1_0() - - /** - * XML parser callback for ending elements. Used for version 1.0 - * packages. - * - * @param resource $xp XML parser resource - * @param string $name name of ending element - * - * @return void - * - * @access private - */ - function _element_end_1_0($xp, $name) - { - $data = trim($this->cdata); - switch ($name) { - case 'name': - switch ($this->prev_element) { - case 'package': - $this->_packageInfo['package'] = $data; - break; - case 'maintainer': - $this->current_maintainer['name'] = $data; - break; - } - break; - case 'extends' : - $this->_packageInfo['extends'] = $data; - break; - case 'summary': - $this->_packageInfo['summary'] = $data; - break; - case 'description': - $data = $this->_unIndent($this->cdata); - $this->_packageInfo['description'] = $data; - break; - case 'user': - $this->current_maintainer['handle'] = $data; - break; - case 'email': - $this->current_maintainer['email'] = $data; - break; - case 'role': - $this->current_maintainer['role'] = $data; - break; - case 'version': - //$data = ereg_replace ('[^a-zA-Z0-9._\-]', '_', $data); - if ($this->in_changelog) { - $this->current_release['version'] = $data; - } else { - $this->_packageInfo['version'] = $data; - } - break; - case 'date': - if ($this->in_changelog) { - $this->current_release['release_date'] = $data; - } else { - $this->_packageInfo['release_date'] = $data; - } - break; - case 'notes': - // try to "de-indent" release notes in case someone - // has been over-indenting their xml ;-) - $data = $this->_unIndent($this->cdata); - if ($this->in_changelog) { - $this->current_release['release_notes'] = $data; - } else { - $this->_packageInfo['release_notes'] = $data; - } - break; - case 'warnings': - if ($this->in_changelog) { - $this->current_release['release_warnings'] = $data; - } else { - $this->_packageInfo['release_warnings'] = $data; - } - break; - case 'state': - if ($this->in_changelog) { - $this->current_release['release_state'] = $data; - } else { - $this->_packageInfo['release_state'] = $data; - } - break; - case 'license': - if ($this->in_changelog) { - $this->current_release['release_license'] = $data; - } else { - $this->_packageInfo['release_license'] = $data; - } - break; - case 'dep': - if ($data && !$this->in_changelog) { - $this->_packageInfo['release_deps'][$this->d_i]['name'] = $data; - } - break; - case 'dir': - if ($this->in_changelog) { - break; - } - array_pop($this->dir_names); - break; - case 'file': - if ($this->in_changelog) { - break; - } - if ($data) { - $path = ''; - if (count($this->dir_names)) { - foreach ($this->dir_names as $dir) { - $path .= $dir . '/'; - } - } - $path .= $data; - $this->filelist[$path] = $this->current_attributes; - // Set the baseinstalldir only if the file don't have this attrib - if (!isset($this->filelist[$path]['baseinstalldir']) && - isset($this->dir_install)) - { - $this->filelist[$path]['baseinstalldir'] = $this->dir_install; - } - // Set the Role - if (!isset($this->filelist[$path]['role']) && isset($this->dir_role)) { - $this->filelist[$path]['role'] = $this->dir_role; - } - } - break; - case 'maintainer': - if (empty($this->_packageInfo['maintainers'][$this->m_i]['role'])) { - $this->_packageInfo['maintainers'][$this->m_i]['role'] = 'lead'; - } - $this->m_i++; - break; - case 'release': - if ($this->in_changelog) { - $this->c_i++; - } - break; - case 'changelog': - $this->in_changelog = false; - break; - } - array_pop($this->element_stack); - $spos = sizeof($this->element_stack) - 1; - $this->current_element = ($spos > 0) ? $this->element_stack[$spos] : ''; - $this->cdata = ''; - } - - // }}} - // {{{ _pkginfo_cdata_1_0() - - /** - * XML parser callback for character data. Used for version 1.0 - * packages. - * - * @param resource $xp XML parser resource - * @param string $name character data - * - * @return void - * - * @access private - */ - function _pkginfo_cdata_1_0($xp, $data) - { - if (isset($this->cdata)) { - $this->cdata .= $data; - } - } - - // }}} -} -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/PackageFile/Parser/v2.php b/src/vitis/vas/rest/class/PEAR/PackageFile/Parser/v2.php deleted file mode 100755 index 7cbc5851..00000000 --- a/src/vitis/vas/rest/class/PEAR/PackageFile/Parser/v2.php +++ /dev/null @@ -1,117 +0,0 @@ -<?php -/** - * package.xml parsing class, package.xml version 2.0 - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: v2.php,v 1.21 2008/01/03 20:26:37 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 1.4.0a1 - */ -/** - * base xml parser class - */ -require_once 'PEAR/XMLParser.php'; -require_once 'PEAR/PackageFile/v2.php'; -/** - * Parser for package.xml version 2.0 - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: @PEAR-VER@ - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 1.4.0a1 - */ -class PEAR_PackageFile_Parser_v2 extends PEAR_XMLParser -{ - var $_config; - var $_logger; - var $_registry; - - function setConfig(&$c) - { - $this->_config = &$c; - $this->_registry = &$c->getRegistry(); - } - - function setLogger(&$l) - { - $this->_logger = &$l; - } - /** - * Unindent given string - * - * @param string $str The string that has to be unindented. - * @return string - * @access private - */ - function _unIndent($str) - { - // remove leading newlines - $str = preg_replace('/^[\r\n]+/', '', $str); - // find whitespace at the beginning of the first line - $indent_len = strspn($str, " \t"); - $indent = substr($str, 0, $indent_len); - $data = ''; - // remove the same amount of whitespace from following lines - foreach (explode("\n", $str) as $line) { - if (substr($line, 0, $indent_len) == $indent) { - $data .= substr($line, $indent_len) . "\n"; - } else { - $data .= $line . "\n"; - } - } - return $data; - } - - /** - * post-process data - * - * @param string $data - * @param string $element element name - */ - function postProcess($data, $element) - { - if ($element == 'notes') { - return trim($this->_unIndent($data)); - } - return trim($data); - } - - /** - * @param string - * @param string file name of the package.xml - * @param string|false name of the archive this package.xml came from, if any - * @param string class name to instantiate and return. This must be PEAR_PackageFile_v2 or - * a subclass - * @return PEAR_PackageFile_v2 - */ - function &parse($data, $file, $archive = false, $class = 'PEAR_PackageFile_v2') - { - if (PEAR::isError($err = parent::parse($data, $file))) { - return $err; - } - $ret = new $class; - $ret->setConfig($this->_config); - if (isset($this->_logger)) { - $ret->setLogger($this->_logger); - } - $ret->fromArray($this->_unserializedData); - $ret->setPackagefile($file, $archive); - return $ret; - } -} -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/PackageFile/v1.php b/src/vitis/vas/rest/class/PEAR/PackageFile/v1.php deleted file mode 100755 index d2895507..00000000 --- a/src/vitis/vas/rest/class/PEAR/PackageFile/v1.php +++ /dev/null @@ -1,1618 +0,0 @@ -<?php -/** - * PEAR_PackageFile_v1, package.xml version 1.0 - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: v1.php,v 1.74 2008/01/03 20:26:36 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 1.4.0a1 - */ -/** - * For error handling - */ -require_once 'PEAR/ErrorStack.php'; - -/** - * Error code if parsing is attempted with no xml extension - */ -define('PEAR_PACKAGEFILE_ERROR_NO_XML_EXT', 3); - -/** - * Error code if creating the xml parser resource fails - */ -define('PEAR_PACKAGEFILE_ERROR_CANT_MAKE_PARSER', 4); - -/** - * Error code used for all sax xml parsing errors - */ -define('PEAR_PACKAGEFILE_ERROR_PARSER_ERROR', 5); - -/** - * Error code used when there is no name - */ -define('PEAR_PACKAGEFILE_ERROR_NO_NAME', 6); - -/** - * Error code when a package name is not valid - */ -define('PEAR_PACKAGEFILE_ERROR_INVALID_NAME', 7); - -/** - * Error code used when no summary is parsed - */ -define('PEAR_PACKAGEFILE_ERROR_NO_SUMMARY', 8); - -/** - * Error code for summaries that are more than 1 line - */ -define('PEAR_PACKAGEFILE_ERROR_MULTILINE_SUMMARY', 9); - -/** - * Error code used when no description is present - */ -define('PEAR_PACKAGEFILE_ERROR_NO_DESCRIPTION', 10); - -/** - * Error code used when no license is present - */ -define('PEAR_PACKAGEFILE_ERROR_NO_LICENSE', 11); - -/** - * Error code used when a <version> version number is not present - */ -define('PEAR_PACKAGEFILE_ERROR_NO_VERSION', 12); - -/** - * Error code used when a <version> version number is invalid - */ -define('PEAR_PACKAGEFILE_ERROR_INVALID_VERSION', 13); - -/** - * Error code when release state is missing - */ -define('PEAR_PACKAGEFILE_ERROR_NO_STATE', 14); - -/** - * Error code when release state is invalid - */ -define('PEAR_PACKAGEFILE_ERROR_INVALID_STATE', 15); - -/** - * Error code when release state is missing - */ -define('PEAR_PACKAGEFILE_ERROR_NO_DATE', 16); - -/** - * Error code when release state is invalid - */ -define('PEAR_PACKAGEFILE_ERROR_INVALID_DATE', 17); - -/** - * Error code when no release notes are found - */ -define('PEAR_PACKAGEFILE_ERROR_NO_NOTES', 18); - -/** - * Error code when no maintainers are found - */ -define('PEAR_PACKAGEFILE_ERROR_NO_MAINTAINERS', 19); - -/** - * Error code when a maintainer has no handle - */ -define('PEAR_PACKAGEFILE_ERROR_NO_MAINTHANDLE', 20); - -/** - * Error code when a maintainer has no handle - */ -define('PEAR_PACKAGEFILE_ERROR_NO_MAINTROLE', 21); - -/** - * Error code when a maintainer has no name - */ -define('PEAR_PACKAGEFILE_ERROR_NO_MAINTNAME', 22); - -/** - * Error code when a maintainer has no email - */ -define('PEAR_PACKAGEFILE_ERROR_NO_MAINTEMAIL', 23); - -/** - * Error code when a maintainer has no handle - */ -define('PEAR_PACKAGEFILE_ERROR_INVALID_MAINTROLE', 24); - -/** - * Error code when a dependency is not a PHP dependency, but has no name - */ -define('PEAR_PACKAGEFILE_ERROR_NO_DEPNAME', 25); - -/** - * Error code when a dependency has no type (pkg, php, etc.) - */ -define('PEAR_PACKAGEFILE_ERROR_NO_DEPTYPE', 26); - -/** - * Error code when a dependency has no relation (lt, ge, has, etc.) - */ -define('PEAR_PACKAGEFILE_ERROR_NO_DEPREL', 27); - -/** - * Error code when a dependency is not a 'has' relation, but has no version - */ -define('PEAR_PACKAGEFILE_ERROR_NO_DEPVERSION', 28); - -/** - * Error code when a dependency has an invalid relation - */ -define('PEAR_PACKAGEFILE_ERROR_INVALID_DEPREL', 29); - -/** - * Error code when a dependency has an invalid type - */ -define('PEAR_PACKAGEFILE_ERROR_INVALID_DEPTYPE', 30); - -/** - * Error code when a dependency has an invalid optional option - */ -define('PEAR_PACKAGEFILE_ERROR_INVALID_DEPOPTIONAL', 31); - -/** - * Error code when a dependency is a pkg dependency, and has an invalid package name - */ -define('PEAR_PACKAGEFILE_ERROR_INVALID_DEPNAME', 32); - -/** - * Error code when a dependency has a channel="foo" attribute, and foo is not a registered channel - */ -define('PEAR_PACKAGEFILE_ERROR_UNKNOWN_DEPCHANNEL', 33); - -/** - * Error code when rel="has" and version attribute is present. - */ -define('PEAR_PACKAGEFILE_ERROR_DEPVERSION_IGNORED', 34); - -/** - * Error code when type="php" and dependency name is present - */ -define('PEAR_PACKAGEFILE_ERROR_DEPNAME_IGNORED', 35); - -/** - * Error code when a configure option has no name - */ -define('PEAR_PACKAGEFILE_ERROR_NO_CONFNAME', 36); - -/** - * Error code when a configure option has no name - */ -define('PEAR_PACKAGEFILE_ERROR_NO_CONFPROMPT', 37); - -/** - * Error code when a file in the filelist has an invalid role - */ -define('PEAR_PACKAGEFILE_ERROR_INVALID_FILEROLE', 38); - -/** - * Error code when a file in the filelist has no role - */ -define('PEAR_PACKAGEFILE_ERROR_NO_FILEROLE', 39); - -/** - * Error code when analyzing a php source file that has parse errors - */ -define('PEAR_PACKAGEFILE_ERROR_INVALID_PHPFILE', 40); - -/** - * Error code when analyzing a php source file reveals a source element - * without a package name prefix - */ -define('PEAR_PACKAGEFILE_ERROR_NO_PNAME_PREFIX', 41); - -/** - * Error code when an unknown channel is specified - */ -define('PEAR_PACKAGEFILE_ERROR_UNKNOWN_CHANNEL', 42); - -/** - * Error code when no files are found in the filelist - */ -define('PEAR_PACKAGEFILE_ERROR_NO_FILES', 43); - -/** - * Error code when a file is not valid php according to _analyzeSourceCode() - */ -define('PEAR_PACKAGEFILE_ERROR_INVALID_FILE', 44); - -/** - * Error code when the channel validator returns an error or warning - */ -define('PEAR_PACKAGEFILE_ERROR_CHANNELVAL', 45); - -/** - * Error code when a php5 package is packaged in php4 (analysis doesn't work) - */ -define('PEAR_PACKAGEFILE_ERROR_PHP5', 46); - -/** - * Error code when a file is listed in package.xml but does not exist - */ -define('PEAR_PACKAGEFILE_ERROR_FILE_NOTFOUND', 47); - -/** - * Error code when a <dep type="php" rel="not"... is encountered (use rel="ne") - */ -define('PEAR_PACKAGEFILE_PHP_NO_NOT', 48); - -/** - * Error code when a package.xml contains non-ISO-8859-1 characters - */ -define('PEAR_PACKAGEFILE_ERROR_NON_ISO_CHARS', 49); - -/** - * Error code when a dependency is not a 'has' relation, but has no version - */ -define('PEAR_PACKAGEFILE_ERROR_NO_DEPPHPVERSION', 50); - -/** - * Error code when a package has no lead developer - */ -define('PEAR_PACKAGEFILE_ERROR_NO_LEAD', 51); - -/** - * Error code when a filename begins with "." - */ -define('PEAR_PACKAGEFILE_ERROR_INVALID_FILENAME', 52); -/** - * package.xml encapsulator - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 1.4.0a1 - */ -class PEAR_PackageFile_v1 -{ - /** - * @access private - * @var PEAR_ErrorStack - * @access private - */ - var $_stack; - - /** - * A registry object, used to access the package name validation regex for non-standard channels - * @var PEAR_Registry - * @access private - */ - var $_registry; - - /** - * An object that contains a log method that matches PEAR_Common::log's signature - * @var object - * @access private - */ - var $_logger; - - /** - * Parsed package information - * @var array - * @access private - */ - var $_packageInfo; - - /** - * path to package.xml - * @var string - * @access private - */ - var $_packageFile; - - /** - * path to package .tgz or false if this is a local/extracted package.xml - * @var string - * @access private - */ - var $_archiveFile; - - /** - * @var int - * @access private - */ - var $_isValid = 0; - - /** - * Determines whether this packagefile was initialized only with partial package info - * - * If this package file was constructed via parsing REST, it will only contain - * - * - package name - * - channel name - * - dependencies - * @var boolean - * @access private - */ - var $_incomplete = true; - - /** - * @param bool determines whether to return a PEAR_Error object, or use the PEAR_ErrorStack - * @param string Name of Error Stack class to use. - */ - function PEAR_PackageFile_v1() - { - $this->_stack = &new PEAR_ErrorStack('PEAR_PackageFile_v1'); - $this->_stack->setErrorMessageTemplate($this->_getErrorMessage()); - $this->_isValid = 0; - } - - function installBinary($installer) - { - return false; - } - - function isExtension($name) - { - return false; - } - - function setConfig(&$config) - { - $this->_config = &$config; - $this->_registry = &$config->getRegistry(); - } - - function setRequestedGroup() - { - // placeholder - } - - /** - * For saving in the registry. - * - * Set the last version that was installed - * @param string - */ - function setLastInstalledVersion($version) - { - $this->_packageInfo['_lastversion'] = $version; - } - - /** - * @return string|false - */ - function getLastInstalledVersion() - { - if (isset($this->_packageInfo['_lastversion'])) { - return $this->_packageInfo['_lastversion']; - } - return false; - } - - function getInstalledBinary() - { - return false; - } - - function listPostinstallScripts() - { - return false; - } - - function initPostinstallScripts() - { - return false; - } - - function setLogger(&$logger) - { - if ($logger && (!is_object($logger) || !method_exists($logger, 'log'))) { - return PEAR::raiseError('Logger must be compatible with PEAR_Common::log'); - } - $this->_logger = &$logger; - } - - function setPackagefile($file, $archive = false) - { - $this->_packageFile = $file; - $this->_archiveFile = $archive ? $archive : $file; - } - - function getPackageFile() - { - return isset($this->_packageFile) ? $this->_packageFile : false; - } - - function getPackageType() - { - return 'php'; - } - - function getArchiveFile() - { - return $this->_archiveFile; - } - - function packageInfo($field) - { - if (!is_string($field) || empty($field) || - !isset($this->_packageInfo[$field])) { - return false; - } - return $this->_packageInfo[$field]; - } - - function setDirtree($path) - { - if (!isset($this->_packageInfo['dirtree'])) { - $this->_packageInfo['dirtree'] = array(); - } - $this->_packageInfo['dirtree'][$path] = true; - } - - function getDirtree() - { - if (isset($this->_packageInfo['dirtree']) && count($this->_packageInfo['dirtree'])) { - return $this->_packageInfo['dirtree']; - } - return false; - } - - function resetDirtree() - { - unset($this->_packageInfo['dirtree']); - } - - function fromArray($pinfo) - { - $this->_incomplete = false; - $this->_packageInfo = $pinfo; - } - - function isIncomplete() - { - return $this->_incomplete; - } - - function getChannel() - { - return 'pear.php.net'; - } - - function getUri() - { - return false; - } - - function getTime() - { - return false; - } - - function getExtends() - { - if (isset($this->_packageInfo['extends'])) { - return $this->_packageInfo['extends']; - } - return false; - } - - /** - * @return array - */ - function toArray() - { - if (!$this->validate(PEAR_VALIDATE_NORMAL)) { - return false; - } - return $this->getArray(); - } - - function getArray() - { - return $this->_packageInfo; - } - - function getName() - { - return $this->getPackage(); - } - - function getPackage() - { - if (isset($this->_packageInfo['package'])) { - return $this->_packageInfo['package']; - } - return false; - } - - /** - * WARNING - don't use this unless you know what you are doing - */ - function setRawPackage($package) - { - $this->_packageInfo['package'] = $package; - } - - function setPackage($package) - { - $this->_packageInfo['package'] = $package; - $this->_isValid = false; - } - - function getVersion() - { - if (isset($this->_packageInfo['version'])) { - return $this->_packageInfo['version']; - } - return false; - } - - function setVersion($version) - { - $this->_packageInfo['version'] = $version; - $this->_isValid = false; - } - - function clearMaintainers() - { - unset($this->_packageInfo['maintainers']); - } - - function getMaintainers() - { - if (isset($this->_packageInfo['maintainers'])) { - return $this->_packageInfo['maintainers']; - } - return false; - } - - /** - * Adds a new maintainer - no checking of duplicates is performed, use - * updatemaintainer for that purpose. - */ - function addMaintainer($role, $handle, $name, $email) - { - $this->_packageInfo['maintainers'][] = - array('handle' => $handle, 'role' => $role, 'email' => $email, 'name' => $name); - $this->_isValid = false; - } - - function updateMaintainer($role, $handle, $name, $email) - { - $found = false; - if (!isset($this->_packageInfo['maintainers']) || - !is_array($this->_packageInfo['maintainers'])) { - return $this->addMaintainer($role, $handle, $name, $email); - } - foreach ($this->_packageInfo['maintainers'] as $i => $maintainer) { - if ($maintainer['handle'] == $handle) { - $found = $i; - break; - } - } - if ($found !== false) { - unset($this->_packageInfo['maintainers'][$found]); - $this->_packageInfo['maintainers'] = - array_values($this->_packageInfo['maintainers']); - } - $this->addMaintainer($role, $handle, $name, $email); - } - - function deleteMaintainer($handle) - { - $found = false; - foreach ($this->_packageInfo['maintainers'] as $i => $maintainer) { - if ($maintainer['handle'] == $handle) { - $found = $i; - break; - } - } - if ($found !== false) { - unset($this->_packageInfo['maintainers'][$found]); - $this->_packageInfo['maintainers'] = - array_values($this->_packageInfo['maintainers']); - return true; - } - return false; - } - - function getState() - { - if (isset($this->_packageInfo['release_state'])) { - return $this->_packageInfo['release_state']; - } - return false; - } - - function setRawState($state) - { - $this->_packageInfo['release_state'] = $state; - } - - function setState($state) - { - $this->_packageInfo['release_state'] = $state; - $this->_isValid = false; - } - - function getDate() - { - if (isset($this->_packageInfo['release_date'])) { - return $this->_packageInfo['release_date']; - } - return false; - } - - function setDate($date) - { - $this->_packageInfo['release_date'] = $date; - $this->_isValid = false; - } - - function getLicense() - { - if (isset($this->_packageInfo['release_license'])) { - return $this->_packageInfo['release_license']; - } - return false; - } - - function setLicense($date) - { - $this->_packageInfo['release_license'] = $date; - $this->_isValid = false; - } - - function getSummary() - { - if (isset($this->_packageInfo['summary'])) { - return $this->_packageInfo['summary']; - } - return false; - } - - function setSummary($summary) - { - $this->_packageInfo['summary'] = $summary; - $this->_isValid = false; - } - - function getDescription() - { - if (isset($this->_packageInfo['description'])) { - return $this->_packageInfo['description']; - } - return false; - } - - function setDescription($desc) - { - $this->_packageInfo['description'] = $desc; - $this->_isValid = false; - } - - function getNotes() - { - if (isset($this->_packageInfo['release_notes'])) { - return $this->_packageInfo['release_notes']; - } - return false; - } - - function setNotes($notes) - { - $this->_packageInfo['release_notes'] = $notes; - $this->_isValid = false; - } - - function getDeps() - { - if (isset($this->_packageInfo['release_deps'])) { - return $this->_packageInfo['release_deps']; - } - return false; - } - - /** - * Reset dependencies prior to adding new ones - */ - function clearDeps() - { - unset($this->_packageInfo['release_deps']); - } - - function addPhpDep($version, $rel) - { - $this->_isValid = false; - $this->_packageInfo['release_deps'][] = - array('type' => 'php', - 'rel' => $rel, - 'version' => $version); - } - - function addPackageDep($name, $version, $rel, $optional = 'no') - { - $this->_isValid = false; - $dep = - array('type' => 'pkg', - 'name' => $name, - 'rel' => $rel, - 'optional' => $optional); - if ($rel != 'has' && $rel != 'not') { - $dep['version'] = $version; - } - $this->_packageInfo['release_deps'][] = $dep; - } - - function addExtensionDep($name, $version, $rel, $optional = 'no') - { - $this->_isValid = false; - $this->_packageInfo['release_deps'][] = - array('type' => 'ext', - 'name' => $name, - 'rel' => $rel, - 'version' => $version, - 'optional' => $optional); - } - - /** - * WARNING - do not use this function directly unless you know what you're doing - */ - function setDeps($deps) - { - $this->_packageInfo['release_deps'] = $deps; - } - - function hasDeps() - { - return isset($this->_packageInfo['release_deps']) && - count($this->_packageInfo['release_deps']); - } - - function getDependencyGroup($group) - { - return false; - } - - function isCompatible($pf) - { - return false; - } - - function isSubpackageOf($p) - { - return $p->isSubpackage($this); - } - - function isSubpackage($p) - { - return false; - } - - function dependsOn($package, $channel) - { - if (strtolower($channel) != 'pear.php.net') { - return false; - } - if (!($deps = $this->getDeps())) { - return false; - } - foreach ($deps as $dep) { - if ($dep['type'] != 'pkg') { - continue; - } - if (strtolower($dep['name']) == strtolower($package)) { - return true; - } - } - return false; - } - - function getConfigureOptions() - { - if (isset($this->_packageInfo['configure_options'])) { - return $this->_packageInfo['configure_options']; - } - return false; - } - - function hasConfigureOptions() - { - return isset($this->_packageInfo['configure_options']) && - count($this->_packageInfo['configure_options']); - } - - function addConfigureOption($name, $prompt, $default = false) - { - $o = array('name' => $name, 'prompt' => $prompt); - if ($default !== false) { - $o['default'] = $default; - } - if (!isset($this->_packageInfo['configure_options'])) { - $this->_packageInfo['configure_options'] = array(); - } - $this->_packageInfo['configure_options'][] = $o; - } - - function clearConfigureOptions() - { - unset($this->_packageInfo['configure_options']); - } - - function getProvides() - { - if (isset($this->_packageInfo['provides'])) { - return $this->_packageInfo['provides']; - } - return false; - } - - function getProvidesExtension() - { - return false; - } - - function addFile($dir, $file, $attrs) - { - $dir = preg_replace(array('!\\\\+!', '!/+!'), array('/', '/'), $dir); - if ($dir == '/' || $dir == '') { - $dir = ''; - } else { - $dir .= '/'; - } - $file = $dir . $file; - $file = preg_replace('![\\/]+!', '/', $file); - $this->_packageInfo['filelist'][$file] = $attrs; - } - - function getInstallationFilelist() - { - return $this->getFilelist(); - } - - function getFilelist() - { - if (isset($this->_packageInfo['filelist'])) { - return $this->_packageInfo['filelist']; - } - return false; - } - - function setFileAttribute($file, $attr, $value) - { - $this->_packageInfo['filelist'][$file][$attr] = $value; - } - - function resetFilelist() - { - $this->_packageInfo['filelist'] = array(); - } - - function setInstalledAs($file, $path) - { - if ($path) { - return $this->_packageInfo['filelist'][$file]['installed_as'] = $path; - } - unset($this->_packageInfo['filelist'][$file]['installed_as']); - } - - function installedFile($file, $atts) - { - if (isset($this->_packageInfo['filelist'][$file])) { - $this->_packageInfo['filelist'][$file] = - array_merge($this->_packageInfo['filelist'][$file], $atts); - } else { - $this->_packageInfo['filelist'][$file] = $atts; - } - } - - function getChangelog() - { - if (isset($this->_packageInfo['changelog'])) { - return $this->_packageInfo['changelog']; - } - return false; - } - - function getPackagexmlVersion() - { - return '1.0'; - } - - /** - * Wrapper to {@link PEAR_ErrorStack::getErrors()} - * @param boolean determines whether to purge the error stack after retrieving - * @return array - */ - function getValidationWarnings($purge = true) - { - return $this->_stack->getErrors($purge); - } - - // }}} - /** - * Validation error. Also marks the object contents as invalid - * @param error code - * @param array error information - * @access private - */ - function _validateError($code, $params = array()) - { - $this->_stack->push($code, 'error', $params, false, false, debug_backtrace()); - $this->_isValid = false; - } - - /** - * Validation warning. Does not mark the object contents invalid. - * @param error code - * @param array error information - * @access private - */ - function _validateWarning($code, $params = array()) - { - $this->_stack->push($code, 'warning', $params, false, false, debug_backtrace()); - } - - /** - * @param integer error code - * @access protected - */ - function _getErrorMessage() - { - return array( - PEAR_PACKAGEFILE_ERROR_NO_NAME => - 'Missing Package Name', - PEAR_PACKAGEFILE_ERROR_NO_SUMMARY => - 'No summary found', - PEAR_PACKAGEFILE_ERROR_MULTILINE_SUMMARY => - 'Summary should be on one line', - PEAR_PACKAGEFILE_ERROR_NO_DESCRIPTION => - 'Missing description', - PEAR_PACKAGEFILE_ERROR_NO_LICENSE => - 'Missing license', - PEAR_PACKAGEFILE_ERROR_NO_VERSION => - 'No release version found', - PEAR_PACKAGEFILE_ERROR_NO_STATE => - 'No release state found', - PEAR_PACKAGEFILE_ERROR_NO_DATE => - 'No release date found', - PEAR_PACKAGEFILE_ERROR_NO_NOTES => - 'No release notes found', - PEAR_PACKAGEFILE_ERROR_NO_LEAD => - 'Package must have at least one lead maintainer', - PEAR_PACKAGEFILE_ERROR_NO_MAINTAINERS => - 'No maintainers found, at least one must be defined', - PEAR_PACKAGEFILE_ERROR_NO_MAINTHANDLE => - 'Maintainer %index% has no handle (user ID at channel server)', - PEAR_PACKAGEFILE_ERROR_NO_MAINTROLE => - 'Maintainer %index% has no role', - PEAR_PACKAGEFILE_ERROR_NO_MAINTNAME => - 'Maintainer %index% has no name', - PEAR_PACKAGEFILE_ERROR_NO_MAINTEMAIL => - 'Maintainer %index% has no email', - PEAR_PACKAGEFILE_ERROR_NO_DEPNAME => - 'Dependency %index% is not a php dependency, and has no name', - PEAR_PACKAGEFILE_ERROR_NO_DEPREL => - 'Dependency %index% has no relation (rel)', - PEAR_PACKAGEFILE_ERROR_NO_DEPTYPE => - 'Dependency %index% has no type', - PEAR_PACKAGEFILE_ERROR_DEPNAME_IGNORED => - 'PHP Dependency %index% has a name attribute of "%name%" which will be' . - ' ignored!', - PEAR_PACKAGEFILE_ERROR_NO_DEPVERSION => - 'Dependency %index% is not a rel="has" or rel="not" dependency, ' . - 'and has no version', - PEAR_PACKAGEFILE_ERROR_NO_DEPPHPVERSION => - 'Dependency %index% is a type="php" dependency, ' . - 'and has no version', - PEAR_PACKAGEFILE_ERROR_DEPVERSION_IGNORED => - 'Dependency %index% is a rel="%rel%" dependency, versioning is ignored', - PEAR_PACKAGEFILE_ERROR_INVALID_DEPOPTIONAL => - 'Dependency %index% has invalid optional value "%opt%", should be yes or no', - PEAR_PACKAGEFILE_PHP_NO_NOT => - 'Dependency %index%: php dependencies cannot use "not" rel, use "ne"' . - ' to exclude specific versions', - PEAR_PACKAGEFILE_ERROR_NO_CONFNAME => - 'Configure Option %index% has no name', - PEAR_PACKAGEFILE_ERROR_NO_CONFPROMPT => - 'Configure Option %index% has no prompt', - PEAR_PACKAGEFILE_ERROR_NO_FILES => - 'No files in <filelist> section of package.xml', - PEAR_PACKAGEFILE_ERROR_NO_FILEROLE => - 'File "%file%" has no role, expecting one of "%roles%"', - PEAR_PACKAGEFILE_ERROR_INVALID_FILEROLE => - 'File "%file%" has invalid role "%role%", expecting one of "%roles%"', - PEAR_PACKAGEFILE_ERROR_INVALID_FILENAME => - 'File "%file%" cannot start with ".", cannot package or install', - PEAR_PACKAGEFILE_ERROR_INVALID_PHPFILE => - 'Parser error: invalid PHP found in file "%file%"', - PEAR_PACKAGEFILE_ERROR_NO_PNAME_PREFIX => - 'in %file%: %type% "%name%" not prefixed with package name "%package%"', - PEAR_PACKAGEFILE_ERROR_INVALID_FILE => - 'Parser error: invalid PHP file "%file%"', - PEAR_PACKAGEFILE_ERROR_CHANNELVAL => - 'Channel validator error: field "%field%" - %reason%', - PEAR_PACKAGEFILE_ERROR_PHP5 => - 'Error, PHP5 token encountered in %file%, analysis should be in PHP5', - PEAR_PACKAGEFILE_ERROR_FILE_NOTFOUND => - 'File "%file%" in package.xml does not exist', - PEAR_PACKAGEFILE_ERROR_NON_ISO_CHARS => - 'Package.xml contains non-ISO-8859-1 characters, and may not validate', - ); - } - - /** - * Validate XML package definition file. - * - * @access public - * @return boolean - */ - function validate($state = PEAR_VALIDATE_NORMAL, $nofilechecking = false) - { - if (($this->_isValid & $state) == $state) { - return true; - } - $this->_isValid = true; - $info = $this->_packageInfo; - if (empty($info['package'])) { - $this->_validateError(PEAR_PACKAGEFILE_ERROR_NO_NAME); - $this->_packageName = $pn = 'unknown'; - } else { - $this->_packageName = $pn = $info['package']; - } - - if (empty($info['summary'])) { - $this->_validateError(PEAR_PACKAGEFILE_ERROR_NO_SUMMARY); - } elseif (strpos(trim($info['summary']), "\n") !== false) { - $this->_validateWarning(PEAR_PACKAGEFILE_ERROR_MULTILINE_SUMMARY, - array('summary' => $info['summary'])); - } - if (empty($info['description'])) { - $this->_validateError(PEAR_PACKAGEFILE_ERROR_NO_DESCRIPTION); - } - if (empty($info['release_license'])) { - $this->_validateError(PEAR_PACKAGEFILE_ERROR_NO_LICENSE); - } - if (empty($info['version'])) { - $this->_validateError(PEAR_PACKAGEFILE_ERROR_NO_VERSION); - } - if (empty($info['release_state'])) { - $this->_validateError(PEAR_PACKAGEFILE_ERROR_NO_STATE); - } - if (empty($info['release_date'])) { - $this->_validateError(PEAR_PACKAGEFILE_ERROR_NO_DATE); - } - if (empty($info['release_notes'])) { - $this->_validateError(PEAR_PACKAGEFILE_ERROR_NO_NOTES); - } - if (empty($info['maintainers'])) { - $this->_validateError(PEAR_PACKAGEFILE_ERROR_NO_MAINTAINERS); - } else { - $haslead = false; - $i = 1; - foreach ($info['maintainers'] as $m) { - if (empty($m['handle'])) { - $this->_validateError(PEAR_PACKAGEFILE_ERROR_NO_MAINTHANDLE, - array('index' => $i)); - } - if (empty($m['role'])) { - $this->_validateError(PEAR_PACKAGEFILE_ERROR_NO_MAINTROLE, - array('index' => $i, 'roles' => PEAR_Common::getUserRoles())); - } elseif ($m['role'] == 'lead') { - $haslead = true; - } - if (empty($m['name'])) { - $this->_validateError(PEAR_PACKAGEFILE_ERROR_NO_MAINTNAME, - array('index' => $i)); - } - if (empty($m['email'])) { - $this->_validateError(PEAR_PACKAGEFILE_ERROR_NO_MAINTEMAIL, - array('index' => $i)); - } - $i++; - } - if (!$haslead) { - $this->_validateError(PEAR_PACKAGEFILE_ERROR_NO_LEAD); - } - } - if (!empty($info['release_deps'])) { - $i = 1; - foreach ($info['release_deps'] as $d) { - if (!isset($d['type']) || empty($d['type'])) { - $this->_validateError(PEAR_PACKAGEFILE_ERROR_NO_DEPTYPE, - array('index' => $i, 'types' => PEAR_Common::getDependencyTypes())); - continue; - } - if (!isset($d['rel']) || empty($d['rel'])) { - $this->_validateError(PEAR_PACKAGEFILE_ERROR_NO_DEPREL, - array('index' => $i, 'rels' => PEAR_Common::getDependencyRelations())); - continue; - } - if (!empty($d['optional'])) { - if (!in_array($d['optional'], array('yes', 'no'))) { - $this->_validateError(PEAR_PACKAGEFILE_ERROR_INVALID_DEPOPTIONAL, - array('index' => $i, 'opt' => $d['optional'])); - } - } - if ($d['rel'] != 'has' && $d['rel'] != 'not' && empty($d['version'])) { - $this->_validateError(PEAR_PACKAGEFILE_ERROR_NO_DEPVERSION, - array('index' => $i)); - } elseif (($d['rel'] == 'has' || $d['rel'] == 'not') && !empty($d['version'])) { - $this->_validateWarning(PEAR_PACKAGEFILE_ERROR_DEPVERSION_IGNORED, - array('index' => $i, 'rel' => $d['rel'])); - } - if ($d['type'] == 'php' && !empty($d['name'])) { - $this->_validateWarning(PEAR_PACKAGEFILE_ERROR_DEPNAME_IGNORED, - array('index' => $i, 'name' => $d['name'])); - } elseif ($d['type'] != 'php' && empty($d['name'])) { - $this->_validateError(PEAR_PACKAGEFILE_ERROR_NO_DEPNAME, - array('index' => $i)); - } - if ($d['type'] == 'php' && empty($d['version'])) { - $this->_validateError(PEAR_PACKAGEFILE_ERROR_NO_DEPPHPVERSION, - array('index' => $i)); - } - if (($d['rel'] == 'not') && ($d['type'] == 'php')) { - $this->_validateError(PEAR_PACKAGEFILE_PHP_NO_NOT, - array('index' => $i)); - } - $i++; - } - } - if (!empty($info['configure_options'])) { - $i = 1; - foreach ($info['configure_options'] as $c) { - if (empty($c['name'])) { - $this->_validateError(PEAR_PACKAGEFILE_ERROR_NO_CONFNAME, - array('index' => $i)); - } - if (empty($c['prompt'])) { - $this->_validateError(PEAR_PACKAGEFILE_ERROR_NO_CONFPROMPT, - array('index' => $i)); - } - $i++; - } - } - if (empty($info['filelist'])) { - $this->_validateError(PEAR_PACKAGEFILE_ERROR_NO_FILES); - $errors[] = 'no files'; - } else { - foreach ($info['filelist'] as $file => $fa) { - if (empty($fa['role'])) { - $this->_validateError(PEAR_PACKAGEFILE_ERROR_NO_FILEROLE, - array('file' => $file, 'roles' => PEAR_Common::getFileRoles())); - continue; - } elseif (!in_array($fa['role'], PEAR_Common::getFileRoles())) { - $this->_validateError(PEAR_PACKAGEFILE_ERROR_INVALID_FILEROLE, - array('file' => $file, 'role' => $fa['role'], 'roles' => PEAR_Common::getFileRoles())); - } - if (preg_match('~/\.\.?(/|\\z)|^\.\.?/~', str_replace('\\', '/', $file))) { - // file contains .. parent directory or . cur directory references - $this->_validateError(PEAR_PACKAGEFILE_ERROR_INVALID_FILENAME, - array('file' => $file)); - } - if (isset($fa['install-as']) && - preg_match('~/\.\.?(/|\\z)|^\.\.?/~', - str_replace('\\', '/', $fa['install-as']))) { - // install-as contains .. parent directory or . cur directory references - $this->_validateError(PEAR_PACKAGEFILE_ERROR_INVALID_FILENAME, - array('file' => $file . ' [installed as ' . $fa['install-as'] . ']')); - } - if (isset($fa['baseinstalldir']) && - preg_match('~/\.\.?(/|\\z)|^\.\.?/~', - str_replace('\\', '/', $fa['baseinstalldir']))) { - // install-as contains .. parent directory or . cur directory references - $this->_validateError(PEAR_PACKAGEFILE_ERROR_INVALID_FILENAME, - array('file' => $file . ' [baseinstalldir ' . $fa['baseinstalldir'] . ']')); - } - } - } - if (isset($this->_registry) && $this->_isValid) { - $chan = $this->_registry->getChannel('pear.php.net'); - if (PEAR::isError($chan)) { - $this->_validateError(PEAR_PACKAGEFILE_ERROR_CHANNELVAL, $chan->getMessage()); - return $this->_isValid = 0; - } - $validator = $chan->getValidationObject(); - $validator->setPackageFile($this); - $validator->validate($state); - $failures = $validator->getFailures(); - foreach ($failures['errors'] as $error) { - $this->_validateError(PEAR_PACKAGEFILE_ERROR_CHANNELVAL, $error); - } - foreach ($failures['warnings'] as $warning) { - $this->_validateWarning(PEAR_PACKAGEFILE_ERROR_CHANNELVAL, $warning); - } - } - if ($this->_isValid && $state == PEAR_VALIDATE_PACKAGING && !$nofilechecking) { - if ($this->_analyzePhpFiles()) { - $this->_isValid = true; - } - } - if ($this->_isValid) { - return $this->_isValid = $state; - } - return $this->_isValid = 0; - } - - function _analyzePhpFiles() - { - if (!$this->_isValid) { - return false; - } - if (!isset($this->_packageFile)) { - return false; - } - $dir_prefix = dirname($this->_packageFile); - $common = new PEAR_Common; - $log = isset($this->_logger) ? array(&$this->_logger, 'log') : - array($common, 'log'); - $info = $this->getFilelist(); - foreach ($info as $file => $fa) { - if (!file_exists($dir_prefix . DIRECTORY_SEPARATOR . $file)) { - $this->_validateError(PEAR_PACKAGEFILE_ERROR_FILE_NOTFOUND, - array('file' => realpath($dir_prefix) . DIRECTORY_SEPARATOR . $file)); - continue; - } - if ($fa['role'] == 'php' && $dir_prefix) { - call_user_func_array($log, array(1, "Analyzing $file")); - $srcinfo = $this->_analyzeSourceCode($dir_prefix . DIRECTORY_SEPARATOR . $file); - if ($srcinfo) { - $this->_buildProvidesArray($srcinfo); - } - } - } - $this->_packageName = $pn = $this->getPackage(); - $pnl = strlen($pn); - if (isset($this->_packageInfo['provides'])) { - foreach ((array) $this->_packageInfo['provides'] as $key => $what) { - if (isset($what['explicit'])) { - // skip conformance checks if the provides entry is - // specified in the package.xml file - continue; - } - extract($what); - if ($type == 'class') { - if (!strncasecmp($name, $pn, $pnl)) { - continue; - } - $this->_validateWarning(PEAR_PACKAGEFILE_ERROR_NO_PNAME_PREFIX, - array('file' => $file, 'type' => $type, 'name' => $name, 'package' => $pn)); - } elseif ($type == 'function') { - if (strstr($name, '::') || !strncasecmp($name, $pn, $pnl)) { - continue; - } - $this->_validateWarning(PEAR_PACKAGEFILE_ERROR_NO_PNAME_PREFIX, - array('file' => $file, 'type' => $type, 'name' => $name, 'package' => $pn)); - } - } - } - return $this->_isValid; - } - - /** - * Get the default xml generator object - * - * @return PEAR_PackageFile_Generator_v1 - */ - function &getDefaultGenerator() - { - if (!class_exists('PEAR_PackageFile_Generator_v1')) { - require_once 'PEAR/PackageFile/Generator/v1.php'; - } - $a = &new PEAR_PackageFile_Generator_v1($this); - return $a; - } - - /** - * Get the contents of a file listed within the package.xml - * @param string - * @return string - */ - function getFileContents($file) - { - if ($this->_archiveFile == $this->_packageFile) { // unpacked - $dir = dirname($this->_packageFile); - $file = $dir . DIRECTORY_SEPARATOR . $file; - $file = str_replace(array('/', '\\'), - array(DIRECTORY_SEPARATOR, DIRECTORY_SEPARATOR), $file); - if (file_exists($file) && is_readable($file)) { - return implode('', file($file)); - } - } else { // tgz - if (!class_exists('Archive_Tar')) { - require_once 'Archive/Tar.php'; - } - $tar = &new Archive_Tar($this->_archiveFile); - $tar->pushErrorHandling(PEAR_ERROR_RETURN); - if ($file != 'package.xml' && $file != 'package2.xml') { - $file = $this->getPackage() . '-' . $this->getVersion() . '/' . $file; - } - $file = $tar->extractInString($file); - $tar->popErrorHandling(); - if (PEAR::isError($file)) { - return PEAR::raiseError("Cannot locate file '$file' in archive"); - } - return $file; - } - } - - // {{{ analyzeSourceCode() - /** - * Analyze the source code of the given PHP file - * - * @param string Filename of the PHP file - * @return mixed - * @access private - */ - function _analyzeSourceCode($file) - { - if (!function_exists("token_get_all")) { - return false; - } - if (!defined('T_DOC_COMMENT')) { - define('T_DOC_COMMENT', T_COMMENT); - } - if (!defined('T_INTERFACE')) { - define('T_INTERFACE', -1); - } - if (!defined('T_IMPLEMENTS')) { - define('T_IMPLEMENTS', -1); - } - if (!$fp = @fopen($file, "r")) { - return false; - } - fclose($fp); - $contents = file_get_contents($file); - $tokens = token_get_all($contents); -/* - for ($i = 0; $i < sizeof($tokens); $i++) { - @list($token, $data) = $tokens[$i]; - if (is_string($token)) { - var_dump($token); - } else { - print token_name($token) . ' '; - var_dump(rtrim($data)); - } - } -*/ - $look_for = 0; - $paren_level = 0; - $bracket_level = 0; - $brace_level = 0; - $lastphpdoc = ''; - $current_class = ''; - $current_interface = ''; - $current_class_level = -1; - $current_function = ''; - $current_function_level = -1; - $declared_classes = array(); - $declared_interfaces = array(); - $declared_functions = array(); - $declared_methods = array(); - $used_classes = array(); - $used_functions = array(); - $extends = array(); - $implements = array(); - $nodeps = array(); - $inquote = false; - $interface = false; - for ($i = 0; $i < sizeof($tokens); $i++) { - if (is_array($tokens[$i])) { - list($token, $data) = $tokens[$i]; - } else { - $token = $tokens[$i]; - $data = ''; - } - if ($inquote) { - if ($token != '"' && $token != T_END_HEREDOC) { - continue; - } else { - $inquote = false; - continue; - } - } - switch ($token) { - case T_WHITESPACE : - continue; - case ';': - if ($interface) { - $current_function = ''; - $current_function_level = -1; - } - break; - case '"': - case T_START_HEREDOC: - $inquote = true; - break; - case T_CURLY_OPEN: - case T_DOLLAR_OPEN_CURLY_BRACES: - case '{': $brace_level++; continue 2; - case '}': - $brace_level--; - if ($current_class_level == $brace_level) { - $current_class = ''; - $current_class_level = -1; - } - if ($current_function_level == $brace_level) { - $current_function = ''; - $current_function_level = -1; - } - continue 2; - case '[': $bracket_level++; continue 2; - case ']': $bracket_level--; continue 2; - case '(': $paren_level++; continue 2; - case ')': $paren_level--; continue 2; - case T_INTERFACE: - $interface = true; - case T_CLASS: - if (($current_class_level != -1) || ($current_function_level != -1)) { - $this->_validateError(PEAR_PACKAGEFILE_ERROR_INVALID_PHPFILE, - array('file' => $file)); - return false; - } - case T_FUNCTION: - case T_NEW: - case T_EXTENDS: - case T_IMPLEMENTS: - $look_for = $token; - continue 2; - case T_STRING: - if (version_compare(zend_version(), '2.0', '<')) { - if (in_array(strtolower($data), - array('public', 'private', 'protected', 'abstract', - 'interface', 'implements', 'throw') - )) { - $this->_validateWarning(PEAR_PACKAGEFILE_ERROR_PHP5, - array($file)); - } - } - if ($look_for == T_CLASS) { - $current_class = $data; - $current_class_level = $brace_level; - $declared_classes[] = $current_class; - } elseif ($look_for == T_INTERFACE) { - $current_interface = $data; - $current_class_level = $brace_level; - $declared_interfaces[] = $current_interface; - } elseif ($look_for == T_IMPLEMENTS) { - $implements[$current_class] = $data; - } elseif ($look_for == T_EXTENDS) { - $extends[$current_class] = $data; - } elseif ($look_for == T_FUNCTION) { - if ($current_class) { - $current_function = "$current_class::$data"; - $declared_methods[$current_class][] = $data; - } elseif ($current_interface) { - $current_function = "$current_interface::$data"; - $declared_methods[$current_interface][] = $data; - } else { - $current_function = $data; - $declared_functions[] = $current_function; - } - $current_function_level = $brace_level; - $m = array(); - } elseif ($look_for == T_NEW) { - $used_classes[$data] = true; - } - $look_for = 0; - continue 2; - case T_VARIABLE: - $look_for = 0; - continue 2; - case T_DOC_COMMENT: - case T_COMMENT: - if (preg_match('!^/\*\*\s!', $data)) { - $lastphpdoc = $data; - if (preg_match_all('/@nodep\s+(\S+)/', $lastphpdoc, $m)) { - $nodeps = array_merge($nodeps, $m[1]); - } - } - continue 2; - case T_DOUBLE_COLON: - if (!($tokens[$i - 1][0] == T_WHITESPACE || $tokens[$i - 1][0] == T_STRING)) { - $this->_validateError(PEAR_PACKAGEFILE_ERROR_INVALID_PHPFILE, - array('file' => $file)); - return false; - } - $class = $tokens[$i - 1][1]; - if (strtolower($class) != 'parent') { - $used_classes[$class] = true; - } - continue 2; - } - } - return array( - "source_file" => $file, - "declared_classes" => $declared_classes, - "declared_interfaces" => $declared_interfaces, - "declared_methods" => $declared_methods, - "declared_functions" => $declared_functions, - "used_classes" => array_diff(array_keys($used_classes), $nodeps), - "inheritance" => $extends, - "implements" => $implements, - ); - } - - /** - * Build a "provides" array from data returned by - * analyzeSourceCode(). The format of the built array is like - * this: - * - * array( - * 'class;MyClass' => 'array('type' => 'class', 'name' => 'MyClass'), - * ... - * ) - * - * - * @param array $srcinfo array with information about a source file - * as returned by the analyzeSourceCode() method. - * - * @return void - * - * @access private - * - */ - function _buildProvidesArray($srcinfo) - { - if (!$this->_isValid) { - return false; - } - $file = basename($srcinfo['source_file']); - $pn = $this->getPackage(); - $pnl = strlen($pn); - foreach ($srcinfo['declared_classes'] as $class) { - $key = "class;$class"; - if (isset($this->_packageInfo['provides'][$key])) { - continue; - } - $this->_packageInfo['provides'][$key] = - array('file'=> $file, 'type' => 'class', 'name' => $class); - if (isset($srcinfo['inheritance'][$class])) { - $this->_packageInfo['provides'][$key]['extends'] = - $srcinfo['inheritance'][$class]; - } - } - foreach ($srcinfo['declared_methods'] as $class => $methods) { - foreach ($methods as $method) { - $function = "$class::$method"; - $key = "function;$function"; - if ($method{0} == '_' || !strcasecmp($method, $class) || - isset($this->_packageInfo['provides'][$key])) { - continue; - } - $this->_packageInfo['provides'][$key] = - array('file'=> $file, 'type' => 'function', 'name' => $function); - } - } - - foreach ($srcinfo['declared_functions'] as $function) { - $key = "function;$function"; - if ($function{0} == '_' || isset($this->_packageInfo['provides'][$key])) { - continue; - } - if (!strstr($function, '::') && strncasecmp($function, $pn, $pnl)) { - $warnings[] = "in1 " . $file . ": function \"$function\" not prefixed with package name \"$pn\""; - } - $this->_packageInfo['provides'][$key] = - array('file'=> $file, 'type' => 'function', 'name' => $function); - } - } - - // }}} -} -?> diff --git a/src/vitis/vas/rest/class/PEAR/PackageFile/v2.php b/src/vitis/vas/rest/class/PEAR/PackageFile/v2.php deleted file mode 100755 index 4638a77f..00000000 --- a/src/vitis/vas/rest/class/PEAR/PackageFile/v2.php +++ /dev/null @@ -1,2046 +0,0 @@ -<?php -/** - * PEAR_PackageFile_v2, package.xml version 2.0 - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: v2.php,v 1.143 2008/05/13 05:28:51 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 1.4.0a1 - */ -/** - * For error handling - */ -require_once 'PEAR/ErrorStack.php'; -/** - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 1.4.0a1 - */ -class PEAR_PackageFile_v2 -{ - - /** - * Parsed package information - * @var array - * @access private - */ - var $_packageInfo = array(); - - /** - * path to package .tgz or false if this is a local/extracted package.xml - * @var string|false - * @access private - */ - var $_archiveFile; - - /** - * path to package .xml or false if this is an abstract parsed-from-string xml - * @var string|false - * @access private - */ - var $_packageFile; - - /** - * This is used by file analysis routines to log progress information - * @var PEAR_Common - * @access protected - */ - var $_logger; - - /** - * This is set to the highest validation level that has been validated - * - * If the package.xml is invalid or unknown, this is set to 0. If - * normal validation has occurred, this is set to PEAR_VALIDATE_NORMAL. If - * downloading/installation validation has occurred it is set to PEAR_VALIDATE_DOWNLOADING - * or INSTALLING, and so on up to PEAR_VALIDATE_PACKAGING. This allows validation - * "caching" to occur, which is particularly important for package validation, so - * that PHP files are not validated twice - * @var int - * @access private - */ - var $_isValid = 0; - - /** - * True if the filelist has been validated - * @param bool - */ - var $_filesValid = false; - - /** - * @var PEAR_Registry - * @access protected - */ - var $_registry; - - /** - * @var PEAR_Config - * @access protected - */ - var $_config; - - /** - * Optional Dependency group requested for installation - * @var string - * @access private - */ - var $_requestedGroup = false; - - /** - * @var PEAR_ErrorStack - * @access protected - */ - var $_stack; - - /** - * Namespace prefix used for tasks in this package.xml - use tasks: whenever possible - */ - var $_tasksNs; - - /** - * Determines whether this packagefile was initialized only with partial package info - * - * If this package file was constructed via parsing REST, it will only contain - * - * - package name - * - channel name - * - dependencies - * @var boolean - * @access private - */ - var $_incomplete = true; - - /** - * @var PEAR_PackageFile_v2_Validator - */ - var $_v2Validator; - - /** - * The constructor merely sets up the private error stack - */ - function PEAR_PackageFile_v2() - { - $this->_stack = new PEAR_ErrorStack('PEAR_PackageFile_v2', false, null); - $this->_isValid = false; - } - - /** - * To make unit-testing easier - * @param PEAR_Frontend_* - * @param array options - * @param PEAR_Config - * @return PEAR_Downloader - * @access protected - */ - function &getPEARDownloader(&$i, $o, &$c) - { - $z = &new PEAR_Downloader($i, $o, $c); - return $z; - } - - /** - * To make unit-testing easier - * @param PEAR_Config - * @param array options - * @param array package name as returned from {@link PEAR_Registry::parsePackageName()} - * @param int PEAR_VALIDATE_* constant - * @return PEAR_Dependency2 - * @access protected - */ - function &getPEARDependency2(&$c, $o, $p, $s = PEAR_VALIDATE_INSTALLING) - { - if (!class_exists('PEAR_Dependency2')) { - require_once 'PEAR/Dependency2.php'; - } - $z = &new PEAR_Dependency2($c, $o, $p, $s); - return $z; - } - - function getInstalledBinary() - { - return isset($this->_packageInfo['#binarypackage']) ? $this->_packageInfo['#binarypackage'] : - false; - } - - /** - * Installation of source package has failed, attempt to download and install the - * binary version of this package. - * @param PEAR_Installer - * @return array|false - */ - function installBinary(&$installer) - { - if (!OS_WINDOWS) { - $a = false; - return $a; - } - if ($this->getPackageType() == 'extsrc' || $this->getPackageType() == 'zendextsrc') { - $releasetype = $this->getPackageType() . 'release'; - if (!is_array($installer->getInstallPackages())) { - $a = false; - return $a; - } - foreach ($installer->getInstallPackages() as $p) { - if ($p->isExtension($this->_packageInfo['providesextension'])) { - if ($p->getPackageType() != 'extsrc' && $p->getPackageType() != 'zendextsrc') { - $a = false; - return $a; // the user probably downloaded it separately - } - } - } - if (isset($this->_packageInfo[$releasetype]['binarypackage'])) { - $installer->log(0, 'Attempting to download binary version of extension "' . - $this->_packageInfo['providesextension'] . '"'); - $params = $this->_packageInfo[$releasetype]['binarypackage']; - if (!is_array($params) || !isset($params[0])) { - $params = array($params); - } - if (isset($this->_packageInfo['channel'])) { - foreach ($params as $i => $param) { - $params[$i] = array('channel' => $this->_packageInfo['channel'], - 'package' => $param, 'version' => $this->getVersion()); - } - } - $dl = &$this->getPEARDownloader($installer->ui, $installer->getOptions(), - $installer->config); - $verbose = $dl->config->get('verbose'); - $dl->config->set('verbose', -1); - foreach ($params as $param) { - PEAR::pushErrorHandling(PEAR_ERROR_RETURN); - $ret = $dl->download(array($param)); - PEAR::popErrorHandling(); - if (is_array($ret) && count($ret)) { - break; - } - } - $dl->config->set('verbose', $verbose); - if (is_array($ret)) { - if (count($ret) == 1) { - $pf = $ret[0]->getPackageFile(); - PEAR::pushErrorHandling(PEAR_ERROR_RETURN); - $err = $installer->install($ret[0]); - PEAR::popErrorHandling(); - if (is_array($err)) { - $this->_packageInfo['#binarypackage'] = $ret[0]->getPackage(); - // "install" self, so all dependencies will work transparently - $this->_registry->addPackage2($this); - $installer->log(0, 'Download and install of binary extension "' . - $this->_registry->parsedPackageNameToString( - array('channel' => $pf->getChannel(), - 'package' => $pf->getPackage()), true) . '" successful'); - $a = array($ret[0], $err); - return $a; - } - $installer->log(0, 'Download and install of binary extension "' . - $this->_registry->parsedPackageNameToString( - array('channel' => $pf->getChannel(), - 'package' => $pf->getPackage()), true) . '" failed'); - } - } - } - } - $a = false; - return $a; - } - - /** - * @return string|false Extension name - */ - function getProvidesExtension() - { - if (in_array($this->getPackageType(), - array('extsrc', 'extbin', 'zendextsrc', 'zendextbin'))) { - if (isset($this->_packageInfo['providesextension'])) { - return $this->_packageInfo['providesextension']; - } - } - return false; - } - - /** - * @param string Extension name - * @return bool - */ - function isExtension($extension) - { - if (in_array($this->getPackageType(), - array('extsrc', 'extbin', 'zendextsrc', 'zendextbin'))) { - return $this->_packageInfo['providesextension'] == $extension; - } - return false; - } - - /** - * Tests whether every part of the package.xml 1.0 is represented in - * this package.xml 2.0 - * @param PEAR_PackageFile_v1 - * @return bool - */ - function isEquivalent($pf1) - { - if (!$pf1) { - return true; - } - if ($this->getPackageType() == 'bundle') { - return false; - } - $this->_stack->getErrors(true); - if (!$pf1->validate(PEAR_VALIDATE_NORMAL)) { - return false; - } - $pass = true; - if ($pf1->getPackage() != $this->getPackage()) { - $this->_differentPackage($pf1->getPackage()); - $pass = false; - } - if ($pf1->getVersion() != $this->getVersion()) { - $this->_differentVersion($pf1->getVersion()); - $pass = false; - } - if (trim($pf1->getSummary()) != $this->getSummary()) { - $this->_differentSummary($pf1->getSummary()); - $pass = false; - } - if (preg_replace('/\s+/', '', $pf1->getDescription()) != - preg_replace('/\s+/', '', $this->getDescription())) { - $this->_differentDescription($pf1->getDescription()); - $pass = false; - } - if ($pf1->getState() != $this->getState()) { - $this->_differentState($pf1->getState()); - $pass = false; - } - if (!strstr(preg_replace('/\s+/', '', $this->getNotes()), - preg_replace('/\s+/', '', $pf1->getNotes()))) { - $this->_differentNotes($pf1->getNotes()); - $pass = false; - } - $mymaintainers = $this->getMaintainers(); - $yourmaintainers = $pf1->getMaintainers(); - for ($i1 = 0; $i1 < count($yourmaintainers); $i1++) { - $reset = false; - for ($i2 = 0; $i2 < count($mymaintainers); $i2++) { - if ($mymaintainers[$i2]['handle'] == $yourmaintainers[$i1]['handle']) { - if ($mymaintainers[$i2]['role'] != $yourmaintainers[$i1]['role']) { - $this->_differentRole($mymaintainers[$i2]['handle'], - $yourmaintainers[$i1]['role'], $mymaintainers[$i2]['role']); - $pass = false; - } - if ($mymaintainers[$i2]['email'] != $yourmaintainers[$i1]['email']) { - $this->_differentEmail($mymaintainers[$i2]['handle'], - $yourmaintainers[$i1]['email'], $mymaintainers[$i2]['email']); - $pass = false; - } - if ($mymaintainers[$i2]['name'] != $yourmaintainers[$i1]['name']) { - $this->_differentName($mymaintainers[$i2]['handle'], - $yourmaintainers[$i1]['name'], $mymaintainers[$i2]['name']); - $pass = false; - } - unset($mymaintainers[$i2]); - $mymaintainers = array_values($mymaintainers); - unset($yourmaintainers[$i1]); - $yourmaintainers = array_values($yourmaintainers); - $reset = true; - break; - } - } - if ($reset) { - $i1 = -1; - } - } - $this->_unmatchedMaintainers($mymaintainers, $yourmaintainers); - $filelist = $this->getFilelist(); - foreach ($pf1->getFilelist() as $file => $atts) { - if (!isset($filelist[$file])) { - $this->_missingFile($file); - $pass = false; - } - } - return $pass; - } - - function _differentPackage($package) - { - $this->_stack->push(__FUNCTION__, 'error', array('package' => $package, - 'self' => $this->getPackage()), - 'package.xml 1.0 package "%package%" does not match "%self%"'); - } - - function _differentVersion($version) - { - $this->_stack->push(__FUNCTION__, 'error', array('version' => $version, - 'self' => $this->getVersion()), - 'package.xml 1.0 version "%version%" does not match "%self%"'); - } - - function _differentState($state) - { - $this->_stack->push(__FUNCTION__, 'error', array('state' => $state, - 'self' => $this->getState()), - 'package.xml 1.0 state "%state%" does not match "%self%"'); - } - - function _differentRole($handle, $role, $selfrole) - { - $this->_stack->push(__FUNCTION__, 'error', array('handle' => $handle, - 'role' => $role, 'self' => $selfrole), - 'package.xml 1.0 maintainer "%handle%" role "%role%" does not match "%self%"'); - } - - function _differentEmail($handle, $email, $selfemail) - { - $this->_stack->push(__FUNCTION__, 'error', array('handle' => $handle, - 'email' => $email, 'self' => $selfemail), - 'package.xml 1.0 maintainer "%handle%" email "%email%" does not match "%self%"'); - } - - function _differentName($handle, $name, $selfname) - { - $this->_stack->push(__FUNCTION__, 'error', array('handle' => $handle, - 'name' => $name, 'self' => $selfname), - 'package.xml 1.0 maintainer "%handle%" name "%name%" does not match "%self%"'); - } - - function _unmatchedMaintainers($my, $yours) - { - if ($my) { - array_walk($my, create_function('&$i, $k', '$i = $i["handle"];')); - $this->_stack->push(__FUNCTION__, 'error', array('handles' => $my), - 'package.xml 2.0 has unmatched extra maintainers "%handles%"'); - } - if ($yours) { - array_walk($yours, create_function('&$i, $k', '$i = $i["handle"];')); - $this->_stack->push(__FUNCTION__, 'error', array('handles' => $yours), - 'package.xml 1.0 has unmatched extra maintainers "%handles%"'); - } - } - - function _differentNotes($notes) - { - $truncnotes = strlen($notes) < 25 ? $notes : substr($notes, 0, 24) . '...'; - $truncmynotes = strlen($this->getNotes()) < 25 ? $this->getNotes() : - substr($this->getNotes(), 0, 24) . '...'; - $this->_stack->push(__FUNCTION__, 'error', array('notes' => $truncnotes, - 'self' => $truncmynotes), - 'package.xml 1.0 release notes "%notes%" do not match "%self%"'); - } - - function _differentSummary($summary) - { - $truncsummary = strlen($summary) < 25 ? $summary : substr($summary, 0, 24) . '...'; - $truncmysummary = strlen($this->getsummary()) < 25 ? $this->getSummary() : - substr($this->getsummary(), 0, 24) . '...'; - $this->_stack->push(__FUNCTION__, 'error', array('summary' => $truncsummary, - 'self' => $truncmysummary), - 'package.xml 1.0 summary "%summary%" does not match "%self%"'); - } - - function _differentDescription($description) - { - $truncdescription = trim(strlen($description) < 25 ? $description : substr($description, 0, 24) . '...'); - $truncmydescription = trim(strlen($this->getDescription()) < 25 ? $this->getDescription() : - substr($this->getdescription(), 0, 24) . '...'); - $this->_stack->push(__FUNCTION__, 'error', array('description' => $truncdescription, - 'self' => $truncmydescription), - 'package.xml 1.0 description "%description%" does not match "%self%"'); - } - - function _missingFile($file) - { - $this->_stack->push(__FUNCTION__, 'error', array('file' => $file), - 'package.xml 1.0 file "%file%" is not present in <contents>'); - } - - /** - * WARNING - do not use this function unless you know what you're doing - */ - function setRawState($state) - { - if (!isset($this->_packageInfo['stability'])) { - $this->_packageInfo['stability'] = array(); - } - $this->_packageInfo['stability']['release'] = $state; - } - - /** - * WARNING - do not use this function unless you know what you're doing - */ - function setRawCompatible($compatible) - { - $this->_packageInfo['compatible'] = $compatible; - } - - /** - * WARNING - do not use this function unless you know what you're doing - */ - function setRawPackage($package) - { - $this->_packageInfo['name'] = $package; - } - - /** - * WARNING - do not use this function unless you know what you're doing - */ - function setRawChannel($channel) - { - $this->_packageInfo['channel'] = $channel; - } - - function setRequestedGroup($group) - { - $this->_requestedGroup = $group; - } - - function getRequestedGroup() - { - if (isset($this->_requestedGroup)) { - return $this->_requestedGroup; - } - return false; - } - - /** - * For saving in the registry. - * - * Set the last version that was installed - * @param string - */ - function setLastInstalledVersion($version) - { - $this->_packageInfo['_lastversion'] = $version; - } - - /** - * @return string|false - */ - function getLastInstalledVersion() - { - if (isset($this->_packageInfo['_lastversion'])) { - return $this->_packageInfo['_lastversion']; - } - return false; - } - - /** - * Determines whether this package.xml has post-install scripts or not - * @return array|false - */ - function listPostinstallScripts() - { - $filelist = $this->getFilelist(); - $contents = $this->getContents(); - $contents = $contents['dir']['file']; - if (!is_array($contents) || !isset($contents[0])) { - $contents = array($contents); - } - $taskfiles = array(); - foreach ($contents as $file) { - $atts = $file['attribs']; - unset($file['attribs']); - if (count($file)) { - $taskfiles[$atts['name']] = $file; - } - } - $common = new PEAR_Common; - $common->debug = $this->_config->get('verbose'); - $this->_scripts = array(); - $ret = array(); - foreach ($taskfiles as $name => $tasks) { - if (!isset($filelist[$name])) { - // ignored files will not be in the filelist - continue; - } - $atts = $filelist[$name]; - foreach ($tasks as $tag => $raw) { - $task = $this->getTask($tag); - $task = &new $task($this->_config, $common, PEAR_TASK_INSTALL); - if ($task->isScript()) { - $ret[] = $filelist[$name]['installed_as']; - } - } - } - if (count($ret)) { - return $ret; - } - return false; - } - - /** - * Initialize post-install scripts for running - * - * This method can be used to detect post-install scripts, as the return value - * indicates whether any exist - * @return bool - */ - function initPostinstallScripts() - { - $filelist = $this->getFilelist(); - $contents = $this->getContents(); - $contents = $contents['dir']['file']; - if (!is_array($contents) || !isset($contents[0])) { - $contents = array($contents); - } - $taskfiles = array(); - foreach ($contents as $file) { - $atts = $file['attribs']; - unset($file['attribs']); - if (count($file)) { - $taskfiles[$atts['name']] = $file; - } - } - $common = new PEAR_Common; - $common->debug = $this->_config->get('verbose'); - $this->_scripts = array(); - foreach ($taskfiles as $name => $tasks) { - if (!isset($filelist[$name])) { - // file was not installed due to installconditions - continue; - } - $atts = $filelist[$name]; - foreach ($tasks as $tag => $raw) { - $taskname = $this->getTask($tag); - $task = &new $taskname($this->_config, $common, PEAR_TASK_INSTALL); - if (!$task->isScript()) { - continue; // scripts are only handled after installation - } - $lastversion = isset($this->_packageInfo['_lastversion']) ? - $this->_packageInfo['_lastversion'] : null; - $task->init($raw, $atts, $lastversion); - $res = $task->startSession($this, $atts['installed_as']); - if (!$res) { - continue; // skip this file - } - if (PEAR::isError($res)) { - return $res; - } - $assign = &$task; - $this->_scripts[] = &$assign; - } - } - if (count($this->_scripts)) { - return true; - } - return false; - } - - function runPostinstallScripts() - { - if ($this->initPostinstallScripts()) { - $ui = &PEAR_Frontend::singleton(); - if ($ui) { - $ui->runPostinstallScripts($this->_scripts, $this); - } - } - } - - - /** - * Convert a recursive set of <dir> and <file> tags into a single <dir> tag with - * <file> tags. - */ - function flattenFilelist() - { - if (isset($this->_packageInfo['bundle'])) { - return; - } - $filelist = array(); - if (isset($this->_packageInfo['contents']['dir']['dir'])) { - $this->_getFlattenedFilelist($filelist, $this->_packageInfo['contents']['dir']); - if (!isset($filelist[1])) { - $filelist = $filelist[0]; - } - $this->_packageInfo['contents']['dir']['file'] = $filelist; - unset($this->_packageInfo['contents']['dir']['dir']); - } else { - // else already flattened but check for baseinstalldir propagation - if (isset($this->_packageInfo['contents']['dir']['attribs']['baseinstalldir'])) { - if (isset($this->_packageInfo['contents']['dir']['file'][0])) { - foreach ($this->_packageInfo['contents']['dir']['file'] as $i => $file) { - if (isset($file['attribs']['baseinstalldir'])) { - continue; - } - $this->_packageInfo['contents']['dir']['file'][$i]['attribs']['baseinstalldir'] - = $this->_packageInfo['contents']['dir']['attribs']['baseinstalldir']; - } - } else { - if (!isset($this->_packageInfo['contents']['dir']['file']['attribs']['baseinstalldir'])) { - $this->_packageInfo['contents']['dir']['file']['attribs']['baseinstalldir'] - = $this->_packageInfo['contents']['dir']['attribs']['baseinstalldir']; - } - } - } - } - } - - /** - * @param array the final flattened file list - * @param array the current directory being processed - * @param string|false any recursively inherited baeinstalldir attribute - * @param string private recursion variable - * @return array - * @access protected - */ - function _getFlattenedFilelist(&$files, $dir, $baseinstall = false, $path = '') - { - if (isset($dir['attribs']) && isset($dir['attribs']['baseinstalldir'])) { - $baseinstall = $dir['attribs']['baseinstalldir']; - } - if (isset($dir['dir'])) { - if (!isset($dir['dir'][0])) { - $dir['dir'] = array($dir['dir']); - } - foreach ($dir['dir'] as $subdir) { - if (!isset($subdir['attribs']) || !isset($subdir['attribs']['name'])) { - $name = '*unknown*'; - } else { - $name = $subdir['attribs']['name']; - } - $newpath = empty($path) ? $name : - $path . '/' . $name; - $this->_getFlattenedFilelist($files, $subdir, - $baseinstall, $newpath); - } - } - if (isset($dir['file'])) { - if (!isset($dir['file'][0])) { - $dir['file'] = array($dir['file']); - } - foreach ($dir['file'] as $file) { - $attrs = $file['attribs']; - $name = $attrs['name']; - if ($baseinstall && !isset($attrs['baseinstalldir'])) { - $attrs['baseinstalldir'] = $baseinstall; - } - $attrs['name'] = empty($path) ? $name : $path . '/' . $name; - $attrs['name'] = preg_replace(array('!\\\\+!', '!/+!'), array('/', '/'), - $attrs['name']); - $file['attribs'] = $attrs; - $files[] = $file; - } - } - } - - function setConfig(&$config) - { - $this->_config = &$config; - $this->_registry = &$config->getRegistry(); - } - - function setLogger(&$logger) - { - if (!is_object($logger) || !method_exists($logger, 'log')) { - return PEAR::raiseError('Logger must be compatible with PEAR_Common::log'); - } - $this->_logger = &$logger; - } - - /** - * WARNING - do not use this function directly unless you know what you're doing - */ - function setDeps($deps) - { - $this->_packageInfo['dependencies'] = $deps; - } - - /** - * WARNING - do not use this function directly unless you know what you're doing - */ - function setCompatible($compat) - { - $this->_packageInfo['compatible'] = $compat; - } - - function setPackagefile($file, $archive = false) - { - $this->_packageFile = $file; - $this->_archiveFile = $archive ? $archive : $file; - } - - /** - * Wrapper to {@link PEAR_ErrorStack::getErrors()} - * @param boolean determines whether to purge the error stack after retrieving - * @return array - */ - function getValidationWarnings($purge = true) - { - return $this->_stack->getErrors($purge); - } - - function getPackageFile() - { - return $this->_packageFile; - } - - function getArchiveFile() - { - return $this->_archiveFile; - } - - - /** - * Directly set the array that defines this packagefile - * - * WARNING: no validation. This should only be performed by internal methods - * inside PEAR or by inputting an array saved from an existing PEAR_PackageFile_v2 - * @param array - */ - function fromArray($pinfo) - { - unset($pinfo['old']); - unset($pinfo['xsdversion']); - $this->_incomplete = false; - $this->_packageInfo = $pinfo; - } - - function isIncomplete() - { - return $this->_incomplete; - } - - /** - * @return array - */ - function toArray($forreg = false) - { - if (!$this->validate(PEAR_VALIDATE_NORMAL)) { - return false; - } - return $this->getArray($forreg); - } - - function getArray($forReg = false) - { - if ($forReg) { - $arr = $this->_packageInfo; - $arr['old'] = array(); - $arr['old']['version'] = $this->getVersion(); - $arr['old']['release_date'] = $this->getDate(); - $arr['old']['release_state'] = $this->getState(); - $arr['old']['release_license'] = $this->getLicense(); - $arr['old']['release_notes'] = $this->getNotes(); - $arr['old']['release_deps'] = $this->getDeps(); - $arr['old']['maintainers'] = $this->getMaintainers(); - $arr['xsdversion'] = '2.0'; - return $arr; - } else { - $info = $this->_packageInfo; - unset($info['dirtree']); - if (isset($info['_lastversion'])) { - unset($info['_lastversion']); - } - if (isset($info['#binarypackage'])) { - unset($info['#binarypackage']); - } - return $info; - } - } - - function packageInfo($field) - { - $arr = $this->getArray(true); - if ($field == 'state') { - return $arr['stability']['release']; - } - if ($field == 'api-version') { - return $arr['version']['api']; - } - if ($field == 'api-state') { - return $arr['stability']['api']; - } - if (isset($arr['old'][$field])) { - if (!is_string($arr['old'][$field])) { - return null; - } - return $arr['old'][$field]; - } - if (isset($arr[$field])) { - if (!is_string($arr[$field])) { - return null; - } - return $arr[$field]; - } - return null; - } - - function getName() - { - return $this->getPackage(); - } - - function getPackage() - { - if (isset($this->_packageInfo['name'])) { - return $this->_packageInfo['name']; - } - return false; - } - - function getChannel() - { - if (isset($this->_packageInfo['uri'])) { - return '__uri'; - } - if (isset($this->_packageInfo['channel'])) { - return strtolower($this->_packageInfo['channel']); - } - return false; - } - - function getUri() - { - if (isset($this->_packageInfo['uri'])) { - return $this->_packageInfo['uri']; - } - return false; - } - - function getExtends() - { - if (isset($this->_packageInfo['extends'])) { - return $this->_packageInfo['extends']; - } - return false; - } - - function getSummary() - { - if (isset($this->_packageInfo['summary'])) { - return $this->_packageInfo['summary']; - } - return false; - } - - function getDescription() - { - if (isset($this->_packageInfo['description'])) { - return $this->_packageInfo['description']; - } - return false; - } - - function getMaintainers($raw = false) - { - if (!isset($this->_packageInfo['lead'])) { - return false; - } - if ($raw) { - $ret = array('lead' => $this->_packageInfo['lead']); - (isset($this->_packageInfo['developer'])) ? - $ret['developer'] = $this->_packageInfo['developer'] :null; - (isset($this->_packageInfo['contributor'])) ? - $ret['contributor'] = $this->_packageInfo['contributor'] :null; - (isset($this->_packageInfo['helper'])) ? - $ret['helper'] = $this->_packageInfo['helper'] :null; - return $ret; - } else { - $ret = array(); - $leads = isset($this->_packageInfo['lead'][0]) ? $this->_packageInfo['lead'] : - array($this->_packageInfo['lead']); - foreach ($leads as $lead) { - $s = $lead; - $s['handle'] = $s['user']; - unset($s['user']); - $s['role'] = 'lead'; - $ret[] = $s; - } - if (isset($this->_packageInfo['developer'])) { - $leads = isset($this->_packageInfo['developer'][0]) ? - $this->_packageInfo['developer'] : - array($this->_packageInfo['developer']); - foreach ($leads as $maintainer) { - $s = $maintainer; - $s['handle'] = $s['user']; - unset($s['user']); - $s['role'] = 'developer'; - $ret[] = $s; - } - } - if (isset($this->_packageInfo['contributor'])) { - $leads = isset($this->_packageInfo['contributor'][0]) ? - $this->_packageInfo['contributor'] : - array($this->_packageInfo['contributor']); - foreach ($leads as $maintainer) { - $s = $maintainer; - $s['handle'] = $s['user']; - unset($s['user']); - $s['role'] = 'contributor'; - $ret[] = $s; - } - } - if (isset($this->_packageInfo['helper'])) { - $leads = isset($this->_packageInfo['helper'][0]) ? - $this->_packageInfo['helper'] : - array($this->_packageInfo['helper']); - foreach ($leads as $maintainer) { - $s = $maintainer; - $s['handle'] = $s['user']; - unset($s['user']); - $s['role'] = 'helper'; - $ret[] = $s; - } - } - return $ret; - } - return false; - } - - function getLeads() - { - if (isset($this->_packageInfo['lead'])) { - return $this->_packageInfo['lead']; - } - return false; - } - - function getDevelopers() - { - if (isset($this->_packageInfo['developer'])) { - return $this->_packageInfo['developer']; - } - return false; - } - - function getContributors() - { - if (isset($this->_packageInfo['contributor'])) { - return $this->_packageInfo['contributor']; - } - return false; - } - - function getHelpers() - { - if (isset($this->_packageInfo['helper'])) { - return $this->_packageInfo['helper']; - } - return false; - } - - function setDate($date) - { - if (!isset($this->_packageInfo['date'])) { - // ensure that the extends tag is set up in the right location - $this->_packageInfo = $this->_insertBefore($this->_packageInfo, - array('time', 'version', - 'stability', 'license', 'notes', 'contents', 'compatible', - 'dependencies', 'providesextension', 'srcpackage', 'srcuri', - 'phprelease', 'extsrcrelease', 'extbinrelease', 'zendextsrcrelease', - 'zendextbinrelease', 'bundle', 'changelog'), array(), 'date'); - } - $this->_packageInfo['date'] = $date; - $this->_isValid = 0; - } - - function setTime($time) - { - $this->_isValid = 0; - if (!isset($this->_packageInfo['time'])) { - // ensure that the time tag is set up in the right location - $this->_packageInfo = $this->_insertBefore($this->_packageInfo, - array('version', - 'stability', 'license', 'notes', 'contents', 'compatible', - 'dependencies', 'providesextension', 'srcpackage', 'srcuri', - 'phprelease', 'extsrcrelease', 'extbinrelease', 'zendextsrcrelease', - 'zendextbinrelease', 'bundle', 'changelog'), $time, 'time'); - } - $this->_packageInfo['time'] = $time; - } - - function getDate() - { - if (isset($this->_packageInfo['date'])) { - return $this->_packageInfo['date']; - } - return false; - } - - function getTime() - { - if (isset($this->_packageInfo['time'])) { - return $this->_packageInfo['time']; - } - return false; - } - - /** - * @param package|api version category to return - */ - function getVersion($key = 'release') - { - if (isset($this->_packageInfo['version'][$key])) { - return $this->_packageInfo['version'][$key]; - } - return false; - } - - function getStability() - { - if (isset($this->_packageInfo['stability'])) { - return $this->_packageInfo['stability']; - } - return false; - } - - function getState($key = 'release') - { - if (isset($this->_packageInfo['stability'][$key])) { - return $this->_packageInfo['stability'][$key]; - } - return false; - } - - function getLicense($raw = false) - { - if (isset($this->_packageInfo['license'])) { - if ($raw) { - return $this->_packageInfo['license']; - } - if (is_array($this->_packageInfo['license'])) { - return $this->_packageInfo['license']['_content']; - } else { - return $this->_packageInfo['license']; - } - } - return false; - } - - function getLicenseLocation() - { - if (!isset($this->_packageInfo['license']) || !is_array($this->_packageInfo['license'])) { - return false; - } - return $this->_packageInfo['license']['attribs']; - } - - function getNotes() - { - if (isset($this->_packageInfo['notes'])) { - return $this->_packageInfo['notes']; - } - return false; - } - - /** - * Return the <usesrole> tag contents, if any - * @return array|false - */ - function getUsesrole() - { - if (isset($this->_packageInfo['usesrole'])) { - return $this->_packageInfo['usesrole']; - } - return false; - } - - /** - * Return the <usestask> tag contents, if any - * @return array|false - */ - function getUsestask() - { - if (isset($this->_packageInfo['usestask'])) { - return $this->_packageInfo['usestask']; - } - return false; - } - - /** - * This should only be used to retrieve filenames and install attributes - */ - function getFilelist($preserve = false) - { - if (isset($this->_packageInfo['filelist']) && !$preserve) { - return $this->_packageInfo['filelist']; - } - $this->flattenFilelist(); - if ($contents = $this->getContents()) { - $ret = array(); - if (!isset($contents['dir'])) { - return false; - } - if (!isset($contents['dir']['file'][0])) { - $contents['dir']['file'] = array($contents['dir']['file']); - } - foreach ($contents['dir']['file'] as $file) { - $name = $file['attribs']['name']; - if (!$preserve) { - $file = $file['attribs']; - } - $ret[$name] = $file; - } - if (!$preserve) { - $this->_packageInfo['filelist'] = $ret; - } - return $ret; - } - return false; - } - - /** - * Return configure options array, if any - * - * @return array|false - */ - function getConfigureOptions() - { - if ($this->getPackageType() != 'extsrc' && $this->getPackageType() != 'zendextsrc') { - return false; - } - $releases = $this->getReleases(); - if (isset($releases[0])) { - $releases = $releases[0]; - } - if (isset($releases['configureoption'])) { - if (!isset($releases['configureoption'][0])) { - $releases['configureoption'] = array($releases['configureoption']); - } - for ($i = 0; $i < count($releases['configureoption']); $i++) { - $releases['configureoption'][$i] = $releases['configureoption'][$i]['attribs']; - } - return $releases['configureoption']; - } - return false; - } - - /** - * This is only used at install-time, after all serialization - * is over. - */ - function resetFilelist() - { - $this->_packageInfo['filelist'] = array(); - } - - /** - * Retrieve a list of files that should be installed on this computer - * @return array - */ - function getInstallationFilelist($forfilecheck = false) - { - $contents = $this->getFilelist(true); - if (isset($contents['dir']['attribs']['baseinstalldir'])) { - $base = $contents['dir']['attribs']['baseinstalldir']; - } - if (isset($this->_packageInfo['bundle'])) { - return PEAR::raiseError( - 'Exception: bundles should be handled in download code only'); - } - $release = $this->getReleases(); - if ($release) { - if (!isset($release[0])) { - if (!isset($release['installconditions']) && !isset($release['filelist'])) { - if ($forfilecheck) { - return $this->getFilelist(); - } - return $contents; - } - $release = array($release); - } - $depchecker = &$this->getPEARDependency2($this->_config, array(), - array('channel' => $this->getChannel(), 'package' => $this->getPackage()), - PEAR_VALIDATE_INSTALLING); - foreach ($release as $instance) { - if (isset($instance['installconditions'])) { - $installconditions = $instance['installconditions']; - if (is_array($installconditions)) { - PEAR::pushErrorHandling(PEAR_ERROR_RETURN); - foreach ($installconditions as $type => $conditions) { - if (!isset($conditions[0])) { - $conditions = array($conditions); - } - foreach ($conditions as $condition) { - $ret = $depchecker->{"validate{$type}Dependency"}($condition); - if (PEAR::isError($ret)) { - PEAR::popErrorHandling(); - continue 3; // skip this release - } - } - } - PEAR::popErrorHandling(); - } - } - // this is the release to use - if (isset($instance['filelist'])) { - // ignore files - if (isset($instance['filelist']['ignore'])) { - $ignore = isset($instance['filelist']['ignore'][0]) ? - $instance['filelist']['ignore'] : - array($instance['filelist']['ignore']); - foreach ($ignore as $ig) { - unset ($contents[$ig['attribs']['name']]); - } - } - // install files as this name - if (isset($instance['filelist']['install'])) { - $installas = isset($instance['filelist']['install'][0]) ? - $instance['filelist']['install'] : - array($instance['filelist']['install']); - foreach ($installas as $as) { - $contents[$as['attribs']['name']]['attribs']['install-as'] = - $as['attribs']['as']; - } - } - } - if ($forfilecheck) { - foreach ($contents as $file => $attrs) { - $contents[$file] = $attrs['attribs']; - } - } - return $contents; - } - } else { // simple release - no installconditions or install-as - if ($forfilecheck) { - return $this->getFilelist(); - } - return $contents; - } - // no releases matched - return PEAR::raiseError('No releases in package.xml matched the existing operating ' . - 'system, extensions installed, or architecture, cannot install'); - } - - /** - * This is only used at install-time, after all serialization - * is over. - * @param string file name - * @param string installed path - */ - function setInstalledAs($file, $path) - { - if ($path) { - return $this->_packageInfo['filelist'][$file]['installed_as'] = $path; - } - unset($this->_packageInfo['filelist'][$file]['installed_as']); - } - - function getInstalledLocation($file) - { - if (isset($this->_packageInfo['filelist'][$file]['installed_as'])) { - return $this->_packageInfo['filelist'][$file]['installed_as']; - } - return false; - } - - /** - * This is only used at install-time, after all serialization - * is over. - */ - function installedFile($file, $atts) - { - if (isset($this->_packageInfo['filelist'][$file])) { - $this->_packageInfo['filelist'][$file] = - array_merge($this->_packageInfo['filelist'][$file], $atts['attribs']); - } else { - $this->_packageInfo['filelist'][$file] = $atts['attribs']; - } - } - - /** - * Retrieve the contents tag - */ - function getContents() - { - if (isset($this->_packageInfo['contents'])) { - return $this->_packageInfo['contents']; - } - return false; - } - - /** - * @param string full path to file - * @param string attribute name - * @param string attribute value - * @param int risky but fast - use this to choose a file based on its position in the list - * of files. Index is zero-based like PHP arrays. - * @return bool success of operation - */ - function setFileAttribute($filename, $attr, $value, $index = false) - { - $this->_isValid = 0; - if (in_array($attr, array('role', 'name', 'baseinstalldir'))) { - $this->_filesValid = false; - } - if ($index !== false && - isset($this->_packageInfo['contents']['dir']['file'][$index]['attribs'])) { - $this->_packageInfo['contents']['dir']['file'][$index]['attribs'][$attr] = $value; - return true; - } - if (!isset($this->_packageInfo['contents']['dir']['file'])) { - return false; - } - $files = $this->_packageInfo['contents']['dir']['file']; - if (!isset($files[0])) { - $files = array($files); - $ind = false; - } else { - $ind = true; - } - foreach ($files as $i => $file) { - if (isset($file['attribs'])) { - if ($file['attribs']['name'] == $filename) { - if ($ind) { - $this->_packageInfo['contents']['dir']['file'][$i]['attribs'][$attr] = $value; - } else { - $this->_packageInfo['contents']['dir']['file']['attribs'][$attr] = $value; - } - return true; - } - } - } - return false; - } - - function setDirtree($path) - { - if (!isset($this->_packageInfo['dirtree'])) { - $this->_packageInfo['dirtree'] = array(); - } - $this->_packageInfo['dirtree'][$path] = true; - } - - function getDirtree() - { - if (isset($this->_packageInfo['dirtree']) && count($this->_packageInfo['dirtree'])) { - return $this->_packageInfo['dirtree']; - } - return false; - } - - function resetDirtree() - { - unset($this->_packageInfo['dirtree']); - } - - /** - * Determines whether this package claims it is compatible with the version of - * the package that has a recommended version dependency - * @param PEAR_PackageFile_v2|PEAR_PackageFile_v1|PEAR_Downloader_Package - * @return boolean - */ - function isCompatible($pf) - { - if (!isset($this->_packageInfo['compatible'])) { - return false; - } - if (!isset($this->_packageInfo['channel'])) { - return false; - } - $me = $pf->getVersion(); - $compatible = $this->_packageInfo['compatible']; - if (!isset($compatible[0])) { - $compatible = array($compatible); - } - $found = false; - foreach ($compatible as $info) { - if (strtolower($info['name']) == strtolower($pf->getPackage())) { - if (strtolower($info['channel']) == strtolower($pf->getChannel())) { - $found = true; - break; - } - } - } - if (!$found) { - return false; - } - if (isset($info['exclude'])) { - if (!isset($info['exclude'][0])) { - $info['exclude'] = array($info['exclude']); - } - foreach ($info['exclude'] as $exclude) { - if (version_compare($me, $exclude, '==')) { - return false; - } - } - } - if (version_compare($me, $info['min'], '>=') && version_compare($me, $info['max'], '<=')) { - return true; - } - return false; - } - - /** - * @return array|false - */ - function getCompatible() - { - if (isset($this->_packageInfo['compatible'])) { - return $this->_packageInfo['compatible']; - } - return false; - } - - function getDependencies() - { - if (isset($this->_packageInfo['dependencies'])) { - return $this->_packageInfo['dependencies']; - } - return false; - } - - function isSubpackageOf($p) - { - return $p->isSubpackage($this); - } - - /** - * Determines whether the passed in package is a subpackage of this package. - * - * No version checking is done, only name verification. - * @param PEAR_PackageFile_v1|PEAR_PackageFile_v2 - * @return bool - */ - function isSubpackage($p) - { - $sub = array(); - if (isset($this->_packageInfo['dependencies']['required']['subpackage'])) { - $sub = $this->_packageInfo['dependencies']['required']['subpackage']; - if (!isset($sub[0])) { - $sub = array($sub); - } - } - if (isset($this->_packageInfo['dependencies']['optional']['subpackage'])) { - $sub1 = $this->_packageInfo['dependencies']['optional']['subpackage']; - if (!isset($sub1[0])) { - $sub1 = array($sub1); - } - $sub = array_merge($sub, $sub1); - } - if (isset($this->_packageInfo['dependencies']['group'])) { - $group = $this->_packageInfo['dependencies']['group']; - if (!isset($group[0])) { - $group = array($group); - } - foreach ($group as $deps) { - if (isset($deps['subpackage'])) { - $sub2 = $deps['subpackage']; - if (!isset($sub2[0])) { - $sub2 = array($sub2); - } - $sub = array_merge($sub, $sub2); - } - } - } - foreach ($sub as $dep) { - if (strtolower($dep['name']) == strtolower($p->getPackage())) { - if (isset($dep['channel'])) { - if (strtolower($dep['channel']) == strtolower($p->getChannel())) { - return true; - } - } else { - if ($dep['uri'] == $p->getURI()) { - return true; - } - } - } - } - return false; - } - - function dependsOn($package, $channel) - { - if (!($deps = $this->getDependencies())) { - return false; - } - foreach (array('package', 'subpackage') as $type) { - foreach (array('required', 'optional') as $needed) { - if (isset($deps[$needed][$type])) { - if (!isset($deps[$needed][$type][0])) { - $deps[$needed][$type] = array($deps[$needed][$type]); - } - foreach ($deps[$needed][$type] as $dep) { - $depchannel = isset($dep['channel']) ? $dep['channel'] : '__uri'; - if (strtolower($dep['name']) == strtolower($package) && - $depchannel == $channel) { - return true; - } - } - } - } - if (isset($deps['group'])) { - if (!isset($deps['group'][0])) { - $dep['group'] = array($deps['group']); - } - foreach ($deps['group'] as $group) { - if (isset($group[$type])) { - if (!is_array($group[$type])) { - $group[$type] = array($group[$type]); - } - foreach ($group[$type] as $dep) { - $depchannel = isset($dep['channel']) ? $dep['channel'] : '__uri'; - if (strtolower($dep['name']) == strtolower($package) && - $depchannel == $channel) { - return true; - } - } - } - } - } - } - return false; - } - - /** - * Get the contents of a dependency group - * @param string - * @return array|false - */ - function getDependencyGroup($name) - { - $name = strtolower($name); - if (!isset($this->_packageInfo['dependencies']['group'])) { - return false; - } - $groups = $this->_packageInfo['dependencies']['group']; - if (!isset($groups[0])) { - $groups = array($groups); - } - foreach ($groups as $group) { - if (strtolower($group['attribs']['name']) == $name) { - return $group; - } - } - return false; - } - - /** - * Retrieve a partial package.xml 1.0 representation of dependencies - * - * a very limited representation of dependencies is returned by this method. - * The <exclude> tag for excluding certain versions of a dependency is - * completely ignored. In addition, dependency groups are ignored, with the - * assumption that all dependencies in dependency groups are also listed in - * the optional group that work with all dependency groups - * @param boolean return package.xml 2.0 <dependencies> tag - * @return array|false - */ - function getDeps($raw = false, $nopearinstaller = false) - { - if (isset($this->_packageInfo['dependencies'])) { - if ($raw) { - return $this->_packageInfo['dependencies']; - } - $ret = array(); - $map = array( - 'php' => 'php', - 'package' => 'pkg', - 'subpackage' => 'pkg', - 'extension' => 'ext', - 'os' => 'os', - 'pearinstaller' => 'pkg', - ); - foreach (array('required', 'optional') as $type) { - $optional = ($type == 'optional') ? 'yes' : 'no'; - if (!isset($this->_packageInfo['dependencies'][$type]) - || empty($this->_packageInfo['dependencies'][$type])) { - continue; - } - foreach ($this->_packageInfo['dependencies'][$type] as $dtype => $deps) { - if ($dtype == 'pearinstaller' && $nopearinstaller) { - continue; - } - if (!isset($deps[0])) { - $deps = array($deps); - } - foreach ($deps as $dep) { - if (!isset($map[$dtype])) { - // no support for arch type - continue; - } - if ($dtype == 'pearinstaller') { - $dep['name'] = 'PEAR'; - $dep['channel'] = 'pear.php.net'; - } - $s = array('type' => $map[$dtype]); - if (isset($dep['channel'])) { - $s['channel'] = $dep['channel']; - } - if (isset($dep['uri'])) { - $s['uri'] = $dep['uri']; - } - if (isset($dep['name'])) { - $s['name'] = $dep['name']; - } - if (isset($dep['conflicts'])) { - $s['rel'] = 'not'; - } else { - if (!isset($dep['min']) && - !isset($dep['max'])) { - $s['rel'] = 'has'; - $s['optional'] = $optional; - } elseif (isset($dep['min']) && - isset($dep['max'])) { - $s['rel'] = 'ge'; - $s1 = $s; - $s1['rel'] = 'le'; - $s['version'] = $dep['min']; - $s1['version'] = $dep['max']; - if (isset($dep['channel'])) { - $s1['channel'] = $dep['channel']; - } - if ($dtype != 'php') { - $s['name'] = $dep['name']; - $s1['name'] = $dep['name']; - } - $s['optional'] = $optional; - $s1['optional'] = $optional; - $ret[] = $s1; - } elseif (isset($dep['min'])) { - if (isset($dep['exclude']) && - $dep['exclude'] == $dep['min']) { - $s['rel'] = 'gt'; - } else { - $s['rel'] = 'ge'; - } - $s['version'] = $dep['min']; - $s['optional'] = $optional; - if ($dtype != 'php') { - $s['name'] = $dep['name']; - } - } elseif (isset($dep['max'])) { - if (isset($dep['exclude']) && - $dep['exclude'] == $dep['max']) { - $s['rel'] = 'lt'; - } else { - $s['rel'] = 'le'; - } - $s['version'] = $dep['max']; - $s['optional'] = $optional; - if ($dtype != 'php') { - $s['name'] = $dep['name']; - } - } - } - $ret[] = $s; - } - } - } - if (count($ret)) { - return $ret; - } - } - return false; - } - - /** - * @return php|extsrc|extbin|zendextsrc|zendextbin|bundle|false - */ - function getPackageType() - { - if (isset($this->_packageInfo['phprelease'])) { - return 'php'; - } - if (isset($this->_packageInfo['extsrcrelease'])) { - return 'extsrc'; - } - if (isset($this->_packageInfo['extbinrelease'])) { - return 'extbin'; - } - if (isset($this->_packageInfo['zendextsrcrelease'])) { - return 'zendextsrc'; - } - if (isset($this->_packageInfo['zendextbinrelease'])) { - return 'zendextbin'; - } - if (isset($this->_packageInfo['bundle'])) { - return 'bundle'; - } - return false; - } - - /** - * @return array|false - */ - function getReleases() - { - $type = $this->getPackageType(); - if ($type != 'bundle') { - $type .= 'release'; - } - if ($this->getPackageType() && isset($this->_packageInfo[$type])) { - return $this->_packageInfo[$type]; - } - return false; - } - - /** - * @return array - */ - function getChangelog() - { - if (isset($this->_packageInfo['changelog'])) { - return $this->_packageInfo['changelog']; - } - return false; - } - - function hasDeps() - { - return isset($this->_packageInfo['dependencies']); - } - - function getPackagexmlVersion() - { - if (isset($this->_packageInfo['zendextsrcrelease'])) { - return '2.1'; - } - if (isset($this->_packageInfo['zendextbinrelease'])) { - return '2.1'; - } - return '2.0'; - } - - /** - * @return array|false - */ - function getSourcePackage() - { - if (isset($this->_packageInfo['extbinrelease']) || - isset($this->_packageInfo['zendextbinrelease'])) { - return array('channel' => $this->_packageInfo['srcchannel'], - 'package' => $this->_packageInfo['srcpackage']); - } - return false; - } - - function getBundledPackages() - { - if (isset($this->_packageInfo['bundle'])) { - return $this->_packageInfo['contents']['bundledpackage']; - } - return false; - } - - function getLastModified() - { - if (isset($this->_packageInfo['_lastmodified'])) { - return $this->_packageInfo['_lastmodified']; - } - return false; - } - - /** - * Get the contents of a file listed within the package.xml - * @param string - * @return string - */ - function getFileContents($file) - { - if ($this->_archiveFile == $this->_packageFile) { // unpacked - $dir = dirname($this->_packageFile); - $file = $dir . DIRECTORY_SEPARATOR . $file; - $file = str_replace(array('/', '\\'), - array(DIRECTORY_SEPARATOR, DIRECTORY_SEPARATOR), $file); - if (file_exists($file) && is_readable($file)) { - return implode('', file($file)); - } - } else { // tgz - $tar = &new Archive_Tar($this->_archiveFile); - $tar->pushErrorHandling(PEAR_ERROR_RETURN); - if ($file != 'package.xml' && $file != 'package2.xml') { - $file = $this->getPackage() . '-' . $this->getVersion() . '/' . $file; - } - $file = $tar->extractInString($file); - $tar->popErrorHandling(); - if (PEAR::isError($file)) { - return PEAR::raiseError("Cannot locate file '$file' in archive"); - } - return $file; - } - } - - function &getRW() - { - if (!class_exists('PEAR_PackageFile_v2_rw')) { - require_once 'PEAR/PackageFile/v2/rw.php'; - } - $a = new PEAR_PackageFile_v2_rw; - foreach (get_object_vars($this) as $name => $unused) { - if (!isset($this->$name)) { - continue; - } - if ($name == '_config' || $name == '_logger'|| $name == '_registry' || - $name == '_stack') { - $a->$name = &$this->$name; - } else { - $a->$name = $this->$name; - } - } - return $a; - } - - function &getDefaultGenerator() - { - if (!class_exists('PEAR_PackageFile_Generator_v2')) { - require_once 'PEAR/PackageFile/Generator/v2.php'; - } - $a = &new PEAR_PackageFile_Generator_v2($this); - return $a; - } - - function analyzeSourceCode($file, $string = false) - { - if (!isset($this->_v2Validator) || - !is_a($this->_v2Validator, 'PEAR_PackageFile_v2_Validator')) { - if (!class_exists('PEAR_PackageFile_v2_Validator')) { - require_once 'PEAR/PackageFile/v2/Validator.php'; - } - $this->_v2Validator = new PEAR_PackageFile_v2_Validator; - } - return $this->_v2Validator->analyzeSourceCode($file, $string); - } - - function validate($state = PEAR_VALIDATE_NORMAL) - { - if (!isset($this->_packageInfo) || !is_array($this->_packageInfo)) { - return false; - } - if (!isset($this->_v2Validator) || - !is_a($this->_v2Validator, 'PEAR_PackageFile_v2_Validator')) { - if (!class_exists('PEAR_PackageFile_v2_Validator')) { - require_once 'PEAR/PackageFile/v2/Validator.php'; - } - $this->_v2Validator = new PEAR_PackageFile_v2_Validator; - } - if (isset($this->_packageInfo['xsdversion'])) { - unset($this->_packageInfo['xsdversion']); - } - return $this->_v2Validator->validate($this, $state); - } - - function getTasksNs() - { - if (!isset($this->_tasksNs)) { - if (isset($this->_packageInfo['attribs'])) { - foreach ($this->_packageInfo['attribs'] as $name => $value) { - if ($value == 'http://pear.php.net/dtd/tasks-1.0') { - $this->_tasksNs = str_replace('xmlns:', '', $name); - break; - } - } - } - } - return $this->_tasksNs; - } - - /** - * Determine whether a task name is a valid task. Custom tasks may be defined - * using subdirectories by putting a "-" in the name, as in <tasks:mycustom-task> - * - * Note that this method will auto-load the task class file and test for the existence - * of the name with "-" replaced by "_" as in PEAR/Task/mycustom/task.php makes class - * PEAR_Task_mycustom_task - * @param string - * @return boolean - */ - function getTask($task) - { - $this->getTasksNs(); - // transform all '-' to '/' and 'tasks:' to '' so tasks:replace becomes replace - $task = str_replace(array($this->_tasksNs . ':', '-'), array('', ' '), $task); - $taskfile = str_replace(' ', '/', ucwords($task)); - $task = str_replace(array(' ', '/'), '_', ucwords($task)); - if (class_exists("PEAR_Task_$task")) { - return "PEAR_Task_$task"; - } - $fp = @fopen("PEAR/Task/$taskfile.php", 'r', true); - if ($fp) { - fclose($fp); - require_once "PEAR/Task/$taskfile.php"; - return "PEAR_Task_$task"; - } - return false; - } - - /** - * Key-friendly array_splice - * @param tagname to splice a value in before - * @param mixed the value to splice in - * @param string the new tag name - */ - function _ksplice($array, $key, $value, $newkey) - { - $offset = array_search($key, array_keys($array)); - $after = array_slice($array, $offset); - $before = array_slice($array, 0, $offset); - $before[$newkey] = $value; - return array_merge($before, $after); - } - - /** - * @param array a list of possible keys, in the order they may occur - * @param mixed contents of the new package.xml tag - * @param string tag name - * @access private - */ - function _insertBefore($array, $keys, $contents, $newkey) - { - foreach ($keys as $key) { - if (isset($array[$key])) { - return $array = $this->_ksplice($array, $key, $contents, $newkey); - } - } - $array[$newkey] = $contents; - return $array; - } - - /** - * @param subsection of {@link $_packageInfo} - * @param array|string tag contents - * @param array format: - * <pre> - * array( - * tagname => array(list of tag names that follow this one), - * childtagname => array(list of child tag names that follow this one), - * ) - * </pre> - * - * This allows construction of nested tags - * @access private - */ - function _mergeTag($manip, $contents, $order) - { - if (count($order)) { - foreach ($order as $tag => $curorder) { - if (!isset($manip[$tag])) { - // ensure that the tag is set up - $manip = $this->_insertBefore($manip, $curorder, array(), $tag); - } - if (count($order) > 1) { - $manip[$tag] = $this->_mergeTag($manip[$tag], $contents, array_slice($order, 1)); - return $manip; - } - } - } else { - return $manip; - } - if (is_array($manip[$tag]) && !empty($manip[$tag]) && isset($manip[$tag][0])) { - $manip[$tag][] = $contents; - } else { - if (!count($manip[$tag])) { - $manip[$tag] = $contents; - } else { - $manip[$tag] = array($manip[$tag]); - $manip[$tag][] = $contents; - } - } - return $manip; - } -} -?> diff --git a/src/vitis/vas/rest/class/PEAR/PackageFile/v2/Validator.php b/src/vitis/vas/rest/class/PEAR/PackageFile/v2/Validator.php deleted file mode 100755 index 10efbbb6..00000000 --- a/src/vitis/vas/rest/class/PEAR/PackageFile/v2/Validator.php +++ /dev/null @@ -1,2116 +0,0 @@ -<?php -/** - * PEAR_PackageFile_v2, package.xml version 2.0, read/write version - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Validator.php,v 1.106 2008/03/28 22:23:41 dufuz Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 1.4.0a8 - */ -/** - * Private validation class used by PEAR_PackageFile_v2 - do not use directly, its - * sole purpose is to split up the PEAR/PackageFile/v2.php file to make it smaller - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 1.4.0a8 - * @access private - */ -class PEAR_PackageFile_v2_Validator -{ - /** - * @var array - */ - var $_packageInfo; - /** - * @var PEAR_PackageFile_v2 - */ - var $_pf; - /** - * @var PEAR_ErrorStack - */ - var $_stack; - /** - * @var int - */ - var $_isValid = 0; - /** - * @var int - */ - var $_filesValid = 0; - /** - * @var int - */ - var $_curState = 0; - /** - * @param PEAR_PackageFile_v2 - * @param int - */ - function validate(&$pf, $state = PEAR_VALIDATE_NORMAL) - { - $this->_pf = &$pf; - $this->_curState = $state; - $this->_packageInfo = $this->_pf->getArray(); - $this->_isValid = $this->_pf->_isValid; - $this->_filesValid = $this->_pf->_filesValid; - $this->_stack = &$pf->_stack; - $this->_stack->getErrors(true); - if (($this->_isValid & $state) == $state) { - return true; - } - if (!isset($this->_packageInfo) || !is_array($this->_packageInfo)) { - return false; - } - if (!isset($this->_packageInfo['attribs']['version']) || - ($this->_packageInfo['attribs']['version'] != '2.0' && - $this->_packageInfo['attribs']['version'] != '2.1') - ) { - $this->_noPackageVersion(); - } - $structure = - array( - 'name', - 'channel|uri', - '*extends', // can't be multiple, but this works fine - 'summary', - 'description', - '+lead', // these all need content checks - '*developer', - '*contributor', - '*helper', - 'date', - '*time', - 'version', - 'stability', - 'license->?uri->?filesource', - 'notes', - 'contents', //special validation needed - '*compatible', - 'dependencies', //special validation needed - '*usesrole', - '*usestask', // reserve these for 1.4.0a1 to implement - // this will allow a package.xml to gracefully say it - // needs a certain package installed in order to implement a role or task - '*providesextension', - '*srcpackage|*srcuri', - '+phprelease|+extsrcrelease|+extbinrelease|' . - '+zendextsrcrelease|+zendextbinrelease|bundle', //special validation needed - '*changelog', - ); - $test = $this->_packageInfo; - if (isset($test['dependencies']) && - isset($test['dependencies']['required']) && - isset($test['dependencies']['required']['pearinstaller']) && - isset($test['dependencies']['required']['pearinstaller']['min']) && - version_compare('1.7.2', - $test['dependencies']['required']['pearinstaller']['min'], '<') - ) { - $this->_pearVersionTooLow($test['dependencies']['required']['pearinstaller']['min']); - return false; - } - // ignore post-installation array fields - if (array_key_exists('filelist', $test)) { - unset($test['filelist']); - } - if (array_key_exists('_lastmodified', $test)) { - unset($test['_lastmodified']); - } - if (array_key_exists('#binarypackage', $test)) { - unset($test['#binarypackage']); - } - if (array_key_exists('old', $test)) { - unset($test['old']); - } - if (array_key_exists('_lastversion', $test)) { - unset($test['_lastversion']); - } - if (!$this->_stupidSchemaValidate($structure, $test, '<package>')) { - return false; - } - if (empty($this->_packageInfo['name'])) { - $this->_tagCannotBeEmpty('name'); - } - $test = isset($this->_packageInfo['uri']) ? 'uri' :'channel'; - if (empty($this->_packageInfo[$test])) { - $this->_tagCannotBeEmpty($test); - } - if (is_array($this->_packageInfo['license']) && - (!isset($this->_packageInfo['license']['_content']) || - empty($this->_packageInfo['license']['_content']))) { - $this->_tagCannotBeEmpty('license'); - } elseif (empty($this->_packageInfo['license'])) { - $this->_tagCannotBeEmpty('license'); - } - if (empty($this->_packageInfo['summary'])) { - $this->_tagCannotBeEmpty('summary'); - } - if (empty($this->_packageInfo['description'])) { - $this->_tagCannotBeEmpty('description'); - } - if (empty($this->_packageInfo['date'])) { - $this->_tagCannotBeEmpty('date'); - } - if (empty($this->_packageInfo['notes'])) { - $this->_tagCannotBeEmpty('notes'); - } - if (isset($this->_packageInfo['time']) && empty($this->_packageInfo['time'])) { - $this->_tagCannotBeEmpty('time'); - } - if (isset($this->_packageInfo['dependencies'])) { - $this->_validateDependencies(); - } - if (isset($this->_packageInfo['compatible'])) { - $this->_validateCompatible(); - } - if (!isset($this->_packageInfo['bundle'])) { - if (empty($this->_packageInfo['contents'])) { - $this->_tagCannotBeEmpty('contents'); - } - if (!isset($this->_packageInfo['contents']['dir'])) { - $this->_filelistMustContainDir('contents'); - return false; - } - if (isset($this->_packageInfo['contents']['file'])) { - $this->_filelistCannotContainFile('contents'); - return false; - } - } - $this->_validateMaintainers(); - $this->_validateStabilityVersion(); - $fail = false; - if (array_key_exists('usesrole', $this->_packageInfo)) { - $roles = $this->_packageInfo['usesrole']; - if (!is_array($roles) || !isset($roles[0])) { - $roles = array($roles); - } - foreach ($roles as $role) { - if (!isset($role['role'])) { - $this->_usesroletaskMustHaveRoleTask('usesrole', 'role'); - $fail = true; - } else { - if (!isset($role['channel'])) { - if (!isset($role['uri'])) { - $this->_usesroletaskMustHaveChannelOrUri($role['role'], 'usesrole'); - $fail = true; - } - } elseif (!isset($role['package'])) { - $this->_usesroletaskMustHavePackage($role['role'], 'usesrole'); - $fail = true; - } - } - } - } - if (array_key_exists('usestask', $this->_packageInfo)) { - $roles = $this->_packageInfo['usestask']; - if (!is_array($roles) || !isset($roles[0])) { - $roles = array($roles); - } - foreach ($roles as $role) { - if (!isset($role['task'])) { - $this->_usesroletaskMustHaveRoleTask('usestask', 'task'); - $fail = true; - } else { - if (!isset($role['channel'])) { - if (!isset($role['uri'])) { - $this->_usesroletaskMustHaveChannelOrUri($role['task'], 'usestask'); - $fail = true; - } - } elseif (!isset($role['package'])) { - $this->_usesroletaskMustHavePackage($role['task'], 'usestask'); - $fail = true; - } - } - } - } - if ($fail) { - return false; - } - $list = $this->_packageInfo['contents']; - if (isset($list['dir']) && is_array($list['dir']) && isset($list['dir'][0])) { - $this->_multipleToplevelDirNotAllowed(); - return $this->_isValid = 0; - } - $this->_validateFilelist(); - $this->_validateRelease(); - if (!$this->_stack->hasErrors()) { - $chan = $this->_pf->_registry->getChannel($this->_pf->getChannel(), true); - if (PEAR::isError($chan)) { - $this->_unknownChannel($this->_pf->getChannel()); - } else { - $valpack = $chan->getValidationPackage(); - // for channel validator packages, always use the default PEAR validator. - // otherwise, they can't be installed or packaged - $validator = $chan->getValidationObject($this->_pf->getPackage()); - if (!$validator) { - $this->_stack->push(__FUNCTION__, 'error', - array_merge( - array('channel' => $chan->getName(), - 'package' => $this->_pf->getPackage()), - $valpack - ), - 'package "%channel%/%package%" cannot be properly validated without ' . - 'validation package "%channel%/%name%-%version%"'); - return $this->_isValid = 0; - } - $validator->setPackageFile($this->_pf); - $validator->validate($state); - $failures = $validator->getFailures(); - foreach ($failures['errors'] as $error) { - $this->_stack->push(__FUNCTION__, 'error', $error, - 'Channel validator error: field "%field%" - %reason%'); - } - foreach ($failures['warnings'] as $warning) { - $this->_stack->push(__FUNCTION__, 'warning', $warning, - 'Channel validator warning: field "%field%" - %reason%'); - } - } - } - $this->_pf->_isValid = $this->_isValid = !$this->_stack->hasErrors('error'); - if ($this->_isValid && $state == PEAR_VALIDATE_PACKAGING && !$this->_filesValid) { - if ($this->_pf->getPackageType() == 'bundle') { - if ($this->_analyzeBundledPackages()) { - $this->_filesValid = $this->_pf->_filesValid = true; - } else { - $this->_pf->_isValid = $this->_isValid = 0; - } - } else { - if (!$this->_analyzePhpFiles()) { - $this->_pf->_isValid = $this->_isValid = 0; - } else { - $this->_filesValid = $this->_pf->_filesValid = true; - } - } - } - if ($this->_isValid) { - return $this->_pf->_isValid = $this->_isValid = $state; - } - return $this->_pf->_isValid = $this->_isValid = 0; - } - - function _stupidSchemaValidate($structure, $xml, $root) - { - if (!is_array($xml)) { - $xml = array(); - } - $keys = array_keys($xml); - reset($keys); - $key = current($keys); - while ($key == 'attribs' || $key == '_contents') { - $key = next($keys); - } - $unfoundtags = $optionaltags = array(); - $ret = true; - $mismatch = false; - foreach ($structure as $struc) { - if ($key) { - $tag = $xml[$key]; - } - $test = $this->_processStructure($struc); - if (isset($test['choices'])) { - $loose = true; - foreach ($test['choices'] as $choice) { - if ($key == $choice['tag']) { - $key = next($keys); - while ($key == 'attribs' || $key == '_contents') { - $key = next($keys); - } - $unfoundtags = $optionaltags = array(); - $mismatch = false; - if ($key && $key != $choice['tag'] && isset($choice['multiple'])) { - $unfoundtags[] = $choice['tag']; - $optionaltags[] = $choice['tag']; - if ($key) { - $mismatch = true; - } - } - $ret &= $this->_processAttribs($choice, $tag, $root); - continue 2; - } else { - $unfoundtags[] = $choice['tag']; - $mismatch = true; - } - if (!isset($choice['multiple']) || $choice['multiple'] != '*') { - $loose = false; - } else { - $optionaltags[] = $choice['tag']; - } - } - if (!$loose) { - $this->_invalidTagOrder($unfoundtags, $key, $root); - return false; - } - } else { - if ($key != $test['tag']) { - if (isset($test['multiple']) && $test['multiple'] != '*') { - $unfoundtags[] = $test['tag']; - $this->_invalidTagOrder($unfoundtags, $key, $root); - return false; - } else { - if ($key) { - $mismatch = true; - } - $unfoundtags[] = $test['tag']; - $optionaltags[] = $test['tag']; - } - if (!isset($test['multiple'])) { - $this->_invalidTagOrder($unfoundtags, $key, $root); - return false; - } - continue; - } else { - $unfoundtags = $optionaltags = array(); - $mismatch = false; - } - $key = next($keys); - while ($key == 'attribs' || $key == '_contents') { - $key = next($keys); - } - if ($key && $key != $test['tag'] && isset($test['multiple'])) { - $unfoundtags[] = $test['tag']; - $optionaltags[] = $test['tag']; - $mismatch = true; - } - $ret &= $this->_processAttribs($test, $tag, $root); - continue; - } - } - if (!$mismatch && count($optionaltags)) { - // don't error out on any optional tags - $unfoundtags = array_diff($unfoundtags, $optionaltags); - } - if (count($unfoundtags)) { - $this->_invalidTagOrder($unfoundtags, $key, $root); - } elseif ($key) { - // unknown tags - $this->_invalidTagOrder('*no tags allowed here*', $key, $root); - while ($key = next($keys)) { - $this->_invalidTagOrder('*no tags allowed here*', $key, $root); - } - } - return $ret; - } - - function _processAttribs($choice, $tag, $context) - { - if (isset($choice['attribs'])) { - if (!is_array($tag)) { - $tag = array($tag); - } - $tags = $tag; - if (!isset($tags[0])) { - $tags = array($tags); - } - $ret = true; - foreach ($tags as $i => $tag) { - if (!is_array($tag) || !isset($tag['attribs'])) { - foreach ($choice['attribs'] as $attrib) { - if ($attrib{0} != '?') { - $ret &= $this->_tagHasNoAttribs($choice['tag'], - $context); - continue 2; - } - } - } - foreach ($choice['attribs'] as $attrib) { - if ($attrib{0} != '?') { - if (!isset($tag['attribs'][$attrib])) { - $ret &= $this->_tagMissingAttribute($choice['tag'], - $attrib, $context); - } - } - } - } - return $ret; - } - return true; - } - - function _processStructure($key) - { - $ret = array(); - if (count($pieces = explode('|', $key)) > 1) { - $ret['choices'] = array(); - foreach ($pieces as $piece) { - $ret['choices'][] = $this->_processStructure($piece); - } - return $ret; - } - $multi = $key{0}; - if ($multi == '+' || $multi == '*') { - $ret['multiple'] = $key{0}; - $key = substr($key, 1); - } - if (count($attrs = explode('->', $key)) > 1) { - $ret['tag'] = array_shift($attrs); - $ret['attribs'] = $attrs; - } else { - $ret['tag'] = $key; - } - return $ret; - } - - function _validateStabilityVersion() - { - $structure = array('release', 'api'); - $a = $this->_stupidSchemaValidate($structure, $this->_packageInfo['version'], '<version>'); - $a &= $this->_stupidSchemaValidate($structure, $this->_packageInfo['stability'], '<stability>'); - if ($a) { - if (!preg_match('/^\d+(?:\.\d+)*(?:[a-zA-Z]+\d*)?\\z/', - $this->_packageInfo['version']['release'])) { - $this->_invalidVersion('release', $this->_packageInfo['version']['release']); - } - if (!preg_match('/^\d+(?:\.\d+)*(?:[a-zA-Z]+\d*)?\\z/', - $this->_packageInfo['version']['api'])) { - $this->_invalidVersion('api', $this->_packageInfo['version']['api']); - } - if (!in_array($this->_packageInfo['stability']['release'], - array('snapshot', 'devel', 'alpha', 'beta', 'stable'))) { - $this->_invalidState('release', $this->_packageInfo['stability']['release']); - } - if (!in_array($this->_packageInfo['stability']['api'], - array('devel', 'alpha', 'beta', 'stable'))) { - $this->_invalidState('api', $this->_packageInfo['stability']['api']); - } - } - } - - function _validateMaintainers() - { - $structure = - array( - 'name', - 'user', - 'email', - 'active', - ); - foreach (array('lead', 'developer', 'contributor', 'helper') as $type) { - if (!isset($this->_packageInfo[$type])) { - continue; - } - if (isset($this->_packageInfo[$type][0])) { - foreach ($this->_packageInfo[$type] as $lead) { - $this->_stupidSchemaValidate($structure, $lead, '<' . $type . '>'); - } - } else { - $this->_stupidSchemaValidate($structure, $this->_packageInfo[$type], - '<' . $type . '>'); - } - } - } - - function _validatePhpDep($dep, $installcondition = false) - { - $structure = array( - 'min', - '*max', - '*exclude', - ); - $type = $installcondition ? '<installcondition><php>' : '<dependencies><required><php>'; - $this->_stupidSchemaValidate($structure, $dep, $type); - if (isset($dep['min'])) { - if (!preg_match('/^\d+(?:\.\d+)*(?:[a-zA-Z]+\d*)?(?:-[a-zA-Z0-9]+)?\\z/', - $dep['min'])) { - $this->_invalidVersion($type . '<min>', $dep['min']); - } - } - if (isset($dep['max'])) { - if (!preg_match('/^\d+(?:\.\d+)*(?:[a-zA-Z]+\d*)?(?:-[a-zA-Z0-9]+)?\\z/', - $dep['max'])) { - $this->_invalidVersion($type . '<max>', $dep['max']); - } - } - if (isset($dep['exclude'])) { - if (!is_array($dep['exclude'])) { - $dep['exclude'] = array($dep['exclude']); - } - foreach ($dep['exclude'] as $exclude) { - if (!preg_match( - '/^\d+(?:\.\d+)*(?:[a-zA-Z]+\d*)?(?:-[a-zA-Z0-9]+)?\\z/', - $exclude)) { - $this->_invalidVersion($type . '<exclude>', $exclude); - } - } - } - } - - function _validatePearinstallerDep($dep) - { - $structure = array( - 'min', - '*max', - '*recommended', - '*exclude', - ); - $this->_stupidSchemaValidate($structure, $dep, '<dependencies><required><pearinstaller>'); - if (isset($dep['min'])) { - if (!preg_match('/^\d+(?:\.\d+)*(?:[a-zA-Z]+\d*)?\\z/', - $dep['min'])) { - $this->_invalidVersion('<dependencies><required><pearinstaller><min>', - $dep['min']); - } - } - if (isset($dep['max'])) { - if (!preg_match('/^\d+(?:\.\d+)*(?:[a-zA-Z]+\d*)?\\z/', - $dep['max'])) { - $this->_invalidVersion('<dependencies><required><pearinstaller><max>', - $dep['max']); - } - } - if (isset($dep['recommended'])) { - if (!preg_match('/^\d+(?:\.\d+)*(?:[a-zA-Z]+\d*)?\\z/', - $dep['recommended'])) { - $this->_invalidVersion('<dependencies><required><pearinstaller><recommended>', - $dep['recommended']); - } - } - if (isset($dep['exclude'])) { - if (!is_array($dep['exclude'])) { - $dep['exclude'] = array($dep['exclude']); - } - foreach ($dep['exclude'] as $exclude) { - if (!preg_match('/^\d+(?:\.\d+)*(?:[a-zA-Z]+\d*)?\\z/', - $exclude)) { - $this->_invalidVersion('<dependencies><required><pearinstaller><exclude>', - $exclude); - } - } - } - } - - function _validatePackageDep($dep, $group, $type = '<package>') - { - if (isset($dep['uri'])) { - if (isset($dep['conflicts'])) { - $structure = array( - 'name', - 'uri', - 'conflicts', - '*providesextension', - ); - } else { - $structure = array( - 'name', - 'uri', - '*providesextension', - ); - } - } else { - if (isset($dep['conflicts'])) { - $structure = array( - 'name', - 'channel', - '*min', - '*max', - '*exclude', - 'conflicts', - '*providesextension', - ); - } else { - $structure = array( - 'name', - 'channel', - '*min', - '*max', - '*recommended', - '*exclude', - '*nodefault', - '*providesextension', - ); - } - } - if (isset($dep['name'])) { - $type .= '<name>' . $dep['name'] . '</name>'; - } - $this->_stupidSchemaValidate($structure, $dep, '<dependencies>' . $group . $type); - if (isset($dep['uri']) && (isset($dep['min']) || isset($dep['max']) || - isset($dep['recommended']) || isset($dep['exclude']))) { - $this->_uriDepsCannotHaveVersioning('<dependencies>' . $group . $type); - } - if (isset($dep['channel']) && strtolower($dep['channel']) == '__uri') { - $this->_DepchannelCannotBeUri('<dependencies>' . $group . $type); - } - if (isset($dep['min'])) { - if (!preg_match('/^\d+(?:\.\d+)*(?:[a-zA-Z]+\d*)?\\z/', - $dep['min'])) { - $this->_invalidVersion('<dependencies>' . $group . $type . '<min>', $dep['min']); - } - } - if (isset($dep['max'])) { - if (!preg_match('/^\d+(?:\.\d+)*(?:[a-zA-Z]+\d*)?\\z/', - $dep['max'])) { - $this->_invalidVersion('<dependencies>' . $group . $type . '<max>', $dep['max']); - } - } - if (isset($dep['recommended'])) { - if (!preg_match('/^\d+(?:\.\d+)*(?:[a-zA-Z]+\d*)?\\z/', - $dep['recommended'])) { - $this->_invalidVersion('<dependencies>' . $group . $type . '<recommended>', - $dep['recommended']); - } - } - if (isset($dep['exclude'])) { - if (!is_array($dep['exclude'])) { - $dep['exclude'] = array($dep['exclude']); - } - foreach ($dep['exclude'] as $exclude) { - if (!preg_match('/^\d+(?:\.\d+)*(?:[a-zA-Z]+\d*)?\\z/', - $exclude)) { - $this->_invalidVersion('<dependencies>' . $group . $type . '<exclude>', - $exclude); - } - } - } - } - - function _validateSubpackageDep($dep, $group) - { - $this->_validatePackageDep($dep, $group, '<subpackage>'); - if (isset($dep['providesextension'])) { - $this->_subpackageCannotProvideExtension(isset($dep['name']) ? $dep['name'] : ''); - } - if (isset($dep['conflicts'])) { - $this->_subpackagesCannotConflict(isset($dep['name']) ? $dep['name'] : ''); - } - } - - function _validateExtensionDep($dep, $group = false, $installcondition = false) - { - if (isset($dep['conflicts'])) { - $structure = array( - 'name', - '*min', - '*max', - '*exclude', - 'conflicts', - ); - } else { - $structure = array( - 'name', - '*min', - '*max', - '*recommended', - '*exclude', - ); - } - if ($installcondition) { - $type = '<installcondition><extension>'; - } else { - $type = '<dependencies>' . $group . '<extension>'; - } - if (isset($dep['name'])) { - $type .= '<name>' . $dep['name'] . '</name>'; - } - $this->_stupidSchemaValidate($structure, $dep, $type); - if (isset($dep['min'])) { - if (!preg_match('/^\d+(?:\.\d+)*(?:[a-zA-Z]+\d*)?\\z/', - $dep['min'])) { - $this->_invalidVersion(substr($type, 1) . '<min', $dep['min']); - } - } - if (isset($dep['max'])) { - if (!preg_match('/^\d+(?:\.\d+)*(?:[a-zA-Z]+\d*)?\\z/', - $dep['max'])) { - $this->_invalidVersion(substr($type, 1) . '<max', $dep['max']); - } - } - if (isset($dep['recommended'])) { - if (!preg_match('/^\d+(?:\.\d+)*(?:[a-zA-Z]+\d*)?\\z/', - $dep['recommended'])) { - $this->_invalidVersion(substr($type, 1) . '<recommended', $dep['recommended']); - } - } - if (isset($dep['exclude'])) { - if (!is_array($dep['exclude'])) { - $dep['exclude'] = array($dep['exclude']); - } - foreach ($dep['exclude'] as $exclude) { - if (!preg_match('/^\d+(?:\.\d+)*(?:[a-zA-Z]+\d*)?\\z/', - $exclude)) { - $this->_invalidVersion(substr($type, 1) . '<exclude', $exclude); - } - } - } - } - - function _validateOsDep($dep, $installcondition = false) - { - $structure = array( - 'name', - '*conflicts', - ); - $type = $installcondition ? '<installcondition><os>' : '<dependencies><required><os>'; - if ($this->_stupidSchemaValidate($structure, $dep, $type)) { - if ($dep['name'] == '*') { - if (array_key_exists('conflicts', $dep)) { - $this->_cannotConflictWithAllOs($type); - } - } - } - } - - function _validateArchDep($dep, $installcondition = false) - { - $structure = array( - 'pattern', - '*conflicts', - ); - $type = $installcondition ? '<installcondition><arch>' : '<dependencies><required><arch>'; - $this->_stupidSchemaValidate($structure, $dep, $type); - } - - function _validateInstallConditions($cond, $release) - { - $structure = array( - '*php', - '*extension', - '*os', - '*arch', - ); - if (!$this->_stupidSchemaValidate($structure, - $cond, $release)) { - return false; - } - foreach (array('php', 'extension', 'os', 'arch') as $type) { - if (isset($cond[$type])) { - $iter = $cond[$type]; - if (!is_array($iter) || !isset($iter[0])) { - $iter = array($iter); - } - foreach ($iter as $package) { - if ($type == 'extension') { - $this->{"_validate{$type}Dep"}($package, false, true); - } else { - $this->{"_validate{$type}Dep"}($package, true); - } - } - } - } - } - - function _validateDependencies() - { - $structure = array( - 'required', - '*optional', - '*group->name->hint' - ); - if (!$this->_stupidSchemaValidate($structure, - $this->_packageInfo['dependencies'], '<dependencies>')) { - return false; - } - foreach (array('required', 'optional') as $simpledep) { - if (isset($this->_packageInfo['dependencies'][$simpledep])) { - if ($simpledep == 'optional') { - $structure = array( - '*package', - '*subpackage', - '*extension', - ); - } else { - $structure = array( - 'php', - 'pearinstaller', - '*package', - '*subpackage', - '*extension', - '*os', - '*arch', - ); - } - if ($this->_stupidSchemaValidate($structure, - $this->_packageInfo['dependencies'][$simpledep], - "<dependencies><$simpledep>")) { - foreach (array('package', 'subpackage', 'extension') as $type) { - if (isset($this->_packageInfo['dependencies'][$simpledep][$type])) { - $iter = $this->_packageInfo['dependencies'][$simpledep][$type]; - if (!isset($iter[0])) { - $iter = array($iter); - } - foreach ($iter as $package) { - if ($type != 'extension') { - if (isset($package['uri'])) { - if (isset($package['channel'])) { - $this->_UrlOrChannel($type, - $package['name']); - } - } else { - if (!isset($package['channel'])) { - $this->_NoChannel($type, $package['name']); - } - } - } - $this->{"_validate{$type}Dep"}($package, "<$simpledep>"); - } - } - } - if ($simpledep == 'optional') { - continue; - } - foreach (array('php', 'pearinstaller', 'os', 'arch') as $type) { - if (isset($this->_packageInfo['dependencies'][$simpledep][$type])) { - $iter = $this->_packageInfo['dependencies'][$simpledep][$type]; - if (!isset($iter[0])) { - $iter = array($iter); - } - foreach ($iter as $package) { - $this->{"_validate{$type}Dep"}($package); - } - } - } - } - } - } - if (isset($this->_packageInfo['dependencies']['group'])) { - $groups = $this->_packageInfo['dependencies']['group']; - if (!isset($groups[0])) { - $groups = array($groups); - } - $structure = array( - '*package', - '*subpackage', - '*extension', - ); - foreach ($groups as $group) { - if ($this->_stupidSchemaValidate($structure, $group, '<group>')) { - if (!PEAR_Validate::validGroupName($group['attribs']['name'])) { - $this->_invalidDepGroupName($group['attribs']['name']); - } - foreach (array('package', 'subpackage', 'extension') as $type) { - if (isset($group[$type])) { - $iter = $group[$type]; - if (!isset($iter[0])) { - $iter = array($iter); - } - foreach ($iter as $package) { - if ($type != 'extension') { - if (isset($package['uri'])) { - if (isset($package['channel'])) { - $this->_UrlOrChannelGroup($type, - $package['name'], - $group['name']); - } - } else { - if (!isset($package['channel'])) { - $this->_NoChannelGroup($type, - $package['name'], - $group['name']); - } - } - } - $this->{"_validate{$type}Dep"}($package, '<group name="' . - $group['attribs']['name'] . '">'); - } - } - } - } - } - } - } - - function _validateCompatible() - { - $compat = $this->_packageInfo['compatible']; - if (!isset($compat[0])) { - $compat = array($compat); - } - $required = array('name', 'channel', 'min', 'max', '*exclude'); - foreach ($compat as $package) { - $type = '<compatible>'; - if (is_array($package) && array_key_exists('name', $package)) { - $type .= '<name>' . $package['name'] . '</name>'; - } - $this->_stupidSchemaValidate($required, $package, $type); - if (is_array($package) && array_key_exists('min', $package)) { - if (!preg_match('/^\d+(?:\.\d+)*(?:[a-zA-Z]+\d*)?\\z/', - $package['min'])) { - $this->_invalidVersion(substr($type, 1) . '<min', $package['min']); - } - } - if (is_array($package) && array_key_exists('max', $package)) { - if (!preg_match('/^\d+(?:\.\d+)*(?:[a-zA-Z]+\d*)?\\z/', - $package['max'])) { - $this->_invalidVersion(substr($type, 1) . '<max', $package['max']); - } - } - if (is_array($package) && array_key_exists('exclude', $package)) { - if (!is_array($package['exclude'])) { - $package['exclude'] = array($package['exclude']); - } - foreach ($package['exclude'] as $exclude) { - if (!preg_match('/^\d+(?:\.\d+)*(?:[a-zA-Z]+\d*)?\\z/', - $exclude)) { - $this->_invalidVersion(substr($type, 1) . '<exclude', $exclude); - } - } - } - } - } - - function _validateBundle($list) - { - if (!is_array($list) || !isset($list['bundledpackage'])) { - return $this->_NoBundledPackages(); - } - if (!is_array($list['bundledpackage']) || !isset($list['bundledpackage'][0])) { - return $this->_AtLeast2BundledPackages(); - } - foreach ($list['bundledpackage'] as $package) { - if (!is_string($package)) { - $this->_bundledPackagesMustBeFilename(); - } - } - } - - function _validateFilelist($list = false, $allowignore = false, $dirs = '') - { - $iscontents = false; - if (!$list) { - $iscontents = true; - $list = $this->_packageInfo['contents']; - if (isset($this->_packageInfo['bundle'])) { - return $this->_validateBundle($list); - } - } - if ($allowignore) { - $struc = array( - '*install->name->as', - '*ignore->name' - ); - } else { - $struc = array( - '*dir->name->?baseinstalldir', - '*file->name->role->?baseinstalldir->?md5sum' - ); - if (isset($list['dir']) && isset($list['file'])) { - // stave off validation errors without requiring a set order. - $_old = $list; - if (isset($list['attribs'])) { - $list = array('attribs' => $_old['attribs']); - } - $list['dir'] = $_old['dir']; - $list['file'] = $_old['file']; - } - } - if (!isset($list['attribs']) || !isset($list['attribs']['name'])) { - $unknown = $allowignore ? '<filelist>' : '<dir name="*unknown*">'; - $dirname = $iscontents ? '<contents>' : $unknown; - } else { - $dirname = '<dir name="' . $list['attribs']['name'] . '">'; - if (preg_match('~/\.\.?(/|\\z)|^\.\.?/~', - str_replace('\\', '/', $list['attribs']['name']))) { - // file contains .. parent directory or . cur directory - $this->_invalidDirName($list['attribs']['name']); - } - } - $res = $this->_stupidSchemaValidate($struc, $list, $dirname); - if ($allowignore && $res) { - $ignored_or_installed = array(); - $this->_pf->getFilelist(); - $fcontents = $this->_pf->getContents(); - $filelist = array(); - if (!isset($fcontents['dir']['file'][0])) { - $fcontents['dir']['file'] = array($fcontents['dir']['file']); - } - foreach ($fcontents['dir']['file'] as $file) { - $filelist[$file['attribs']['name']] = true; - } - if (isset($list['install'])) { - if (!isset($list['install'][0])) { - $list['install'] = array($list['install']); - } - foreach ($list['install'] as $file) { - if (!isset($filelist[$file['attribs']['name']])) { - $this->_notInContents($file['attribs']['name'], 'install'); - continue; - } - if (array_key_exists($file['attribs']['name'], $ignored_or_installed)) { - $this->_multipleInstallAs($file['attribs']['name']); - } - if (!isset($ignored_or_installed[$file['attribs']['name']])) { - $ignored_or_installed[$file['attribs']['name']] = array(); - } - $ignored_or_installed[$file['attribs']['name']][] = 1; - if (preg_match('~/\.\.?(/|\\z)|^\.\.?/~', - str_replace('\\', '/', $file['attribs']['as']))) { - // file contains .. parent directory or . cur directory references - $this->_invalidFileInstallAs($file['attribs']['name'], - $file['attribs']['as']); - } - } - } - if (isset($list['ignore'])) { - if (!isset($list['ignore'][0])) { - $list['ignore'] = array($list['ignore']); - } - foreach ($list['ignore'] as $file) { - if (!isset($filelist[$file['attribs']['name']])) { - $this->_notInContents($file['attribs']['name'], 'ignore'); - continue; - } - if (array_key_exists($file['attribs']['name'], $ignored_or_installed)) { - $this->_ignoreAndInstallAs($file['attribs']['name']); - } - } - } - } - if (!$allowignore && isset($list['file'])) { - if (is_string($list['file'])) { - $this->_oldStyleFileNotAllowed(); - return false; - } - if (!isset($list['file'][0])) { - // single file - $list['file'] = array($list['file']); - } - foreach ($list['file'] as $i => $file) - { - if (isset($file['attribs']) && isset($file['attribs']['name'])) { - if ($file['attribs']['name']{0} == '.' && - $file['attribs']['name']{1} == '/') { - // name is something like "./doc/whatever.txt" - $this->_invalidFileName($file['attribs']['name'], $dirname); - } - if (preg_match('~/\.\.?(/|\\z)|^\.\.?/~', - str_replace('\\', '/', $file['attribs']['name']))) { - // file contains .. parent directory or . cur directory - $this->_invalidFileName($file['attribs']['name'], $dirname); - } - } - if (isset($file['attribs']) && isset($file['attribs']['role'])) { - if (!$this->_validateRole($file['attribs']['role'])) { - if (isset($this->_packageInfo['usesrole'])) { - $roles = $this->_packageInfo['usesrole']; - if (!isset($roles[0])) { - $roles = array($roles); - } - foreach ($roles as $role) { - if ($role['role'] = $file['attribs']['role']) { - $msg = 'This package contains role "%role%" and requires ' . - 'package "%package%" to be used'; - if (isset($role['uri'])) { - $params = array('role' => $role['role'], - 'package' => $role['uri']); - } else { - $params = array('role' => $role['role'], - 'package' => $this->_pf->_registry-> - parsedPackageNameToString(array('package' => - $role['package'], 'channel' => $role['channel']), - true)); - } - $this->_stack->push('_mustInstallRole', 'error', $params, $msg); - } - } - } - $this->_invalidFileRole($file['attribs']['name'], - $dirname, $file['attribs']['role']); - } - } - if (!isset($file['attribs'])) { - continue; - } - $save = $file['attribs']; - if ($dirs) { - $save['name'] = $dirs . '/' . $save['name']; - } - unset($file['attribs']); - if (count($file) && $this->_curState != PEAR_VALIDATE_DOWNLOADING) { // has tasks - foreach ($file as $task => $value) { - if ($tagClass = $this->_pf->getTask($task)) { - if (!is_array($value) || !isset($value[0])) { - $value = array($value); - } - foreach ($value as $v) { - $ret = call_user_func(array($tagClass, 'validateXml'), - $this->_pf, $v, $this->_pf->_config, $save); - if (is_array($ret)) { - $this->_invalidTask($task, $ret, isset($save['name']) ? - $save['name'] : ''); - } - } - } else { - if (isset($this->_packageInfo['usestask'])) { - $roles = $this->_packageInfo['usestask']; - if (!isset($roles[0])) { - $roles = array($roles); - } - foreach ($roles as $role) { - if ($role['task'] = $task) { - $msg = 'This package contains task "%task%" and requires ' . - 'package "%package%" to be used'; - if (isset($role['uri'])) { - $params = array('task' => $role['task'], - 'package' => $role['uri']); - } else { - $params = array('task' => $role['task'], - 'package' => $this->_pf->_registry-> - parsedPackageNameToString(array('package' => - $role['package'], 'channel' => $role['channel']), - true)); - } - $this->_stack->push('_mustInstallTask', 'error', - $params, $msg); - } - } - } - $this->_unknownTask($task, $save['name']); - } - } - } - } - } - if (isset($list['ignore'])) { - if (!$allowignore) { - $this->_ignoreNotAllowed('ignore'); - } - } - if (isset($list['install'])) { - if (!$allowignore) { - $this->_ignoreNotAllowed('install'); - } - } - if (isset($list['file'])) { - if ($allowignore) { - $this->_fileNotAllowed('file'); - } - } - if (isset($list['dir'])) { - if ($allowignore) { - $this->_fileNotAllowed('dir'); - } else { - if (!isset($list['dir'][0])) { - $list['dir'] = array($list['dir']); - } - foreach ($list['dir'] as $dir) { - if (isset($dir['attribs']) && isset($dir['attribs']['name'])) { - if ($dir['attribs']['name'] == '/' || - !isset($this->_packageInfo['contents']['dir']['dir'])) { - // always use nothing if the filelist has already been flattened - $newdirs = ''; - } elseif ($dirs == '') { - $newdirs = $dir['attribs']['name']; - } else { - $newdirs = $dirs . '/' . $dir['attribs']['name']; - } - } else { - $newdirs = $dirs; - } - $this->_validateFilelist($dir, $allowignore, $newdirs); - } - } - } - } - - function _validateRelease() - { - if (isset($this->_packageInfo['phprelease'])) { - $release = 'phprelease'; - if (isset($this->_packageInfo['providesextension'])) { - $this->_cannotProvideExtension($release); - } - if (isset($this->_packageInfo['srcpackage']) || isset($this->_packageInfo['srcuri'])) { - $this->_cannotHaveSrcpackage($release); - } - $releases = $this->_packageInfo['phprelease']; - if (!is_array($releases)) { - return true; - } - if (!isset($releases[0])) { - $releases = array($releases); - } - foreach ($releases as $rel) { - $this->_stupidSchemaValidate(array( - '*installconditions', - '*filelist', - ), $rel, '<phprelease>'); - } - } - foreach (array('', 'zend') as $prefix) { - $releasetype = $prefix . 'extsrcrelease'; - if (isset($this->_packageInfo[$releasetype])) { - $release = $releasetype; - if (!isset($this->_packageInfo['providesextension'])) { - $this->_mustProvideExtension($release); - } - if (isset($this->_packageInfo['srcpackage']) || isset($this->_packageInfo['srcuri'])) { - $this->_cannotHaveSrcpackage($release); - } - $releases = $this->_packageInfo[$releasetype]; - if (!is_array($releases)) { - return true; - } - if (!isset($releases[0])) { - $releases = array($releases); - } - foreach ($releases as $rel) { - $this->_stupidSchemaValidate(array( - '*installconditions', - '*configureoption->name->prompt->?default', - '*binarypackage', - '*filelist', - ), $rel, '<' . $releasetype . '>'); - if (isset($rel['binarypackage'])) { - if (!is_array($rel['binarypackage']) || !isset($rel['binarypackage'][0])) { - $rel['binarypackage'] = array($rel['binarypackage']); - } - foreach ($rel['binarypackage'] as $bin) { - if (!is_string($bin)) { - $this->_binaryPackageMustBePackagename(); - } - } - } - } - } - $releasetype = 'extbinrelease'; - if (isset($this->_packageInfo[$releasetype])) { - $release = $releasetype; - if (!isset($this->_packageInfo['providesextension'])) { - $this->_mustProvideExtension($release); - } - if (isset($this->_packageInfo['channel']) && - !isset($this->_packageInfo['srcpackage'])) { - $this->_mustSrcPackage($release); - } - if (isset($this->_packageInfo['uri']) && !isset($this->_packageInfo['srcuri'])) { - $this->_mustSrcuri($release); - } - $releases = $this->_packageInfo[$releasetype]; - if (!is_array($releases)) { - return true; - } - if (!isset($releases[0])) { - $releases = array($releases); - } - foreach ($releases as $rel) { - $this->_stupidSchemaValidate(array( - '*installconditions', - '*filelist', - ), $rel, '<' . $releasetype . '>'); - } - } - } - if (isset($this->_packageInfo['bundle'])) { - $release = 'bundle'; - if (isset($this->_packageInfo['providesextension'])) { - $this->_cannotProvideExtension($release); - } - if (isset($this->_packageInfo['srcpackage']) || isset($this->_packageInfo['srcuri'])) { - $this->_cannotHaveSrcpackage($release); - } - $releases = $this->_packageInfo['bundle']; - if (!is_array($releases) || !isset($releases[0])) { - $releases = array($releases); - } - foreach ($releases as $rel) { - $this->_stupidSchemaValidate(array( - '*installconditions', - '*filelist', - ), $rel, '<bundle>'); - } - } - foreach ($releases as $rel) { - if (is_array($rel) && array_key_exists('installconditions', $rel)) { - $this->_validateInstallConditions($rel['installconditions'], - "<$release><installconditions>"); - } - if (is_array($rel) && array_key_exists('filelist', $rel)) { - if ($rel['filelist']) { - - $this->_validateFilelist($rel['filelist'], true); - } - } - } - } - - /** - * This is here to allow role extension through plugins - * @param string - */ - function _validateRole($role) - { - return in_array($role, PEAR_Installer_Role::getValidRoles($this->_pf->getPackageType())); - } - - function _pearVersionTooLow($version) - { - $this->_stack->push(__FUNCTION__, 'error', - array('version' => $version), - 'This package.xml requires PEAR version %version% to parse properly, we are ' . - 'version 1.7.2'); - } - - function _invalidTagOrder($oktags, $actual, $root) - { - $this->_stack->push(__FUNCTION__, 'error', - array('oktags' => $oktags, 'actual' => $actual, 'root' => $root), - 'Invalid tag order in %root%, found <%actual%> expected one of "%oktags%"'); - } - - function _ignoreNotAllowed($type) - { - $this->_stack->push(__FUNCTION__, 'error', array('type' => $type), - '<%type%> is not allowed inside global <contents>, only inside ' . - '<phprelease>/<extbinrelease>/<zendextbinrelease>, use <dir> and <file> only'); - } - - function _fileNotAllowed($type) - { - $this->_stack->push(__FUNCTION__, 'error', array('type' => $type), - '<%type%> is not allowed inside release <filelist>, only inside ' . - '<contents>, use <ignore> and <install> only'); - } - - function _oldStyleFileNotAllowed() - { - $this->_stack->push(__FUNCTION__, 'error', array(), - 'Old-style <file>name</file> is not allowed. Use' . - '<file name="name" role="role"/>'); - } - - function _tagMissingAttribute($tag, $attr, $context) - { - $this->_stack->push(__FUNCTION__, 'error', array('tag' => $tag, - 'attribute' => $attr, 'context' => $context), - 'tag <%tag%> in context "%context%" has no attribute "%attribute%"'); - } - - function _tagHasNoAttribs($tag, $context) - { - $this->_stack->push(__FUNCTION__, 'error', array('tag' => $tag, - 'context' => $context), - 'tag <%tag%> has no attributes in context "%context%"'); - } - - function _invalidInternalStructure() - { - $this->_stack->push(__FUNCTION__, 'exception', array(), - 'internal array was not generated by compatible parser, or extreme parser error, cannot continue'); - } - - function _invalidFileRole($file, $dir, $role) - { - $this->_stack->push(__FUNCTION__, 'error', array( - 'file' => $file, 'dir' => $dir, 'role' => $role, - 'roles' => PEAR_Installer_Role::getValidRoles($this->_pf->getPackageType())), - 'File "%file%" in directory "%dir%" has invalid role "%role%", should be one of %roles%'); - } - - function _invalidFileName($file, $dir) - { - $this->_stack->push(__FUNCTION__, 'error', array( - 'file' => $file), - 'File "%file%" in directory "%dir%" cannot begin with "./" or contain ".."'); - } - - function _invalidFileInstallAs($file, $as) - { - $this->_stack->push(__FUNCTION__, 'error', array( - 'file' => $file, 'as' => $as), - 'File "%file%" <install as="%as%"/> cannot contain "./" or contain ".."'); - } - - function _invalidDirName($dir) - { - $this->_stack->push(__FUNCTION__, 'error', array( - 'dir' => $file), - 'Directory "%dir%" cannot begin with "./" or contain ".."'); - } - - function _filelistCannotContainFile($filelist) - { - $this->_stack->push(__FUNCTION__, 'error', array('tag' => $filelist), - '<%tag%> can only contain <dir>, contains <file>. Use ' . - '<dir name="/"> as the first dir element'); - } - - function _filelistMustContainDir($filelist) - { - $this->_stack->push(__FUNCTION__, 'error', array('tag' => $filelist), - '<%tag%> must contain <dir>. Use <dir name="/"> as the ' . - 'first dir element'); - } - - function _tagCannotBeEmpty($tag) - { - $this->_stack->push(__FUNCTION__, 'error', array('tag' => $tag), - '<%tag%> cannot be empty (<%tag%/>)'); - } - - function _UrlOrChannel($type, $name) - { - $this->_stack->push(__FUNCTION__, 'error', array('type' => $type, - 'name' => $name), - 'Required dependency <%type%> "%name%" can have either url OR ' . - 'channel attributes, and not both'); - } - - function _NoChannel($type, $name) - { - $this->_stack->push(__FUNCTION__, 'error', array('type' => $type, - 'name' => $name), - 'Required dependency <%type%> "%name%" must have either url OR ' . - 'channel attributes'); - } - - function _UrlOrChannelGroup($type, $name, $group) - { - $this->_stack->push(__FUNCTION__, 'error', array('type' => $type, - 'name' => $name, 'group' => $group), - 'Group "%group%" dependency <%type%> "%name%" can have either url OR ' . - 'channel attributes, and not both'); - } - - function _NoChannelGroup($type, $name, $group) - { - $this->_stack->push(__FUNCTION__, 'error', array('type' => $type, - 'name' => $name, 'group' => $group), - 'Group "%group%" dependency <%type%> "%name%" must have either url OR ' . - 'channel attributes'); - } - - function _unknownChannel($channel) - { - $this->_stack->push(__FUNCTION__, 'error', array('channel' => $channel), - 'Unknown channel "%channel%"'); - } - - function _noPackageVersion() - { - $this->_stack->push(__FUNCTION__, 'error', array(), - 'package.xml <package> tag has no version attribute, or version is not 2.0'); - } - - function _NoBundledPackages() - { - $this->_stack->push(__FUNCTION__, 'error', array(), - 'No <bundledpackage> tag was found in <contents>, required for bundle packages'); - } - - function _AtLeast2BundledPackages() - { - $this->_stack->push(__FUNCTION__, 'error', array(), - 'At least 2 packages must be bundled in a bundle package'); - } - - function _ChannelOrUri($name) - { - $this->_stack->push(__FUNCTION__, 'error', array('name' => $name), - 'Bundled package "%name%" can have either a uri or a channel, not both'); - } - - function _noChildTag($child, $tag) - { - $this->_stack->push(__FUNCTION__, 'error', array('child' => $child, 'tag' => $tag), - 'Tag <%tag%> is missing child tag <%child%>'); - } - - function _invalidVersion($type, $value) - { - $this->_stack->push(__FUNCTION__, 'error', array('type' => $type, 'value' => $value), - 'Version type <%type%> is not a valid version (%value%)'); - } - - function _invalidState($type, $value) - { - $states = array('stable', 'beta', 'alpha', 'devel'); - if ($type != 'api') { - $states[] = 'snapshot'; - } - if (strtolower($value) == 'rc') { - $this->_stack->push(__FUNCTION__, 'error', - array('version' => $this->_packageInfo['version']['release']), - 'RC is not a state, it is a version postfix, try %version%RC1, stability beta'); - } - $this->_stack->push(__FUNCTION__, 'error', array('type' => $type, 'value' => $value, - 'types' => $states), - 'Stability type <%type%> is not a valid stability (%value%), must be one of ' . - '%types%'); - } - - function _invalidTask($task, $ret, $file) - { - switch ($ret[0]) { - case PEAR_TASK_ERROR_MISSING_ATTRIB : - $info = array('attrib' => $ret[1], 'task' => $task, 'file' => $file); - $msg = 'task <%task%> is missing attribute "%attrib%" in file %file%'; - break; - case PEAR_TASK_ERROR_NOATTRIBS : - $info = array('task' => $task, 'file' => $file); - $msg = 'task <%task%> has no attributes in file %file%'; - break; - case PEAR_TASK_ERROR_WRONG_ATTRIB_VALUE : - $info = array('attrib' => $ret[1], 'values' => $ret[3], - 'was' => $ret[2], 'task' => $task, 'file' => $file); - $msg = 'task <%task%> attribute "%attrib%" has the wrong value "%was%" '. - 'in file %file%, expecting one of "%values%"'; - break; - case PEAR_TASK_ERROR_INVALID : - $info = array('reason' => $ret[1], 'task' => $task, 'file' => $file); - $msg = 'task <%task%> in file %file% is invalid because of "%reason%"'; - break; - } - $this->_stack->push(__FUNCTION__, 'error', $info, $msg); - } - - function _unknownTask($task, $file) - { - $this->_stack->push(__FUNCTION__, 'error', array('task' => $task, 'file' => $file), - 'Unknown task "%task%" passed in file <file name="%file%">'); - } - - function _subpackageCannotProvideExtension($name) - { - $this->_stack->push(__FUNCTION__, 'error', array('name' => $name), - 'Subpackage dependency "%name%" cannot use <providesextension>, ' . - 'only package dependencies can use this tag'); - } - - function _subpackagesCannotConflict($name) - { - $this->_stack->push(__FUNCTION__, 'error', array('name' => $name), - 'Subpackage dependency "%name%" cannot use <conflicts/>, ' . - 'only package dependencies can use this tag'); - } - - function _cannotProvideExtension($release) - { - $this->_stack->push(__FUNCTION__, 'error', array('release' => $release), - '<%release%> packages cannot use <providesextension>, only extbinrelease, extsrcrelease, zendextsrcrelease, and zendextbinrelease can provide a PHP extension'); - } - - function _mustProvideExtension($release) - { - $this->_stack->push(__FUNCTION__, 'error', array('release' => $release), - '<%release%> packages must use <providesextension> to indicate which PHP extension is provided'); - } - - function _cannotHaveSrcpackage($release) - { - $this->_stack->push(__FUNCTION__, 'error', array('release' => $release), - '<%release%> packages cannot specify a source code package, only extension binaries may use the <srcpackage> tag'); - } - - function _mustSrcPackage($release) - { - $this->_stack->push(__FUNCTION__, 'error', array('release' => $release), - '<extbinrelease>/<zendextbinrelease> packages must specify a source code package with <srcpackage>'); - } - - function _mustSrcuri($release) - { - $this->_stack->push(__FUNCTION__, 'error', array('release' => $release), - '<extbinrelease>/<zendextbinrelease> packages must specify a source code package with <srcuri>'); - } - - function _uriDepsCannotHaveVersioning($type) - { - $this->_stack->push(__FUNCTION__, 'error', array('type' => $type), - '%type%: dependencies with a <uri> tag cannot have any versioning information'); - } - - function _conflictingDepsCannotHaveVersioning($type) - { - $this->_stack->push(__FUNCTION__, 'error', array('type' => $type), - '%type%: conflicting dependencies cannot have versioning info, use <exclude> to ' . - 'exclude specific versions of a dependency'); - } - - function _DepchannelCannotBeUri($type) - { - $this->_stack->push(__FUNCTION__, 'error', array('type' => $type), - '%type%: channel cannot be __uri, this is a pseudo-channel reserved for uri ' . - 'dependencies only'); - } - - function _bundledPackagesMustBeFilename() - { - $this->_stack->push(__FUNCTION__, 'error', array(), - '<bundledpackage> tags must contain only the filename of a package release ' . - 'in the bundle'); - } - - function _binaryPackageMustBePackagename() - { - $this->_stack->push(__FUNCTION__, 'error', array(), - '<binarypackage> tags must contain the name of a package that is ' . - 'a compiled version of this extsrc/zendextsrc package'); - } - - function _fileNotFound($file) - { - $this->_stack->push(__FUNCTION__, 'error', array('file' => $file), - 'File "%file%" in package.xml does not exist'); - } - - function _notInContents($file, $tag) - { - $this->_stack->push(__FUNCTION__, 'error', array('file' => $file, 'tag' => $tag), - '<%tag% name="%file%"> is invalid, file is not in <contents>'); - } - - function _cannotValidateNoPathSet() - { - $this->_stack->push(__FUNCTION__, 'error', array(), - 'Cannot validate files, no path to package file is set (use setPackageFile())'); - } - - function _usesroletaskMustHaveChannelOrUri($role, $tag) - { - $this->_stack->push(__FUNCTION__, 'error', array('role' => $role, 'tag' => $tag), - '<%tag%> for role "%role%" must contain either <uri>, or <channel> and <package>'); - } - - function _usesroletaskMustHavePackage($role, $tag) - { - $this->_stack->push(__FUNCTION__, 'error', array('role' => $role, 'tag' => $tag), - '<%tag%> for role "%role%" must contain <package>'); - } - - function _usesroletaskMustHaveRoleTask($tag, $type) - { - $this->_stack->push(__FUNCTION__, 'error', array('tag' => $tag, 'type' => $type), - '<%tag%> must contain <%type%> defining the %type% to be used'); - } - - function _cannotConflictWithAllOs($type) - { - $this->_stack->push(__FUNCTION__, 'error', array('tag' => $tag), - '%tag% cannot conflict with all OSes'); - } - - function _invalidDepGroupName($name) - { - $this->_stack->push(__FUNCTION__, 'error', array('name' => $name), - 'Invalid dependency group name "%name%"'); - } - - function _multipleToplevelDirNotAllowed() - { - $this->_stack->push(__FUNCTION__, 'error', array(), - 'Multiple top-level <dir> tags are not allowed. Enclose them ' . - 'in a <dir name="/">'); - } - - function _multipleInstallAs($file) - { - $this->_stack->push(__FUNCTION__, 'error', array('file' => $file), - 'Only one <install> tag is allowed for file "%file%"'); - } - - function _ignoreAndInstallAs($file) - { - $this->_stack->push(__FUNCTION__, 'error', array('file' => $file), - 'Cannot have both <ignore> and <install> tags for file "%file%"'); - } - - function _analyzeBundledPackages() - { - if (!$this->_isValid) { - return false; - } - if (!$this->_pf->getPackageType() == 'bundle') { - return false; - } - if (!isset($this->_pf->_packageFile)) { - return false; - } - $dir_prefix = dirname($this->_pf->_packageFile); - $common = new PEAR_Common; - $log = isset($this->_pf->_logger) ? array(&$this->_pf->_logger, 'log') : - array($common, 'log'); - $info = $this->_pf->getContents(); - $info = $info['bundledpackage']; - if (!is_array($info)) { - $info = array($info); - } - $pkg = &new PEAR_PackageFile($this->_pf->_config); - foreach ($info as $package) { - if (!file_exists($dir_prefix . DIRECTORY_SEPARATOR . $package)) { - $this->_fileNotFound($dir_prefix . DIRECTORY_SEPARATOR . $package); - $this->_isValid = 0; - continue; - } - call_user_func_array($log, array(1, "Analyzing bundled package $package")); - PEAR::pushErrorHandling(PEAR_ERROR_RETURN); - $ret = $pkg->fromAnyFile($dir_prefix . DIRECTORY_SEPARATOR . $package, - PEAR_VALIDATE_NORMAL); - PEAR::popErrorHandling(); - if (PEAR::isError($ret)) { - call_user_func_array($log, array(0, "ERROR: package $package is not a valid " . - 'package')); - $inf = $ret->getUserInfo(); - if (is_array($inf)) { - foreach ($inf as $err) { - call_user_func_array($log, array(1, $err['message'])); - } - } - return false; - } - } - return true; - } - - function _analyzePhpFiles() - { - if (!$this->_isValid) { - return false; - } - if (!isset($this->_pf->_packageFile)) { - $this->_cannotValidateNoPathSet(); - return false; - } - $dir_prefix = dirname($this->_pf->_packageFile); - $common = new PEAR_Common; - $log = isset($this->_pf->_logger) ? array(&$this->_pf->_logger, 'log') : - array(&$common, 'log'); - $info = $this->_pf->getContents(); - if (!$info || !isset($info['dir']['file'])) { - $this->_tagCannotBeEmpty('contents><dir'); - return false; - } - $info = $info['dir']['file']; - if (isset($info['attribs'])) { - $info = array($info); - } - $provides = array(); - foreach ($info as $fa) { - $fa = $fa['attribs']; - $file = $fa['name']; - if (!file_exists($dir_prefix . DIRECTORY_SEPARATOR . $file)) { - $this->_fileNotFound($dir_prefix . DIRECTORY_SEPARATOR . $file); - $this->_isValid = 0; - continue; - } - if (in_array($fa['role'], PEAR_Installer_Role::getPhpRoles()) && $dir_prefix) { - call_user_func_array($log, array(1, "Analyzing $file")); - $srcinfo = $this->analyzeSourceCode($dir_prefix . DIRECTORY_SEPARATOR . $file); - if ($srcinfo) { - $provides = array_merge($provides, $this->_buildProvidesArray($srcinfo)); - } - } - } - $this->_packageName = $pn = $this->_pf->getPackage(); - $pnl = strlen($pn); - foreach ($provides as $key => $what) { - if (isset($what['explicit']) || !$what) { - // skip conformance checks if the provides entry is - // specified in the package.xml file - continue; - } - extract($what); - if ($type == 'class') { - if (!strncasecmp($name, $pn, $pnl)) { - continue; - } - $this->_stack->push(__FUNCTION__, 'warning', - array('file' => $file, 'type' => $type, 'name' => $name, 'package' => $pn), - 'in %file%: %type% "%name%" not prefixed with package name "%package%"'); - } elseif ($type == 'function') { - if (strstr($name, '::') || !strncasecmp($name, $pn, $pnl)) { - continue; - } - $this->_stack->push(__FUNCTION__, 'warning', - array('file' => $file, 'type' => $type, 'name' => $name, 'package' => $pn), - 'in %file%: %type% "%name%" not prefixed with package name "%package%"'); - } - } - return $this->_isValid; - } - - /** - * Analyze the source code of the given PHP file - * - * @param string Filename of the PHP file - * @param boolean whether to analyze $file as the file contents - * @return mixed - */ - function analyzeSourceCode($file, $string = false) - { - if (!function_exists("token_get_all")) { - $this->_stack->push(__FUNCTION__, 'error', array('file' => $file), - 'Parser error: token_get_all() function must exist to analyze source code, PHP may have been compiled with --disable-tokenizer'); - return false; - } - if (!defined('T_DOC_COMMENT')) { - define('T_DOC_COMMENT', T_COMMENT); - } - if (!defined('T_INTERFACE')) { - define('T_INTERFACE', -1); - } - if (!defined('T_IMPLEMENTS')) { - define('T_IMPLEMENTS', -1); - } - if ($string) { - $contents = $file; - } else { - if (!$fp = @fopen($file, "r")) { - return false; - } - fclose($fp); - $contents = file_get_contents($file); - } - - // Silence this function so we can catch PHP Warnings and show our own custom message - $tokens = @token_get_all($contents); - if (isset($php_errormsg)) { - $pn = $this->_pf->getPackage(); - $this->_stack->push(__FUNCTION__, 'warning', - array('file' => $file, 'package' => $pn), - 'in %file%: Could not process file for unkown reasons,' . - ' possibly a PHP parse error in %file% from %package%'); - - } -/* - for ($i = 0; $i < sizeof($tokens); $i++) { - @list($token, $data) = $tokens[$i]; - if (is_string($token)) { - var_dump($token); - } else { - print token_name($token) . ' '; - var_dump(rtrim($data)); - } - } -*/ - $look_for = 0; - $paren_level = 0; - $bracket_level = 0; - $brace_level = 0; - $lastphpdoc = ''; - $current_class = ''; - $current_interface = ''; - $current_class_level = -1; - $current_function = ''; - $current_function_level = -1; - $declared_classes = array(); - $declared_interfaces = array(); - $declared_functions = array(); - $declared_methods = array(); - $used_classes = array(); - $used_functions = array(); - $extends = array(); - $implements = array(); - $nodeps = array(); - $inquote = false; - $interface = false; - for ($i = 0; $i < sizeof($tokens); $i++) { - if (is_array($tokens[$i])) { - list($token, $data) = $tokens[$i]; - } else { - $token = $tokens[$i]; - $data = ''; - } - if ($inquote) { - if ($token != '"' && $token != T_END_HEREDOC) { - continue; - } else { - $inquote = false; - continue; - } - } - switch ($token) { - case T_WHITESPACE : - continue; - case ';': - if ($interface) { - $current_function = ''; - $current_function_level = -1; - } - break; - case '"': - case T_START_HEREDOC: - $inquote = true; - break; - case T_CURLY_OPEN: - case T_DOLLAR_OPEN_CURLY_BRACES: - case '{': $brace_level++; continue 2; - case '}': - $brace_level--; - if ($current_class_level == $brace_level) { - $current_class = ''; - $current_class_level = -1; - } - if ($current_function_level == $brace_level) { - $current_function = ''; - $current_function_level = -1; - } - continue 2; - case '[': $bracket_level++; continue 2; - case ']': $bracket_level--; continue 2; - case '(': $paren_level++; continue 2; - case ')': $paren_level--; continue 2; - case T_INTERFACE: - $interface = true; - case T_CLASS: - if (($current_class_level != -1) || ($current_function_level != -1)) { - $this->_stack->push(__FUNCTION__, 'error', array('file' => $file), - 'Parser error: invalid PHP found in file "%file%"'); - return false; - } - case T_FUNCTION: - case T_NEW: - case T_EXTENDS: - case T_IMPLEMENTS: - $look_for = $token; - continue 2; - case T_STRING: - if (version_compare(zend_version(), '2.0', '<')) { - if (in_array(strtolower($data), - array('public', 'private', 'protected', 'abstract', - 'interface', 'implements', 'throw') - )) { - $this->_stack->push(__FUNCTION__, 'warning', array( - 'file' => $file), - 'Error, PHP5 token encountered in %file%,' . - ' analysis should be in PHP5'); - } - } - if ($look_for == T_CLASS) { - $current_class = $data; - $current_class_level = $brace_level; - $declared_classes[] = $current_class; - } elseif ($look_for == T_INTERFACE) { - $current_interface = $data; - $current_class_level = $brace_level; - $declared_interfaces[] = $current_interface; - } elseif ($look_for == T_IMPLEMENTS) { - $implements[$current_class] = $data; - } elseif ($look_for == T_EXTENDS) { - $extends[$current_class] = $data; - } elseif ($look_for == T_FUNCTION) { - if ($current_class) { - $current_function = "$current_class::$data"; - $declared_methods[$current_class][] = $data; - } elseif ($current_interface) { - $current_function = "$current_interface::$data"; - $declared_methods[$current_interface][] = $data; - } else { - $current_function = $data; - $declared_functions[] = $current_function; - } - $current_function_level = $brace_level; - $m = array(); - } elseif ($look_for == T_NEW) { - $used_classes[$data] = true; - } - $look_for = 0; - continue 2; - case T_VARIABLE: - $look_for = 0; - continue 2; - case T_DOC_COMMENT: - case T_COMMENT: - if (preg_match('!^/\*\*\s!', $data)) { - $lastphpdoc = $data; - if (preg_match_all('/@nodep\s+(\S+)/', $lastphpdoc, $m)) { - $nodeps = array_merge($nodeps, $m[1]); - } - } - continue 2; - case T_DOUBLE_COLON: - if (!($tokens[$i - 1][0] == T_WHITESPACE || $tokens[$i - 1][0] == T_STRING)) { - $this->_stack->push(__FUNCTION__, 'warning', array('file' => $file), - 'Parser error: invalid PHP found in file "%file%"'); - return false; - } - $class = $tokens[$i - 1][1]; - if (strtolower($class) != 'parent') { - $used_classes[$class] = true; - } - continue 2; - } - } - return array( - "source_file" => $file, - "declared_classes" => $declared_classes, - "declared_interfaces" => $declared_interfaces, - "declared_methods" => $declared_methods, - "declared_functions" => $declared_functions, - "used_classes" => array_diff(array_keys($used_classes), $nodeps), - "inheritance" => $extends, - "implements" => $implements, - ); - } - - /** - * Build a "provides" array from data returned by - * analyzeSourceCode(). The format of the built array is like - * this: - * - * array( - * 'class;MyClass' => 'array('type' => 'class', 'name' => 'MyClass'), - * ... - * ) - * - * - * @param array $srcinfo array with information about a source file - * as returned by the analyzeSourceCode() method. - * - * @return void - * - * @access private - * - */ - function _buildProvidesArray($srcinfo) - { - if (!$this->_isValid) { - return array(); - } - $providesret = array(); - $file = basename($srcinfo['source_file']); - $pn = $this->_pf->getPackage(); - $pnl = strlen($pn); - foreach ($srcinfo['declared_classes'] as $class) { - $key = "class;$class"; - if (isset($providesret[$key])) { - continue; - } - $providesret[$key] = - array('file'=> $file, 'type' => 'class', 'name' => $class); - if (isset($srcinfo['inheritance'][$class])) { - $providesret[$key]['extends'] = - $srcinfo['inheritance'][$class]; - } - } - foreach ($srcinfo['declared_methods'] as $class => $methods) { - foreach ($methods as $method) { - $function = "$class::$method"; - $key = "function;$function"; - if ($method{0} == '_' || !strcasecmp($method, $class) || - isset($providesret[$key])) { - continue; - } - $providesret[$key] = - array('file'=> $file, 'type' => 'function', 'name' => $function); - } - } - - foreach ($srcinfo['declared_functions'] as $function) { - $key = "function;$function"; - if ($function{0} == '_' || isset($providesret[$key])) { - continue; - } - if (!strstr($function, '::') && strncasecmp($function, $pn, $pnl)) { - $warnings[] = "in1 " . $file . ": function \"$function\" not prefixed with package name \"$pn\""; - } - $providesret[$key] = - array('file'=> $file, 'type' => 'function', 'name' => $function); - } - return $providesret; - } -} -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/PackageFile/v2/rw.php b/src/vitis/vas/rest/class/PEAR/PackageFile/v2/rw.php deleted file mode 100755 index 383042bd..00000000 --- a/src/vitis/vas/rest/class/PEAR/PackageFile/v2/rw.php +++ /dev/null @@ -1,1603 +0,0 @@ -<?php -/** - * PEAR_PackageFile_v2, package.xml version 2.0, read/write version - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: rw.php,v 1.22 2008/01/18 22:47:49 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 1.4.0a8 - */ -/** - * For base class - */ -require_once 'PEAR/PackageFile/v2.php'; -/** - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 1.4.0a8 - */ -class PEAR_PackageFile_v2_rw extends PEAR_PackageFile_v2 -{ - /** - * @param string Extension name - * @return bool success of operation - */ - function setProvidesExtension($extension) - { - if (in_array($this->getPackageType(), - array('extsrc', 'extbin', 'zendextsrc', 'zendextbin'))) { - if (!isset($this->_packageInfo['providesextension'])) { - // ensure that the channel tag is set up in the right location - $this->_packageInfo = $this->_insertBefore($this->_packageInfo, - array('usesrole', 'usestask', 'srcpackage', 'srcuri', 'phprelease', - 'extsrcrelease', 'extbinrelease', 'zendextsrcrelease', 'zendextbinrelease', - 'bundle', 'changelog'), - $extension, 'providesextension'); - } - $this->_packageInfo['providesextension'] = $extension; - return true; - } - return false; - } - - function setPackage($package) - { - $this->_isValid = 0; - if (!isset($this->_packageInfo['attribs'])) { - $this->_packageInfo = array_merge(array('attribs' => array( - 'version' => '2.0', - 'xmlns' => 'http://pear.php.net/dtd/package-2.0', - 'xmlns:tasks' => 'http://pear.php.net/dtd/tasks-1.0', - 'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance', - 'xsi:schemaLocation' => 'http://pear.php.net/dtd/tasks-1.0 - http://pear.php.net/dtd/tasks-1.0.xsd - http://pear.php.net/dtd/package-2.0 - http://pear.php.net/dtd/package-2.0.xsd', - )), $this->_packageInfo); - } - if (!isset($this->_packageInfo['name'])) { - return $this->_packageInfo = array_merge(array('name' => $package), - $this->_packageInfo); - } - $this->_packageInfo['name'] = $package; - } - - /** - * set this as a package.xml version 2.1 - * @access private - */ - function _setPackageVersion2_1() - { - $info = array( - 'version' => '2.1', - 'xmlns' => 'http://pear.php.net/dtd/package-2.1', - 'xmlns:tasks' => 'http://pear.php.net/dtd/tasks-1.0', - 'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance', - 'xsi:schemaLocation' => 'http://pear.php.net/dtd/tasks-1.0 - http://pear.php.net/dtd/tasks-1.0.xsd - http://pear.php.net/dtd/package-2.1 - http://pear.php.net/dtd/package-2.1.xsd', - ); - if (!isset($this->_packageInfo['attribs'])) { - $this->_packageInfo = array_merge(array('attribs' => $info), $this->_packageInfo); - } else { - $this->_packageInfo['attribs'] = $info; - } - } - - function setUri($uri) - { - unset($this->_packageInfo['channel']); - $this->_isValid = 0; - if (!isset($this->_packageInfo['uri'])) { - // ensure that the uri tag is set up in the right location - $this->_packageInfo = $this->_insertBefore($this->_packageInfo, - array('extends', 'summary', 'description', 'lead', - 'developer', 'contributor', 'helper', 'date', 'time', 'version', - 'stability', 'license', 'notes', 'contents', 'compatible', - 'dependencies', 'providesextension', 'usesrole', 'usestask', 'srcpackage', 'srcuri', - 'phprelease', 'extsrcrelease', 'zendextsrcrelease', 'zendextbinrelease', - 'extbinrelease', 'bundle', 'changelog'), $uri, 'uri'); - } - $this->_packageInfo['uri'] = $uri; - } - - function setChannel($channel) - { - unset($this->_packageInfo['uri']); - $this->_isValid = 0; - if (!isset($this->_packageInfo['channel'])) { - // ensure that the channel tag is set up in the right location - $this->_packageInfo = $this->_insertBefore($this->_packageInfo, - array('extends', 'summary', 'description', 'lead', - 'developer', 'contributor', 'helper', 'date', 'time', 'version', - 'stability', 'license', 'notes', 'contents', 'compatible', - 'dependencies', 'providesextension', 'usesrole', 'usestask', 'srcpackage', 'srcuri', - 'phprelease', 'extsrcrelease', 'zendextsrcrelease', 'zendextbinrelease', - 'extbinrelease', 'bundle', 'changelog'), $channel, 'channel'); - } - $this->_packageInfo['channel'] = $channel; - } - - function setExtends($extends) - { - $this->_isValid = 0; - if (!isset($this->_packageInfo['extends'])) { - // ensure that the extends tag is set up in the right location - $this->_packageInfo = $this->_insertBefore($this->_packageInfo, - array('summary', 'description', 'lead', - 'developer', 'contributor', 'helper', 'date', 'time', 'version', - 'stability', 'license', 'notes', 'contents', 'compatible', - 'dependencies', 'providesextension', 'usesrole', 'usestask', 'srcpackage', 'srcuri', - 'phprelease', 'extsrcrelease', 'zendextsrcrelease', 'zendextbinrelease', - 'extbinrelease', 'bundle', 'changelog'), $extends, 'extends'); - } - $this->_packageInfo['extends'] = $extends; - } - - function setSummary($summary) - { - $this->_isValid = 0; - if (!isset($this->_packageInfo['summary'])) { - // ensure that the summary tag is set up in the right location - $this->_packageInfo = $this->_insertBefore($this->_packageInfo, - array('description', 'lead', - 'developer', 'contributor', 'helper', 'date', 'time', 'version', - 'stability', 'license', 'notes', 'contents', 'compatible', - 'dependencies', 'providesextension', 'usesrole', 'usestask', 'srcpackage', 'srcuri', - 'phprelease', 'extsrcrelease', 'zendextsrcrelease', 'zendextbinrelease', - 'extbinrelease', 'bundle', 'changelog'), $summary, 'summary'); - } - $this->_packageInfo['summary'] = $summary; - } - - function setDescription($desc) - { - $this->_isValid = 0; - if (!isset($this->_packageInfo['description'])) { - // ensure that the description tag is set up in the right location - $this->_packageInfo = $this->_insertBefore($this->_packageInfo, - array('lead', - 'developer', 'contributor', 'helper', 'date', 'time', 'version', - 'stability', 'license', 'notes', 'contents', 'compatible', - 'dependencies', 'providesextension', 'usesrole', 'usestask', 'srcpackage', 'srcuri', - 'phprelease', 'extsrcrelease', 'zendextsrcrelease', 'zendextbinrelease', - 'extbinrelease', 'bundle', 'changelog'), $desc, 'description'); - } - $this->_packageInfo['description'] = $desc; - } - - /** - * Adds a new maintainer - no checking of duplicates is performed, use - * updatemaintainer for that purpose. - */ - function addMaintainer($role, $handle, $name, $email, $active = 'yes') - { - if (!in_array($role, array('lead', 'developer', 'contributor', 'helper'))) { - return false; - } - if (isset($this->_packageInfo[$role])) { - if (!isset($this->_packageInfo[$role][0])) { - $this->_packageInfo[$role] = array($this->_packageInfo[$role]); - } - $this->_packageInfo[$role][] = - array( - 'name' => $name, - 'user' => $handle, - 'email' => $email, - 'active' => $active, - ); - } else { - $testarr = array('lead', - 'developer', 'contributor', 'helper', 'date', 'time', 'version', - 'stability', 'license', 'notes', 'contents', 'compatible', - 'dependencies', 'providesextension', 'usesrole', 'usestask', - 'srcpackage', 'srcuri', 'phprelease', 'extsrcrelease', - 'extbinrelease', 'zendextsrcrelease', 'zendextbinrelease', 'bundle', 'changelog'); - foreach (array('lead', 'developer', 'contributor', 'helper') as $testrole) { - array_shift($testarr); - if ($role == $testrole) { - break; - } - } - if (!isset($this->_packageInfo[$role])) { - // ensure that the extends tag is set up in the right location - $this->_packageInfo = $this->_insertBefore($this->_packageInfo, $testarr, - array(), $role); - } - $this->_packageInfo[$role] = - array( - 'name' => $name, - 'user' => $handle, - 'email' => $email, - 'active' => $active, - ); - } - $this->_isValid = 0; - } - - function updateMaintainer($newrole, $handle, $name, $email, $active = 'yes') - { - $found = false; - foreach (array('lead', 'developer', 'contributor', 'helper') as $role) { - if (!isset($this->_packageInfo[$role])) { - continue; - } - $info = $this->_packageInfo[$role]; - if (!isset($info[0])) { - if ($info['user'] == $handle) { - $found = true; - break; - } - } - foreach ($info as $i => $maintainer) { - if ($maintainer['user'] == $handle) { - $found = $i; - break 2; - } - } - } - if ($found === false) { - return $this->addMaintainer($newrole, $handle, $name, $email, $active); - } - if ($found !== false) { - if ($found === true) { - unset($this->_packageInfo[$role]); - } else { - unset($this->_packageInfo[$role][$found]); - $this->_packageInfo[$role] = array_values($this->_packageInfo[$role]); - } - } - $this->addMaintainer($newrole, $handle, $name, $email, $active); - $this->_isValid = 0; - } - - function deleteMaintainer($handle) - { - $found = false; - foreach (array('lead', 'developer', 'contributor', 'helper') as $role) { - if (!isset($this->_packageInfo[$role])) { - continue; - } - if (!isset($this->_packageInfo[$role][0])) { - $this->_packageInfo[$role] = array($this->_packageInfo[$role]); - } - foreach ($this->_packageInfo[$role] as $i => $maintainer) { - if ($maintainer['user'] == $handle) { - $found = $i; - break; - } - } - if ($found !== false) { - unset($this->_packageInfo[$role][$found]); - if (!count($this->_packageInfo[$role]) && $role == 'lead') { - $this->_isValid = 0; - } - if (!count($this->_packageInfo[$role])) { - unset($this->_packageInfo[$role]); - return true; - } - $this->_packageInfo[$role] = - array_values($this->_packageInfo[$role]); - if (count($this->_packageInfo[$role]) == 1) { - $this->_packageInfo[$role] = $this->_packageInfo[$role][0]; - } - return true; - } - if (count($this->_packageInfo[$role]) == 1) { - $this->_packageInfo[$role] = $this->_packageInfo[$role][0]; - } - } - return false; - } - - function setReleaseVersion($version) - { - if (isset($this->_packageInfo['version']) && - isset($this->_packageInfo['version']['release'])) { - unset($this->_packageInfo['version']['release']); - } - $this->_packageInfo = $this->_mergeTag($this->_packageInfo, $version, array( - 'version' => array('stability', 'license', 'notes', 'contents', 'compatible', - 'dependencies', 'providesextension', 'usesrole', 'usestask', 'srcpackage', 'srcuri', - 'phprelease', 'extsrcrelease', 'zendextsrcrelease', 'zendextbinrelease', - 'extbinrelease', 'bundle', 'changelog'), - 'release' => array('api'))); - $this->_isValid = 0; - } - - function setAPIVersion($version) - { - if (isset($this->_packageInfo['version']) && - isset($this->_packageInfo['version']['api'])) { - unset($this->_packageInfo['version']['api']); - } - $this->_packageInfo = $this->_mergeTag($this->_packageInfo, $version, array( - 'version' => array('stability', 'license', 'notes', 'contents', 'compatible', - 'dependencies', 'providesextension', 'usesrole', 'usestask', 'srcpackage', 'srcuri', - 'phprelease', 'extsrcrelease', 'zendextsrcrelease', 'zendextbinrelease', - 'extbinrelease', 'bundle', 'changelog'), - 'api' => array())); - $this->_isValid = 0; - } - - /** - * snapshot|devel|alpha|beta|stable - */ - function setReleaseStability($state) - { - if (isset($this->_packageInfo['stability']) && - isset($this->_packageInfo['stability']['release'])) { - unset($this->_packageInfo['stability']['release']); - } - $this->_packageInfo = $this->_mergeTag($this->_packageInfo, $state, array( - 'stability' => array('license', 'notes', 'contents', 'compatible', - 'dependencies', 'providesextension', 'usesrole', 'usestask', 'srcpackage', 'srcuri', - 'phprelease', 'extsrcrelease', 'zendextsrcrelease', 'zendextbinrelease', - 'extbinrelease', 'bundle', 'changelog'), - 'release' => array('api'))); - $this->_isValid = 0; - } - - /** - * @param devel|alpha|beta|stable - */ - function setAPIStability($state) - { - if (isset($this->_packageInfo['stability']) && - isset($this->_packageInfo['stability']['api'])) { - unset($this->_packageInfo['stability']['api']); - } - $this->_packageInfo = $this->_mergeTag($this->_packageInfo, $state, array( - 'stability' => array('license', 'notes', 'contents', 'compatible', - 'dependencies', 'providesextension', 'usesrole', 'usestask', 'srcpackage', 'srcuri', - 'phprelease', 'extsrcrelease', 'zendextsrcrelease', 'zendextbinrelease', - 'extbinrelease', 'bundle', 'changelog'), - 'api' => array())); - $this->_isValid = 0; - } - - function setLicense($license, $uri = false, $filesource = false) - { - if (!isset($this->_packageInfo['license'])) { - // ensure that the license tag is set up in the right location - $this->_packageInfo = $this->_insertBefore($this->_packageInfo, - array('notes', 'contents', 'compatible', - 'dependencies', 'providesextension', 'usesrole', 'usestask', 'srcpackage', 'srcuri', - 'phprelease', 'extsrcrelease', 'zendextsrcrelease', 'zendextbinrelease', - 'extbinrelease', 'bundle', 'changelog'), 0, 'license'); - } - if ($uri || $filesource) { - $attribs = array(); - if ($uri) { - $attribs['uri'] = $uri; - } - $uri = true; // for test below - if ($filesource) { - $attribs['filesource'] = $filesource; - } - } - $license = $uri ? array('attribs' => $attribs, '_content' => $license) : $license; - $this->_packageInfo['license'] = $license; - $this->_isValid = 0; - } - - function setNotes($notes) - { - $this->_isValid = 0; - if (!isset($this->_packageInfo['notes'])) { - // ensure that the notes tag is set up in the right location - $this->_packageInfo = $this->_insertBefore($this->_packageInfo, - array('contents', 'compatible', - 'dependencies', 'providesextension', 'usesrole', 'usestask', 'srcpackage', 'srcuri', - 'phprelease', 'extsrcrelease', 'zendextsrcrelease', 'zendextbinrelease', - 'extbinrelease', 'bundle', 'changelog'), $notes, 'notes'); - } - $this->_packageInfo['notes'] = $notes; - } - - /** - * This is only used at install-time, after all serialization - * is over. - * @param string file name - * @param string installed path - */ - function setInstalledAs($file, $path) - { - if ($path) { - return $this->_packageInfo['filelist'][$file]['installed_as'] = $path; - } - unset($this->_packageInfo['filelist'][$file]['installed_as']); - } - - /** - * This is only used at install-time, after all serialization - * is over. - */ - function installedFile($file, $atts) - { - if (isset($this->_packageInfo['filelist'][$file])) { - $this->_packageInfo['filelist'][$file] = - array_merge($this->_packageInfo['filelist'][$file], $atts['attribs']); - } else { - $this->_packageInfo['filelist'][$file] = $atts['attribs']; - } - } - - /** - * Reset the listing of package contents - * @param string base installation dir for the whole package, if any - */ - function clearContents($baseinstall = false) - { - $this->_filesValid = false; - $this->_isValid = 0; - if (!isset($this->_packageInfo['contents'])) { - $this->_packageInfo = $this->_insertBefore($this->_packageInfo, - array('compatible', - 'dependencies', 'providesextension', 'usesrole', 'usestask', - 'srcpackage', 'srcuri', 'phprelease', 'extsrcrelease', - 'extbinrelease', 'zendextsrcrelease', 'zendextbinrelease', - 'bundle', 'changelog'), array(), 'contents'); - } - if ($this->getPackageType() != 'bundle') { - $this->_packageInfo['contents'] = - array('dir' => array('attribs' => array('name' => '/'))); - if ($baseinstall) { - $this->_packageInfo['contents']['dir']['attribs']['baseinstalldir'] = $baseinstall; - } - } else { - $this->_packageInfo['contents'] = array('bundledpackage' => array()); - } - } - - /** - * @param string relative path of the bundled package. - */ - function addBundledPackage($path) - { - if ($this->getPackageType() != 'bundle') { - return false; - } - $this->_filesValid = false; - $this->_isValid = 0; - $this->_packageInfo = $this->_mergeTag($this->_packageInfo, $path, array( - 'contents' => array('compatible', 'dependencies', 'providesextension', - 'usesrole', 'usestask', 'srcpackage', 'srcuri', 'phprelease', - 'extsrcrelease', 'extbinrelease', 'zendextsrcrelease', 'zendextbinrelease', - 'bundle', 'changelog'), - 'bundledpackage' => array())); - } - - /** - * @param string file name - * @param PEAR_Task_Common a read/write task - */ - function addTaskToFile($filename, $task) - { - if (!method_exists($task, 'getXml')) { - return false; - } - if (!method_exists($task, 'getName')) { - return false; - } - if (!method_exists($task, 'validate')) { - return false; - } - if (!$task->validate()) { - return false; - } - if (!isset($this->_packageInfo['contents']['dir']['file'])) { - return false; - } - $this->getTasksNs(); // discover the tasks namespace if not done already - $files = $this->_packageInfo['contents']['dir']['file']; - if (!isset($files[0])) { - $files = array($files); - $ind = false; - } else { - $ind = true; - } - foreach ($files as $i => $file) { - if (isset($file['attribs'])) { - if ($file['attribs']['name'] == $filename) { - if ($ind) { - $t = isset($this->_packageInfo['contents']['dir']['file'][$i] - ['attribs'][$this->_tasksNs . - ':' . $task->getName()]) ? - $this->_packageInfo['contents']['dir']['file'][$i] - ['attribs'][$this->_tasksNs . - ':' . $task->getName()] : false; - if ($t && !isset($t[0])) { - $this->_packageInfo['contents']['dir']['file'][$i] - [$this->_tasksNs . ':' . $task->getName()] = array($t); - } - $this->_packageInfo['contents']['dir']['file'][$i][$this->_tasksNs . - ':' . $task->getName()][] = $task->getXml(); - } else { - $t = isset($this->_packageInfo['contents']['dir']['file'] - ['attribs'][$this->_tasksNs . - ':' . $task->getName()]) ? $this->_packageInfo['contents']['dir']['file'] - ['attribs'][$this->_tasksNs . - ':' . $task->getName()] : false; - if ($t && !isset($t[0])) { - $this->_packageInfo['contents']['dir']['file'] - [$this->_tasksNs . ':' . $task->getName()] = array($t); - } - $this->_packageInfo['contents']['dir']['file'][$this->_tasksNs . - ':' . $task->getName()][] = $task->getXml(); - } - return true; - } - } - } - return false; - } - - /** - * @param string path to the file - * @param string filename - * @param array extra attributes - */ - function addFile($dir, $file, $attrs) - { - if ($this->getPackageType() == 'bundle') { - return false; - } - $this->_filesValid = false; - $this->_isValid = 0; - $dir = preg_replace(array('!\\\\+!', '!/+!'), array('/', '/'), $dir); - if ($dir == '/' || $dir == '') { - $dir = ''; - } else { - $dir .= '/'; - } - $attrs['name'] = $dir . $file; - if (!isset($this->_packageInfo['contents'])) { - // ensure that the contents tag is set up - $this->_packageInfo = $this->_insertBefore($this->_packageInfo, - array('compatible', 'dependencies', 'providesextension', 'usesrole', 'usestask', - 'srcpackage', 'srcuri', 'phprelease', 'extsrcrelease', - 'extbinrelease', 'zendextsrcrelease', 'zendextbinrelease', - 'bundle', 'changelog'), array(), 'contents'); - } - if (isset($this->_packageInfo['contents']['dir']['file'])) { - if (!isset($this->_packageInfo['contents']['dir']['file'][0])) { - $this->_packageInfo['contents']['dir']['file'] = - array($this->_packageInfo['contents']['dir']['file']); - } - $this->_packageInfo['contents']['dir']['file'][]['attribs'] = $attrs; - } else { - $this->_packageInfo['contents']['dir']['file']['attribs'] = $attrs; - } - } - - /** - * @param string Dependent package name - * @param string Dependent package's channel name - * @param string minimum version of specified package that this release is guaranteed to be - * compatible with - * @param string maximum version of specified package that this release is guaranteed to be - * compatible with - * @param string versions of specified package that this release is not compatible with - */ - function addCompatiblePackage($name, $channel, $min, $max, $exclude = false) - { - $this->_isValid = 0; - $set = array( - 'name' => $name, - 'channel' => $channel, - 'min' => $min, - 'max' => $max, - ); - if ($exclude) { - $set['exclude'] = $exclude; - } - $this->_isValid = 0; - $this->_packageInfo = $this->_mergeTag($this->_packageInfo, $set, array( - 'compatible' => array('dependencies', 'providesextension', 'usesrole', 'usestask', - 'srcpackage', 'srcuri', 'phprelease', 'extsrcrelease', 'extbinrelease', - 'zendextsrcrelease', 'zendextbinrelease', 'bundle', 'changelog') - )); - } - - /** - * Removes the <usesrole> tag entirely - */ - function resetUsesrole() - { - if (isset($this->_packageInfo['usesrole'])) { - unset($this->_packageInfo['usesrole']); - } - } - - /** - * @param string - * @param string package name or uri - * @param string channel name if non-uri - */ - function addUsesrole($role, $packageOrUri, $channel = false) { - $set = array('role' => $role); - if ($channel) { - $set['package'] = $packageOrUri; - $set['channel'] = $channel; - } else { - $set['uri'] = $packageOrUri; - } - $this->_isValid = 0; - $this->_packageInfo = $this->_mergeTag($this->_packageInfo, $set, array( - 'usesrole' => array('usestask', 'srcpackage', 'srcuri', - 'phprelease', 'extsrcrelease', 'extbinrelease', - 'zendextsrcrelease', 'zendextbinrelease', 'bundle', 'changelog') - )); - } - - /** - * Removes the <usestask> tag entirely - */ - function resetUsestask() - { - if (isset($this->_packageInfo['usestask'])) { - unset($this->_packageInfo['usestask']); - } - } - - - /** - * @param string - * @param string package name or uri - * @param string channel name if non-uri - */ - function addUsestask($task, $packageOrUri, $channel = false) { - $set = array('task' => $task); - if ($channel) { - $set['package'] = $packageOrUri; - $set['channel'] = $channel; - } else { - $set['uri'] = $packageOrUri; - } - $this->_isValid = 0; - $this->_packageInfo = $this->_mergeTag($this->_packageInfo, $set, array( - 'usestask' => array('srcpackage', 'srcuri', - 'phprelease', 'extsrcrelease', 'extbinrelease', - 'zendextsrcrelease', 'zendextbinrelease', 'bundle', 'changelog') - )); - } - - /** - * Remove all compatible tags - */ - function clearCompatible() - { - unset($this->_packageInfo['compatible']); - } - - /** - * Reset dependencies prior to adding new ones - */ - function clearDeps() - { - if (!isset($this->_packageInfo['dependencies'])) { - $this->_packageInfo = $this->_mergeTag($this->_packageInfo, array(), - array( - 'dependencies' => array('providesextension', 'usesrole', 'usestask', - 'srcpackage', 'srcuri', 'phprelease', 'extsrcrelease', 'extbinrelease', - 'zendextsrcrelease', 'zendextbinrelease', 'bundle', 'changelog'))); - } - $this->_packageInfo['dependencies'] = array(); - } - - /** - * @param string minimum PHP version allowed - * @param string maximum PHP version allowed - * @param array $exclude incompatible PHP versions - */ - function setPhpDep($min, $max = false, $exclude = false) - { - $this->_isValid = 0; - $dep = - array( - 'min' => $min, - ); - if ($max) { - $dep['max'] = $max; - } - if ($exclude) { - if (count($exclude) == 1) { - $exclude = $exclude[0]; - } - $dep['exclude'] = $exclude; - } - if (isset($this->_packageInfo['dependencies']['required']['php'])) { - $this->_stack->push(__FUNCTION__, 'warning', array('dep' => - $this->_packageInfo['dependencies']['required']['php']), - 'warning: PHP dependency already exists, overwriting'); - unset($this->_packageInfo['dependencies']['required']['php']); - } - $this->_packageInfo = $this->_mergeTag($this->_packageInfo, $dep, - array( - 'dependencies' => array('providesextension', 'usesrole', 'usestask', - 'srcpackage', 'srcuri', 'phprelease', 'extsrcrelease', 'extbinrelease', - 'zendextsrcrelease', 'zendextbinrelease', 'bundle', 'changelog'), - 'required' => array('optional', 'group'), - 'php' => array('pearinstaller', 'package', 'subpackage', 'extension', 'os', 'arch') - )); - return true; - } - - /** - * @param string minimum allowed PEAR installer version - * @param string maximum allowed PEAR installer version - * @param string recommended PEAR installer version - * @param array incompatible version of the PEAR installer - */ - function setPearinstallerDep($min, $max = false, $recommended = false, $exclude = false) - { - $this->_isValid = 0; - $dep = - array( - 'min' => $min, - ); - if ($max) { - $dep['max'] = $max; - } - if ($recommended) { - $dep['recommended'] = $recommended; - } - if ($exclude) { - if (count($exclude) == 1) { - $exclude = $exclude[0]; - } - $dep['exclude'] = $exclude; - } - if (isset($this->_packageInfo['dependencies']['required']['pearinstaller'])) { - $this->_stack->push(__FUNCTION__, 'warning', array('dep' => - $this->_packageInfo['dependencies']['required']['pearinstaller']), - 'warning: PEAR Installer dependency already exists, overwriting'); - unset($this->_packageInfo['dependencies']['required']['pearinstaller']); - } - $this->_packageInfo = $this->_mergeTag($this->_packageInfo, $dep, - array( - 'dependencies' => array('providesextension', 'usesrole', 'usestask', - 'srcpackage', 'srcuri', 'phprelease', 'extsrcrelease', 'extbinrelease', - 'zendextsrcrelease', 'zendextbinrelease', 'bundle', 'changelog'), - 'required' => array('optional', 'group'), - 'pearinstaller' => array('package', 'subpackage', 'extension', 'os', 'arch') - )); - } - - /** - * Mark a package as conflicting with this package - * @param string package name - * @param string package channel - * @param string extension this package provides, if any - * @param string|false minimum version required - * @param string|false maximum version allowed - * @param array|false versions to exclude from installation - */ - function addConflictingPackageDepWithChannel($name, $channel, - $providesextension = false, $min = false, $max = false, $exclude = false) - { - $this->_isValid = 0; - $dep = $this->_constructDep($name, $channel, false, $min, $max, false, - $exclude, $providesextension, false, true); - $this->_packageInfo = $this->_mergeTag($this->_packageInfo, $dep, - array( - 'dependencies' => array('providesextension', 'usesrole', 'usestask', - 'srcpackage', 'srcuri', 'phprelease', 'extsrcrelease', 'extbinrelease', - 'zendextsrcrelease', 'zendextbinrelease', 'bundle', 'changelog'), - 'required' => array('optional', 'group'), - 'package' => array('subpackage', 'extension', 'os', 'arch') - )); - } - - /** - * Mark a package as conflicting with this package - * @param string package name - * @param string package channel - * @param string extension this package provides, if any - */ - function addConflictingPackageDepWithUri($name, $uri, $providesextension = false) - { - $this->_isValid = 0; - $dep = - array( - 'name' => $name, - 'uri' => $uri, - 'conflicts' => '', - ); - if ($providesextension) { - $dep['providesextension'] = $providesextension; - } - $this->_packageInfo = $this->_mergeTag($this->_packageInfo, $dep, - array( - 'dependencies' => array('providesextension', 'usesrole', 'usestask', - 'srcpackage', 'srcuri', 'phprelease', 'extsrcrelease', 'extbinrelease', - 'zendextsrcrelease', 'zendextbinrelease', 'bundle', 'changelog'), - 'required' => array('optional', 'group'), - 'package' => array('subpackage', 'extension', 'os', 'arch') - )); - } - - function addDependencyGroup($name, $hint) - { - $this->_isValid = 0; - $this->_packageInfo = $this->_mergeTag($this->_packageInfo, - array('attribs' => array('name' => $name, 'hint' => $hint)), - array( - 'dependencies' => array('providesextension', 'usesrole', 'usestask', - 'srcpackage', 'srcuri', 'phprelease', 'extsrcrelease', 'extbinrelease', - 'zendextsrcrelease', 'zendextbinrelease', 'bundle', 'changelog'), - 'group' => array(), - )); - } - - /** - * @param string package name - * @param string|false channel name, false if this is a uri - * @param string|false uri name, false if this is a channel - * @param string|false minimum version required - * @param string|false maximum version allowed - * @param string|false recommended installation version - * @param array|false versions to exclude from installation - * @param string extension this package provides, if any - * @param bool if true, tells the installer to ignore the default optional dependency group - * when installing this package - * @param bool if true, tells the installer to negate this dependency (conflicts) - * @return array - * @access private - */ - function _constructDep($name, $channel, $uri, $min, $max, $recommended, $exclude, - $providesextension = false, $nodefault = false, - $conflicts = false) - { - $dep = - array( - 'name' => $name, - ); - if ($channel) { - $dep['channel'] = $channel; - } elseif ($uri) { - $dep['uri'] = $uri; - } - if ($min) { - $dep['min'] = $min; - } - if ($max) { - $dep['max'] = $max; - } - if ($recommended) { - $dep['recommended'] = $recommended; - } - if ($exclude) { - if (is_array($exclude) && count($exclude) == 1) { - $exclude = $exclude[0]; - } - $dep['exclude'] = $exclude; - } - if ($conflicts) { - $dep['conflicts'] = ''; - } - if ($nodefault) { - $dep['nodefault'] = ''; - } - if ($providesextension) { - $dep['providesextension'] = $providesextension; - } - return $dep; - } - - /** - * @param package|subpackage - * @param string group name - * @param string package name - * @param string package channel - * @param string minimum version - * @param string maximum version - * @param string recommended version - * @param array|false optional excluded versions - * @param string extension this package provides, if any - * @param bool if true, tells the installer to ignore the default optional dependency group - * when installing this package - * @return bool false if the dependency group has not been initialized with - * {@link addDependencyGroup()}, or a subpackage is added with - * a providesextension - */ - function addGroupPackageDepWithChannel($type, $groupname, $name, $channel, $min = false, - $max = false, $recommended = false, $exclude = false, - $providesextension = false, $nodefault = false) - { - if ($type == 'subpackage' && $providesextension) { - return false; // subpackages must be php packages - } - $dep = $this->_constructDep($name, $channel, false, $min, $max, $recommended, $exclude, - $providesextension, $nodefault); - return $this->_addGroupDependency($type, $dep, $groupname); - } - - /** - * @param package|subpackage - * @param string group name - * @param string package name - * @param string package uri - * @param string extension this package provides, if any - * @param bool if true, tells the installer to ignore the default optional dependency group - * when installing this package - * @return bool false if the dependency group has not been initialized with - * {@link addDependencyGroup()} - */ - function addGroupPackageDepWithURI($type, $groupname, $name, $uri, $providesextension = false, - $nodefault = false) - { - if ($type == 'subpackage' && $providesextension) { - return false; // subpackages must be php packages - } - $dep = $this->_constructDep($name, false, $uri, false, false, false, false, - $providesextension, $nodefault); - return $this->_addGroupDependency($type, $dep, $groupname); - } - - /** - * @param string group name (must be pre-existing) - * @param string extension name - * @param string minimum version allowed - * @param string maximum version allowed - * @param string recommended version - * @param array incompatible versions - */ - function addGroupExtensionDep($groupname, $name, $min = false, $max = false, - $recommended = false, $exclude = false) - { - $this->_isValid = 0; - $dep = $this->_constructDep($name, false, false, $min, $max, $recommended, $exclude); - return $this->_addGroupDependency('extension', $dep, $groupname); - } - - /** - * @param package|subpackage|extension - * @param array dependency contents - * @param string name of the dependency group to add this to - * @return boolean - * @access private - */ - function _addGroupDependency($type, $dep, $groupname) - { - $arr = array('subpackage', 'extension'); - if ($type != 'package') { - array_shift($arr); - } - if ($type == 'extension') { - array_shift($arr); - } - if (!isset($this->_packageInfo['dependencies']['group'])) { - return false; - } else { - if (!isset($this->_packageInfo['dependencies']['group'][0])) { - if ($this->_packageInfo['dependencies']['group']['attribs']['name'] == $groupname) { - $this->_packageInfo['dependencies']['group'] = $this->_mergeTag( - $this->_packageInfo['dependencies']['group'], $dep, - array( - $type => $arr - )); - $this->_isValid = 0; - return true; - } else { - return false; - } - } else { - foreach ($this->_packageInfo['dependencies']['group'] as $i => $group) { - if ($group['attribs']['name'] == $groupname) { - $this->_packageInfo['dependencies']['group'][$i] = $this->_mergeTag( - $this->_packageInfo['dependencies']['group'][$i], $dep, - array( - $type => $arr - )); - $this->_isValid = 0; - return true; - } - } - return false; - } - } - } - - /** - * @param optional|required - * @param string package name - * @param string package channel - * @param string minimum version - * @param string maximum version - * @param string recommended version - * @param string extension this package provides, if any - * @param bool if true, tells the installer to ignore the default optional dependency group - * when installing this package - * @param array|false optional excluded versions - */ - function addPackageDepWithChannel($type, $name, $channel, $min = false, $max = false, - $recommended = false, $exclude = false, - $providesextension = false, $nodefault = false) - { - if (!in_array($type, array('optional', 'required'), true)) { - $type = 'required'; - } - $this->_isValid = 0; - $arr = array('optional', 'group'); - if ($type != 'required') { - array_shift($arr); - } - $dep = $this->_constructDep($name, $channel, false, $min, $max, $recommended, $exclude, - $providesextension, $nodefault); - $this->_packageInfo = $this->_mergeTag($this->_packageInfo, $dep, - array( - 'dependencies' => array('providesextension', 'usesrole', 'usestask', - 'srcpackage', 'srcuri', 'phprelease', 'extsrcrelease', 'extbinrelease', - 'zendextsrcrelease', 'zendextbinrelease', 'bundle', 'changelog'), - $type => $arr, - 'package' => array('subpackage', 'extension', 'os', 'arch') - )); - } - - /** - * @param optional|required - * @param string name of the package - * @param string uri of the package - * @param string extension this package provides, if any - * @param bool if true, tells the installer to ignore the default optional dependency group - * when installing this package - */ - function addPackageDepWithUri($type, $name, $uri, $providesextension = false, - $nodefault = false) - { - $this->_isValid = 0; - $arr = array('optional', 'group'); - if ($type != 'required') { - array_shift($arr); - } - $dep = $this->_constructDep($name, false, $uri, false, false, false, false, - $providesextension, $nodefault); - $this->_packageInfo = $this->_mergeTag($this->_packageInfo, $dep, - array( - 'dependencies' => array('providesextension', 'usesrole', 'usestask', - 'srcpackage', 'srcuri', 'phprelease', 'extsrcrelease', 'extbinrelease', - 'zendextsrcrelease', 'zendextbinrelease', 'bundle', 'changelog'), - $type => $arr, - 'package' => array('subpackage', 'extension', 'os', 'arch') - )); - } - - /** - * @param optional|required optional, required - * @param string package name - * @param string package channel - * @param string minimum version - * @param string maximum version - * @param string recommended version - * @param array incompatible versions - * @param bool if true, tells the installer to ignore the default optional dependency group - * when installing this package - */ - function addSubpackageDepWithChannel($type, $name, $channel, $min = false, $max = false, - $recommended = false, $exclude = false, - $nodefault = false) - { - $this->_isValid = 0; - $arr = array('optional', 'group'); - if ($type != 'required') { - array_shift($arr); - } - $dep = $this->_constructDep($name, $channel, false, $min, $max, $recommended, $exclude, - $nodefault); - $this->_packageInfo = $this->_mergeTag($this->_packageInfo, $dep, - array( - 'dependencies' => array('providesextension', 'usesrole', 'usestask', - 'srcpackage', 'srcuri', 'phprelease', 'extsrcrelease', 'extbinrelease', - 'zendextsrcrelease', 'zendextbinrelease', 'bundle', 'changelog'), - $type => $arr, - 'subpackage' => array('extension', 'os', 'arch') - )); - } - - /** - * @param optional|required optional, required - * @param string package name - * @param string package uri for download - * @param bool if true, tells the installer to ignore the default optional dependency group - * when installing this package - */ - function addSubpackageDepWithUri($type, $name, $uri, $nodefault = false) - { - $this->_isValid = 0; - $arr = array('optional', 'group'); - if ($type != 'required') { - array_shift($arr); - } - $dep = $this->_constructDep($name, false, $uri, false, false, false, false, $nodefault); - $this->_packageInfo = $this->_mergeTag($this->_packageInfo, $dep, - array( - 'dependencies' => array('providesextension', 'usesrole', 'usestask', - 'srcpackage', 'srcuri', 'phprelease', 'extsrcrelease', 'extbinrelease', - 'zendextsrcrelease', 'zendextbinrelease', 'bundle', 'changelog'), - $type => $arr, - 'subpackage' => array('extension', 'os', 'arch') - )); - } - - /** - * @param optional|required optional, required - * @param string extension name - * @param string minimum version - * @param string maximum version - * @param string recommended version - * @param array incompatible versions - */ - function addExtensionDep($type, $name, $min = false, $max = false, $recommended = false, - $exclude = false) - { - $this->_isValid = 0; - $arr = array('optional', 'group'); - if ($type != 'required') { - array_shift($arr); - } - $dep = $this->_constructDep($name, false, false, $min, $max, $recommended, $exclude); - $this->_packageInfo = $this->_mergeTag($this->_packageInfo, $dep, - array( - 'dependencies' => array('providesextension', 'usesrole', 'usestask', - 'srcpackage', 'srcuri', 'phprelease', 'extsrcrelease', 'extbinrelease', - 'zendextsrcrelease', 'zendextbinrelease', 'bundle', 'changelog'), - $type => $arr, - 'extension' => array('os', 'arch') - )); - } - - /** - * @param string Operating system name - * @param boolean true if this package cannot be installed on this OS - */ - function addOsDep($name, $conflicts = false) - { - $this->_isValid = 0; - $dep = array('name' => $name); - if ($conflicts) { - $dep['conflicts'] = ''; - } - $this->_packageInfo = $this->_mergeTag($this->_packageInfo, $dep, - array( - 'dependencies' => array('providesextension', 'usesrole', 'usestask', - 'srcpackage', 'srcuri', 'phprelease', 'extsrcrelease', 'extbinrelease', - 'zendextsrcrelease', 'zendextbinrelease', 'bundle', 'changelog'), - 'required' => array('optional', 'group'), - 'os' => array('arch') - )); - } - - /** - * @param string Architecture matching pattern - * @param boolean true if this package cannot be installed on this architecture - */ - function addArchDep($pattern, $conflicts = false) - { - $this->_isValid = 0; - $dep = array('pattern' => $pattern); - if ($conflicts) { - $dep['conflicts'] = ''; - } - $this->_packageInfo = $this->_mergeTag($this->_packageInfo, $dep, - array( - 'dependencies' => array('providesextension', 'usesrole', 'usestask', - 'srcpackage', 'srcuri', 'phprelease', 'extsrcrelease', 'extbinrelease', - 'zendextsrcrelease', 'zendextbinrelease', 'bundle', 'changelog'), - 'required' => array('optional', 'group'), - 'arch' => array() - )); - } - - /** - * Set the kind of package, and erase all release tags - * - * - a php package is a PEAR-style package - * - an extbin package is a PECL-style extension binary - * - an extsrc package is a PECL-style source for a binary - * - an zendextbin package is a PECL-style zend extension binary - * - an zendextsrc package is a PECL-style source for a zend extension binary - * - a bundle package is a collection of other pre-packaged packages - * @param php|extbin|extsrc|zendextsrc|zendextbin|bundle - * @return bool success - */ - function setPackageType($type) - { - $this->_isValid = 0; - if (!in_array($type, array('php', 'extbin', 'extsrc', 'zendextsrc', - 'zendextbin', 'bundle'))) { - return false; - } - if (in_array($type, array('zendextsrc', 'zendextbin'))) { - $this->_setPackageVersion2_1(); - } - if ($type != 'bundle') { - $type .= 'release'; - } - foreach (array('phprelease', 'extbinrelease', 'extsrcrelease', - 'zendextsrcrelease', 'zendextbinrelease', 'bundle') as $test) { - unset($this->_packageInfo[$test]); - } - if (!isset($this->_packageInfo[$type])) { - // ensure that the release tag is set up - $this->_packageInfo = $this->_insertBefore($this->_packageInfo, array('changelog'), - array(), $type); - } - $this->_packageInfo[$type] = array(); - return true; - } - - /** - * @return bool true if package type is set up - */ - function addRelease() - { - if ($type = $this->getPackageType()) { - if ($type != 'bundle') { - $type .= 'release'; - } - $this->_packageInfo = $this->_mergeTag($this->_packageInfo, array(), - array($type => array('changelog'))); - return true; - } - return false; - } - - /** - * Get the current release tag in order to add to it - * @param bool returns only releases that have installcondition if true - * @return array|null - */ - function &_getCurrentRelease($strict = true) - { - if ($p = $this->getPackageType()) { - if ($strict) { - if ($p == 'extsrc' || $p == 'zendextsrc') { - $a = null; - return $a; - } - } - if ($p != 'bundle') { - $p .= 'release'; - } - if (isset($this->_packageInfo[$p][0])) { - return $this->_packageInfo[$p][count($this->_packageInfo[$p]) - 1]; - } else { - return $this->_packageInfo[$p]; - } - } else { - $a = null; - return $a; - } - } - - /** - * Add a file to the current release that should be installed under a different name - * @param string <contents> path to file - * @param string name the file should be installed as - */ - function addInstallAs($path, $as) - { - $r = &$this->_getCurrentRelease(); - if ($r === null) { - return false; - } - $this->_isValid = 0; - $r = $this->_mergeTag($r, array('attribs' => array('name' => $path, 'as' => $as)), - array( - 'filelist' => array(), - 'install' => array('ignore') - )); - } - - /** - * Add a file to the current release that should be ignored - * @param string <contents> path to file - * @return bool success of operation - */ - function addIgnore($path) - { - $r = &$this->_getCurrentRelease(); - if ($r === null) { - return false; - } - $this->_isValid = 0; - $r = $this->_mergeTag($r, array('attribs' => array('name' => $path)), - array( - 'filelist' => array(), - 'ignore' => array() - )); - } - - /** - * Add an extension binary package for this extension source code release - * - * Note that the package must be from the same channel as the extension source package - * @param string - */ - function addBinarypackage($package) - { - if ($this->getPackageType() != 'extsrc' && $this->getPackageType() != 'zendextsrc') { - return false; - } - $r = &$this->_getCurrentRelease(false); - if ($r === null) { - return false; - } - $this->_isValid = 0; - $r = $this->_mergeTag($r, $package, - array( - 'binarypackage' => array('filelist'), - )); - } - - /** - * Add a configureoption to an extension source package - * @param string - * @param string - * @param string - */ - function addConfigureOption($name, $prompt, $default = null) - { - if ($this->getPackageType() != 'extsrc' && $this->getPackageType() != 'zendextsrc') { - return false; - } - $r = &$this->_getCurrentRelease(false); - if ($r === null) { - return false; - } - $opt = array('attribs' => array('name' => $name, 'prompt' => $prompt)); - if ($default !== null) { - $opt['attribs']['default'] = $default; - } - $this->_isValid = 0; - $r = $this->_mergeTag($r, $opt, - array( - 'configureoption' => array('binarypackage', 'filelist'), - )); - } - - /** - * Set an installation condition based on php version for the current release set - * @param string minimum version - * @param string maximum version - * @param false|array incompatible versions of PHP - */ - function setPhpInstallCondition($min, $max, $exclude = false) - { - $r = &$this->_getCurrentRelease(); - if ($r === null) { - return false; - } - $this->_isValid = 0; - if (isset($r['installconditions']['php'])) { - unset($r['installconditions']['php']); - } - $dep = array('min' => $min, 'max' => $max); - if ($exclude) { - if (is_array($exclude) && count($exclude) == 1) { - $exclude = $exclude[0]; - } - $dep['exclude'] = $exclude; - } - if ($this->getPackageType() == 'extsrc' || $this->getPackageType() == 'zendextsrc') { - $r = $this->_mergeTag($r, $dep, - array( - 'installconditions' => array('configureoption', 'binarypackage', - 'filelist'), - 'php' => array('extension', 'os', 'arch') - )); - } else { - $r = $this->_mergeTag($r, $dep, - array( - 'installconditions' => array('filelist'), - 'php' => array('extension', 'os', 'arch') - )); - } - } - - /** - * @param optional|required optional, required - * @param string extension name - * @param string minimum version - * @param string maximum version - * @param string recommended version - * @param array incompatible versions - */ - function addExtensionInstallCondition($name, $min = false, $max = false, $recommended = false, - $exclude = false) - { - $r = &$this->_getCurrentRelease(); - if ($r === null) { - return false; - } - $this->_isValid = 0; - $dep = $this->_constructDep($name, false, false, $min, $max, $recommended, $exclude); - if ($this->getPackageType() == 'extsrc' || $this->getPackageType() == 'zendextsrc') { - $r = $this->_mergeTag($r, $dep, - array( - 'installconditions' => array('configureoption', 'binarypackage', - 'filelist'), - 'extension' => array('os', 'arch') - )); - } else { - $r = $this->_mergeTag($r, $dep, - array( - 'installconditions' => array('filelist'), - 'extension' => array('os', 'arch') - )); - } - } - - /** - * Set an installation condition based on operating system for the current release set - * @param string OS name - * @param bool whether this OS is incompatible with the current release - */ - function setOsInstallCondition($name, $conflicts = false) - { - $r = &$this->_getCurrentRelease(); - if ($r === null) { - return false; - } - $this->_isValid = 0; - if (isset($r['installconditions']['os'])) { - unset($r['installconditions']['os']); - } - $dep = array('name' => $name); - if ($conflicts) { - $dep['conflicts'] = ''; - } - if ($this->getPackageType() == 'extsrc' || $this->getPackageType() == 'zendextsrc') { - $r = $this->_mergeTag($r, $dep, - array( - 'installconditions' => array('configureoption', 'binarypackage', - 'filelist'), - 'os' => array('arch') - )); - } else { - $r = $this->_mergeTag($r, $dep, - array( - 'installconditions' => array('filelist'), - 'os' => array('arch') - )); - } - } - - /** - * Set an installation condition based on architecture for the current release set - * @param string architecture pattern - * @param bool whether this arch is incompatible with the current release - */ - function setArchInstallCondition($pattern, $conflicts = false) - { - $r = &$this->_getCurrentRelease(); - if ($r === null) { - return false; - } - $this->_isValid = 0; - if (isset($r['installconditions']['arch'])) { - unset($r['installconditions']['arch']); - } - $dep = array('pattern' => $pattern); - if ($conflicts) { - $dep['conflicts'] = ''; - } - if ($this->getPackageType() == 'extsrc' || $this->getPackageType() == 'zendextsrc') { - $r = $this->_mergeTag($r, $dep, - array( - 'installconditions' => array('configureoption', 'binarypackage', - 'filelist'), - 'arch' => array() - )); - } else { - $r = $this->_mergeTag($r, $dep, - array( - 'installconditions' => array('filelist'), - 'arch' => array() - )); - } - } - - /** - * For extension binary releases, this is used to specify either the - * static URI to a source package, or the package name and channel of the extsrc/zendextsrc - * package it is based on. - * @param string Package name, or full URI to source package (extsrc/zendextsrc type) - */ - function setSourcePackage($packageOrUri) - { - $this->_isValid = 0; - if (isset($this->_packageInfo['channel'])) { - $this->_packageInfo = $this->_insertBefore($this->_packageInfo, array('phprelease', - 'extsrcrelease', 'extbinrelease', 'zendextsrcrelease', 'zendextbinrelease', - 'bundle', 'changelog'), - $packageOrUri, 'srcpackage'); - } else { - $this->_packageInfo = $this->_insertBefore($this->_packageInfo, array('phprelease', - 'extsrcrelease', 'extbinrelease', 'zendextsrcrelease', 'zendextbinrelease', - 'bundle', 'changelog'), $packageOrUri, 'srcuri'); - } - } - - /** - * Generate a valid change log entry from the current package.xml - * @param string|false - */ - function generateChangeLogEntry($notes = false) - { - return array( - 'version' => - array( - 'release' => $this->getVersion('release'), - 'api' => $this->getVersion('api'), - ), - 'stability' => - $this->getStability(), - 'date' => $this->getDate(), - 'license' => $this->getLicense(true), - 'notes' => $notes ? $notes : $this->getNotes() - ); - } - - /** - * @param string release version to set change log notes for - * @param array output of {@link generateChangeLogEntry()} - */ - function setChangelogEntry($releaseversion, $contents) - { - if (!isset($this->_packageInfo['changelog'])) { - $this->_packageInfo['changelog']['release'] = $contents; - return; - } - if (!isset($this->_packageInfo['changelog']['release'][0])) { - if ($this->_packageInfo['changelog']['release']['version']['release'] == $releaseversion) { - $this->_packageInfo['changelog']['release'] = array( - $this->_packageInfo['changelog']['release']); - } else { - $this->_packageInfo['changelog']['release'] = array( - $this->_packageInfo['changelog']['release']); - return $this->_packageInfo['changelog']['release'][] = $contents; - } - } - foreach($this->_packageInfo['changelog']['release'] as $index => $changelog) { - if (isset($changelog['version']) && - strnatcasecmp($changelog['version']['release'], $releaseversion) == 0) { - $curlog = $index; - } - } - if (isset($curlog)) { - $this->_packageInfo['changelog']['release'][$curlog] = $contents; - } else { - $this->_packageInfo['changelog']['release'][] = $contents; - } - } - - /** - * Remove the changelog entirely - */ - function clearChangeLog() - { - unset($this->_packageInfo['changelog']); - } -} -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/Packager.php b/src/vitis/vas/rest/class/PEAR/Packager.php deleted file mode 100755 index bae92823..00000000 --- a/src/vitis/vas/rest/class/PEAR/Packager.php +++ /dev/null @@ -1,199 +0,0 @@ -<?php -/** - * PEAR_Packager for generating releases - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Stig Bakken <ssb@php.net> - * @author Tomas V. V. Cox <cox@idecnet.com> - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Packager.php,v 1.71 2008/01/03 20:26:36 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 0.1 - */ - -/** - * base class - */ -require_once 'PEAR/Common.php'; -require_once 'PEAR/PackageFile.php'; -require_once 'System.php'; - -/** - * Administration class used to make a PEAR release tarball. - * - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 0.1 - */ -class PEAR_Packager extends PEAR_Common -{ - /** - * @var PEAR_Registry - */ - var $_registry; - // {{{ package() - - function package($pkgfile = null, $compress = true, $pkg2 = null) - { - // {{{ validate supplied package.xml file - if (empty($pkgfile)) { - $pkgfile = 'package.xml'; - } - PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); - $pkg = &new PEAR_PackageFile($this->config, $this->debug); - $pf = &$pkg->fromPackageFile($pkgfile, PEAR_VALIDATE_NORMAL); - $main = &$pf; - PEAR::staticPopErrorHandling(); - if (PEAR::isError($pf)) { - if (is_array($pf->getUserInfo())) { - foreach ($pf->getUserInfo() as $error) { - $this->log(0, 'Error: ' . $error['message']); - } - } - $this->log(0, $pf->getMessage()); - return $this->raiseError("Cannot package, errors in package file"); - } else { - foreach ($pf->getValidationWarnings() as $warning) { - $this->log(1, 'Warning: ' . $warning['message']); - } - } - - // }}} - if ($pkg2) { - $this->log(0, 'Attempting to process the second package file'); - PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); - $pf2 = &$pkg->fromPackageFile($pkg2, PEAR_VALIDATE_NORMAL); - PEAR::staticPopErrorHandling(); - if (PEAR::isError($pf2)) { - if (is_array($pf2->getUserInfo())) { - foreach ($pf2->getUserInfo() as $error) { - $this->log(0, 'Error: ' . $error['message']); - } - } - $this->log(0, $pf2->getMessage()); - return $this->raiseError("Cannot package, errors in second package file"); - } else { - foreach ($pf2->getValidationWarnings() as $warning) { - $this->log(1, 'Warning: ' . $warning['message']); - } - } - if ($pf2->getPackagexmlVersion() == '2.0' || - $pf2->getPackagexmlVersion() == '2.1') { - $main = &$pf2; - $other = &$pf; - } else { - $main = &$pf; - $other = &$pf2; - } - if ($main->getPackagexmlVersion() != '2.0' && - $main->getPackagexmlVersion() != '2.1') { - return PEAR::raiseError('Error: cannot package two package.xml version 1.0, can ' . - 'only package together a package.xml 1.0 and package.xml 2.0'); - } - if ($other->getPackagexmlVersion() != '1.0') { - return PEAR::raiseError('Error: cannot package two package.xml version 2.0, can ' . - 'only package together a package.xml 1.0 and package.xml 2.0'); - } - } - $main->setLogger($this); - if (!$main->validate(PEAR_VALIDATE_PACKAGING)) { - foreach ($main->getValidationWarnings() as $warning) { - $this->log(0, 'Error: ' . $warning['message']); - } - return $this->raiseError("Cannot package, errors in package"); - } else { - foreach ($main->getValidationWarnings() as $warning) { - $this->log(1, 'Warning: ' . $warning['message']); - } - } - if ($pkg2) { - $other->setLogger($this); - $a = false; - if (!$other->validate(PEAR_VALIDATE_NORMAL) || $a = !$main->isEquivalent($other)) { - foreach ($other->getValidationWarnings() as $warning) { - $this->log(0, 'Error: ' . $warning['message']); - } - foreach ($main->getValidationWarnings() as $warning) { - $this->log(0, 'Error: ' . $warning['message']); - } - if ($a) { - return $this->raiseError('The two package.xml files are not equivalent!'); - } - return $this->raiseError("Cannot package, errors in package"); - } else { - foreach ($other->getValidationWarnings() as $warning) { - $this->log(1, 'Warning: ' . $warning['message']); - } - } - $gen = &$main->getDefaultGenerator(); - $tgzfile = $gen->toTgz2($this, $other, $compress); - if (PEAR::isError($tgzfile)) { - return $tgzfile; - } - $dest_package = basename($tgzfile); - $pkgdir = dirname($pkgfile); - - // TAR the Package ------------------------------------------- - $this->log(1, "Package $dest_package done"); - if (file_exists("$pkgdir/CVS/Root")) { - $cvsversion = preg_replace('/[^a-z0-9]/i', '_', $pf->getVersion()); - $cvstag = "RELEASE_$cvsversion"; - $this->log(1, 'Tag the released code with "pear cvstag ' . - $main->getPackageFile() . '"'); - $this->log(1, "(or set the CVS tag $cvstag by hand)"); - } - } else { // this branch is executed for single packagefile packaging - $gen = &$pf->getDefaultGenerator(); - $tgzfile = $gen->toTgz($this, $compress); - if (PEAR::isError($tgzfile)) { - $this->log(0, $tgzfile->getMessage()); - return $this->raiseError("Cannot package, errors in package"); - } - $dest_package = basename($tgzfile); - $pkgdir = dirname($pkgfile); - - // TAR the Package ------------------------------------------- - $this->log(1, "Package $dest_package done"); - if (file_exists("$pkgdir/CVS/Root")) { - $cvsversion = preg_replace('/[^a-z0-9]/i', '_', $pf->getVersion()); - $cvstag = "RELEASE_$cvsversion"; - $this->log(1, "Tag the released code with `pear cvstag $pkgfile'"); - $this->log(1, "(or set the CVS tag $cvstag by hand)"); - } - } - return $dest_package; - } - - // }}} -} - -// {{{ md5_file() utility function -if (!function_exists('md5_file')) { - function md5_file($file) { - if (!$fd = @fopen($file, 'r')) { - return false; - } - fclose($fd); - $md5 = md5(file_get_contents($file)); - return $md5; - } -} -// }}} - -?> diff --git a/src/vitis/vas/rest/class/PEAR/REST.php b/src/vitis/vas/rest/class/PEAR/REST.php deleted file mode 100755 index c32946c6..00000000 --- a/src/vitis/vas/rest/class/PEAR/REST.php +++ /dev/null @@ -1,397 +0,0 @@ -<?php -/** - * PEAR_REST - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: REST.php,v 1.31 2008/05/13 18:03:36 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 1.4.0a1 - */ - -/** - * For downloading xml files - */ -require_once 'PEAR.php'; -require_once 'PEAR/XMLParser.php'; - -/** - * Intelligently retrieve data, following hyperlinks if necessary, and re-directing - * as well - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 1.4.0a1 - */ -class PEAR_REST -{ - var $config; - var $_options; - function PEAR_REST(&$config, $options = array()) - { - $this->config = &$config; - $this->_options = $options; - } - - /** - * Retrieve REST data, but always retrieve the local cache if it is available. - * - * This is useful for elements that should never change, such as information on a particular - * release - * @param string full URL to this resource - * @param array|false contents of the accept-encoding header - * @param boolean if true, xml will be returned as a string, otherwise, xml will be - * parsed using PEAR_XMLParser - * @return string|array - */ - function retrieveCacheFirst($url, $accept = false, $forcestring = false, $channel = false) - { - $cachefile = $this->config->get('cache_dir') . DIRECTORY_SEPARATOR . - md5($url) . 'rest.cachefile'; - if (file_exists($cachefile)) { - return unserialize(implode('', file($cachefile))); - } - return $this->retrieveData($url, $accept, $forcestring, $channel); - } - - /** - * Retrieve a remote REST resource - * @param string full URL to this resource - * @param array|false contents of the accept-encoding header - * @param boolean if true, xml will be returned as a string, otherwise, xml will be - * parsed using PEAR_XMLParser - * @return string|array - */ - function retrieveData($url, $accept = false, $forcestring = false, $channel = false) - { - $cacheId = $this->getCacheId($url); - if ($ret = $this->useLocalCache($url, $cacheId)) { - return $ret; - } - if (!isset($this->_options['offline'])) { - $trieddownload = true; - $file = $this->downloadHttp($url, $cacheId ? $cacheId['lastChange'] : false, $accept, $channel); - } else { - $trieddownload = false; - $file = false; - } - if (PEAR::isError($file)) { - if ($file->getCode() == -9276) { - $trieddownload = false; - $file = false; // use local copy if available on socket connect error - } else { - return $file; - } - } - if (!$file) { - $ret = $this->getCache($url); - if (!PEAR::isError($ret) && $trieddownload) { - // reset the age of the cache if the server says it was unmodified - $this->saveCache($url, $ret, null, true, $cacheId); - } - return $ret; - } - if (is_array($file)) { - $headers = $file[2]; - $lastmodified = $file[1]; - $content = $file[0]; - } else { - $content = $file; - $lastmodified = false; - $headers = array(); - } - if ($forcestring) { - $this->saveCache($url, $content, $lastmodified, false, $cacheId); - return $content; - } - if (isset($headers['content-type'])) { - switch ($headers['content-type']) { - case 'text/xml' : - case 'application/xml' : - $parser = new PEAR_XMLParser; - PEAR::pushErrorHandling(PEAR_ERROR_RETURN); - $err = $parser->parse($content); - PEAR::popErrorHandling(); - if (PEAR::isError($err)) { - return PEAR::raiseError('Invalid xml downloaded from "' . $url . '": ' . - $err->getMessage()); - } - $content = $parser->getData(); - case 'text/html' : - default : - // use it as a string - } - } else { - // assume XML - $parser = new PEAR_XMLParser; - $parser->parse($content); - $content = $parser->getData(); - } - $this->saveCache($url, $content, $lastmodified, false, $cacheId); - return $content; - } - - function useLocalCache($url, $cacheid = null) - { - if ($cacheid === null) { - $cacheidfile = $this->config->get('cache_dir') . DIRECTORY_SEPARATOR . - md5($url) . 'rest.cacheid'; - if (file_exists($cacheidfile)) { - $cacheid = unserialize(implode('', file($cacheidfile))); - } else { - return false; - } - } - $cachettl = $this->config->get('cache_ttl'); - // If cache is newer than $cachettl seconds, we use the cache! - if (time() - $cacheid['age'] < $cachettl) { - return $this->getCache($url); - } - return false; - } - - function getCacheId($url) - { - $cacheidfile = $this->config->get('cache_dir') . DIRECTORY_SEPARATOR . - md5($url) . 'rest.cacheid'; - if (file_exists($cacheidfile)) { - $ret = unserialize(implode('', file($cacheidfile))); - return $ret; - } else { - return false; - } - } - - function getCache($url) - { - $cachefile = $this->config->get('cache_dir') . DIRECTORY_SEPARATOR . - md5($url) . 'rest.cachefile'; - if (file_exists($cachefile)) { - return unserialize(implode('', file($cachefile))); - } else { - return PEAR::raiseError('No cached content available for "' . $url . '"'); - } - } - - /** - * @param string full URL to REST resource - * @param string original contents of the REST resource - * @param array HTTP Last-Modified and ETag headers - * @param bool if true, then the cache id file should be regenerated to - * trigger a new time-to-live value - */ - function saveCache($url, $contents, $lastmodified, $nochange = false, $cacheid = null) - { - $cacheidfile = $this->config->get('cache_dir') . DIRECTORY_SEPARATOR . - md5($url) . 'rest.cacheid'; - $cachefile = $this->config->get('cache_dir') . DIRECTORY_SEPARATOR . - md5($url) . 'rest.cachefile'; - if ($cacheid === null && $nochange) { - $cacheid = unserialize(implode('', file($cacheidfile))); - } - - $fp = @fopen($cacheidfile, 'wb'); - if (!$fp) { - $cache_dir = $this->config->get('cache_dir'); - if (!is_dir($cache_dir)) { - System::mkdir(array('-p', $cache_dir)); - $fp = @fopen($cacheidfile, 'wb'); - if (!$fp) { - return false; - } - } else { - return false; - } - } - - if ($nochange) { - fwrite($fp, serialize(array( - 'age' => time(), - 'lastChange' => $cacheid['lastChange'], - ))); - fclose($fp); - return true; - } else { - fwrite($fp, serialize(array( - 'age' => time(), - 'lastChange' => $lastmodified, - ))); - } - fclose($fp); - $fp = @fopen($cachefile, 'wb'); - if (!$fp) { - if (file_exists($cacheidfile)) { - @unlink($cacheidfile); - } - return false; - } - fwrite($fp, serialize($contents)); - fclose($fp); - return true; - } - - /** - * Efficiently Download a file through HTTP. Returns downloaded file as a string in-memory - * This is best used for small files - * - * If an HTTP proxy has been configured (http_proxy PEAR_Config - * setting), the proxy will be used. - * - * @param string $url the URL to download - * @param string $save_dir directory to save file in - * @param false|string|array $lastmodified header values to check against for caching - * use false to return the header values from this download - * @param false|array $accept Accept headers to send - * @return string|array Returns the contents of the downloaded file or a PEAR - * error on failure. If the error is caused by - * socket-related errors, the error object will - * have the fsockopen error code available through - * getCode(). If caching is requested, then return the header - * values. - * - * @access public - */ - function downloadHttp($url, $lastmodified = null, $accept = false, $channel = false) - { - $info = parse_url($url); - if (!isset($info['scheme']) || !in_array($info['scheme'], array('http', 'https'))) { - return PEAR::raiseError('Cannot download non-http URL "' . $url . '"'); - } - if (!isset($info['host'])) { - return PEAR::raiseError('Cannot download from non-URL "' . $url . '"'); - } else { - $host = $info['host']; - if (!array_key_exists('port', $info)) { - $info['port'] = null; - } - if (!array_key_exists('path', $info)) { - $info['path'] = null; - } - $port = $info['port']; - $path = $info['path']; - } - $proxy_host = $proxy_port = $proxy_user = $proxy_pass = ''; - if ($this->config->get('http_proxy')&& - $proxy = parse_url($this->config->get('http_proxy'))) { - $proxy_host = isset($proxy['host']) ? $proxy['host'] : null; - if (isset($proxy['scheme']) && $proxy['scheme'] == 'https') { - $proxy_host = 'ssl://' . $proxy_host; - } - $proxy_port = isset($proxy['port']) ? $proxy['port'] : 8080; - $proxy_user = isset($proxy['user']) ? urldecode($proxy['user']) : null; - $proxy_pass = isset($proxy['pass']) ? urldecode($proxy['pass']) : null; - } - if (empty($port)) { - if (isset($info['scheme']) && $info['scheme'] == 'https') { - $port = 443; - } else { - $port = 80; - } - } - If (isset($proxy['host'])) { - $request = "GET $url HTTP/1.1\r\n"; - } else { - $request = "GET $path HTTP/1.1\r\n"; - } - $request .= "Host: $host:$port\r\n"; - - $ifmodifiedsince = ''; - if (is_array($lastmodified)) { - if (isset($lastmodified['Last-Modified'])) { - $ifmodifiedsince = 'If-Modified-Since: ' . $lastmodified['Last-Modified'] . "\r\n"; - } - if (isset($lastmodified['ETag'])) { - $ifmodifiedsince .= "If-None-Match: $lastmodified[ETag]\r\n"; - } - } else { - $ifmodifiedsince = ($lastmodified ? "If-Modified-Since: $lastmodified\r\n" : ''); - } - $request .= $ifmodifiedsince . - "User-Agent: PEAR/1.7.2/PHP/" . PHP_VERSION . "\r\n"; - $username = $this->config->get('username', null, $channel); - $password = $this->config->get('password', null, $channel); - if ($username && $password) { - $tmp = base64_encode("$username:$password"); - $request .= "Authorization: Basic $tmp\r\n"; - } - if ($proxy_host != '' && $proxy_user != '') { - $request .= 'Proxy-Authorization: Basic ' . - base64_encode($proxy_user . ':' . $proxy_pass) . "\r\n"; - } - if ($accept) { - $request .= 'Accept: ' . implode(', ', $accept) . "\r\n"; - } - $request .= "Accept-Encoding:\r\n"; - $request .= "Connection: close\r\n"; - $request .= "\r\n"; - if ($proxy_host != '') { - $fp = @fsockopen($proxy_host, $proxy_port, $errno, $errstr, 15); - if (!$fp) { - return PEAR::raiseError("Connection to `$proxy_host:$proxy_port' failed: $errstr", - -9276); - } - } else { - if (isset($info['scheme']) && $info['scheme'] == 'https') { - $host = 'ssl://' . $host; - } - $fp = @fsockopen($host, $port, $errno, $errstr); - if (!$fp) { - return PEAR::raiseError("Connection to `$host:$port' failed: $errstr", $errno); - } - } - fwrite($fp, $request); - $headers = array(); - while (trim($line = fgets($fp, 1024))) { - if (preg_match('/^([^:]+):\s+(.*)\s*\\z/', $line, $matches)) { - $headers[strtolower($matches[1])] = trim($matches[2]); - } elseif (preg_match('|^HTTP/1.[01] ([0-9]{3}) |', $line, $matches)) { - if ($matches[1] == 304 && ($lastmodified || ($lastmodified === false))) { - return false; - } - if ($matches[1] != 200) { - return PEAR::raiseError("File http://$host:$port$path not valid (received: $line)", (int) $matches[1]); - } - } - } - if (isset($headers['content-length'])) { - $length = $headers['content-length']; - } else { - $length = -1; - } - $data = ''; - while ($chunk = @fread($fp, 8192)) { - $data .= $chunk; - } - fclose($fp); - if ($lastmodified === false || $lastmodified) { - if (isset($headers['etag'])) { - $lastmodified = array('ETag' => $headers['etag']); - } - if (isset($headers['last-modified'])) { - if (is_array($lastmodified)) { - $lastmodified['Last-Modified'] = $headers['last-modified']; - } else { - $lastmodified = $headers['last-modified']; - } - } - return array($data, $lastmodified, $headers); - } - return $data; - } -} -?> diff --git a/src/vitis/vas/rest/class/PEAR/REST/10.php b/src/vitis/vas/rest/class/PEAR/REST/10.php deleted file mode 100755 index d2f44fe9..00000000 --- a/src/vitis/vas/rest/class/PEAR/REST/10.php +++ /dev/null @@ -1,797 +0,0 @@ -<?php -/** - * PEAR_REST_10 - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: 10.php,v 1.53 2008/04/11 01:16:40 dufuz Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 1.4.0a12 - */ - -/** - * For downloading REST xml/txt files - */ -require_once 'PEAR/REST.php'; - -/** - * Implement REST 1.0 - * - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 1.4.0a12 - */ -class PEAR_REST_10 -{ - /** - * @var PEAR_REST - */ - var $_rest; - function PEAR_REST_10($config, $options = array()) - { - $this->_rest = &new PEAR_REST($config, $options); - } - - /** - * Retrieve information about a remote package to be downloaded from a REST server - * - * @param string $base The uri to prepend to all REST calls - * @param array $packageinfo an array of format: - * <pre> - * array( - * 'package' => 'packagename', - * 'channel' => 'channelname', - * ['state' => 'alpha' (or valid state),] - * -or- - * ['version' => '1.whatever'] - * </pre> - * @param string $prefstate Current preferred_state config variable value - * @param bool $installed the installed version of this package to compare against - * @return array|false|PEAR_Error see {@link _returnDownloadURL()} - */ - function getDownloadURL($base, $packageinfo, $prefstate, $installed, $channel = false) - { - $channel = $packageinfo['channel']; - $package = $packageinfo['package']; - $states = $this->betterStates($prefstate, true); - if (!$states) { - return PEAR::raiseError('"' . $prefstate . '" is not a valid state'); - } - $state = isset($packageinfo['state']) ? $packageinfo['state'] : null; - $version = isset($packageinfo['version']) ? $packageinfo['version'] : null; - $info = $this->_rest->retrieveData($base . 'r/' . strtolower($package) . '/allreleases.xml', false, false, $channel); - if (PEAR::isError($info)) { - return PEAR::raiseError('No releases available for package "' . - $channel . '/' . $package . '"'); - } - if (!isset($info['r'])) { - return false; - } - $release = $found = false; - if (!is_array($info['r']) || !isset($info['r'][0])) { - $info['r'] = array($info['r']); - } - foreach ($info['r'] as $release) { - if (!isset($this->_rest->_options['force']) && ($installed && - version_compare($release['v'], $installed, '<'))) { - continue; - } - if (isset($state)) { - // try our preferred state first - if ($release['s'] == $state) { - $found = true; - break; - } - // see if there is something newer and more stable - // bug #7221 - if (in_array($release['s'], $this->betterStates($state), true)) { - $found = true; - break; - } - } elseif (isset($version)) { - if ($release['v'] == $version) { - $found = true; - break; - } - } else { - if (in_array($release['s'], $states)) { - $found = true; - break; - } - } - } - return $this->_returnDownloadURL($base, $package, $release, $info, $found, false, $channel); - } - - function getDepDownloadURL($base, $xsdversion, $dependency, $deppackage, - $prefstate = 'stable', $installed = false, $channel = false) - { - $channel = $dependency['channel']; - $package = $dependency['name']; - $states = $this->betterStates($prefstate, true); - if (!$states) { - return PEAR::raiseError('"' . $prefstate . '" is not a valid state'); - } - $state = isset($dependency['state']) ? $dependency['state'] : null; - $version = isset($dependency['version']) ? $dependency['version'] : null; - $info = $this->_rest->retrieveData($base . 'r/' . strtolower($package) . '/allreleases.xml', false, false, $channel); - if (PEAR::isError($info)) { - return PEAR::raiseError('Package "' . $deppackage['channel'] . '/' . $deppackage['package'] - . '" dependency "' . $channel . '/' . $package . '" has no releases'); - } - if (!is_array($info) || !isset($info['r'])) { - return false; - } - $exclude = array(); - $min = $max = $recommended = false; - if ($xsdversion == '1.0') { - switch ($dependency['rel']) { - case 'ge' : - $min = $dependency['version']; - break; - case 'gt' : - $min = $dependency['version']; - $exclude = array($dependency['version']); - break; - case 'eq' : - $recommended = $dependency['version']; - break; - case 'lt' : - $max = $dependency['version']; - $exclude = array($dependency['version']); - break; - case 'le' : - $max = $dependency['version']; - break; - case 'ne' : - $exclude = array($dependency['version']); - break; - } - } else { - $min = isset($dependency['min']) ? $dependency['min'] : false; - $max = isset($dependency['max']) ? $dependency['max'] : false; - $recommended = isset($dependency['recommended']) ? - $dependency['recommended'] : false; - if (isset($dependency['exclude'])) { - if (!isset($dependency['exclude'][0])) { - $exclude = array($dependency['exclude']); - } - } - } - $release = $found = false; - if (!is_array($info['r']) || !isset($info['r'][0])) { - $info['r'] = array($info['r']); - } - foreach ($info['r'] as $release) { - if (!isset($this->_rest->_options['force']) && ($installed && - version_compare($release['v'], $installed, '<'))) { - continue; - } - if (in_array($release['v'], $exclude)) { // skip excluded versions - continue; - } - // allow newer releases to say "I'm OK with the dependent package" - if ($xsdversion == '2.0' && isset($release['co'])) { - if (!is_array($release['co']) || !isset($release['co'][0])) { - $release['co'] = array($release['co']); - } - foreach ($release['co'] as $entry) { - if (isset($entry['x']) && !is_array($entry['x'])) { - $entry['x'] = array($entry['x']); - } elseif (!isset($entry['x'])) { - $entry['x'] = array(); - } - if ($entry['c'] == $deppackage['channel'] && - strtolower($entry['p']) == strtolower($deppackage['package']) && - version_compare($deppackage['version'], $entry['min'], '>=') && - version_compare($deppackage['version'], $entry['max'], '<=') && - !in_array($release['v'], $entry['x'])) { - $recommended = $release['v']; - break; - } - } - } - if ($recommended) { - if ($release['v'] != $recommended) { // if we want a specific - // version, then skip all others - continue; - } else { - if (!in_array($release['s'], $states)) { - // the stability is too low, but we must return the - // recommended version if possible - return $this->_returnDownloadURL($base, $package, $release, $info, true, false, $channel); - } - } - } - if ($min && version_compare($release['v'], $min, 'lt')) { // skip too old versions - continue; - } - if ($max && version_compare($release['v'], $max, 'gt')) { // skip too new versions - continue; - } - if ($installed && version_compare($release['v'], $installed, '<')) { - continue; - } - if (in_array($release['s'], $states)) { // if in the preferred state... - $found = true; // ... then use it - break; - } - } - return $this->_returnDownloadURL($base, $package, $release, $info, $found, false, $channel); - } - - /** - * Take raw data and return the array needed for processing a download URL - * - * @param string $base REST base uri - * @param string $package Package name - * @param array $release an array of format array('v' => version, 's' => state) - * describing the release to download - * @param array $info list of all releases as defined by allreleases.xml - * @param bool|null $found determines whether the release was found or this is the next - * best alternative. If null, then versions were skipped because - * of PHP dependency - * @return array|PEAR_Error - * @access private - */ - function _returnDownloadURL($base, $package, $release, $info, $found, $phpversion = false, $channel = false) - { - if (!$found) { - $release = $info['r'][0]; - } - $pinfo = $this->_rest->retrieveCacheFirst($base . 'p/' . strtolower($package) . '/' . - 'info.xml', false, false, $channel); - if (PEAR::isError($pinfo)) { - return PEAR::raiseError('Package "' . $package . - '" does not have REST info xml available'); - } - $releaseinfo = $this->_rest->retrieveCacheFirst($base . 'r/' . strtolower($package) . '/' . - $release['v'] . '.xml', false, false, $channel); - if (PEAR::isError($releaseinfo)) { - return PEAR::raiseError('Package "' . $package . '" Version "' . $release['v'] . - '" does not have REST xml available'); - } - $packagexml = $this->_rest->retrieveCacheFirst($base . 'r/' . strtolower($package) . '/' . - 'deps.' . $release['v'] . '.txt', false, true, $channel); - if (PEAR::isError($packagexml)) { - return PEAR::raiseError('Package "' . $package . '" Version "' . $release['v'] . - '" does not have REST dependency information available'); - } - $packagexml = unserialize($packagexml); - if (!$packagexml) { - $packagexml = array(); - } - $allinfo = $this->_rest->retrieveData($base . 'r/' . strtolower($package) . - '/allreleases.xml', false, false, $channel); - if (!is_array($allinfo['r']) || !isset($allinfo['r'][0])) { - $allinfo['r'] = array($allinfo['r']); - } - $compatible = false; - foreach ($allinfo['r'] as $release) { - if ($release['v'] != $releaseinfo['v']) { - continue; - } - if (!isset($release['co'])) { - break; - } - $compatible = array(); - if (!is_array($release['co']) || !isset($release['co'][0])) { - $release['co'] = array($release['co']); - } - foreach ($release['co'] as $entry) { - $comp = array(); - $comp['name'] = $entry['p']; - $comp['channel'] = $entry['c']; - $comp['min'] = $entry['min']; - $comp['max'] = $entry['max']; - if (isset($entry['x']) && !is_array($entry['x'])) { - $comp['exclude'] = $entry['x']; - } - $compatible[] = $comp; - } - if (count($compatible) == 1) { - $compatible = $compatible[0]; - } - break; - } - if (isset($pinfo['dc']) && isset($pinfo['dp'])) { - if (is_array($pinfo['dp'])) { - $deprecated = array('channel' => (string) $pinfo['dc'], - 'package' => trim($pinfo['dp']['_content'])); - } else { - $deprecated = array('channel' => (string) $pinfo['dc'], - 'package' => trim($pinfo['dp'])); - } - } else { - $deprecated = false; - } - if ($found) { - return - array('version' => $releaseinfo['v'], - 'info' => $packagexml, - 'package' => $releaseinfo['p']['_content'], - 'stability' => $releaseinfo['st'], - 'url' => $releaseinfo['g'], - 'compatible' => $compatible, - 'deprecated' => $deprecated, - ); - } else { - return - array('version' => $releaseinfo['v'], - 'package' => $releaseinfo['p']['_content'], - 'stability' => $releaseinfo['st'], - 'info' => $packagexml, - 'compatible' => $compatible, - 'deprecated' => $deprecated, - 'php' => $phpversion - ); - } - } - - function listPackages($base, $channel = false) - { - $packagelist = $this->_rest->retrieveData($base . 'p/packages.xml', false, false, $channel); - if (PEAR::isError($packagelist)) { - return $packagelist; - } - if (!is_array($packagelist) || !isset($packagelist['p'])) { - return array(); - } - if (!is_array($packagelist['p'])) { - $packagelist['p'] = array($packagelist['p']); - } - return $packagelist['p']; - } - - /** - * List all categories of a REST server - * - * @param string $base base URL of the server - * @return array of categorynames - */ - function listCategories($base, $channel = false) - { - $categories = array(); - - // c/categories.xml does not exist; - // check for every package its category manually - // This is SLOOOWWWW : /// - $packagelist = $this->_rest->retrieveData($base . 'p/packages.xml', false, false, $channel); - if (PEAR::isError($packagelist)) { - return $packagelist; - } - if (!is_array($packagelist) || !isset($packagelist['p'])) { - $ret = array(); - return $ret; - } - if (!is_array($packagelist['p'])) { - $packagelist['p'] = array($packagelist['p']); - } - - PEAR::pushErrorHandling(PEAR_ERROR_RETURN); - foreach ($packagelist['p'] as $package) { - $inf = $this->_rest->retrieveData($base . 'p/' . strtolower($package) . '/info.xml', false, false, $channel); - if (PEAR::isError($inf)) { - PEAR::popErrorHandling(); - return $inf; - } - $cat = $inf['ca']['_content']; - if (!isset($categories[$cat])) { - $categories[$cat] = $inf['ca']; - } - } - return array_values($categories); - } - - /** - * List a category of a REST server - * - * @param string $base base URL of the server - * @param string $category name of the category - * @param boolean $info also download full package info - * @return array of packagenames - */ - function listCategory($base, $category, $info = false, $channel = false) - { - // gives '404 Not Found' error when category doesn't exist - $packagelist = $this->_rest->retrieveData($base.'c/'.urlencode($category).'/packages.xml', false, false, $channel); - if (PEAR::isError($packagelist)) { - return $packagelist; - } - if (!is_array($packagelist) || !isset($packagelist['p'])) { - return array(); - } - if (!is_array($packagelist['p']) || - !isset($packagelist['p'][0])) { // only 1 pkg - $packagelist = array($packagelist['p']); - } else { - $packagelist = $packagelist['p']; - } - - if ($info == true) { - // get individual package info - PEAR::pushErrorHandling(PEAR_ERROR_RETURN); - foreach ($packagelist as $i => $packageitem) { - $url = sprintf('%s'.'r/%s/latest.txt', - $base, - strtolower($packageitem['_content'])); - $version = $this->_rest->retrieveData($url, false, false, $channel); - if (PEAR::isError($version)) { - break; // skipit - } - $url = sprintf('%s'.'r/%s/%s.xml', - $base, - strtolower($packageitem['_content']), - $version); - $info = $this->_rest->retrieveData($url, false, false, $channel); - if (PEAR::isError($info)) { - break; // skipit - } - $packagelist[$i]['info'] = $info; - } - PEAR::popErrorHandling(); - } - - return $packagelist; - } - - - function listAll($base, $dostable, $basic = true, $searchpackage = false, $searchsummary = false, $channel = false) - { - $packagelist = $this->_rest->retrieveData($base . 'p/packages.xml', false, false, $channel); - if (PEAR::isError($packagelist)) { - return $packagelist; - } - if ($this->_rest->config->get('verbose') > 0) { - $ui = &PEAR_Frontend::singleton(); - $ui->log('Retrieving data...0%', false); - } - $ret = array(); - if (!is_array($packagelist) || !isset($packagelist['p'])) { - return $ret; - } - if (!is_array($packagelist['p'])) { - $packagelist['p'] = array($packagelist['p']); - } - - // only search-packagename = quicksearch ! - if ($searchpackage && (!$searchsummary || empty($searchpackage))) { - $newpackagelist = array(); - foreach ($packagelist['p'] as $package) { - if (!empty($searchpackage) && stristr($package, $searchpackage) !== false) { - $newpackagelist[] = $package; - } - } - $packagelist['p'] = $newpackagelist; - } - PEAR::pushErrorHandling(PEAR_ERROR_RETURN); - $next = .1; - foreach ($packagelist['p'] as $progress => $package) { - if ($this->_rest->config->get('verbose') > 0) { - if ($progress / count($packagelist['p']) >= $next) { - if ($next == .5) { - $ui->log('50%', false); - } else { - $ui->log('.', false); - } - $next += .1; - } - } - if ($basic) { // remote-list command - if ($dostable) { - $latest = $this->_rest->retrieveData($base . 'r/' . strtolower($package) . - '/stable.txt', false, false, $channel); - } else { - $latest = $this->_rest->retrieveData($base . 'r/' . strtolower($package) . - '/latest.txt', false, false, $channel); - } - if (PEAR::isError($latest)) { - $latest = false; - } - $info = array('stable' => $latest); - } else { // list-all command - $inf = $this->_rest->retrieveData($base . 'p/' . strtolower($package) . '/info.xml', false, false, $channel); - if (PEAR::isError($inf)) { - PEAR::popErrorHandling(); - return $inf; - } - if ($searchpackage) { - $found = (!empty($searchpackage) && stristr($package, $searchpackage) !== false); - if (!$found && !(isset($searchsummary) && !empty($searchsummary) - && (stristr($inf['s'], $searchsummary) !== false - || stristr($inf['d'], $searchsummary) !== false))) - { - continue; - }; - } - $releases = $this->_rest->retrieveData($base . 'r/' . strtolower($package) . - '/allreleases.xml', false, false, $channel); - if (PEAR::isError($releases)) { - continue; - } - if (!isset($releases['r'][0])) { - $releases['r'] = array($releases['r']); - } - unset($latest); - unset($unstable); - unset($stable); - unset($state); - foreach ($releases['r'] as $release) { - if (!isset($latest)) { - if ($dostable && $release['s'] == 'stable') { - $latest = $release['v']; - $state = 'stable'; - } - if (!$dostable) { - $latest = $release['v']; - $state = $release['s']; - } - } - if (!isset($stable) && $release['s'] == 'stable') { - $stable = $release['v']; - if (!isset($unstable)) { - $unstable = $stable; - } - } - if (!isset($unstable) && $release['s'] != 'stable') { - $latest = $unstable = $release['v']; - $state = $release['s']; - } - if (isset($latest) && !isset($state)) { - $state = $release['s']; - } - if (isset($latest) && isset($stable) && isset($unstable)) { - break; - } - } - $deps = array(); - if (!isset($unstable)) { - $unstable = false; - $state = 'stable'; - if (isset($stable)) { - $latest = $unstable = $stable; - } - } else { - $latest = $unstable; - } - if (!isset($latest)) { - $latest = false; - } - if ($latest) { - $d = $this->_rest->retrieveCacheFirst($base . 'r/' . strtolower($package) . '/deps.' . - $latest . '.txt', false, false, $channel); - if (!PEAR::isError($d)) { - $d = unserialize($d); - if ($d) { - if (isset($d['required'])) { - if (!class_exists('PEAR_PackageFile_v2')) { - require_once 'PEAR/PackageFile/v2.php'; - } - if (!isset($pf)) { - $pf = new PEAR_PackageFile_v2; - } - $pf->setDeps($d); - $tdeps = $pf->getDeps(); - } else { - $tdeps = $d; - } - foreach ($tdeps as $dep) { - if ($dep['type'] !== 'pkg') { - continue; - } - $deps[] = $dep; - } - } - } - } - if (!isset($stable)) { - $stable = '-n/a-'; - } - if (!$searchpackage) { - $info = array('stable' => $latest, 'summary' => $inf['s'], 'description' => - $inf['d'], 'deps' => $deps, 'category' => $inf['ca']['_content'], - 'unstable' => $unstable, 'state' => $state); - } else { - $info = array('stable' => $stable, 'summary' => $inf['s'], 'description' => - $inf['d'], 'deps' => $deps, 'category' => $inf['ca']['_content'], - 'unstable' => $unstable, 'state' => $state); - } - } - $ret[$package] = $info; - } - PEAR::popErrorHandling(); - return $ret; - } - - function listLatestUpgrades($base, $pref_state, $installed, $channel, &$reg) - { - $packagelist = $this->_rest->retrieveData($base . 'p/packages.xml', false, false, $channel); - if (PEAR::isError($packagelist)) { - return $packagelist; - } - $ret = array(); - if (!is_array($packagelist) || !isset($packagelist['p'])) { - return $ret; - } - if (!is_array($packagelist['p'])) { - $packagelist['p'] = array($packagelist['p']); - } - foreach ($packagelist['p'] as $package) { - if (!isset($installed[strtolower($package)])) { - continue; - } - $inst_version = $reg->packageInfo($package, 'version', $channel); - $inst_state = $reg->packageInfo($package, 'release_state', $channel); - PEAR::pushErrorHandling(PEAR_ERROR_RETURN); - $info = $this->_rest->retrieveData($base . 'r/' . strtolower($package) . - '/allreleases.xml', false, false, $channel); - PEAR::popErrorHandling(); - if (PEAR::isError($info)) { - continue; // no remote releases - } - if (!isset($info['r'])) { - continue; - } - $found = false; - $release = false; - if (!is_array($info['r']) || !isset($info['r'][0])) { - $info['r'] = array($info['r']); - } - // $info['r'] is sorted by version number - foreach ($info['r'] as $release) { - if ($inst_version && version_compare($release['v'], $inst_version, '<=')) { - // not newer than the one installed - break; - } - - // new version > installed version - if (!$pref_state) { - // every state is a good state - $found = true; - break; - } else { - $new_state = $release['s']; - // if new state >= installed state: go - if (in_array($new_state, $this->betterStates($inst_state, true))) { - $found = true; - break; - } else { - // only allow to lower the state of package, - // if new state >= preferred state: go - if (in_array($new_state, $this->betterStates($pref_state, true))) { - $found = true; - break; - } - } - } - } - if (!$found) { - continue; - } - $relinfo = $this->_rest->retrieveCacheFirst($base . 'r/' . strtolower($package) . '/' . - $release['v'] . '.xml', false, false, $channel); - if (PEAR::isError($relinfo)) { - return $relinfo; - } - $ret[$package] = array( - 'version' => $release['v'], - 'state' => $release['s'], - 'filesize' => $relinfo['f'], - ); - } - return $ret; - } - - function packageInfo($base, $package, $channel = false) - { - PEAR::pushErrorHandling(PEAR_ERROR_RETURN); - $pinfo = $this->_rest->retrieveData($base . 'p/' . strtolower($package) . '/info.xml', false, false, $channel); - if (PEAR::isError($pinfo)) { - PEAR::popErrorHandling(); - return PEAR::raiseError('Unknown package: "' . $package . '" (Debug: ' . - $pinfo->getMessage() . ')'); - } - $releases = array(); - $allreleases = $this->_rest->retrieveData($base . 'r/' . strtolower($package) . - '/allreleases.xml', false, false, $channel); - if (!PEAR::isError($allreleases)) { - if (!class_exists('PEAR_PackageFile_v2')) { - require_once 'PEAR/PackageFile/v2.php'; - } - if (!is_array($allreleases['r']) || !isset($allreleases['r'][0])) { - $allreleases['r'] = array($allreleases['r']); - } - $pf = new PEAR_PackageFile_v2; - foreach ($allreleases['r'] as $release) { - $ds = $this->_rest->retrieveCacheFirst($base . 'r/' . strtolower($package) . '/deps.' . - $release['v'] . '.txt', false, false, $channel); - if (PEAR::isError($ds)) { - continue; - } - if (!isset($latest)) { - $latest = $release['v']; - } - $pf->setDeps(unserialize($ds)); - $ds = $pf->getDeps(); - $info = $this->_rest->retrieveCacheFirst($base . 'r/' . strtolower($package) - . '/' . $release['v'] . '.xml', false, false, $channel); - if (PEAR::isError($info)) { - continue; - } - $releases[$release['v']] = array( - 'doneby' => $info['m'], - 'license' => $info['l'], - 'summary' => $info['s'], - 'description' => $info['d'], - 'releasedate' => $info['da'], - 'releasenotes' => $info['n'], - 'state' => $release['s'], - 'deps' => $ds ? $ds : array(), - ); - } - } else { - $latest = ''; - } - PEAR::popErrorHandling(); - if (isset($pinfo['dc']) && isset($pinfo['dp'])) { - if (is_array($pinfo['dp'])) { - $deprecated = array('channel' => (string) $pinfo['dc'], - 'package' => trim($pinfo['dp']['_content'])); - } else { - $deprecated = array('channel' => (string) $pinfo['dc'], - 'package' => trim($pinfo['dp'])); - } - } else { - $deprecated = false; - } - return array( - 'name' => $pinfo['n'], - 'channel' => $pinfo['c'], - 'category' => $pinfo['ca']['_content'], - 'stable' => $latest, - 'license' => $pinfo['l'], - 'summary' => $pinfo['s'], - 'description' => $pinfo['d'], - 'releases' => $releases, - 'deprecated' => $deprecated, - ); - } - - /** - * Return an array containing all of the states that are more stable than - * or equal to the passed in state - * - * @param string Release state - * @param boolean Determines whether to include $state in the list - * @return false|array False if $state is not a valid release state - */ - function betterStates($state, $include = false) - { - static $states = array('snapshot', 'devel', 'alpha', 'beta', 'stable'); - $i = array_search($state, $states); - if ($i === false) { - return false; - } - if ($include) { - $i--; - } - return array_slice($states, $i + 1); - } -} -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/REST/11.php b/src/vitis/vas/rest/class/PEAR/REST/11.php deleted file mode 100755 index effa6890..00000000 --- a/src/vitis/vas/rest/class/PEAR/REST/11.php +++ /dev/null @@ -1,317 +0,0 @@ -<?php -/** - * PEAR_REST_11 - implement faster list-all/remote-list command - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: 11.php,v 1.14 2008/04/11 01:16:40 dufuz Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 1.4.3 - */ - -/** - * For downloading REST xml/txt files - */ -require_once 'PEAR/REST.php'; - -/** - * Implement REST 1.1 - * - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 1.4.3 - */ -class PEAR_REST_11 -{ - /** - * @var PEAR_REST - */ - var $_rest; - - function PEAR_REST_11($config, $options = array()) - { - $this->_rest = &new PEAR_REST($config, $options); - } - - function listAll($base, $dostable, $basic = true, $searchpackage = false, $searchsummary = false, $channel = false) - { - $categorylist = $this->_rest->retrieveData($base . 'c/categories.xml', false, false, $channel); - if (PEAR::isError($categorylist)) { - return $categorylist; - } - $ret = array(); - if (!is_array($categorylist['c']) || !isset($categorylist['c'][0])) { - $categorylist['c'] = array($categorylist['c']); - } - PEAR::pushErrorHandling(PEAR_ERROR_RETURN); - - foreach ($categorylist['c'] as $progress => $category) { - $category = $category['_content']; - $packagesinfo = $this->_rest->retrieveData($base . - 'c/' . urlencode($category) . '/packagesinfo.xml', false, false, $channel); - - if (PEAR::isError($packagesinfo)) { - continue; - } - - if (!is_array($packagesinfo) || !isset($packagesinfo['pi'])) { - continue; - } - - if (!is_array($packagesinfo['pi']) || !isset($packagesinfo['pi'][0])) { - $packagesinfo['pi'] = array($packagesinfo['pi']); - } - - foreach ($packagesinfo['pi'] as $packageinfo) { - $info = $packageinfo['p']; - $package = $info['n']; - $releases = isset($packageinfo['a']) ? $packageinfo['a'] : false; - unset($latest); - unset($unstable); - unset($stable); - unset($state); - - if ($releases) { - if (!isset($releases['r'][0])) { - $releases['r'] = array($releases['r']); - } - foreach ($releases['r'] as $release) { - if (!isset($latest)) { - if ($dostable && $release['s'] == 'stable') { - $latest = $release['v']; - $state = 'stable'; - } - if (!$dostable) { - $latest = $release['v']; - $state = $release['s']; - } - } - if (!isset($stable) && $release['s'] == 'stable') { - $stable = $release['v']; - if (!isset($unstable)) { - $unstable = $stable; - } - } - if (!isset($unstable) && $release['s'] != 'stable') { - $unstable = $release['v']; - $state = $release['s']; - } - if (isset($latest) && !isset($state)) { - $state = $release['s']; - } - if (isset($latest) && isset($stable) && isset($unstable)) { - break; - } - } - } - - if ($basic) { // remote-list command - if (!isset($latest)) { - $latest = false; - } - if ($dostable) { - // $state is not set if there are no releases - if (isset($state) && $state == 'stable') { - $ret[$package] = array('stable' => $latest); - } else { - $ret[$package] = array('stable' => '-n/a-'); - } - } else { - $ret[$package] = array('stable' => $latest); - } - continue; - } - - // list-all command - $deps = array(); - if (!isset($unstable)) { - $unstable = false; - $state = 'stable'; - if (isset($stable)) { - $latest = $unstable = $stable; - } - } else { - $latest = $unstable; - } - - if (!isset($latest)) { - $latest = false; - } - - if ($latest && isset($packageinfo['deps'])) { - if (!is_array($packageinfo['deps']) || - !isset($packageinfo['deps'][0])) { - $packageinfo['deps'] = array($packageinfo['deps']); - } - $d = false; - foreach ($packageinfo['deps'] as $dep) { - if ($dep['v'] == $latest) { - $d = unserialize($dep['d']); - } - } - if ($d) { - if (isset($d['required'])) { - if (!class_exists('PEAR_PackageFile_v2')) { - require_once 'PEAR/PackageFile/v2.php'; - } - if (!isset($pf)) { - $pf = new PEAR_PackageFile_v2; - } - $pf->setDeps($d); - $tdeps = $pf->getDeps(); - } else { - $tdeps = $d; - } - foreach ($tdeps as $dep) { - if ($dep['type'] !== 'pkg') { - continue; - } - $deps[] = $dep; - } - } - } - - $info = array('stable' => $latest, 'summary' => $info['s'], - 'description' => - $info['d'], 'deps' => $deps, 'category' => $info['ca']['_content'], - 'unstable' => $unstable, 'state' => $state); - $ret[$package] = $info; - } - } - PEAR::popErrorHandling(); - return $ret; - } - - /** - * List all categories of a REST server - * - * @param string $base base URL of the server - * @return array of categorynames - */ - function listCategories($base, $channel = false) - { - $categorylist = $this->_rest->retrieveData($base . 'c/categories.xml', false, false, $channel); - if (PEAR::isError($categorylist)) { - return $categorylist; - } - if (!is_array($categorylist) || !isset($categorylist['c'])) { - return array(); - } - if (isset($categorylist['c']['_content'])) { - // only 1 category - $categorylist['c'] = array($categorylist['c']); - } - return $categorylist['c']; - } - - /** - * List packages in a category of a REST server - * - * @param string $base base URL of the server - * @param string $category name of the category - * @param boolean $info also download full package info - * @return array of packagenames - */ - function listCategory($base, $category, $info = false, $channel = false) - { - if ($info == false) { - $url = '%s'.'c/%s/packages.xml'; - } else { - $url = '%s'.'c/%s/packagesinfo.xml'; - } - $url = sprintf($url, - $base, - urlencode($category)); - - // gives '404 Not Found' error when category doesn't exist - $packagelist = $this->_rest->retrieveData($url, false, false, $channel); - if (PEAR::isError($packagelist)) { - return $packagelist; - } - if (!is_array($packagelist)) { - return array(); - } - - if ($info == false) { - if (!isset($packagelist['p'])) { - return array(); - } - if (!is_array($packagelist['p']) || - !isset($packagelist['p'][0])) { // only 1 pkg - $packagelist = array($packagelist['p']); - } else { - $packagelist = $packagelist['p']; - } - return $packagelist; - } else { - // info == true - if (!isset($packagelist['pi'])) { - return array(); - } - if (!is_array($packagelist['pi']) || - !isset($packagelist['pi'][0])) { // only 1 pkg - $packagelist_pre = array($packagelist['pi']); - } else { - $packagelist_pre = $packagelist['pi']; - } - - $packagelist = array(); - foreach ($packagelist_pre as $i => $item) { - // compatibility with r/<latest.txt>.xml - if (isset($item['a']['r'][0])) { - // multiple releases - $item['p']['v'] = $item['a']['r'][0]['v']; - $item['p']['st'] = $item['a']['r'][0]['s']; - } elseif (isset($item['a'])) { - // first and only release - $item['p']['v'] = $item['a']['r']['v']; - $item['p']['st'] = $item['a']['r']['s']; - } - - $packagelist[$i] = array('attribs' => $item['p']['r'], - '_content' => $item['p']['n'], - 'info' => $item['p']); - } - } - - return $packagelist; - } - - /** - * Return an array containing all of the states that are more stable than - * or equal to the passed in state - * - * @param string Release state - * @param boolean Determines whether to include $state in the list - * @return false|array False if $state is not a valid release state - */ - function betterStates($state, $include = false) - { - static $states = array('snapshot', 'devel', 'alpha', 'beta', 'stable'); - $i = array_search($state, $states); - if ($i === false) { - return false; - } - if ($include) { - $i--; - } - return array_slice($states, $i + 1); - } -} -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/REST/13.php b/src/vitis/vas/rest/class/PEAR/REST/13.php deleted file mode 100755 index 875fd390..00000000 --- a/src/vitis/vas/rest/class/PEAR/REST/13.php +++ /dev/null @@ -1,280 +0,0 @@ -<?php -/** - * PEAR_REST_13 - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: 13.php,v 1.6 2008/04/11 01:16:40 dufuz Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 1.4.0a12 - */ - -/** - * For downloading REST xml/txt files - */ -require_once 'PEAR/REST.php'; -require_once 'PEAR/REST/10.php'; - -/** - * Implement REST 1.3 - * - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 1.4.0a12 - */ -class PEAR_REST_13 extends PEAR_REST_10 -{ - /** - * Retrieve information about a remote package to be downloaded from a REST server - * - * This is smart enough to resolve the minimum PHP version dependency prior to download - * @param string $base The uri to prepend to all REST calls - * @param array $packageinfo an array of format: - * <pre> - * array( - * 'package' => 'packagename', - * 'channel' => 'channelname', - * ['state' => 'alpha' (or valid state),] - * -or- - * ['version' => '1.whatever'] - * </pre> - * @param string $prefstate Current preferred_state config variable value - * @param bool $installed the installed version of this package to compare against - * @return array|false|PEAR_Error see {@link _returnDownloadURL()} - */ - function getDownloadURL($base, $packageinfo, $prefstate, $installed, $channel = false) - { - $channel = $packageinfo['channel']; - $package = $packageinfo['package']; - $states = $this->betterStates($prefstate, true); - if (!$states) { - return PEAR::raiseError('"' . $prefstate . '" is not a valid state'); - } - $state = isset($packageinfo['state']) ? $packageinfo['state'] : null; - $version = isset($packageinfo['version']) ? $packageinfo['version'] : null; - $info = $this->_rest->retrieveData($base . 'r/' . strtolower($package) . - '/allreleases2.xml'); - if (PEAR::isError($info)) { - return PEAR::raiseError('No releases available for package "' . - $channel . '/' . $package . '"'); - } - if (!isset($info['r'])) { - return false; - } - $release = $found = false; - if (!is_array($info['r']) || !isset($info['r'][0])) { - $info['r'] = array($info['r']); - } - $skippedphp = false; - foreach ($info['r'] as $release) { - if (!isset($this->_rest->_options['force']) && ($installed && - version_compare($release['v'], $installed, '<'))) { - continue; - } - if (isset($state)) { - // try our preferred state first - if ($release['s'] == $state) { - if (!isset($version) && version_compare($release['m'], phpversion(), '>')) { - // skip releases that require a PHP version newer than our PHP version - $skippedphp = $release; - continue; - } - $found = true; - break; - } - // see if there is something newer and more stable - // bug #7221 - if (in_array($release['s'], $this->betterStates($state), true)) { - if (!isset($version) && version_compare($release['m'], phpversion(), '>')) { - // skip releases that require a PHP version newer than our PHP version - $skippedphp = $release; - continue; - } - $found = true; - break; - } - } elseif (isset($version)) { - if ($release['v'] == $version) { - if (!isset($this->_rest->_options['force']) && - !isset($version) && - version_compare($release['m'], phpversion(), '>')) { - // skip releases that require a PHP version newer than our PHP version - $skippedphp = $release; - continue; - } - $found = true; - break; - } - } else { - if (in_array($release['s'], $states)) { - if (version_compare($release['m'], phpversion(), '>')) { - // skip releases that require a PHP version newer than our PHP version - $skippedphp = $release; - continue; - } - $found = true; - break; - } - } - } - if (!$found && $skippedphp) { - $found = null; - } - return $this->_returnDownloadURL($base, $package, $release, $info, $found, $skippedphp, $channel); - } - - function getDepDownloadURL($base, $xsdversion, $dependency, $deppackage, - $prefstate = 'stable', $installed = false, $channel = false) - { - $channel = $dependency['channel']; - $package = $dependency['name']; - $states = $this->betterStates($prefstate, true); - if (!$states) { - return PEAR::raiseError('"' . $prefstate . '" is not a valid state'); - } - $state = isset($dependency['state']) ? $dependency['state'] : null; - $version = isset($dependency['version']) ? $dependency['version'] : null; - $info = $this->_rest->retrieveData($base . 'r/' . strtolower($package) . - '/allreleases2.xml'); - if (PEAR::isError($info)) { - return PEAR::raiseError('Package "' . $deppackage['channel'] . '/' . $deppackage['package'] - . '" dependency "' . $channel . '/' . $package . '" has no releases'); - } - if (!is_array($info) || !isset($info['r'])) { - return false; - } - $exclude = array(); - $min = $max = $recommended = false; - if ($xsdversion == '1.0') { - $pinfo['package'] = $dependency['name']; - $pinfo['channel'] = 'pear.php.net'; // this is always true - don't change this - switch ($dependency['rel']) { - case 'ge' : - $min = $dependency['version']; - break; - case 'gt' : - $min = $dependency['version']; - $exclude = array($dependency['version']); - break; - case 'eq' : - $recommended = $dependency['version']; - break; - case 'lt' : - $max = $dependency['version']; - $exclude = array($dependency['version']); - break; - case 'le' : - $max = $dependency['version']; - break; - case 'ne' : - $exclude = array($dependency['version']); - break; - } - } else { - $pinfo['package'] = $dependency['name']; - $min = isset($dependency['min']) ? $dependency['min'] : false; - $max = isset($dependency['max']) ? $dependency['max'] : false; - $recommended = isset($dependency['recommended']) ? - $dependency['recommended'] : false; - if (isset($dependency['exclude'])) { - if (!isset($dependency['exclude'][0])) { - $exclude = array($dependency['exclude']); - } - } - } - $found = false; - $release = false; - $skippedphp = false; - if (!is_array($info['r']) || !isset($info['r'][0])) { - $info['r'] = array($info['r']); - } - foreach ($info['r'] as $release) { - if (!isset($this->_rest->_options['force']) && ($installed && - version_compare($release['v'], $installed, '<'))) { - continue; - } - if (in_array($release['v'], $exclude)) { // skip excluded versions - continue; - } - // allow newer releases to say "I'm OK with the dependent package" - if ($xsdversion == '2.0' && isset($release['co'])) { - if (!is_array($release['co']) || !isset($release['co'][0])) { - $release['co'] = array($release['co']); - } - foreach ($release['co'] as $entry) { - if (isset($entry['x']) && !is_array($entry['x'])) { - $entry['x'] = array($entry['x']); - } elseif (!isset($entry['x'])) { - $entry['x'] = array(); - } - if ($entry['c'] == $deppackage['channel'] && - strtolower($entry['p']) == strtolower($deppackage['package']) && - version_compare($deppackage['version'], $entry['min'], '>=') && - version_compare($deppackage['version'], $entry['max'], '<=') && - !in_array($release['v'], $entry['x'])) { - if (version_compare($release['m'], phpversion(), '>')) { - // skip dependency releases that require a PHP version - // newer than our PHP version - $skippedphp = $release; - continue; - } - $recommended = $release['v']; - break; - } - } - } - if ($recommended) { - if ($release['v'] != $recommended) { // if we want a specific - // version, then skip all others - continue; - } else { - if (!in_array($release['s'], $states)) { - // the stability is too low, but we must return the - // recommended version if possible - return $this->_returnDownloadURL($base, $package, $release, $info, true, false, $channel); - } - } - } - if ($min && version_compare($release['v'], $min, 'lt')) { // skip too old versions - continue; - } - if ($max && version_compare($release['v'], $max, 'gt')) { // skip too new versions - continue; - } - if ($installed && version_compare($release['v'], $installed, '<')) { - continue; - } - if (in_array($release['s'], $states)) { // if in the preferred state... - if (version_compare($release['m'], phpversion(), '>')) { - // skip dependency releases that require a PHP version - // newer than our PHP version - $skippedphp = $release; - continue; - } - $found = true; // ... then use it - break; - } - } - if (!$found && $skippedphp) { - $found = null; - } - return $this->_returnDownloadURL($base, $package, $release, $info, $found, $skippedphp, $channel); - } -} -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/Registry.php b/src/vitis/vas/rest/class/PEAR/Registry.php deleted file mode 100755 index 556366d3..00000000 --- a/src/vitis/vas/rest/class/PEAR/Registry.php +++ /dev/null @@ -1,2236 +0,0 @@ -<?php -/** - * PEAR_Registry - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Stig Bakken <ssb@php.net> - * @author Tomas V. V. Cox <cox@idecnet.com> - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Registry.php,v 1.171 2008/05/14 04:16:08 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 0.1 - */ - -/** - * for PEAR_Error - */ -require_once 'PEAR.php'; -require_once 'PEAR/DependencyDB.php'; - -define('PEAR_REGISTRY_ERROR_LOCK', -2); -define('PEAR_REGISTRY_ERROR_FORMAT', -3); -define('PEAR_REGISTRY_ERROR_FILE', -4); -define('PEAR_REGISTRY_ERROR_CONFLICT', -5); -define('PEAR_REGISTRY_ERROR_CHANNEL_FILE', -6); - -/** - * Administration class used to maintain the installed package database. - * @category pear - * @package PEAR - * @author Stig Bakken <ssb@php.net> - * @author Tomas V. V. Cox <cox@idecnet.com> - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 1.4.0a1 - */ -class PEAR_Registry extends PEAR -{ - // {{{ properties - - /** - * File containing all channel information. - * @var string - */ - var $channels = ''; - - /** Directory where registry files are stored. - * @var string - */ - var $statedir = ''; - - /** File where the file map is stored - * @var string - */ - var $filemap = ''; - - /** Directory where registry files for channels are stored. - * @var string - */ - var $channelsdir = ''; - - /** Name of file used for locking the registry - * @var string - */ - var $lockfile = ''; - - /** File descriptor used during locking - * @var resource - */ - var $lock_fp = null; - - /** Mode used during locking - * @var int - */ - var $lock_mode = 0; // XXX UNUSED - - /** Cache of package information. Structure: - * array( - * 'package' => array('id' => ... ), - * ... ) - * @var array - */ - var $pkginfo_cache = array(); - - /** Cache of file map. Structure: - * array( '/path/to/file' => 'package', ... ) - * @var array - */ - var $filemap_cache = array(); - - /** - * @var false|PEAR_ChannelFile - */ - var $_pearChannel; - - /** - * @var false|PEAR_ChannelFile - */ - var $_peclChannel; - - /** - * @var PEAR_DependencyDB - */ - var $_dependencyDB; - - /** - * @var PEAR_Config - */ - var $_config; - // }}} - - // {{{ constructor - - /** - * PEAR_Registry constructor. - * - * @param string (optional) PEAR install directory (for .php files) - * @param PEAR_ChannelFile PEAR_ChannelFile object representing the PEAR channel, if - * default values are not desired. Only used the very first time a PEAR - * repository is initialized - * @param PEAR_ChannelFile PEAR_ChannelFile object representing the PECL channel, if - * default values are not desired. Only used the very first time a PEAR - * repository is initialized - * - * @access public - */ - function PEAR_Registry($pear_install_dir = PEAR_INSTALL_DIR, $pear_channel = false, - $pecl_channel = false) - { - parent::PEAR(); - $this->setInstallDir($pear_install_dir); - $this->_pearChannel = $pear_channel; - $this->_peclChannel = $pecl_channel; - $this->_config = false; - } - - function setInstallDir($pear_install_dir = PEAR_INSTALL_DIR) - { - $ds = DIRECTORY_SEPARATOR; - $this->install_dir = $pear_install_dir; - $this->channelsdir = $pear_install_dir.$ds.'.channels'; - $this->statedir = $pear_install_dir.$ds.'.registry'; - $this->filemap = $pear_install_dir.$ds.'.filemap'; - $this->lockfile = $pear_install_dir.$ds.'.lock'; - } - - function hasWriteAccess() - { - if (!file_exists($this->install_dir)) { - $dir = $this->install_dir; - while ($dir && $dir != '.') { - $olddir = $dir; - $dir = dirname($dir); // cd .. - if ($dir != '.' && file_exists($dir)) { - if (is_writeable($dir)) { - return true; - } else { - return false; - } - } - if ($dir == $olddir) { // this can happen in safe mode - return @is_writable($dir); - } - } - return false; - } - return is_writeable($this->install_dir); - } - - function setConfig(&$config, $resetInstallDir = true) - { - $this->_config = &$config; - if ($resetInstallDir) { - $this->setInstallDir($config->get('php_dir')); - } - } - - function _initializeChannelDirs() - { - static $running = false; - if (!$running) { - $running = true; - $ds = DIRECTORY_SEPARATOR; - if (!is_dir($this->channelsdir) || - !file_exists($this->channelsdir . $ds . 'pear.php.net.reg') || - !file_exists($this->channelsdir . $ds . 'pecl.php.net.reg') || - !file_exists($this->channelsdir . $ds . '__uri.reg')) { - if (!file_exists($this->channelsdir . $ds . 'pear.php.net.reg')) { - $pear_channel = $this->_pearChannel; - if (!is_a($pear_channel, 'PEAR_ChannelFile') || !$pear_channel->validate()) { - if (!class_exists('PEAR_ChannelFile')) { - require_once 'PEAR/ChannelFile.php'; - } - $pear_channel = new PEAR_ChannelFile; - $pear_channel->setName('pear.php.net'); - $pear_channel->setAlias('pear'); - $pear_channel->setServer('pear.php.net'); - $pear_channel->setSummary('PHP Extension and Application Repository'); - $pear_channel->setDefaultPEARProtocols(); - $pear_channel->setBaseURL('REST1.0', 'http://pear.php.net/rest/'); - $pear_channel->setBaseURL('REST1.1', 'http://pear.php.net/rest/'); - } else { - $pear_channel->setName('pear.php.net'); - $pear_channel->setAlias('pear'); - } - $pear_channel->validate(); - $this->_addChannel($pear_channel); - } - if (!file_exists($this->channelsdir . $ds . 'pecl.php.net.reg')) { - $pecl_channel = $this->_peclChannel; - if (!is_a($pecl_channel, 'PEAR_ChannelFile') || !$pecl_channel->validate()) { - if (!class_exists('PEAR_ChannelFile')) { - require_once 'PEAR/ChannelFile.php'; - } - $pecl_channel = new PEAR_ChannelFile; - $pecl_channel->setName('pecl.php.net'); - $pecl_channel->setAlias('pecl'); - $pecl_channel->setServer('pecl.php.net'); - $pecl_channel->setSummary('PHP Extension Community Library'); - $pecl_channel->setDefaultPEARProtocols(); - $pecl_channel->setBaseURL('REST1.0', 'http://pecl.php.net/rest/'); - $pecl_channel->setBaseURL('REST1.1', 'http://pecl.php.net/rest/'); - $pecl_channel->setValidationPackage('PEAR_Validator_PECL', '1.0'); - } else { - $pecl_channel->setName('pecl.php.net'); - $pecl_channel->setAlias('pecl'); - } - $pecl_channel->validate(); - $this->_addChannel($pecl_channel); - } - if (!file_exists($this->channelsdir . $ds . '__uri.reg')) { - if (!class_exists('PEAR_ChannelFile')) { - require_once 'PEAR/ChannelFile.php'; - } - $private = new PEAR_ChannelFile; - $private->setName('__uri'); - $private->addFunction('xmlrpc', '1.0', '****'); - $private->setSummary('Pseudo-channel for static packages'); - $this->_addChannel($private); - } - $this->_rebuildFileMap(); - } - $running = false; - } - } - - function _initializeDirs() - { - $ds = DIRECTORY_SEPARATOR; - // XXX Compatibility code should be removed in the future - // rename all registry files if any to lowercase - if (!OS_WINDOWS && file_exists($this->statedir) && is_dir($this->statedir) && - $handle = opendir($this->statedir)) { - $dest = $this->statedir . $ds; - while (false !== ($file = readdir($handle))) { - if (preg_match('/^.*[A-Z].*\.reg\\z/', $file)) { - rename($dest . $file, $dest . strtolower($file)); - } - } - closedir($handle); - } - $this->_initializeChannelDirs(); - if (!file_exists($this->filemap)) { - $this->_rebuildFileMap(); - } - $this->_initializeDepDB(); - } - - function _initializeDepDB() - { - if (!isset($this->_dependencyDB)) { - static $initializing = false; - if (!$initializing) { - $initializing = true; - if (!$this->_config) { // never used? - if (OS_WINDOWS) { - $file = 'pear.ini'; - } else { - $file = '.pearrc'; - } - $this->_config = &new PEAR_Config($this->statedir . DIRECTORY_SEPARATOR . - $file); - $this->_config->setRegistry($this); - $this->_config->set('php_dir', $this->install_dir); - } - $this->_dependencyDB = &PEAR_DependencyDB::singleton($this->_config); - if (PEAR::isError($this->_dependencyDB)) { - // attempt to recover by removing the dep db - if (file_exists($this->_config->get('php_dir', null, 'pear.php.net') . - DIRECTORY_SEPARATOR . '.depdb')) { - @unlink($this->_config->get('php_dir', null, 'pear.php.net') . - DIRECTORY_SEPARATOR . '.depdb'); - } - $this->_dependencyDB = &PEAR_DependencyDB::singleton($this->_config); - if (PEAR::isError($this->_dependencyDB)) { - echo $this->_dependencyDB->getMessage(); - echo 'Unrecoverable error'; - exit(1); - } - } - $initializing = false; - } - } - } - // }}} - // {{{ destructor - - /** - * PEAR_Registry destructor. Makes sure no locks are forgotten. - * - * @access private - */ - function _PEAR_Registry() - { - parent::_PEAR(); - if (is_resource($this->lock_fp)) { - $this->_unlock(); - } - } - - // }}} - - // {{{ _assertStateDir() - - /** - * Make sure the directory where we keep registry files exists. - * - * @return bool TRUE if directory exists, FALSE if it could not be - * created - * - * @access private - */ - function _assertStateDir($channel = false) - { - if ($channel && $this->_getChannelFromAlias($channel) != 'pear.php.net') { - return $this->_assertChannelStateDir($channel); - } - static $init = false; - if (!file_exists($this->statedir)) { - if (!$this->hasWriteAccess()) { - return false; - } - require_once 'System.php'; - if (!System::mkdir(array('-p', $this->statedir))) { - return $this->raiseError("could not create directory '{$this->statedir}'"); - } - $init = true; - } elseif (!is_dir($this->statedir)) { - return $this->raiseError('Cannot create directory ' . $this->statedir . ', ' . - 'it already exists and is not a directory'); - } - $ds = DIRECTORY_SEPARATOR; - if (!file_exists($this->channelsdir)) { - if (!file_exists($this->channelsdir . $ds . 'pear.php.net.reg') || - !file_exists($this->channelsdir . $ds . 'pecl.php.net.reg') || - !file_exists($this->channelsdir . $ds . '__uri.reg')) { - $init = true; - } - } elseif (!is_dir($this->channelsdir)) { - return $this->raiseError('Cannot create directory ' . $this->channelsdir . ', ' . - 'it already exists and is not a directory'); - } - if ($init) { - static $running = false; - if (!$running) { - $running = true; - $this->_initializeDirs(); - $running = false; - $init = false; - } - } else { - $this->_initializeDepDB(); - } - return true; - } - - // }}} - // {{{ _assertChannelStateDir() - - /** - * Make sure the directory where we keep registry files exists for a non-standard channel. - * - * @param string channel name - * @return bool TRUE if directory exists, FALSE if it could not be - * created - * - * @access private - */ - function _assertChannelStateDir($channel) - { - $ds = DIRECTORY_SEPARATOR; - if (!$channel || $this->_getChannelFromAlias($channel) == 'pear.php.net') { - if (!file_exists($this->channelsdir . $ds . 'pear.php.net.reg')) { - $this->_initializeChannelDirs(); - } - return $this->_assertStateDir($channel); - } - $channelDir = $this->_channelDirectoryName($channel); - if (!is_dir($this->channelsdir) || - !file_exists($this->channelsdir . $ds . 'pear.php.net.reg')) { - $this->_initializeChannelDirs(); - } - if (!file_exists($channelDir)) { - if (!$this->hasWriteAccess()) { - return false; - } - require_once 'System.php'; - if (!System::mkdir(array('-p', $channelDir))) { - return $this->raiseError("could not create directory '" . $channelDir . - "'"); - } - } elseif (!is_dir($channelDir)) { - return $this->raiseError("could not create directory '" . $channelDir . - "', already exists and is not a directory"); - } - return true; - } - - // }}} - // {{{ _assertChannelDir() - - /** - * Make sure the directory where we keep registry files for channels exists - * - * @return bool TRUE if directory exists, FALSE if it could not be - * created - * - * @access private - */ - function _assertChannelDir() - { - if (!file_exists($this->channelsdir)) { - if (!$this->hasWriteAccess()) { - return false; - } - require_once 'System.php'; - if (!System::mkdir(array('-p', $this->channelsdir))) { - return $this->raiseError("could not create directory '{$this->channelsdir}'"); - } - } elseif (!is_dir($this->channelsdir)) { - return $this->raiseError("could not create directory '{$this->channelsdir}" . - "', it already exists and is not a directory"); - - } - if (!file_exists($this->channelsdir . DIRECTORY_SEPARATOR . '.alias')) { - if (!$this->hasWriteAccess()) { - return false; - } - require_once 'System.php'; - if (!System::mkdir(array('-p', $this->channelsdir . DIRECTORY_SEPARATOR . '.alias'))) { - return $this->raiseError("could not create directory '{$this->channelsdir}/.alias'"); - } - } elseif (!is_dir($this->channelsdir . DIRECTORY_SEPARATOR . '.alias')) { - return $this->raiseError("could not create directory '{$this->channelsdir}" . - "/.alias', it already exists and is not a directory"); - - } - return true; - } - - // }}} - // {{{ _packageFileName() - - /** - * Get the name of the file where data for a given package is stored. - * - * @param string channel name, or false if this is a PEAR package - * @param string package name - * - * @return string registry file name - * - * @access public - */ - function _packageFileName($package, $channel = false) - { - if ($channel && $this->_getChannelFromAlias($channel) != 'pear.php.net') { - return $this->_channelDirectoryName($channel) . DIRECTORY_SEPARATOR . - strtolower($package) . '.reg'; - } - return $this->statedir . DIRECTORY_SEPARATOR . strtolower($package) . '.reg'; - } - - // }}} - // {{{ _channelFileName() - - /** - * Get the name of the file where data for a given channel is stored. - * @param string channel name - * @return string registry file name - */ - function _channelFileName($channel, $noaliases = false) - { - if (!$noaliases) { - if (file_exists($this->_getChannelAliasFileName($channel))) { - $channel = implode('', file($this->_getChannelAliasFileName($channel))); - } - } - return $this->channelsdir . DIRECTORY_SEPARATOR . str_replace('/', '_', - strtolower($channel)) . '.reg'; - } - - // }}} - // {{{ getChannelAliasFileName() - - /** - * @param string - * @return string - */ - function _getChannelAliasFileName($alias) - { - return $this->channelsdir . DIRECTORY_SEPARATOR . '.alias' . - DIRECTORY_SEPARATOR . str_replace('/', '_', strtolower($alias)) . '.txt'; - } - - // }}} - // {{{ _getChannelFromAlias() - - /** - * Get the name of a channel from its alias - */ - function _getChannelFromAlias($channel) - { - if (!$this->_channelExists($channel)) { - if ($channel == 'pear.php.net') { - return 'pear.php.net'; - } - if ($channel == 'pecl.php.net') { - return 'pecl.php.net'; - } - if ($channel == '__uri') { - return '__uri'; - } - return false; - } - $channel = strtolower($channel); - if (file_exists($this->_getChannelAliasFileName($channel))) { - // translate an alias to an actual channel - return implode('', file($this->_getChannelAliasFileName($channel))); - } else { - return $channel; - } - } - // }}} - // {{{ _getChannelFromAlias() - - /** - * Get the alias of a channel from its alias or its name - */ - function _getAlias($channel) - { - if (!$this->_channelExists($channel)) { - if ($channel == 'pear.php.net') { - return 'pear'; - } - if ($channel == 'pecl.php.net') { - return 'pecl'; - } - return false; - } - $channel = $this->_getChannel($channel); - if (PEAR::isError($channel)) { - return $channel; - } - return $channel->getAlias(); - } - // }}} - // {{{ _channelDirectoryName() - - /** - * Get the name of the file where data for a given package is stored. - * - * @param string channel name, or false if this is a PEAR package - * @param string package name - * - * @return string registry file name - * - * @access public - */ - function _channelDirectoryName($channel) - { - if (!$channel || $this->_getChannelFromAlias($channel) == 'pear.php.net') { - return $this->statedir; - } else { - $ch = $this->_getChannelFromAlias($channel); - if (!$ch) { - $ch = $channel; - } - return $this->statedir . DIRECTORY_SEPARATOR . strtolower('.channel.' . - str_replace('/', '_', $ch)); - } - } - - // }}} - // {{{ _openPackageFile() - - function _openPackageFile($package, $mode, $channel = false) - { - if (!$this->_assertStateDir($channel)) { - return null; - } - if (!in_array($mode, array('r', 'rb')) && !$this->hasWriteAccess()) { - return null; - } - $file = $this->_packageFileName($package, $channel); - if (!file_exists($file) && $mode == 'r' || $mode == 'rb') { - return null; - } - $fp = @fopen($file, $mode); - if (!$fp) { - return null; - } - return $fp; - } - - // }}} - // {{{ _closePackageFile() - - function _closePackageFile($fp) - { - fclose($fp); - } - - // }}} - // {{{ _openChannelFile() - - function _openChannelFile($channel, $mode) - { - if (!$this->_assertChannelDir()) { - return null; - } - if (!in_array($mode, array('r', 'rb')) && !$this->hasWriteAccess()) { - return null; - } - $file = $this->_channelFileName($channel); - if (!file_exists($file) && $mode == 'r' || $mode == 'rb') { - return null; - } - $fp = @fopen($file, $mode); - if (!$fp) { - return null; - } - return $fp; - } - - // }}} - // {{{ _closePackageFile() - - function _closeChannelFile($fp) - { - fclose($fp); - } - - // }}} - // {{{ _rebuildFileMap() - - function _rebuildFileMap() - { - if (!class_exists('PEAR_Installer_Role')) { - require_once 'PEAR/Installer/Role.php'; - } - $channels = $this->_listAllPackages(); - $files = array(); - foreach ($channels as $channel => $packages) { - foreach ($packages as $package) { - $version = $this->_packageInfo($package, 'version', $channel); - $filelist = $this->_packageInfo($package, 'filelist', $channel); - if (!is_array($filelist)) { - continue; - } - foreach ($filelist as $name => $attrs) { - if (isset($attrs['attribs'])) { - $attrs = $attrs['attribs']; - } - // it is possible for conflicting packages in different channels to - // conflict with data files/doc files - if ($name == 'dirtree') { - continue; - } - if (isset($attrs['role']) && !in_array($attrs['role'], - PEAR_Installer_Role::getInstallableRoles())) { - // these are not installed - continue; - } - if (isset($attrs['role']) && !in_array($attrs['role'], - PEAR_Installer_Role::getBaseinstallRoles())) { - $attrs['baseinstalldir'] = $package; - } - if (isset($attrs['baseinstalldir'])) { - $file = $attrs['baseinstalldir'].DIRECTORY_SEPARATOR.$name; - } else { - $file = $name; - } - $file = preg_replace(',^/+,', '', $file); - if ($channel != 'pear.php.net') { - if (!isset($files[$attrs['role']])) { - $files[$attrs['role']] = array(); - } - $files[$attrs['role']][$file] = array(strtolower($channel), - strtolower($package)); - } else { - if (!isset($files[$attrs['role']])) { - $files[$attrs['role']] = array(); - } - $files[$attrs['role']][$file] = strtolower($package); - } - } - } - } - $this->_assertStateDir(); - if (!$this->hasWriteAccess()) { - return false; - } - $fp = @fopen($this->filemap, 'wb'); - if (!$fp) { - return false; - } - $this->filemap_cache = $files; - fwrite($fp, serialize($files)); - fclose($fp); - return true; - } - - // }}} - // {{{ _readFileMap() - - function _readFileMap() - { - if (!file_exists($this->filemap)) { - return array(); - } - $fp = @fopen($this->filemap, 'r'); - if (!$fp) { - return $this->raiseError('PEAR_Registry: could not open filemap "' . $this->filemap . '"', PEAR_REGISTRY_ERROR_FILE, null, null, $php_errormsg); - } - clearstatcache(); - $rt = get_magic_quotes_runtime(); - set_magic_quotes_runtime(0); - $fsize = filesize($this->filemap); - fclose($fp); - $data = file_get_contents($this->filemap); - set_magic_quotes_runtime($rt); - $tmp = unserialize($data); - if (!$tmp && $fsize > 7) { - return $this->raiseError('PEAR_Registry: invalid filemap data', PEAR_REGISTRY_ERROR_FORMAT, null, null, $data); - } - $this->filemap_cache = $tmp; - return true; - } - - // }}} - // {{{ _lock() - - /** - * Lock the registry. - * - * @param integer lock mode, one of LOCK_EX, LOCK_SH or LOCK_UN. - * See flock manual for more information. - * - * @return bool TRUE on success, FALSE if locking failed, or a - * PEAR error if some other error occurs (such as the - * lock file not being writable). - * - * @access private - */ - function _lock($mode = LOCK_EX) - { - if (!eregi('Windows 9', php_uname())) { - if ($mode != LOCK_UN && is_resource($this->lock_fp)) { - // XXX does not check type of lock (LOCK_SH/LOCK_EX) - return true; - } - if (!$this->_assertStateDir()) { - if ($mode == LOCK_EX) { - return $this->raiseError('Registry directory is not writeable by the current user'); - } else { - return true; - } - } - $open_mode = 'w'; - // XXX People reported problems with LOCK_SH and 'w' - if ($mode === LOCK_SH || $mode === LOCK_UN) { - if (!file_exists($this->lockfile)) { - touch($this->lockfile); - } - $open_mode = 'r'; - } - - if (!is_resource($this->lock_fp)) { - $this->lock_fp = @fopen($this->lockfile, $open_mode); - } - - if (!is_resource($this->lock_fp)) { - $this->lock_fp = null; - return $this->raiseError("could not create lock file" . - (isset($php_errormsg) ? ": " . $php_errormsg : "")); - } - if (!(int)flock($this->lock_fp, $mode)) { - switch ($mode) { - case LOCK_SH: $str = 'shared'; break; - case LOCK_EX: $str = 'exclusive'; break; - case LOCK_UN: $str = 'unlock'; break; - default: $str = 'unknown'; break; - } - //is resource at this point, close it on error. - fclose($this->lock_fp); - $this->lock_fp = null; - return $this->raiseError("could not acquire $str lock ($this->lockfile)", - PEAR_REGISTRY_ERROR_LOCK); - } - } - return true; - } - - // }}} - // {{{ _unlock() - - function _unlock() - { - $ret = $this->_lock(LOCK_UN); - if (is_resource($this->lock_fp)) { - fclose($this->lock_fp); - } - $this->lock_fp = null; - return $ret; - } - - // }}} - // {{{ _packageExists() - - function _packageExists($package, $channel = false) - { - return file_exists($this->_packageFileName($package, $channel)); - } - - // }}} - // {{{ _channelExists() - - /** - * Determine whether a channel exists in the registry - * @param string Channel name - * @param bool if true, then aliases will be ignored - * @return boolean - */ - function _channelExists($channel, $noaliases = false) - { - $a = file_exists($this->_channelFileName($channel, $noaliases)); - if (!$a && $channel == 'pear.php.net') { - return true; - } - if (!$a && $channel == 'pecl.php.net') { - return true; - } - return $a; - } - - // }}} - // {{{ _addChannel() - - /** - * @param PEAR_ChannelFile Channel object - * @param donotuse - * @param string Last-Modified HTTP tag from remote request - * @return boolean|PEAR_Error True on creation, false if it already exists - */ - function _addChannel($channel, $update = false, $lastmodified = false) - { - if (!is_a($channel, 'PEAR_ChannelFile')) { - return false; - } - if (!$channel->validate()) { - return false; - } - if (file_exists($this->_channelFileName($channel->getName()))) { - if (!$update) { - return false; - } - $checker = $this->_getChannel($channel->getName()); - if (PEAR::isError($checker)) { - return $checker; - } - if ($channel->getAlias() != $checker->getAlias()) { - if (file_exists($this->_getChannelAliasFileName($checker->getAlias()))) { - @unlink($this->_getChannelAliasFileName($checker->getAlias())); - } - } - } else { - if ($update && !in_array($channel->getName(), array('pear.php.net', 'pecl.php.net'))) { - return false; - } - } - $ret = $this->_assertChannelDir(); - if (PEAR::isError($ret)) { - return $ret; - } - $ret = $this->_assertChannelStateDir($channel->getName()); - if (PEAR::isError($ret)) { - return $ret; - } - if ($channel->getAlias() != $channel->getName()) { - if (file_exists($this->_getChannelAliasFileName($channel->getAlias())) && - $this->_getChannelFromAlias($channel->getAlias()) != $channel->getName()) { - $channel->setAlias($channel->getName()); - } - if (!$this->hasWriteAccess()) { - return false; - } - $fp = @fopen($this->_getChannelAliasFileName($channel->getAlias()), 'w'); - if (!$fp) { - return false; - } - fwrite($fp, $channel->getName()); - fclose($fp); - } - if (!$this->hasWriteAccess()) { - return false; - } - $fp = @fopen($this->_channelFileName($channel->getName()), 'wb'); - if (!$fp) { - return false; - } - $info = $channel->toArray(); - if ($lastmodified) { - $info['_lastmodified'] = $lastmodified; - } else { - $info['_lastmodified'] = date('r'); - } - fwrite($fp, serialize($info)); - fclose($fp); - return true; - } - - // }}} - // {{{ _deleteChannel() - - /** - * Deletion fails if there are any packages installed from the channel - * @param string|PEAR_ChannelFile channel name - * @return boolean|PEAR_Error True on deletion, false if it doesn't exist - */ - function _deleteChannel($channel) - { - if (!is_string($channel)) { - if (is_a($channel, 'PEAR_ChannelFile')) { - if (!$channel->validate()) { - return false; - } - $channel = $channel->getName(); - } else { - return false; - } - } - if ($this->_getChannelFromAlias($channel) == '__uri') { - return false; - } - if ($this->_getChannelFromAlias($channel) == 'pecl.php.net') { - return false; - } - if (!$this->_channelExists($channel)) { - return false; - } - if (!$channel || $this->_getChannelFromAlias($channel) == 'pear.php.net') { - return false; - } - $channel = $this->_getChannelFromAlias($channel); - if ($channel == 'pear.php.net') { - return false; - } - $test = $this->_listChannelPackages($channel); - if (count($test)) { - return false; - } - $test = @rmdir($this->_channelDirectoryName($channel)); - if (!$test) { - return false; - } - $file = $this->_getChannelAliasFileName($this->_getAlias($channel)); - if (file_exists($file)) { - $test = @unlink($file); - if (!$test) { - return false; - } - } - $file = $this->_channelFileName($channel); - $ret = true; - if (file_exists($file)) { - $ret = @unlink($file); - } - return $ret; - } - - // }}} - // {{{ _isChannelAlias() - - /** - * Determine whether a channel exists in the registry - * @param string Channel Alias - * @return boolean - */ - function _isChannelAlias($alias) - { - return file_exists($this->_getChannelAliasFileName($alias)); - } - - // }}} - // {{{ _packageInfo() - - /** - * @param string|null - * @param string|null - * @param string|null - * @return array|null - * @access private - */ - function _packageInfo($package = null, $key = null, $channel = 'pear.php.net') - { - if ($package === null) { - if ($channel === null) { - $channels = $this->_listChannels(); - $ret = array(); - foreach ($channels as $channel) { - $channel = strtolower($channel); - $ret[$channel] = array(); - $packages = $this->_listPackages($channel); - foreach ($packages as $package) { - $ret[$channel][] = $this->_packageInfo($package, null, $channel); - } - } - return $ret; - } - $ps = $this->_listPackages($channel); - if (!count($ps)) { - return array(); - } - return array_map(array(&$this, '_packageInfo'), - $ps, array_fill(0, count($ps), null), - array_fill(0, count($ps), $channel)); - } - $fp = $this->_openPackageFile($package, 'r', $channel); - if ($fp === null) { - return null; - } - $rt = get_magic_quotes_runtime(); - set_magic_quotes_runtime(0); - clearstatcache(); - $this->_closePackageFile($fp); - $data = file_get_contents($this->_packageFileName($package, $channel)); - set_magic_quotes_runtime($rt); - $data = unserialize($data); - if ($key === null) { - return $data; - } - // compatibility for package.xml version 2.0 - if (isset($data['old'][$key])) { - return $data['old'][$key]; - } - if (isset($data[$key])) { - return $data[$key]; - } - return null; - } - - // }}} - // {{{ _channelInfo() - - /** - * @param string Channel name - * @param bool whether to strictly retrieve info of channels, not just aliases - * @return array|null - */ - function _channelInfo($channel, $noaliases = false) - { - if (!$this->_channelExists($channel, $noaliases)) { - return null; - } - $fp = $this->_openChannelFile($channel, 'r'); - if ($fp === null) { - return null; - } - $rt = get_magic_quotes_runtime(); - set_magic_quotes_runtime(0); - clearstatcache(); - $this->_closeChannelFile($fp); - $data = file_get_contents($this->_channelFileName($channel)); - set_magic_quotes_runtime($rt); - $data = unserialize($data); - return $data; - } - - // }}} - // {{{ _listChannels() - - function _listChannels() - { - $channellist = array(); - if (!file_exists($this->channelsdir) || !is_dir($this->channelsdir)) { - return array('pear.php.net', 'pecl.php.net', '__uri'); - } - $dp = opendir($this->channelsdir); - while ($ent = readdir($dp)) { - if ($ent{0} == '.' || substr($ent, -4) != '.reg') { - continue; - } - if ($ent == '__uri.reg') { - $channellist[] = '__uri'; - continue; - } - $channellist[] = str_replace('_', '/', substr($ent, 0, -4)); - } - closedir($dp); - if (!in_array('pear.php.net', $channellist)) { - $channellist[] = 'pear.php.net'; - } - if (!in_array('pecl.php.net', $channellist)) { - $channellist[] = 'pecl.php.net'; - } - if (!in_array('__uri', $channellist)) { - $channellist[] = '__uri'; - } - - natsort($channellist); - return $channellist; - } - - // }}} - // {{{ _listPackages() - - function _listPackages($channel = false) - { - if ($channel && $this->_getChannelFromAlias($channel) != 'pear.php.net') { - return $this->_listChannelPackages($channel); - } - if (!file_exists($this->statedir) || !is_dir($this->statedir)) { - return array(); - } - $pkglist = array(); - $dp = opendir($this->statedir); - if (!$dp) { - return $pkglist; - } - while ($ent = readdir($dp)) { - if ($ent{0} == '.' || substr($ent, -4) != '.reg') { - continue; - } - $pkglist[] = substr($ent, 0, -4); - } - closedir($dp); - return $pkglist; - } - - // }}} - // {{{ _listChannelPackages() - - function _listChannelPackages($channel) - { - $pkglist = array(); - if (!file_exists($this->_channelDirectoryName($channel)) || - !is_dir($this->_channelDirectoryName($channel))) { - return array(); - } - $dp = opendir($this->_channelDirectoryName($channel)); - if (!$dp) { - return $pkglist; - } - while ($ent = readdir($dp)) { - if ($ent{0} == '.' || substr($ent, -4) != '.reg') { - continue; - } - $pkglist[] = substr($ent, 0, -4); - } - closedir($dp); - return $pkglist; - } - - // }}} - - function _listAllPackages() - { - $ret = array(); - foreach ($this->_listChannels() as $channel) { - $ret[$channel] = $this->_listPackages($channel); - } - return $ret; - } - - /** - * Add an installed package to the registry - * @param string package name - * @param array package info (parsed by PEAR_Common::infoFrom*() methods) - * @return bool success of saving - * @access private - */ - function _addPackage($package, $info) - { - if ($this->_packageExists($package)) { - return false; - } - $fp = $this->_openPackageFile($package, 'wb'); - if ($fp === null) { - return false; - } - $info['_lastmodified'] = time(); - fwrite($fp, serialize($info)); - $this->_closePackageFile($fp); - if (isset($info['filelist'])) { - $this->_rebuildFileMap(); - } - return true; - } - - /** - * @param PEAR_PackageFile_v1|PEAR_PackageFile_v2 - * @return bool - * @access private - */ - function _addPackage2($info) - { - if (!is_a($info, 'PEAR_PackageFile_v1') && !is_a($info, 'PEAR_PackageFile_v2')) { - return false; - } - - if (!$info->validate()) { - if (class_exists('PEAR_Common')) { - $ui = PEAR_Frontend::singleton(); - if ($ui) { - foreach ($info->getValidationWarnings() as $err) { - $ui->log($err['message'], true); - } - } - } - return false; - } - $channel = $info->getChannel(); - $package = $info->getPackage(); - $save = $info; - if ($this->_packageExists($package, $channel)) { - return false; - } - if (!$this->_channelExists($channel, true)) { - return false; - } - $info = $info->toArray(true); - if (!$info) { - return false; - } - $fp = $this->_openPackageFile($package, 'wb', $channel); - if ($fp === null) { - return false; - } - $info['_lastmodified'] = time(); - fwrite($fp, serialize($info)); - $this->_closePackageFile($fp); - $this->_rebuildFileMap(); - return true; - } - - /** - * @param string Package name - * @param array parsed package.xml 1.0 - * @param bool this parameter is only here for BC. Don't use it. - * @access private - */ - function _updatePackage($package, $info, $merge = true) - { - $oldinfo = $this->_packageInfo($package); - if (empty($oldinfo)) { - return false; - } - $fp = $this->_openPackageFile($package, 'w'); - if ($fp === null) { - return false; - } - if (is_object($info)) { - $info = $info->toArray(); - } - $info['_lastmodified'] = time(); - $newinfo = $info; - if ($merge) { - $info = array_merge($oldinfo, $info); - } else { - $diff = $info; - } - fwrite($fp, serialize($info)); - $this->_closePackageFile($fp); - if (isset($newinfo['filelist'])) { - $this->_rebuildFileMap(); - } - return true; - } - - /** - * @param PEAR_PackageFile_v1|PEAR_PackageFile_v2 - * @return bool - * @access private - */ - function _updatePackage2($info) - { - if (!$this->_packageExists($info->getPackage(), $info->getChannel())) { - return false; - } - $fp = $this->_openPackageFile($info->getPackage(), 'w', $info->getChannel()); - if ($fp === null) { - return false; - } - $save = $info; - $info = $save->getArray(true); - $info['_lastmodified'] = time(); - fwrite($fp, serialize($info)); - $this->_closePackageFile($fp); - $this->_rebuildFileMap(); - return true; - } - - /** - * @param string Package name - * @param string Channel name - * @return PEAR_PackageFile_v1|PEAR_PackageFile_v2|null - * @access private - */ - function &_getPackage($package, $channel = 'pear.php.net') - { - $info = $this->_packageInfo($package, null, $channel); - if ($info === null) { - return $info; - } - $a = $this->_config; - if (!$a) { - $this->_config = &new PEAR_Config; - $this->_config->set('php_dir', $this->statedir); - } - if (!class_exists('PEAR_PackageFile')) { - require_once 'PEAR/PackageFile.php'; - } - $pkg = &new PEAR_PackageFile($this->_config); - $pf = &$pkg->fromArray($info); - return $pf; - } - - /** - * @param string channel name - * @param bool whether to strictly retrieve channel names - * @return PEAR_ChannelFile|PEAR_Error - * @access private - */ - function &_getChannel($channel, $noaliases = false) - { - $ch = false; - if ($this->_channelExists($channel, $noaliases)) { - $chinfo = $this->_channelInfo($channel, $noaliases); - if ($chinfo) { - if (!class_exists('PEAR_ChannelFile')) { - require_once 'PEAR/ChannelFile.php'; - } - $ch = &PEAR_ChannelFile::fromArrayWithErrors($chinfo); - } - } - if ($ch) { - if ($ch->validate()) { - return $ch; - } - foreach ($ch->getErrors(true) as $err) { - $message = $err['message'] . "\n"; - } - $ch = PEAR::raiseError($message); - return $ch; - } - if ($this->_getChannelFromAlias($channel) == 'pear.php.net') { - // the registry is not properly set up, so use defaults - if (!class_exists('PEAR_ChannelFile')) { - require_once 'PEAR/ChannelFile.php'; - } - $pear_channel = new PEAR_ChannelFile; - $pear_channel->setName('pear.php.net'); - $pear_channel->setAlias('pear'); - $pear_channel->setSummary('PHP Extension and Application Repository'); - $pear_channel->setDefaultPEARProtocols(); - $pear_channel->setBaseURL('REST1.0', 'http://pear.php.net/rest/'); - $pear_channel->setBaseURL('REST1.1', 'http://pear.php.net/rest/'); - return $pear_channel; - } - if ($this->_getChannelFromAlias($channel) == 'pecl.php.net') { - // the registry is not properly set up, so use defaults - if (!class_exists('PEAR_ChannelFile')) { - require_once 'PEAR/ChannelFile.php'; - } - $pear_channel = new PEAR_ChannelFile; - $pear_channel->setName('pecl.php.net'); - $pear_channel->setAlias('pecl'); - $pear_channel->setSummary('PHP Extension Community Library'); - $pear_channel->setDefaultPEARProtocols(); - $pear_channel->setBaseURL('REST1.0', 'http://pecl.php.net/rest/'); - $pear_channel->setBaseURL('REST1.1', 'http://pecl.php.net/rest/'); - $pear_channel->setValidationPackage('PEAR_Validator_PECL', '1.0'); - return $pear_channel; - } - if ($this->_getChannelFromAlias($channel) == '__uri') { - // the registry is not properly set up, so use defaults - if (!class_exists('PEAR_ChannelFile')) { - require_once 'PEAR/ChannelFile.php'; - } - $private = new PEAR_ChannelFile; - $private->setName('__uri'); - $private->addFunction('xmlrpc', '1.0', '****'); - $private->setSummary('Pseudo-channel for static packages'); - return $private; - } - return $ch; - } - - // {{{ packageExists() - - /** - * @param string Package name - * @param string Channel name - * @return bool - */ - function packageExists($package, $channel = 'pear.php.net') - { - if (PEAR::isError($e = $this->_lock(LOCK_SH))) { - return $e; - } - $ret = $this->_packageExists($package, $channel); - $this->_unlock(); - return $ret; - } - - // }}} - - // {{{ channelExists() - - /** - * @param string channel name - * @param bool if true, then aliases will be ignored - * @return bool - */ - function channelExists($channel, $noaliases = false) - { - if (PEAR::isError($e = $this->_lock(LOCK_SH))) { - return $e; - } - $ret = $this->_channelExists($channel, $noaliases); - $this->_unlock(); - return $ret; - } - - // }}} - - // {{{ isAlias() - - /** - * Determines whether the parameter is an alias of a channel - * @param string - * @return bool - */ - function isAlias($alias) - { - if (PEAR::isError($e = $this->_lock(LOCK_SH))) { - return $e; - } - $ret = $this->_isChannelAlias($alias); - $this->_unlock(); - return $ret; - } - - // }}} - // {{{ packageInfo() - - /** - * @param string|null - * @param string|null - * @param string - * @return array|null - */ - function packageInfo($package = null, $key = null, $channel = 'pear.php.net') - { - if (PEAR::isError($e = $this->_lock(LOCK_SH))) { - return $e; - } - $ret = $this->_packageInfo($package, $key, $channel); - $this->_unlock(); - return $ret; - } - - // }}} - // {{{ channelInfo() - - /** - * Retrieve a raw array of channel data. - * - * Do not use this, instead use {@link getChannel()} for normal - * operations. Array structure is undefined in this method - * @param string channel name - * @param bool whether to strictly retrieve information only on non-aliases - * @return array|null|PEAR_Error - */ - function channelInfo($channel = null, $noaliases = false) - { - if (PEAR::isError($e = $this->_lock(LOCK_SH))) { - return $e; - } - $ret = $this->_channelInfo($channel, $noaliases); - $this->_unlock(); - return $ret; - } - - // }}} - - /** - * @param string - */ - function channelName($channel) - { - if (PEAR::isError($e = $this->_lock(LOCK_SH))) { - return $e; - } - $ret = $this->_getChannelFromAlias($channel); - $this->_unlock(); - return $ret; - } - - /** - * @param string - */ - function channelAlias($channel) - { - if (PEAR::isError($e = $this->_lock(LOCK_SH))) { - return $e; - } - $ret = $this->_getAlias($channel); - $this->_unlock(); - return $ret; - } - // {{{ listPackages() - - function listPackages($channel = false) - { - if (PEAR::isError($e = $this->_lock(LOCK_SH))) { - return $e; - } - $ret = $this->_listPackages($channel); - $this->_unlock(); - return $ret; - } - - // }}} - // {{{ listAllPackages() - - function listAllPackages() - { - if (PEAR::isError($e = $this->_lock(LOCK_SH))) { - return $e; - } - $ret = $this->_listAllPackages(); - $this->_unlock(); - return $ret; - } - - // }}} - // {{{ listChannel() - - function listChannels() - { - if (PEAR::isError($e = $this->_lock(LOCK_SH))) { - return $e; - } - $ret = $this->_listChannels(); - $this->_unlock(); - return $ret; - } - - // }}} - // {{{ addPackage() - - /** - * Add an installed package to the registry - * @param string|PEAR_PackageFile_v1|PEAR_PackageFile_v2 package name or object - * that will be passed to {@link addPackage2()} - * @param array package info (parsed by PEAR_Common::infoFrom*() methods) - * @return bool success of saving - */ - function addPackage($package, $info) - { - if (is_object($info)) { - return $this->addPackage2($info); - } - if (PEAR::isError($e = $this->_lock(LOCK_EX))) { - return $e; - } - $ret = $this->_addPackage($package, $info); - $this->_unlock(); - if ($ret) { - if (!class_exists('PEAR_PackageFile_v1')) { - require_once 'PEAR/PackageFile/v1.php'; - } - $pf = new PEAR_PackageFile_v1; - $pf->setConfig($this->_config); - $pf->fromArray($info); - $this->_dependencyDB->uninstallPackage($pf); - $this->_dependencyDB->installPackage($pf); - } - return $ret; - } - - // }}} - // {{{ addPackage2() - - function addPackage2($info) - { - if (!is_object($info)) { - return $this->addPackage($info['package'], $info); - } - if (PEAR::isError($e = $this->_lock(LOCK_EX))) { - return $e; - } - $ret = $this->_addPackage2($info); - $this->_unlock(); - if ($ret) { - $this->_dependencyDB->uninstallPackage($info); - $this->_dependencyDB->installPackage($info); - } - return $ret; - } - - // }}} - // {{{ updateChannel() - - /** - * For future expandibility purposes, separate this - * @param PEAR_ChannelFile - */ - function updateChannel($channel, $lastmodified = null) - { - if ($channel->getName() == '__uri') { - return false; - } - return $this->addChannel($channel, $lastmodified, true); - } - - // }}} - // {{{ deleteChannel() - - /** - * Deletion fails if there are any packages installed from the channel - * @param string|PEAR_ChannelFile channel name - * @return boolean|PEAR_Error True on deletion, false if it doesn't exist - */ - function deleteChannel($channel) - { - if (PEAR::isError($e = $this->_lock(LOCK_EX))) { - return $e; - } - $ret = $this->_deleteChannel($channel); - $this->_unlock(); - if ($ret && is_a($this->_config, 'PEAR_Config')) { - $this->_config->setChannels($this->listChannels()); - } - return $ret; - } - - // }}} - // {{{ addChannel() - - /** - * @param PEAR_ChannelFile Channel object - * @param string Last-Modified header from HTTP for caching - * @return boolean|PEAR_Error True on creation, false if it already exists - */ - function addChannel($channel, $lastmodified = false, $update = false) - { - if (!is_a($channel, 'PEAR_ChannelFile')) { - return false; - } - if (!$channel->validate()) { - return false; - } - if (PEAR::isError($e = $this->_lock(LOCK_EX))) { - return $e; - } - $ret = $this->_addChannel($channel, $update, $lastmodified); - $this->_unlock(); - if (!$update && $ret && is_a($this->_config, 'PEAR_Config')) { - $this->_config->setChannels($this->listChannels()); - } - return $ret; - } - - // }}} - // {{{ deletePackage() - - function deletePackage($package, $channel = 'pear.php.net') - { - if (PEAR::isError($e = $this->_lock(LOCK_EX))) { - return $e; - } - $file = $this->_packageFileName($package, $channel); - if (file_exists($file)) { - $ret = @unlink($file); - } else { - $ret = false; - } - $this->_rebuildFileMap(); - $this->_unlock(); - $p = array('channel' => $channel, 'package' => $package); - $this->_dependencyDB->uninstallPackage($p); - return $ret; - } - - // }}} - // {{{ updatePackage() - - function updatePackage($package, $info, $merge = true) - { - if (is_object($info)) { - return $this->updatePackage2($info, $merge); - } - if (PEAR::isError($e = $this->_lock(LOCK_EX))) { - return $e; - } - $ret = $this->_updatePackage($package, $info, $merge); - $this->_unlock(); - if ($ret) { - if (!class_exists('PEAR_PackageFile_v1')) { - require_once 'PEAR/PackageFile/v1.php'; - } - $pf = new PEAR_PackageFile_v1; - $pf->setConfig($this->_config); - $pf->fromArray($this->packageInfo($package)); - $this->_dependencyDB->uninstallPackage($pf); - $this->_dependencyDB->installPackage($pf); - } - return $ret; - } - - // }}} - // {{{ updatePackage2() - - function updatePackage2($info) - { - if (!is_object($info)) { - return $this->updatePackage($info['package'], $info, $merge); - } - if (!$info->validate(PEAR_VALIDATE_DOWNLOADING)) { - return false; - } - if (PEAR::isError($e = $this->_lock(LOCK_EX))) { - return $e; - } - $ret = $this->_updatePackage2($info); - $this->_unlock(); - if ($ret) { - $this->_dependencyDB->uninstallPackage($info); - $this->_dependencyDB->installPackage($info); - } - return $ret; - } - - // }}} - // {{{ getChannel() - /** - * @param string channel name - * @param bool whether to strictly return raw channels (no aliases) - * @return PEAR_ChannelFile|PEAR_Error - */ - function &getChannel($channel, $noaliases = false) - { - if (PEAR::isError($e = $this->_lock(LOCK_SH))) { - return $e; - } - $ret = &$this->_getChannel($channel, $noaliases); - $this->_unlock(); - if (!$ret) { - return PEAR::raiseError('Unknown channel: ' . $channel); - } - return $ret; - } - - // }}} - // {{{ getPackage() - /** - * @param string package name - * @param string channel name - * @return PEAR_PackageFile_v1|PEAR_PackageFile_v2|null - */ - function &getPackage($package, $channel = 'pear.php.net') - { - if (PEAR::isError($e = $this->_lock(LOCK_SH))) { - return $e; - } - $pf = &$this->_getPackage($package, $channel); - $this->_unlock(); - return $pf; - } - - // }}} - - /** - * Get PEAR_PackageFile_v[1/2] objects representing the contents of - * a dependency group that are installed. - * - * This is used at uninstall-time - * @param array - * @return array|false - */ - function getInstalledGroup($group) - { - $ret = array(); - if (isset($group['package'])) { - if (!isset($group['package'][0])) { - $group['package'] = array($group['package']); - } - foreach ($group['package'] as $package) { - $depchannel = isset($package['channel']) ? $package['channel'] : '__uri'; - $p = &$this->getPackage($package['name'], $depchannel); - if ($p) { - $save = &$p; - $ret[] = &$save; - } - } - } - if (isset($group['subpackage'])) { - if (!isset($group['subpackage'][0])) { - $group['subpackage'] = array($group['subpackage']); - } - foreach ($group['subpackage'] as $package) { - $depchannel = isset($package['channel']) ? $package['channel'] : '__uri'; - $p = &$this->getPackage($package['name'], $depchannel); - if ($p) { - $save = &$p; - $ret[] = &$save; - } - } - } - if (!count($ret)) { - return false; - } - return $ret; - } - - // {{{ getChannelValidator() - /** - * @param string channel name - * @return PEAR_Validate|false - */ - function &getChannelValidator($channel) - { - $chan = $this->getChannel($channel); - if (PEAR::isError($chan)) { - return $chan; - } - $val = $chan->getValidationObject(); - return $val; - } - // }}} - // {{{ getChannels() - /** - * @param string channel name - * @return array an array of PEAR_ChannelFile objects representing every installed channel - */ - function &getChannels() - { - $ret = array(); - if (PEAR::isError($e = $this->_lock(LOCK_SH))) { - return $e; - } - foreach ($this->_listChannels() as $channel) { - $e = &$this->_getChannel($channel); - if (!$e || PEAR::isError($e)) { - continue; - } - $ret[] = $e; - } - $this->_unlock(); - return $ret; - } - - // }}} - // {{{ checkFileMap() - - /** - * Test whether a file or set of files belongs to a package. - * - * If an array is passed in - * @param string|array file path, absolute or relative to the pear - * install dir - * @param string|array name of PEAR package or array('package' => name, 'channel' => - * channel) of a package that will be ignored - * @param string API version - 1.1 will exclude any files belonging to a package - * @param array private recursion variable - * @return array|false which package and channel the file belongs to, or an empty - * string if the file does not belong to an installed package, - * or belongs to the second parameter's package - */ - function checkFileMap($path, $package = false, $api = '1.0', $attrs = false) - { - if (is_array($path)) { - static $notempty; - if (empty($notempty)) { - if (!class_exists('PEAR_Installer_Role')) { - require_once 'PEAR/Installer/Role.php'; - } - $notempty = create_function('$a','return !empty($a);'); - } - $package = is_array($package) ? array(strtolower($package[0]), strtolower($package[1])) - : strtolower($package); - $pkgs = array(); - foreach ($path as $name => $attrs) { - if (is_array($attrs)) { - if (isset($attrs['install-as'])) { - $name = $attrs['install-as']; - } - if (!in_array($attrs['role'], PEAR_Installer_Role::getInstallableRoles())) { - // these are not installed - continue; - } - if (!in_array($attrs['role'], PEAR_Installer_Role::getBaseinstallRoles())) { - $attrs['baseinstalldir'] = is_array($package) ? $package[1] : $package; - } - if (isset($attrs['baseinstalldir'])) { - $name = $attrs['baseinstalldir'] . DIRECTORY_SEPARATOR . $name; - } - } - $pkgs[$name] = $this->checkFileMap($name, $package, $api, $attrs); - if (PEAR::isError($pkgs[$name])) { - return $pkgs[$name]; - } - } - return array_filter($pkgs, $notempty); - } - if (empty($this->filemap_cache)) { - if (PEAR::isError($e = $this->_lock(LOCK_SH))) { - return $e; - } - $err = $this->_readFileMap(); - $this->_unlock(); - if (PEAR::isError($err)) { - return $err; - } - } - if (!$attrs) { - $attrs = array('role' => 'php'); // any old call would be for PHP role only - } - if (isset($this->filemap_cache[$attrs['role']][$path])) { - if ($api >= '1.1' && $this->filemap_cache[$attrs['role']][$path] == $package) { - return false; - } - return $this->filemap_cache[$attrs['role']][$path]; - } - $l = strlen($this->install_dir); - if (substr($path, 0, $l) == $this->install_dir) { - $path = preg_replace('!^'.DIRECTORY_SEPARATOR.'+!', '', substr($path, $l)); - } - if (isset($this->filemap_cache[$attrs['role']][$path])) { - if ($api >= '1.1' && $this->filemap_cache[$attrs['role']][$path] == $package) { - return false; - } - return $this->filemap_cache[$attrs['role']][$path]; - } - return false; - } - - // }}} - // {{{ flush() - /** - * Force a reload of the filemap - * @since 1.5.0RC3 - */ - function flushFileMap() - { - $this->filemap_cache = null; - clearstatcache(); // ensure that the next read gets the full, current filemap - } - - // }}} - // {{{ apiVersion() - /** - * Get the expected API version. Channels API is version 1.1, as it is backwards - * compatible with 1.0 - * @return string - */ - function apiVersion() - { - return '1.1'; - } - // }}} - - - /** - * Parse a package name, or validate a parsed package name array - * @param string|array pass in an array of format - * array( - * 'package' => 'pname', - * ['channel' => 'channame',] - * ['version' => 'version',] - * ['state' => 'state',] - * ['group' => 'groupname']) - * or a string of format - * [channel://][channame/]pname[-version|-state][/group=groupname] - * @return array|PEAR_Error - */ - function parsePackageName($param, $defaultchannel = 'pear.php.net') - { - $saveparam = $param; - if (is_array($param)) { - // convert to string for error messages - $saveparam = $this->parsedPackageNameToString($param); - // process the array - if (!isset($param['package'])) { - return PEAR::raiseError('parsePackageName(): array $param ' . - 'must contain a valid package name in index "param"', - 'package', null, null, $param); - } - if (!isset($param['uri'])) { - if (!isset($param['channel'])) { - $param['channel'] = $defaultchannel; - } - } else { - $param['channel'] = '__uri'; - } - } else { - $components = @parse_url((string) $param); - if (isset($components['scheme'])) { - if ($components['scheme'] == 'http') { - // uri package - $param = array('uri' => $param, 'channel' => '__uri'); - } elseif($components['scheme'] != 'channel') { - return PEAR::raiseError('parsePackageName(): only channel:// uris may ' . - 'be downloaded, not "' . $param . '"', 'invalid', null, null, $param); - } - } - if (!isset($components['path'])) { - return PEAR::raiseError('parsePackageName(): array $param ' . - 'must contain a valid package name in "' . $param . '"', - 'package', null, null, $param); - } - if (isset($components['host'])) { - // remove the leading "/" - $components['path'] = substr($components['path'], 1); - } - if (!isset($components['scheme'])) { - if (strpos($components['path'], '/') !== false) { - if ($components['path']{0} == '/') { - return PEAR::raiseError('parsePackageName(): this is not ' . - 'a package name, it begins with "/" in "' . $param . '"', - 'invalid', null, null, $param); - } - $parts = explode('/', $components['path']); - $components['host'] = array_shift($parts); - if (count($parts) > 1) { - $components['path'] = array_pop($parts); - $components['host'] .= '/' . implode('/', $parts); - } else { - $components['path'] = implode('/', $parts); - } - } else { - $components['host'] = $defaultchannel; - } - } else { - if (strpos($components['path'], '/')) { - $parts = explode('/', $components['path']); - $components['path'] = array_pop($parts); - $components['host'] .= '/' . implode('/', $parts); - } - } - - if (is_array($param)) { - $param['package'] = $components['path']; - } else { - $param = array( - 'package' => $components['path'] - ); - if (isset($components['host'])) { - $param['channel'] = $components['host']; - } - } - if (isset($components['fragment'])) { - $param['group'] = $components['fragment']; - } - if (isset($components['user'])) { - $param['user'] = $components['user']; - } - if (isset($components['pass'])) { - $param['pass'] = $components['pass']; - } - if (isset($components['query'])) { - parse_str($components['query'], $param['opts']); - } - // check for extension - $pathinfo = pathinfo($param['package']); - if (isset($pathinfo['extension']) && - in_array(strtolower($pathinfo['extension']), array('tgz', 'tar'))) { - $param['extension'] = $pathinfo['extension']; - $param['package'] = substr($pathinfo['basename'], 0, - strlen($pathinfo['basename']) - 4); - } - // check for version - if (strpos($param['package'], '-')) { - $test = explode('-', $param['package']); - if (count($test) != 2) { - return PEAR::raiseError('parsePackageName(): only one version/state ' . - 'delimiter "-" is allowed in "' . $saveparam . '"', - 'version', null, null, $param); - } - list($param['package'], $param['version']) = $test; - } - } - // validation - $info = $this->channelExists($param['channel']); - if (PEAR::isError($info)) { - return $info; - } - if (!$info) { - return PEAR::raiseError('unknown channel "' . $param['channel'] . - '" in "' . $saveparam . '"', 'channel', null, null, $param); - } - $chan = $this->getChannel($param['channel']); - if (PEAR::isError($chan)) { - return $chan; - } - if (!$chan) { - return PEAR::raiseError("Exception: corrupt registry, could not " . - "retrieve channel " . $param['channel'] . " information", - 'registry', null, null, $param); - } - $param['channel'] = $chan->getName(); - $validate = $chan->getValidationObject(); - $vpackage = $chan->getValidationPackage(); - // validate package name - if (!$validate->validPackageName($param['package'], $vpackage['_content'])) { - return PEAR::raiseError('parsePackageName(): invalid package name "' . - $param['package'] . '" in "' . $saveparam . '"', - 'package', null, null, $param); - } - if (isset($param['group'])) { - if (!PEAR_Validate::validGroupName($param['group'])) { - return PEAR::raiseError('parsePackageName(): dependency group "' . $param['group'] . - '" is not a valid group name in "' . $saveparam . '"', 'group', null, null, - $param); - } - } - if (isset($param['state'])) { - if (!in_array(strtolower($param['state']), $validate->getValidStates())) { - return PEAR::raiseError('parsePackageName(): state "' . $param['state'] - . '" is not a valid state in "' . $saveparam . '"', - 'state', null, null, $param); - } - } - if (isset($param['version'])) { - if (isset($param['state'])) { - return PEAR::raiseError('parsePackageName(): cannot contain both ' . - 'a version and a stability (state) in "' . $saveparam . '"', - 'version/state', null, null, $param); - } - // check whether version is actually a state - if (in_array(strtolower($param['version']), $validate->getValidStates())) { - $param['state'] = strtolower($param['version']); - unset($param['version']); - } else { - if (!$validate->validVersion($param['version'])) { - return PEAR::raiseError('parsePackageName(): "' . $param['version'] . - '" is neither a valid version nor a valid state in "' . - $saveparam . '"', 'version/state', null, null, $param); - } - } - } - return $param; - } - - /** - * @param array - * @return string - */ - function parsedPackageNameToString($parsed, $brief = false) - { - if (is_string($parsed)) { - return $parsed; - } - if (is_object($parsed)) { - $p = $parsed; - $parsed = array( - 'package' => $p->getPackage(), - 'channel' => $p->getChannel(), - 'version' => $p->getVersion(), - ); - } - if (isset($parsed['uri'])) { - return $parsed['uri']; - } - if ($brief) { - if ($channel = $this->channelAlias($parsed['channel'])) { - return $channel . '/' . $parsed['package']; - } - } - $upass = ''; - if (isset($parsed['user'])) { - $upass = $parsed['user']; - if (isset($parsed['pass'])) { - $upass .= ':' . $parsed['pass']; - } - $upass = "$upass@"; - } - $ret = 'channel://' . $upass . $parsed['channel'] . '/' . $parsed['package']; - if (isset($parsed['version']) || isset($parsed['state'])) { - $ver = isset($parsed['version']) ? $parsed['version'] : ''; - $ver .= isset($parsed['state']) ? $parsed['state'] : ''; - $ret .= '-' . $ver; - } - if (isset($parsed['extension'])) { - $ret .= '.' . $parsed['extension']; - } - if (isset($parsed['opts'])) { - $ret .= '?'; - foreach ($parsed['opts'] as $name => $value) { - $parsed['opts'][$name] = "$name=$value"; - } - $ret .= implode('&', $parsed['opts']); - } - if (isset($parsed['group'])) { - $ret .= '#' . $parsed['group']; - } - return $ret; - } -} - -?> diff --git a/src/vitis/vas/rest/class/PEAR/Remote.php b/src/vitis/vas/rest/class/PEAR/Remote.php deleted file mode 100755 index 09ddb997..00000000 --- a/src/vitis/vas/rest/class/PEAR/Remote.php +++ /dev/null @@ -1,498 +0,0 @@ -<?php -/** - * PEAR_Remote - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Stig Bakken <ssb@php.net> - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Remote.php,v 1.80 2008/01/03 20:26:36 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 0.1 - */ - -/** - * needed for PEAR_Error - */ -require_once 'PEAR.php'; -require_once 'PEAR/Config.php'; - -/** - * This is a class for doing remote operations against the central - * PEAR database. - * - * @nodep XML_RPC_Value - * @nodep XML_RPC_Message - * @nodep XML_RPC_Client - * @category pear - * @package PEAR - * @author Stig Bakken <ssb@php.net> - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 0.1 - */ -class PEAR_Remote extends PEAR -{ - // {{{ properties - - var $config = null; - var $cache = null; - /** - * @var PEAR_Registry - * @access private - */ - var $_registry; - - // }}} - - // {{{ PEAR_Remote(config_object) - - function PEAR_Remote(&$config) - { - $this->PEAR(); - $this->config = &$config; - $this->_registry = &$this->config->getRegistry(); - } - - // }}} - // {{{ setRegistry() - - function setRegistry(&$reg) - { - $this->_registry = &$reg; - } - // }}} - // {{{ getCache() - - - function getCache($args) - { - $id = md5(serialize($args)); - $cachedir = $this->config->get('cache_dir'); - $filename = $cachedir . DIRECTORY_SEPARATOR . 'xmlrpc_cache_' . $id; - if (!file_exists($filename)) { - return null; - } - - $fp = fopen($filename, 'rb'); - if (!$fp) { - return null; - } - fclose($fp); - $content = file_get_contents($filename); - $result = array( - 'age' => time() - filemtime($filename), - 'lastChange' => filemtime($filename), - 'content' => unserialize($content), - ); - return $result; - } - - // }}} - - // {{{ saveCache() - - function saveCache($args, $data) - { - $id = md5(serialize($args)); - $cachedir = $this->config->get('cache_dir'); - if (!file_exists($cachedir)) { - System::mkdir(array('-p', $cachedir)); - } - $filename = $cachedir.'/xmlrpc_cache_'.$id; - - $fp = @fopen($filename, "wb"); - if ($fp) { - fwrite($fp, serialize($data)); - fclose($fp); - } - } - - // }}} - - // {{{ clearCache() - - function clearCache($method, $args) - { - array_unshift($args, $method); - array_unshift($args, $this->config->get('default_channel')); // cache by channel - $id = md5(serialize($args)); - $cachedir = $this->config->get('cache_dir'); - $filename = $cachedir.'/xmlrpc_cache_'.$id; - if (file_exists($filename)) { - @unlink($filename); - } - } - - // }}} - // {{{ call(method, [args...]) - - function call($method) - { - $_args = $args = func_get_args(); - - $server_channel = $this->config->get('default_channel'); - $channel = $this->_registry->getChannel($server_channel); - if (!PEAR::isError($channel)) { - $mirror = $this->config->get('preferred_mirror'); - if ($channel->getMirror($mirror)) { - if ($channel->supports('xmlrpc', $method, $mirror)) { - $server_channel = $server_host = $mirror; // use the preferred mirror - $server_port = $channel->getPort($mirror); - } elseif (!$channel->supports('xmlrpc', $method)) { - return $this->raiseError("Channel $server_channel does not " . - "support xml-rpc method $method"); - } - } - if (!isset($server_host)) { - if (!$channel->supports('xmlrpc', $method)) { - return $this->raiseError("Channel $server_channel does not support " . - "xml-rpc method $method"); - } else { - $server_host = $server_channel; - $server_port = $channel->getPort(); - } - } - } else { - return $this->raiseError("Unknown channel '$server_channel'"); - } - - array_unshift($_args, $server_channel); // cache by channel - $this->cache = $this->getCache($_args); - $cachettl = $this->config->get('cache_ttl'); - // If cache is newer than $cachettl seconds, we use the cache! - if ($this->cache !== null && $this->cache['age'] < $cachettl) { - return $this->cache['content']; - } - $fp = false; - if (extension_loaded("xmlrpc")) { - $result = call_user_func_array(array(&$this, 'call_epi'), $args); - if (!PEAR::isError($result)) { - $this->saveCache($_args, $result); - } - return $result; - } elseif (!($fp = fopen('XML/RPC.php', 'r', true))) { - return $this->raiseError("For this remote PEAR operation you need to load the xmlrpc extension or install XML_RPC"); - } - include_once 'XML/RPC.php'; - if ($fp) { - fclose($fp); - } - - array_shift($args); - $username = $this->config->get('username'); - $password = $this->config->get('password'); - $eargs = array(); - foreach($args as $arg) { - $eargs[] = $this->_encode($arg); - } - $f = new XML_RPC_Message($method, $eargs); - if ($this->cache !== null) { - $maxAge = '?maxAge='.$this->cache['lastChange']; - } else { - $maxAge = ''; - } - $proxy_host = $proxy_port = $proxy_user = $proxy_pass = ''; - if ($proxy = parse_url($this->config->get('http_proxy'))) { - $proxy_host = isset($proxy['host']) ? $proxy['host'] : null; - if (isset($proxy['scheme']) && $proxy['scheme'] == 'https') { - $proxy_host = 'https://' . $proxy_host; - } - $proxy_port = isset($proxy['port']) ? $proxy['port'] : 8080; - $proxy_user = isset($proxy['user']) ? urldecode($proxy['user']) : null; - $proxy_pass = isset($proxy['pass']) ? urldecode($proxy['pass']) : null; - } - $shost = $server_host; - if ($channel->getSSL()) { - $shost = "https://$shost"; - } - $c = new XML_RPC_Client('/' . $channel->getPath('xmlrpc') - . $maxAge, $shost, $server_port, $proxy_host, $proxy_port, - $proxy_user, $proxy_pass); - if ($username && $password) { - $c->setCredentials($username, $password); - } - if ($this->config->get('verbose') >= 3) { - $c->setDebug(1); - } - $r = $c->send($f); - if (!$r) { - return $this->raiseError("XML_RPC send failed"); - } - $v = $r->value(); - if ($e = $r->faultCode()) { - if ($e == $GLOBALS['XML_RPC_err']['http_error'] && strstr($r->faultString(), '304 Not Modified') !== false) { - return $this->cache['content']; - } - return $this->raiseError($r->faultString(), $e); - } - - $result = XML_RPC_decode($v); - $this->saveCache($_args, $result); - return $result; - } - - // }}} - - // {{{ call_epi(method, [args...]) - - function call_epi($method) - { - if (!extension_loaded("xmlrpc")) { - return $this->raiseError("xmlrpc extension is not loaded"); - } - $server_channel = $this->config->get('default_channel'); - $channel = $this->_registry->getChannel($server_channel); - if (!PEAR::isError($channel)) { - $mirror = $this->config->get('preferred_mirror'); - if ($channel->getMirror($mirror)) { - if ($channel->supports('xmlrpc', $method, $mirror)) { - $server_channel = $server_host = $mirror; // use the preferred mirror - $server_port = $channel->getPort($mirror); - } elseif (!$channel->supports('xmlrpc', $method)) { - return $this->raiseError("Channel $server_channel does not " . - "support xml-rpc method $method"); - } - } - if (!isset($server_host)) { - if (!$channel->supports('xmlrpc', $method)) { - return $this->raiseError("Channel $server_channel does not support " . - "xml-rpc method $method"); - } else { - $server_host = $server_channel; - $server_port = $channel->getPort(); - } - } - } else { - return $this->raiseError("Unknown channel '$server_channel'"); - } - $params = func_get_args(); - array_shift($params); - $method = str_replace("_", ".", $method); - $request = xmlrpc_encode_request($method, $params); - if ($http_proxy = $this->config->get('http_proxy')) { - $proxy = parse_url($http_proxy); - $proxy_host = $proxy_port = $proxy_user = $proxy_pass = ''; - $proxy_host = isset($proxy['host']) ? $proxy['host'] : null; - if (isset($proxy['scheme']) && $proxy['scheme'] == 'https') { - $proxy_host = 'https://' . $proxy_host; - } - $proxy_port = isset($proxy['port']) ? $proxy['port'] : null; - $proxy_user = isset($proxy['user']) ? urldecode($proxy['user']) : null; - $proxy_pass = isset($proxy['pass']) ? urldecode($proxy['pass']) : null; - $fp = @fsockopen($proxy_host, $proxy_port); - $use_proxy = true; - if ($channel->getSSL()) { - $server_host = "https://$server_host"; - } - } else { - $use_proxy = false; - $ssl = $channel->getSSL(); - $fp = @fsockopen(($ssl ? 'ssl://' : '') . $server_host, $server_port); - if (!$fp) { - $server_host = "$ssl$server_host"; // for error-reporting - } - } - if (!$fp && $http_proxy) { - return $this->raiseError("PEAR_Remote::call: fsockopen(`$proxy_host', $proxy_port) failed"); - } elseif (!$fp) { - return $this->raiseError("PEAR_Remote::call: fsockopen(`$server_host', $server_port) failed"); - } - $len = strlen($request); - $req_headers = "Host: $server_host:$server_port\r\n" . - "Content-type: text/xml\r\n" . - "Content-length: $len\r\n"; - $username = $this->config->get('username'); - $password = $this->config->get('password'); - if ($username && $password) { - $req_headers .= "Cookie: PEAR_USER=$username; PEAR_PW=$password\r\n"; - $tmp = base64_encode("$username:$password"); - $req_headers .= "Authorization: Basic $tmp\r\n"; - } - if ($this->cache !== null) { - $maxAge = '?maxAge='.$this->cache['lastChange']; - } else { - $maxAge = ''; - } - - if ($use_proxy && $proxy_host != '' && $proxy_user != '') { - $req_headers .= 'Proxy-Authorization: Basic ' - .base64_encode($proxy_user.':'.$proxy_pass) - ."\r\n"; - } - - if ($this->config->get('verbose') > 3) { - print "XMLRPC REQUEST HEADERS:\n"; - var_dump($req_headers); - print "XMLRPC REQUEST BODY:\n"; - var_dump($request); - } - - if ($use_proxy && $proxy_host != '') { - $post_string = "POST http://".$server_host; - if ($proxy_port > '') { - $post_string .= ':'.$server_port; - } - } else { - $post_string = "POST "; - } - - $path = '/' . $channel->getPath('xmlrpc'); - fwrite($fp, ($post_string . $path . "$maxAge HTTP/1.0\r\n$req_headers\r\n$request")); - $response = ''; - $line1 = fgets($fp, 2048); - if (!preg_match('!^HTTP/[0-9\.]+ (\d+) (.*)!', $line1, $matches)) { - return $this->raiseError("PEAR_Remote: invalid HTTP response from XML-RPC server"); - } - switch ($matches[1]) { - case "200": // OK - break; - case "304": // Not Modified - return $this->cache['content']; - case "401": // Unauthorized - if ($username && $password) { - return $this->raiseError("PEAR_Remote ($server_host:$server_port) " . - ": authorization failed", 401); - } else { - return $this->raiseError("PEAR_Remote ($server_host:$server_port) " . - ": authorization required, please log in first", 401); - } - default: - return $this->raiseError("PEAR_Remote ($server_host:$server_port) : " . - "unexpected HTTP response", (int)$matches[1], null, null, - "$matches[1] $matches[2]"); - } - while (trim(fgets($fp, 2048)) != ''); // skip rest of headers - while ($chunk = fread($fp, 10240)) { - $response .= $chunk; - } - fclose($fp); - if ($this->config->get('verbose') > 3) { - print "XMLRPC RESPONSE:\n"; - var_dump($response); - } - $ret = xmlrpc_decode($response); - if (is_array($ret) && isset($ret['__PEAR_TYPE__'])) { - if ($ret['__PEAR_TYPE__'] == 'error') { - if (isset($ret['__PEAR_CLASS__'])) { - $class = $ret['__PEAR_CLASS__']; - } else { - $class = "PEAR_Error"; - } - if ($ret['code'] === '') $ret['code'] = null; - if ($ret['message'] === '') $ret['message'] = null; - if ($ret['userinfo'] === '') $ret['userinfo'] = null; - if (strtolower($class) == 'db_error') { - $ret = $this->raiseError(PEAR::errorMessage($ret['code']), - $ret['code'], null, null, - $ret['userinfo']); - } else { - $ret = $this->raiseError($ret['message'], $ret['code'], - null, null, $ret['userinfo']); - } - } - } elseif (is_array($ret) && sizeof($ret) == 1 && isset($ret[0]) - && is_array($ret[0]) && - !empty($ret[0]['faultString']) && - !empty($ret[0]['faultCode'])) { - extract($ret[0]); - $faultString = "XML-RPC Server Fault: " . - str_replace("\n", " ", $faultString); - return $this->raiseError($faultString, $faultCode); - } elseif (is_array($ret) && sizeof($ret) == 2 && !empty($ret['faultString']) && - !empty($ret['faultCode'])) { - extract($ret); - $faultString = "XML-RPC Server Fault: " . - str_replace("\n", " ", $faultString); - return $this->raiseError($faultString, $faultCode); - } - return $ret; - } - - // }}} - - // {{{ _encode - - // a slightly extended version of XML_RPC_encode - function _encode($php_val) - { - global $XML_RPC_Boolean, $XML_RPC_Int, $XML_RPC_Double; - global $XML_RPC_String, $XML_RPC_Array, $XML_RPC_Struct; - - $type = gettype($php_val); - $xmlrpcval = new XML_RPC_Value; - - switch($type) { - case "array": - reset($php_val); - $firstkey = key($php_val); - end($php_val); - $lastkey = key($php_val); - reset($php_val); - if ($firstkey === 0 && is_int($lastkey) && - ($lastkey + 1) == count($php_val)) { - $is_continuous = true; - reset($php_val); - $size = count($php_val); - for ($expect = 0; $expect < $size; $expect++, next($php_val)) { - if (key($php_val) !== $expect) { - $is_continuous = false; - break; - } - } - if ($is_continuous) { - reset($php_val); - $arr = array(); - while (list($k, $v) = each($php_val)) { - $arr[$k] = $this->_encode($v); - } - $xmlrpcval->addArray($arr); - break; - } - } - // fall though if not numerical and continuous - case "object": - $arr = array(); - while (list($k, $v) = each($php_val)) { - $arr[$k] = $this->_encode($v); - } - $xmlrpcval->addStruct($arr); - break; - case "integer": - $xmlrpcval->addScalar($php_val, $XML_RPC_Int); - break; - case "double": - $xmlrpcval->addScalar($php_val, $XML_RPC_Double); - break; - case "string": - case "NULL": - $xmlrpcval->addScalar($php_val, $XML_RPC_String); - break; - case "boolean": - $xmlrpcval->addScalar($php_val, $XML_RPC_Boolean); - break; - case "unknown type": - default: - return null; - } - return $xmlrpcval; - } - - // }}} - -} - -?> diff --git a/src/vitis/vas/rest/class/PEAR/RunTest.php b/src/vitis/vas/rest/class/PEAR/RunTest.php deleted file mode 100755 index 85f49d9b..00000000 --- a/src/vitis/vas/rest/class/PEAR/RunTest.php +++ /dev/null @@ -1,927 +0,0 @@ -<?php -/** - * PEAR_RunTest - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Tomas V.V.Cox <cox@idecnet.com> - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: RunTest.php,v 1.67 2008/05/14 02:30:16 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 1.3.3 - */ - -/** - * for error handling - */ -require_once 'PEAR.php'; -require_once 'PEAR/Config.php'; - -define('DETAILED', 1); -putenv("PHP_PEAR_RUNTESTS=1"); - -/** - * Simplified version of PHP's test suite - * - * Try it with: - * - * $ php -r 'include "../PEAR/RunTest.php"; $t=new PEAR_RunTest; $o=$t->run("./pear_system.phpt");print_r($o);' - * - * - * @category pear - * @package PEAR - * @author Tomas V.V.Cox <cox@idecnet.com> - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 1.3.3 - */ -class PEAR_RunTest -{ - var $_headers = array(); - var $_logger; - var $_options; - var $_php; - var $tests_count; - var $xdebug_loaded; - /** - * Saved value of php executable, used to reset $_php when we - * have a test that uses cgi - * - * @var unknown_type - */ - var $_savephp; - var $ini_overwrites = array( - 'output_handler=', - 'open_basedir=', - 'safe_mode=0', - 'disable_functions=', - 'output_buffering=Off', - 'display_errors=1', - 'log_errors=0', - 'html_errors=0', - 'track_errors=1', - 'report_memleaks=0', - 'report_zend_debug=0', - 'docref_root=', - 'docref_ext=.html', - 'error_prepend_string=', - 'error_append_string=', - 'auto_prepend_file=', - 'auto_append_file=', - 'magic_quotes_runtime=0', - 'xdebug.default_enable=0', - 'allow_url_fopen=1', - ); - - /** - * An object that supports the PEAR_Common->log() signature, or null - * @param PEAR_Common|null - */ - function PEAR_RunTest($logger = null, $options = array()) - { - if (!defined('E_DEPRECATED')) { - define('E_DEPRECATED', 0); - } - if (!defined('E_STRICT')) { - define('E_STRICT', 0); - } - $this->ini_overwrites[] = 'error_reporting=' . (E_ALL & ~(E_DEPRECATED | E_STRICT)); - if (is_null($logger)) { - require_once 'PEAR/Common.php'; - $logger = new PEAR_Common; - } - $this->_logger = $logger; - $this->_options = $options; - - $conf = &PEAR_Config::singleton(); - $this->_php = $conf->get('php_bin'); - } - - /** - * Taken from php-src/run-tests.php - * - * @param string $commandline command name - * @param array $env - * @param string $stdin standard input to pass to the command - * @return unknown - */ - function system_with_timeout($commandline, $env = null, $stdin = null) - { - $data = ''; - if (version_compare(phpversion(), '5.0.0', '<')) { - $proc = proc_open($commandline, array( - 0 => array('pipe', 'r'), - 1 => array('pipe', 'w'), - 2 => array('pipe', 'w') - ), $pipes); - } else { - $proc = proc_open($commandline, array( - 0 => array('pipe', 'r'), - 1 => array('pipe', 'w'), - 2 => array('pipe', 'w') - ), $pipes, null, $env, array('suppress_errors' => true)); - } - - if (!$proc) { - return false; - } - - if (is_string($stdin)) { - fwrite($pipes[0], $stdin); - } - fclose($pipes[0]); - - while (true) { - /* hide errors from interrupted syscalls */ - $r = $pipes; - $e = $w = null; - $n = @stream_select($r, $w, $e, 60); - - if ($n === 0) { - /* timed out */ - $data .= "\n ** ERROR: process timed out **\n"; - proc_terminate($proc); - return array(1234567890, $data); - } else if ($n > 0) { - $line = fread($pipes[1], 8192); - if (strlen($line) == 0) { - /* EOF */ - break; - } - $data .= $line; - } - } - if (function_exists('proc_get_status')) { - $stat = proc_get_status($proc); - if ($stat['signaled']) { - $data .= "\nTermsig=".$stat['stopsig']; - } - } - $code = proc_close($proc); - if (function_exists('proc_get_status')) { - $code = $stat['exitcode']; - } - return array($code, $data); - } - - /** - * Turns a PHP INI string into an array - * - * Turns -d "include_path=/foo/bar" into this: - * array( - * 'include_path' => array( - * 'operator' => '-d', - * 'value' => '/foo/bar', - * ) - * ) - * Works both with quotes and without - * - * @param string an PHP INI string, -d "include_path=/foo/bar" - * @return array - */ - function iniString2array($ini_string) - { - if (!$ini_string) { - return array(); - } - $split = preg_split('/[\s]|=/', $ini_string, -1, PREG_SPLIT_NO_EMPTY); - $key = $split[1][0] == '"' ? substr($split[1], 1) : $split[1]; - $value = $split[2][strlen($split[2]) - 1] == '"' ? substr($split[2], 0, -1) : $split[2]; - // FIXME review if this is really the struct to go with - $array = array($key => array('operator' => $split[0], 'value' => $value)); - return $array; - } - - function settings2array($settings, $ini_settings) - { - foreach ($settings as $setting) { - if (strpos($setting, '=') !== false) { - $setting = explode('=', $setting, 2); - $name = trim(strtolower($setting[0])); - $value = trim($setting[1]); - $ini_settings[$name] = $value; - } - } - return $ini_settings; - } - - function settings2params($ini_settings) - { - $settings = ''; - foreach ($ini_settings as $name => $value) { - if (is_array($value)) { - $operator = $value['operator']; - $value = $value['value']; - } else { - $operator = '-d'; - } - $value = addslashes($value); - $settings .= " $operator \"$name=$value\""; - } - return $settings; - } - - function runPHPUnit($file, $ini_settings = '') - { - if (!file_exists($file) && file_exists(getcwd() . DIRECTORY_SEPARATOR . $file)) { - $file = realpath(getcwd() . DIRECTORY_SEPARATOR . $file); - break; - } elseif (file_exists($file)) { - $file = realpath($file); - } - $cmd = "$this->_php$ini_settings -f $file"; - if (isset($this->_logger)) { - $this->_logger->log(2, 'Running command "' . $cmd . '"'); - } - - $savedir = getcwd(); // in case the test moves us around - chdir(dirname($file)); - echo `$cmd`; - chdir($savedir); - return 'PASSED'; // we have no way of knowing this information so assume passing - } - - /** - * Runs an individual test case. - * - * @param string The filename of the test - * @param array|string INI settings to be applied to the test run - * @param integer Number what the current running test is of the - * whole test suite being runned. - * - * @return string|object Returns PASSED, WARNED, FAILED depending on how the - * test came out. - * PEAR Error when the tester it self fails - */ - function run($file, $ini_settings = array(), $test_number = 1) - { - if (isset($this->_savephp)) { - $this->_php = $this->_savephp; - unset($this->_savephp); - } - if (empty($this->_options['cgi'])) { - // try to see if php-cgi is in the path - $res = $this->system_with_timeout('php-cgi -v'); - if (false !== $res && !(is_array($res) && $res === array(127, ''))) { - $this->_options['cgi'] = 'php-cgi'; - } - } - if (1 < $len = strlen($this->tests_count)) { - $test_number = str_pad($test_number, $len, ' ', STR_PAD_LEFT); - $test_nr = "[$test_number/$this->tests_count] "; - } else { - $test_nr = ''; - } - - $file = realpath($file); - $section_text = $this->_readFile($file); - if (PEAR::isError($section_text)) { - return $section_text; - } - - if (isset($section_text['POST_RAW']) && isset($section_text['UPLOAD'])) { - return PEAR::raiseError("Cannot contain both POST_RAW and UPLOAD in test file: $file"); - } - - $cwd = getcwd(); - - $pass_options = ''; - if (!empty($this->_options['ini'])) { - $pass_options = $this->_options['ini']; - } - - if (is_string($ini_settings)) { - $ini_settings = $this->iniString2array($ini_settings); - } - - $ini_settings = $this->settings2array($this->ini_overwrites, $ini_settings); - if ($section_text['INI']) { - if (strpos($section_text['INI'], '{PWD}') !== false) { - $section_text['INI'] = str_replace('{PWD}', dirname($file), $section_text['INI']); - } - $ini = preg_split( "/[\n\r]+/", $section_text['INI']); - $ini_settings = $this->settings2array($ini, $ini_settings); - } - $ini_settings = $this->settings2params($ini_settings); - $shortname = str_replace($cwd . DIRECTORY_SEPARATOR, '', $file); - - $tested = trim($section_text['TEST']); - $tested.= !isset($this->_options['simple']) ? "[$shortname]" : ' '; - - if (!empty($section_text['POST']) || !empty($section_text['POST_RAW']) || - !empty($section_text['UPLOAD']) || !empty($section_text['GET']) || - !empty($section_text['COOKIE']) || !empty($section_text['EXPECTHEADERS'])) { - if (empty($this->_options['cgi'])) { - if (!isset($this->_options['quiet'])) { - $this->_logger->log(0, "SKIP $test_nr$tested (reason: --cgi option needed for this test, type 'pear help run-tests')"); - } - if (isset($this->_options['tapoutput'])) { - return array('ok', ' # skip --cgi option needed for this test, "pear help run-tests" for info'); - } - return 'SKIPPED'; - } - $this->_savephp = $this->_php; - $this->_php = $this->_options['cgi']; - } - - $temp_dir = realpath(dirname($file)); - $main_file_name = basename($file, 'phpt'); - $diff_filename = $temp_dir . DIRECTORY_SEPARATOR . $main_file_name.'diff'; - $log_filename = $temp_dir . DIRECTORY_SEPARATOR . $main_file_name.'log'; - $exp_filename = $temp_dir . DIRECTORY_SEPARATOR . $main_file_name.'exp'; - $output_filename = $temp_dir . DIRECTORY_SEPARATOR . $main_file_name.'out'; - $memcheck_filename = $temp_dir . DIRECTORY_SEPARATOR . $main_file_name.'mem'; - $temp_file = $temp_dir . DIRECTORY_SEPARATOR . $main_file_name.'php'; - $temp_skipif = $temp_dir . DIRECTORY_SEPARATOR . $main_file_name.'skip.php'; - $temp_clean = $temp_dir . DIRECTORY_SEPARATOR . $main_file_name.'clean.php'; - $tmp_post = $temp_dir . DIRECTORY_SEPARATOR . uniqid('phpt.'); - - // unlink old test results - $this->_cleanupOldFiles($file); - - // Check if test should be skipped. - $res = $this->_runSkipIf($section_text, $temp_skipif, $tested, $ini_settings); - if (count($res) != 2) { - return $res; - } - $info = $res['info']; - $warn = $res['warn']; - - // We've satisfied the preconditions - run the test! - if (isset($this->_options['coverage']) && $this->xdebug_loaded) { - $len_f = 5; - if (substr($section_text['FILE'], 0, 5) != '<?php' - && substr($section_text['FILE'], 0, 2) == '<?') { - $len_f = 2; - } - - $text = '<?php' . "\n" . 'xdebug_start_code_coverage(XDEBUG_CC_UNUSED | XDEBUG_CC_DEAD_CODE);' . "\n"; - $new = substr($section_text['FILE'], $len_f, strlen($section_text['FILE'])); - $text .= substr($new, 0, strrpos($new, '?>')); - $xdebug_file = $temp_dir . DIRECTORY_SEPARATOR . $main_file_name . 'xdebug'; - $text .= "\n" . - "\n" . '$xdebug = var_export(xdebug_get_code_coverage(), true);'; - if (!function_exists('file_put_contents')) { - $text .= "\n" . '$fh = fopen(\'' . $xdebug_file . '\', "wb");' . - "\n" . 'if ($fh !== false) {' . - "\n" . ' fwrite($fh, $xdebug);' . - "\n" . ' fclose($fh);' . - "\n" . '}'; - } else { - $text .= "\n" . 'file_put_contents(\'' . $xdebug_file . '\', $xdebug);'; - } - $text .= "\n" . 'xdebug_stop_code_coverage();' . "\n" . '?>'; - - $this->save_text($temp_file, $text); - } else { - $this->save_text($temp_file, $section_text['FILE']); - } - - $args = $section_text['ARGS'] ? ' -- '.$section_text['ARGS'] : ''; - $cmd = "$this->_php$ini_settings -f \"$temp_file\" $args 2>&1"; - if (isset($this->_logger)) { - $this->_logger->log(2, 'Running command "' . $cmd . '"'); - } - - // Reset environment from any previous test. - $env = $this->_resetEnv($section_text, $temp_file); - - $section_text = $this->_processUpload($section_text, $file); - if (PEAR::isError($section_text)) { - return $section_text; - } - - if (array_key_exists('POST_RAW', $section_text) && !empty($section_text['POST_RAW'])) { - $post = trim($section_text['POST_RAW']); - $raw_lines = explode("\n", $post); - - $request = ''; - $started = false; - foreach ($raw_lines as $i => $line) { - if (empty($env['CONTENT_TYPE']) && - preg_match('/^Content-Type:(.*)/i', $line, $res)) { - $env['CONTENT_TYPE'] = trim(str_replace("\r", '', $res[1])); - continue; - } - if ($started) { - $request .= "\n"; - } - $started = true; - $request .= $line; - } - - $env['CONTENT_LENGTH'] = strlen($request); - $env['REQUEST_METHOD'] = 'POST'; - - $this->save_text($tmp_post, $request); - $cmd = "$this->_php$pass_options$ini_settings \"$temp_file\" 2>&1 < $tmp_post"; - } elseif (array_key_exists('POST', $section_text) && !empty($section_text['POST'])) { - $post = trim($section_text['POST']); - $this->save_text($tmp_post, $post); - $content_length = strlen($post); - - $env['REQUEST_METHOD'] = 'POST'; - $env['CONTENT_TYPE'] = 'application/x-www-form-urlencoded'; - $env['CONTENT_LENGTH'] = $content_length; - - $cmd = "$this->_php$pass_options$ini_settings \"$temp_file\" 2>&1 < $tmp_post"; - } else { - $env['REQUEST_METHOD'] = 'GET'; - $env['CONTENT_TYPE'] = ''; - $env['CONTENT_LENGTH'] = ''; - } - - if (OS_WINDOWS && isset($section_text['RETURNS'])) { - ob_start(); - system($cmd, $return_value); - $out = ob_get_contents(); - ob_end_clean(); - $section_text['RETURNS'] = (int) trim($section_text['RETURNS']); - $returnfail = ($return_value != $section_text['RETURNS']); - } else { - $returnfail = false; - $stdin = isset($section_text['STDIN']) ? $section_text['STDIN'] : null; - $out = $this->system_with_timeout($cmd, $env, $stdin); - $return_value = $out[0]; - $out = $out[1]; - } - - $output = preg_replace('/\r\n/', "\n", trim($out)); - - if (isset($tmp_post) && realpath($tmp_post) && file_exists($tmp_post)) { - @unlink(realpath($tmp_post)); - } - chdir($cwd); // in case the test moves us around - - $this->_testCleanup($section_text, $temp_clean); - - /* when using CGI, strip the headers from the output */ - $output = $this->_stripHeadersCGI($output); - - if (isset($section_text['EXPECTHEADERS'])) { - $testheaders = $this->_processHeaders($section_text['EXPECTHEADERS']); - $missing = array_diff_assoc($testheaders, $this->_headers); - $changed = ''; - foreach ($missing as $header => $value) { - if (isset($this->_headers[$header])) { - $changed .= "-$header: $value\n+$header: "; - $changed .= $this->_headers[$header]; - } else { - $changed .= "-$header: $value\n"; - } - } - if ($missing) { - // tack on failed headers to output: - $output .= "\n====EXPECTHEADERS FAILURE====:\n$changed"; - } - } - // Does the output match what is expected? - do { - if (isset($section_text['EXPECTF']) || isset($section_text['EXPECTREGEX'])) { - if (isset($section_text['EXPECTF'])) { - $wanted = trim($section_text['EXPECTF']); - } else { - $wanted = trim($section_text['EXPECTREGEX']); - } - $wanted_re = preg_replace('/\r\n/', "\n", $wanted); - if (isset($section_text['EXPECTF'])) { - $wanted_re = preg_quote($wanted_re, '/'); - // Stick to basics - $wanted_re = str_replace("%s", ".+?", $wanted_re); //not greedy - $wanted_re = str_replace("%i", "[+\-]?[0-9]+", $wanted_re); - $wanted_re = str_replace("%d", "[0-9]+", $wanted_re); - $wanted_re = str_replace("%x", "[0-9a-fA-F]+", $wanted_re); - $wanted_re = str_replace("%f", "[+\-]?\.?[0-9]+\.?[0-9]*(E-?[0-9]+)?", $wanted_re); - $wanted_re = str_replace("%c", ".", $wanted_re); - // %f allows two points "-.0.0" but that is the best *simple* expression - } - /* DEBUG YOUR REGEX HERE - var_dump($wanted_re); - print(str_repeat('=', 80) . "\n"); - var_dump($output); - */ - if (!$returnfail && preg_match("/^$wanted_re\$/s", $output)) { - if (file_exists($temp_file)) { - unlink($temp_file); - } - if (array_key_exists('FAIL', $section_text)) { - break; - } - if (!isset($this->_options['quiet'])) { - $this->_logger->log(0, "PASS $test_nr$tested$info"); - } - if (isset($this->_options['tapoutput'])) { - return array('ok', ' - ' . $tested); - } - return 'PASSED'; - } - } else { - if (isset($section_text['EXPECTFILE'])) { - $f = $temp_dir . '/' . trim($section_text['EXPECTFILE']); - if (!($fp = @fopen($f, 'rb'))) { - return PEAR::raiseError('--EXPECTFILE-- section file ' . - $f . ' not found'); - } - fclose($fp); - $section_text['EXPECT'] = file_get_contents($f); - } - $wanted = preg_replace('/\r\n/', "\n", trim($section_text['EXPECT'])); - // compare and leave on success - if (!$returnfail && 0 == strcmp($output, $wanted)) { - if (file_exists($temp_file)) { - unlink($temp_file); - } - if (array_key_exists('FAIL', $section_text)) { - break; - } - if (!isset($this->_options['quiet'])) { - $this->_logger->log(0, "PASS $test_nr$tested$info"); - } - if (isset($this->_options['tapoutput'])) { - return array('ok', ' - ' . $tested); - } - return 'PASSED'; - } - } - } while (false); - - if (array_key_exists('FAIL', $section_text)) { - // we expect a particular failure - // this is only used for testing PEAR_RunTest - $expectf = isset($section_text['EXPECTF']) ? $wanted_re : null; - $faildiff = $this->generate_diff($wanted, $output, null, $expectf); - $faildiff = preg_replace('/\r/', '', $faildiff); - $wanted = preg_replace('/\r/', '', trim($section_text['FAIL'])); - if ($faildiff == $wanted) { - if (!isset($this->_options['quiet'])) { - $this->_logger->log(0, "PASS $test_nr$tested$info"); - } - if (isset($this->_options['tapoutput'])) { - return array('ok', ' - ' . $tested); - } - return 'PASSED'; - } - unset($section_text['EXPECTF']); - $output = $faildiff; - if (isset($section_text['RETURNS'])) { - return PEAR::raiseError('Cannot have both RETURNS and FAIL in the same test: ' . - $file); - } - } - - // Test failed so we need to report details. - $txt = $warn ? 'WARN ' : 'FAIL '; - $this->_logger->log(0, $txt . $test_nr . $tested . $info); - - // write .exp - $res = $this->_writeLog($exp_filename, $wanted); - if (PEAR::isError($res)) { - return $res; - } - - // write .out - $res = $this->_writeLog($output_filename, $output); - if (PEAR::isError($res)) { - return $res; - } - - // write .diff - $returns = isset($section_text['RETURNS']) ? - array(trim($section_text['RETURNS']), $return_value) : null; - $expectf = isset($section_text['EXPECTF']) ? $wanted_re : null; - $data = $this->generate_diff($wanted, $output, $returns, $expectf); - $res = $this->_writeLog($diff_filename, $data); - if (PEAR::isError($res)) { - return $res; - } - - // write .log - $data = " ----- EXPECTED OUTPUT -$wanted ----- ACTUAL OUTPUT -$output ----- FAILED -"; - - if ($returnfail) { - $data .= " ----- EXPECTED RETURN -$section_text[RETURNS] ----- ACTUAL RETURN -$return_value -"; - } - - $res = $this->_writeLog($log_filename, $data); - if (PEAR::isError($res)) { - return $res; - } - - if (isset($this->_options['tapoutput'])) { - $wanted = explode("\n", $wanted); - $wanted = "# Expected output:\n#\n#" . implode("\n#", $wanted); - $output = explode("\n", $output); - $output = "#\n#\n# Actual output:\n#\n#" . implode("\n#", $output); - return array($wanted . $output . 'not ok', ' - ' . $tested); - } - return $warn ? 'WARNED' : 'FAILED'; - } - - function generate_diff($wanted, $output, $rvalue, $wanted_re) - { - $w = explode("\n", $wanted); - $o = explode("\n", $output); - $wr = explode("\n", $wanted_re); - $w1 = array_diff_assoc($w, $o); - $o1 = array_diff_assoc($o, $w); - $o2 = $w2 = array(); - foreach ($w1 as $idx => $val) { - if (!$wanted_re || !isset($wr[$idx]) || !isset($o1[$idx]) || - !preg_match('/^' . $wr[$idx] . '\\z/', $o1[$idx])) { - $w2[sprintf("%03d<", $idx)] = sprintf("%03d- ", $idx + 1) . $val; - } - } - foreach ($o1 as $idx => $val) { - if (!$wanted_re || !isset($wr[$idx]) || - !preg_match('/^' . $wr[$idx] . '\\z/', $val)) { - $o2[sprintf("%03d>", $idx)] = sprintf("%03d+ ", $idx + 1) . $val; - } - } - $diff = array_merge($w2, $o2); - ksort($diff); - $extra = $rvalue ? "##EXPECTED: $rvalue[0]\r\n##RETURNED: $rvalue[1]" : ''; - return implode("\r\n", $diff) . $extra; - } - - // Write the given text to a temporary file, and return the filename. - function save_text($filename, $text) - { - if (!$fp = fopen($filename, 'w')) { - return PEAR::raiseError("Cannot open file '" . $filename . "' (save_text)"); - } - fwrite($fp, $text); - fclose($fp); - if (1 < DETAILED) echo " -FILE $filename {{{ -$text -}}} -"; - } - - function _cleanupOldFiles($file) - { - $temp_dir = realpath(dirname($file)); - $mainFileName = basename($file, 'phpt'); - $diff_filename = $temp_dir . DIRECTORY_SEPARATOR . $mainFileName.'diff'; - $log_filename = $temp_dir . DIRECTORY_SEPARATOR . $mainFileName.'log'; - $exp_filename = $temp_dir . DIRECTORY_SEPARATOR . $mainFileName.'exp'; - $output_filename = $temp_dir . DIRECTORY_SEPARATOR . $mainFileName.'out'; - $memcheck_filename = $temp_dir . DIRECTORY_SEPARATOR . $mainFileName.'mem'; - $temp_file = $temp_dir . DIRECTORY_SEPARATOR . $mainFileName.'php'; - $temp_skipif = $temp_dir . DIRECTORY_SEPARATOR . $mainFileName.'skip.php'; - $temp_clean = $temp_dir . DIRECTORY_SEPARATOR . $mainFileName.'clean.php'; - $tmp_post = $temp_dir . DIRECTORY_SEPARATOR . uniqid('phpt.'); - - // unlink old test results - @unlink($diff_filename); - @unlink($log_filename); - @unlink($exp_filename); - @unlink($output_filename); - @unlink($memcheck_filename); - @unlink($temp_file); - @unlink($temp_skipif); - @unlink($tmp_post); - @unlink($temp_clean); - } - - function _runSkipIf($section_text, $temp_skipif, $tested, $ini_settings) - { - $info = ''; - $warn = false; - if (array_key_exists('SKIPIF', $section_text) && trim($section_text['SKIPIF'])) { - $this->save_text($temp_skipif, $section_text['SKIPIF']); - $output = $this->system_with_timeout("$this->_php$ini_settings -f \"$temp_skipif\""); - $output = $output[1]; - $loutput = ltrim($output); - unlink($temp_skipif); - if (!strncasecmp('skip', $loutput, 4)) { - $skipreason = "SKIP $tested"; - if (preg_match('/^\s*skip\s*(.+)\s*/i', $output, $m)) { - $skipreason .= '(reason: ' . $m[1] . ')'; - } - if (!isset($this->_options['quiet'])) { - $this->_logger->log(0, $skipreason); - } - if (isset($this->_options['tapoutput'])) { - return array('ok', ' # skip ' . $reason); - } - return 'SKIPPED'; - } - - if (!strncasecmp('info', $loutput, 4) - && preg_match('/^\s*info\s*(.+)\s*/i', $output, $m)) { - $info = " (info: $m[1])"; - } - - if (!strncasecmp('warn', $loutput, 4) - && preg_match('/^\s*warn\s*(.+)\s*/i', $output, $m)) { - $warn = true; /* only if there is a reason */ - $info = " (warn: $m[1])"; - } - } - - return array('warn' => $warn, 'info' => $info); - } - - function _stripHeadersCGI($output) - { - $this->headers = array(); - if (!empty($this->_options['cgi']) && - $this->_php == $this->_options['cgi'] && - preg_match("/^(.*?)(?:\n\n(.*)|\\z)/s", $output, $match)) { - $output = isset($match[2]) ? trim($match[2]) : ''; - $this->_headers = $this->_processHeaders($match[1]); - } - - return $output; - } - - /** - * Return an array that can be used with array_diff() to compare headers - * - * @param string $text - */ - function _processHeaders($text) - { - $headers = array(); - $rh = preg_split("/[\n\r]+/", $text); - foreach ($rh as $line) { - if (strpos($line, ':')!== false) { - $line = explode(':', $line, 2); - $headers[trim($line[0])] = trim($line[1]); - } - } - return $headers; - } - - function _readFile($file) - { - // Load the sections of the test file. - $section_text = array( - 'TEST' => '(unnamed test)', - 'SKIPIF' => '', - 'GET' => '', - 'COOKIE' => '', - 'POST' => '', - 'ARGS' => '', - 'INI' => '', - 'CLEAN' => '', - ); - - if (!is_file($file) || !$fp = fopen($file, "r")) { - return PEAR::raiseError("Cannot open test file: $file"); - } - - $section = ''; - while (!feof($fp)) { - $line = fgets($fp); - - // Match the beginning of a section. - if (preg_match('/^--([_A-Z]+)--/', $line, $r)) { - $section = $r[1]; - $section_text[$section] = ''; - continue; - } elseif (empty($section)) { - fclose($fp); - return PEAR::raiseError("Invalid sections formats in test file: $file"); - } - - // Add to the section text. - $section_text[$section] .= $line; - } - fclose($fp); - - return $section_text; - } - - function _writeLog($logname, $data) - { - if (!$log = fopen($logname, 'w')) { - return PEAR::raiseError("Cannot create test log - $logname"); - } - fwrite($log, $data); - fclose($log); - } - - function _resetEnv($section_text, $temp_file) - { - $env = $_ENV; - $env['REDIRECT_STATUS'] = ''; - $env['QUERY_STRING'] = ''; - $env['PATH_TRANSLATED'] = ''; - $env['SCRIPT_FILENAME'] = ''; - $env['REQUEST_METHOD'] = ''; - $env['CONTENT_TYPE'] = ''; - $env['CONTENT_LENGTH'] = ''; - if (!empty($section_text['ENV'])) { - foreach (explode("\n", trim($section_text['ENV'])) as $e) { - $e = explode('=', trim($e), 2); - if (!empty($e[0]) && isset($e[1])) { - $env[$e[0]] = $e[1]; - } - } - } - if (array_key_exists('GET', $section_text)) { - $env['QUERY_STRING'] = trim($section_text['GET']); - } else { - $env['QUERY_STRING'] = ''; - } - if (array_key_exists('COOKIE', $section_text)) { - $env['HTTP_COOKIE'] = trim($section_text['COOKIE']); - } else { - $env['HTTP_COOKIE'] = ''; - } - $env['REDIRECT_STATUS'] = '1'; - $env['PATH_TRANSLATED'] = $temp_file; - $env['SCRIPT_FILENAME'] = $temp_file; - - return $env; - } - - function _processUpload($section_text, $file) - { - if (array_key_exists('UPLOAD', $section_text) && !empty($section_text['UPLOAD'])) { - $upload_files = trim($section_text['UPLOAD']); - $upload_files = explode("\n", $upload_files); - - $request = "Content-Type: multipart/form-data; boundary=---------------------------20896060251896012921717172737\n" . - "-----------------------------20896060251896012921717172737\n"; - foreach ($upload_files as $fileinfo) { - $fileinfo = explode('=', $fileinfo); - if (count($fileinfo) != 2) { - return PEAR::raiseError("Invalid UPLOAD section in test file: $file"); - } - if (!realpath(dirname($file) . '/' . $fileinfo[1])) { - return PEAR::raiseError("File for upload does not exist: $fileinfo[1] " . - "in test file: $file"); - } - $file_contents = file_get_contents(dirname($file) . '/' . $fileinfo[1]); - $fileinfo[1] = basename($fileinfo[1]); - $request .= "Content-Disposition: form-data; name=\"$fileinfo[0]\"; filename=\"$fileinfo[1]\"\n"; - $request .= "Content-Type: text/plain\n\n"; - $request .= $file_contents . "\n" . - "-----------------------------20896060251896012921717172737\n"; - } - - if (array_key_exists('POST', $section_text) && !empty($section_text['POST'])) { - // encode POST raw - $post = trim($section_text['POST']); - $post = explode('&', $post); - foreach ($post as $i => $post_info) { - $post_info = explode('=', $post_info); - if (count($post_info) != 2) { - return PEAR::raiseError("Invalid POST data in test file: $file"); - } - $post_info[0] = rawurldecode($post_info[0]); - $post_info[1] = rawurldecode($post_info[1]); - $post[$i] = $post_info; - } - foreach ($post as $post_info) { - $request .= "Content-Disposition: form-data; name=\"$post_info[0]\"\n\n"; - $request .= $post_info[1] . "\n" . - "-----------------------------20896060251896012921717172737\n"; - } - unset($section_text['POST']); - } - $section_text['POST_RAW'] = $request; - } - - return $section_text; - } - - function _testCleanup($section_text, $temp_clean) - { - if ($section_text['CLEAN']) { - // perform test cleanup - $this->save_text($temp_clean, $section_text['CLEAN']); - $this->system_with_timeout("$this->_php $temp_clean"); - if (file_exists($temp_clean)) { - unlink($temp_clean); - } - } - } -} \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/Task/Common.php b/src/vitis/vas/rest/class/PEAR/Task/Common.php deleted file mode 100755 index 5841f286..00000000 --- a/src/vitis/vas/rest/class/PEAR/Task/Common.php +++ /dev/null @@ -1,208 +0,0 @@ -<?php -/** - * PEAR_Task_Common, base class for installer tasks - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Common.php,v 1.18 2008/05/13 21:28:20 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 1.4.0a1 - */ -/**#@+ - * Error codes for task validation routines - */ -define('PEAR_TASK_ERROR_NOATTRIBS', 1); -define('PEAR_TASK_ERROR_MISSING_ATTRIB', 2); -define('PEAR_TASK_ERROR_WRONG_ATTRIB_VALUE', 3); -define('PEAR_TASK_ERROR_INVALID', 4); -/**#@-*/ -define('PEAR_TASK_PACKAGE', 1); -define('PEAR_TASK_INSTALL', 2); -define('PEAR_TASK_PACKAGEANDINSTALL', 3); -/** - * A task is an operation that manipulates the contents of a file. - * - * Simple tasks operate on 1 file. Multiple tasks are executed after all files have been - * processed and installed, and are designed to operate on all files containing the task. - * The Post-install script task simply takes advantage of the fact that it will be run - * after installation, replace is a simple task. - * - * Combining tasks is possible, but ordering is significant. - * - * <file name="test.php" role="php"> - * <tasks:replace from="@data-dir@" to="data_dir" type="pear-config"/> - * <tasks:postinstallscript/> - * </file> - * - * This will first replace any instance of @data-dir@ in the test.php file - * with the path to the current data directory. Then, it will include the - * test.php file and run the script it contains to configure the package post-installation. - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 1.4.0a1 - * @abstract - */ -class PEAR_Task_Common -{ - /** - * Valid types for this version are 'simple' and 'multiple' - * - * - simple tasks operate on the contents of a file and write out changes to disk - * - multiple tasks operate on the contents of many files and write out the - * changes directly to disk - * - * Child task classes must override this property. - * @access protected - */ - var $type = 'simple'; - /** - * Determines which install phase this task is executed under - */ - var $phase = PEAR_TASK_INSTALL; - /** - * @access protected - */ - var $config; - /** - * @access protected - */ - var $registry; - /** - * @access protected - */ - var $logger; - /** - * @access protected - */ - var $installphase; - /** - * @param PEAR_Config - * @param PEAR_Common - */ - function PEAR_Task_Common(&$config, &$logger, $phase) - { - $this->config = &$config; - $this->registry = &$config->getRegistry(); - $this->logger = &$logger; - $this->installphase = $phase; - if ($this->type == 'multiple') { - $GLOBALS['_PEAR_TASK_POSTINSTANCES'][get_class($this)][] = &$this; - } - } - - /** - * Validate the basic contents of a task tag. - * @param PEAR_PackageFile_v2 - * @param array - * @param PEAR_Config - * @param array the entire parsed <file> tag - * @return true|array On error, return an array in format: - * array(PEAR_TASK_ERROR_???[, param1][, param2][, ...]) - * - * For PEAR_TASK_ERROR_MISSING_ATTRIB, pass the attribute name in - * For PEAR_TASK_ERROR_WRONG_ATTRIB_VALUE, pass the attribute name and an array - * of legal values in - * @static - * @abstract - */ - function validateXml($pkg, $xml, $config, $fileXml) - { - } - - /** - * Initialize a task instance with the parameters - * @param array raw, parsed xml - * @param array attributes from the <file> tag containing this task - * @param string|null last installed version of this package - * @abstract - */ - function init($xml, $fileAttributes, $lastVersion) - { - } - - /** - * Begin a task processing session. All multiple tasks will be processed after each file - * has been successfully installed, all simple tasks should perform their task here and - * return any errors using the custom throwError() method to allow forward compatibility - * - * This method MUST NOT write out any changes to disk - * @param PEAR_PackageFile_v2 - * @param string file contents - * @param string the eventual final file location (informational only) - * @return string|false|PEAR_Error false to skip this file, PEAR_Error to fail - * (use $this->throwError), otherwise return the new contents - * @abstract - */ - function startSession($pkg, $contents, $dest) - { - } - - /** - * This method is used to process each of the tasks for a particular multiple class - * type. Simple tasks need not implement this method. - * @param array an array of tasks - * @access protected - * @static - * @abstract - */ - function run($tasks) - { - } - - /** - * @static - * @final - */ - function hasPostinstallTasks() - { - return isset($GLOBALS['_PEAR_TASK_POSTINSTANCES']); - } - - /** - * @static - * @final - */ - function runPostinstallTasks() - { - foreach ($GLOBALS['_PEAR_TASK_POSTINSTANCES'] as $class => $tasks) { - $err = call_user_func(array($class, 'run'), - $GLOBALS['_PEAR_TASK_POSTINSTANCES'][$class]); - if ($err) { - return PEAR_Task_Common::throwError($err); - } - } - unset($GLOBALS['_PEAR_TASK_POSTINSTANCES']); - } - - /** - * Determines whether a role is a script - * @return bool - */ - function isScript() - { - return $this->type == 'script'; - } - - function throwError($msg, $code = -1) - { - include_once 'PEAR.php'; - return PEAR::raiseError($msg, $code); - } -} -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/Task/Postinstallscript.php b/src/vitis/vas/rest/class/PEAR/Task/Postinstallscript.php deleted file mode 100755 index 024c0585..00000000 --- a/src/vitis/vas/rest/class/PEAR/Task/Postinstallscript.php +++ /dev/null @@ -1,329 +0,0 @@ -<?php -/** - * <tasks:postinstallscript> - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Postinstallscript.php,v 1.20 2008/05/13 21:28:20 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 1.4.0a1 - */ -/** - * Base class - */ -require_once 'PEAR/Task/Common.php'; -/** - * Implements the postinstallscript file task. - * - * Note that post-install scripts are handled separately from installation, by the - * "pear run-scripts" command - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 1.4.0a1 - */ -class PEAR_Task_Postinstallscript extends PEAR_Task_Common -{ - var $type = 'script'; - var $_class; - var $_params; - var $_obj; - /** - * - * @var PEAR_PackageFile_v2 - */ - var $_pkg; - var $_contents; - var $phase = PEAR_TASK_INSTALL; - - /** - * Validate the raw xml at parsing-time. - * - * This also attempts to validate the script to make sure it meets the criteria - * for a post-install script - * @param PEAR_PackageFile_v2 - * @param array The XML contents of the <postinstallscript> tag - * @param PEAR_Config - * @param array the entire parsed <file> tag - * @static - */ - function validateXml($pkg, $xml, $config, $fileXml) - { - if ($fileXml['role'] != 'php') { - return array(PEAR_TASK_ERROR_INVALID, 'Post-install script "' . - $fileXml['name'] . '" must be role="php"'); - } - PEAR::pushErrorHandling(PEAR_ERROR_RETURN); - $file = $pkg->getFileContents($fileXml['name']); - if (PEAR::isError($file)) { - PEAR::popErrorHandling(); - return array(PEAR_TASK_ERROR_INVALID, 'Post-install script "' . - $fileXml['name'] . '" is not valid: ' . - $file->getMessage()); - } elseif ($file === null) { - return array(PEAR_TASK_ERROR_INVALID, 'Post-install script "' . - $fileXml['name'] . '" could not be retrieved for processing!'); - } else { - $analysis = $pkg->analyzeSourceCode($file, true); - if (!$analysis) { - PEAR::popErrorHandling(); - $warnings = ''; - foreach ($pkg->getValidationWarnings() as $warn) { - $warnings .= $warn['message'] . "\n"; - } - return array(PEAR_TASK_ERROR_INVALID, 'Analysis of post-install script "' . - $fileXml['name'] . '" failed: ' . $warnings); - } - if (count($analysis['declared_classes']) != 1) { - PEAR::popErrorHandling(); - return array(PEAR_TASK_ERROR_INVALID, 'Post-install script "' . - $fileXml['name'] . '" must declare exactly 1 class'); - } - $class = $analysis['declared_classes'][0]; - if ($class != str_replace(array('/', '.php'), array('_', ''), - $fileXml['name']) . '_postinstall') { - PEAR::popErrorHandling(); - return array(PEAR_TASK_ERROR_INVALID, 'Post-install script "' . - $fileXml['name'] . '" class "' . $class . '" must be named "' . - str_replace(array('/', '.php'), array('_', ''), - $fileXml['name']) . '_postinstall"'); - } - if (!isset($analysis['declared_methods'][$class])) { - PEAR::popErrorHandling(); - return array(PEAR_TASK_ERROR_INVALID, 'Post-install script "' . - $fileXml['name'] . '" must declare methods init() and run()'); - } - $methods = array('init' => 0, 'run' => 1); - foreach ($analysis['declared_methods'][$class] as $method) { - if (isset($methods[$method])) { - unset($methods[$method]); - } - } - if (count($methods)) { - PEAR::popErrorHandling(); - return array(PEAR_TASK_ERROR_INVALID, 'Post-install script "' . - $fileXml['name'] . '" must declare methods init() and run()'); - } - } - PEAR::popErrorHandling(); - $definedparams = array(); - $tasksNamespace = $pkg->getTasksNs() . ':'; - if (!isset($xml[$tasksNamespace . 'paramgroup']) && isset($xml['paramgroup'])) { - // in order to support the older betas, which did not expect internal tags - // to also use the namespace - $tasksNamespace = ''; - } - if (isset($xml[$tasksNamespace . 'paramgroup'])) { - $params = $xml[$tasksNamespace . 'paramgroup']; - if (!is_array($params) || !isset($params[0])) { - $params = array($params); - } - foreach ($params as $param) { - if (!isset($param[$tasksNamespace . 'id'])) { - return array(PEAR_TASK_ERROR_INVALID, 'Post-install script "' . - $fileXml['name'] . '" <paramgroup> must have ' . - 'an ' . $tasksNamespace . 'id> tag'); - } - if (isset($param[$tasksNamespace . 'name'])) { - if (!in_array($param[$tasksNamespace . 'name'], $definedparams)) { - return array(PEAR_TASK_ERROR_INVALID, 'Post-install script "' . - $fileXml['name'] . '" ' . $tasksNamespace . - 'paramgroup> id "' . $param[$tasksNamespace . 'id'] . - '" parameter "' . $param[$tasksNamespace . 'name'] . - '" has not been previously defined'); - } - if (!isset($param[$tasksNamespace . 'conditiontype'])) { - return array(PEAR_TASK_ERROR_INVALID, 'Post-install script "' . - $fileXml['name'] . '" ' . $tasksNamespace . - 'paramgroup> id "' . $param[$tasksNamespace . 'id'] . - '" must have a ' . $tasksNamespace . - 'conditiontype> tag containing either "=", ' . - '"!=", or "preg_match"'); - } - if (!in_array($param[$tasksNamespace . 'conditiontype'], - array('=', '!=', 'preg_match'))) { - return array(PEAR_TASK_ERROR_INVALID, 'Post-install script "' . - $fileXml['name'] . '" ' . $tasksNamespace . - 'paramgroup> id "' . $param[$tasksNamespace . 'id'] . - '" must have a ' . $tasksNamespace . - 'conditiontype> tag containing either "=", ' . - '"!=", or "preg_match"'); - } - if (!isset($param[$tasksNamespace . 'value'])) { - return array(PEAR_TASK_ERROR_INVALID, 'Post-install script "' . - $fileXml['name'] . '" ' . $tasksNamespace . - 'paramgroup> id "' . $param[$tasksNamespace . 'id'] . - '" must have a ' . $tasksNamespace . - 'value> tag containing expected parameter value'); - } - } - if (isset($param[$tasksNamespace . 'instructions'])) { - if (!is_string($param[$tasksNamespace . 'instructions'])) { - return array(PEAR_TASK_ERROR_INVALID, 'Post-install script "' . - $fileXml['name'] . '" ' . $tasksNamespace . - 'paramgroup> id "' . $param[$tasksNamespace . 'id'] . - '" ' . $tasksNamespace . 'instructions> must be simple text'); - } - } - if (!isset($param[$tasksNamespace . 'param'])) { - continue; // <param> is no longer required - } - $subparams = $param[$tasksNamespace . 'param']; - if (!is_array($subparams) || !isset($subparams[0])) { - $subparams = array($subparams); - } - foreach ($subparams as $subparam) { - if (!isset($subparam[$tasksNamespace . 'name'])) { - return array(PEAR_TASK_ERROR_INVALID, 'Post-install script "' . - $fileXml['name'] . '" parameter for ' . - $tasksNamespace . 'paramgroup> id "' . - $param[$tasksNamespace . 'id'] . '" must have ' . - 'a ' . $tasksNamespace . 'name> tag'); - } - if (!preg_match('/[a-zA-Z0-9]+/', - $subparam[$tasksNamespace . 'name'])) { - return array(PEAR_TASK_ERROR_INVALID, 'Post-install script "' . - $fileXml['name'] . '" parameter "' . - $subparam[$tasksNamespace . 'name'] . - '" for ' . $tasksNamespace . 'paramgroup> id "' . - $param[$tasksNamespace . 'id'] . - '" is not a valid name. Must contain only alphanumeric characters'); - } - if (!isset($subparam[$tasksNamespace . 'prompt'])) { - return array(PEAR_TASK_ERROR_INVALID, 'Post-install script "' . - $fileXml['name'] . '" parameter "' . - $subparam[$tasksNamespace . 'name'] . - '" for ' . $tasksNamespace . 'paramgroup> id "' . - $param[$tasksNamespace . 'id'] . - '" must have a ' . $tasksNamespace . 'prompt> tag'); - } - if (!isset($subparam[$tasksNamespace . 'type'])) { - return array(PEAR_TASK_ERROR_INVALID, 'Post-install script "' . - $fileXml['name'] . '" parameter "' . - $subparam[$tasksNamespace . 'name'] . - '" for ' . $tasksNamespace . 'paramgroup> id "' . - $param[$tasksNamespace . 'id'] . - '" must have a ' . $tasksNamespace . 'type> tag'); - } - $definedparams[] = $param[$tasksNamespace . 'id'] . '::' . - $subparam[$tasksNamespace . 'name']; - } - } - } - return true; - } - - /** - * Initialize a task instance with the parameters - * @param array raw, parsed xml - * @param array attributes from the <file> tag containing this task - * @param string|null last installed version of this package, if any (useful for upgrades) - */ - function init($xml, $fileattribs, $lastversion) - { - $this->_class = str_replace('/', '_', $fileattribs['name']); - $this->_filename = $fileattribs['name']; - $this->_class = str_replace ('.php', '', $this->_class) . '_postinstall'; - $this->_params = $xml; - $this->_lastversion = $lastversion; - } - - /** - * Strip the tasks: namespace from internal params - * - * @access private - */ - function _stripNamespace($params = null) - { - if ($params === null) { - $params = array(); - if (!is_array($this->_params)) { - return; - } - foreach ($this->_params as $i => $param) { - if (is_array($param)) { - $param = $this->_stripNamespace($param); - } - $params[str_replace($this->_pkg->getTasksNs() . ':', '', $i)] = $param; - } - $this->_params = $params; - } else { - $newparams = array(); - foreach ($params as $i => $param) { - if (is_array($param)) { - $param = $this->_stripNamespace($param); - } - $newparams[str_replace($this->_pkg->getTasksNs() . ':', '', $i)] = $param; - } - return $newparams; - } - } - - /** - * Unlike other tasks, the installed file name is passed in instead of the file contents, - * because this task is handled post-installation - * @param PEAR_PackageFile_v1|PEAR_PackageFile_v2 - * @param string file name - * @return bool|PEAR_Error false to skip this file, PEAR_Error to fail - * (use $this->throwError) - */ - function startSession($pkg, $contents) - { - if ($this->installphase != PEAR_TASK_INSTALL) { - return false; - } - // remove the tasks: namespace if present - $this->_pkg = $pkg; - $this->_stripNamespace(); - $this->logger->log(0, 'Including external post-installation script "' . - $contents . '" - any errors are in this script'); - include_once $contents; - if (class_exists($this->_class)) { - $this->logger->log(0, 'Inclusion succeeded'); - } else { - return $this->throwError('init of post-install script class "' . $this->_class - . '" failed'); - } - $this->_obj = new $this->_class; - $this->logger->log(1, 'running post-install script "' . $this->_class . '->init()"'); - PEAR::pushErrorHandling(PEAR_ERROR_RETURN); - $res = $this->_obj->init($this->config, $pkg, $this->_lastversion); - PEAR::popErrorHandling(); - if ($res) { - $this->logger->log(0, 'init succeeded'); - } else { - return $this->throwError('init of post-install script "' . $this->_class . - '->init()" failed'); - } - $this->_contents = $contents; - return true; - } - - /** - * No longer used - * @see PEAR_PackageFile_v2::runPostinstallScripts() - * @param array an array of tasks - * @param string install or upgrade - * @access protected - * @static - */ - function run() - { - } -} -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/Task/Postinstallscript/rw.php b/src/vitis/vas/rest/class/PEAR/Task/Postinstallscript/rw.php deleted file mode 100755 index 3f2a97cc..00000000 --- a/src/vitis/vas/rest/class/PEAR/Task/Postinstallscript/rw.php +++ /dev/null @@ -1,176 +0,0 @@ -<?php -/** - * <tasks:postinstallscript> - read/write version - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: rw.php,v 1.12 2008/01/03 20:26:37 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 1.4.0a10 - */ -/** - * Base class - */ -require_once 'PEAR/Task/Postinstallscript.php'; -/** - * Abstracts the postinstallscript file task xml. - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 1.4.0a10 - */ -class PEAR_Task_Postinstallscript_rw extends PEAR_Task_Postinstallscript -{ - /** - * parent package file object - * - * @var PEAR_PackageFile_v2_rw - */ - var $_pkg; - /** - * Enter description here... - * - * @param PEAR_PackageFile_v2_rw $pkg - * @param PEAR_Config $config - * @param PEAR_Frontend $logger - * @param array $fileXml - * @return PEAR_Task_Postinstallscript_rw - */ - function PEAR_Task_Postinstallscript_rw(&$pkg, &$config, &$logger, $fileXml) - { - parent::PEAR_Task_Common($config, $logger, PEAR_TASK_PACKAGE); - $this->_contents = $fileXml; - $this->_pkg = &$pkg; - $this->_params = array(); - } - - function validate() - { - return $this->validateXml($this->_pkg, $this->_params, $this->config, $this->_contents); - } - - function getName() - { - return 'postinstallscript'; - } - - /** - * add a simple <paramgroup> to the post-install script - * - * Order is significant, so call this method in the same - * sequence the users should see the paramgroups. The $params - * parameter should either be the result of a call to {@link getParam()} - * or an array of calls to getParam(). - * - * Use {@link addConditionTypeGroup()} to add a <paramgroup> containing - * a <conditiontype> tag - * @param string $id <paramgroup> id as seen by the script - * @param array|false $params array of getParam() calls, or false for no params - * @param string|false $instructions - */ - function addParamGroup($id, $params = false, $instructions = false) - { - if ($params && isset($params[0]) && !isset($params[1])) { - $params = $params[0]; - } - $stuff = - array( - $this->_pkg->getTasksNs() . ':id' => $id, - ); - if ($instructions) { - $stuff[$this->_pkg->getTasksNs() . ':instructions'] = $instructions; - } - if ($params) { - $stuff[$this->_pkg->getTasksNs() . ':param'] = $params; - } - $this->_params[$this->_pkg->getTasksNs() . ':paramgroup'][] = $stuff; - } - - /** - * add a complex <paramgroup> to the post-install script with conditions - * - * This inserts a <paramgroup> with - * - * Order is significant, so call this method in the same - * sequence the users should see the paramgroups. The $params - * parameter should either be the result of a call to {@link getParam()} - * or an array of calls to getParam(). - * - * Use {@link addParamGroup()} to add a simple <paramgroup> - * - * @param string $id <paramgroup> id as seen by the script - * @param string $oldgroup <paramgroup> id of the section referenced by - * <conditiontype> - * @param string $param name of the <param> from the older section referenced - * by <contitiontype> - * @param string $value value to match of the parameter - * @param string $conditiontype one of '=', '!=', 'preg_match' - * @param array|false $params array of getParam() calls, or false for no params - * @param string|false $instructions - */ - function addConditionTypeGroup($id, $oldgroup, $param, $value, $conditiontype = '=', - $params = false, $instructions = false) - { - if ($params && isset($params[0]) && !isset($params[1])) { - $params = $params[0]; - } - $stuff = - array( - $this->_pkg->getTasksNs() . ':id' => $id, - ); - if ($instructions) { - $stuff[$this->_pkg->getTasksNs() . ':instructions'] = $instructions; - } - $stuff[$this->_pkg->getTasksNs() . ':name'] = $oldgroup . '::' . $param; - $stuff[$this->_pkg->getTasksNs() . ':conditiontype'] = $conditiontype; - $stuff[$this->_pkg->getTasksNs() . ':value'] = $value; - if ($params) { - $stuff[$this->_pkg->getTasksNs() . ':param'] = $params; - } - $this->_params[$this->_pkg->getTasksNs() . ':paramgroup'][] = $stuff; - } - - function getXml() - { - return $this->_params; - } - - /** - * Use to set up a param tag for use in creating a paramgroup - * @static - */ - function getParam($name, $prompt, $type = 'string', $default = null) - { - if ($default !== null) { - return - array( - $this->_pkg->getTasksNs() . ':name' => $name, - $this->_pkg->getTasksNs() . ':prompt' => $prompt, - $this->_pkg->getTasksNs() . ':type' => $type, - $this->_pkg->getTasksNs() . ':default' => $default - ); - } - return - array( - $this->_pkg->getTasksNs() . ':name' => $name, - $this->_pkg->getTasksNs() . ':prompt' => $prompt, - $this->_pkg->getTasksNs() . ':type' => $type, - ); - } -} -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/Task/Replace.php b/src/vitis/vas/rest/class/PEAR/Task/Replace.php deleted file mode 100755 index 9a941819..00000000 --- a/src/vitis/vas/rest/class/PEAR/Task/Replace.php +++ /dev/null @@ -1,182 +0,0 @@ -<?php -/** - * <tasks:replace> - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Replace.php,v 1.17 2008/05/13 21:28:20 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 1.4.0a1 - */ -/** - * Base class - */ -require_once 'PEAR/Task/Common.php'; -/** - * Implements the replace file task. - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 1.4.0a1 - */ -class PEAR_Task_Replace extends PEAR_Task_Common -{ - var $type = 'simple'; - var $phase = PEAR_TASK_PACKAGEANDINSTALL; - var $_replacements; - - /** - * Validate the raw xml at parsing-time. - * @param PEAR_PackageFile_v2 - * @param array raw, parsed xml - * @param PEAR_Config - * @static - */ - function validateXml($pkg, $xml, $config, $fileXml) - { - if (!isset($xml['attribs'])) { - return array(PEAR_TASK_ERROR_NOATTRIBS); - } - if (!isset($xml['attribs']['type'])) { - return array(PEAR_TASK_ERROR_MISSING_ATTRIB, 'type'); - } - if (!isset($xml['attribs']['to'])) { - return array(PEAR_TASK_ERROR_MISSING_ATTRIB, 'to'); - } - if (!isset($xml['attribs']['from'])) { - return array(PEAR_TASK_ERROR_MISSING_ATTRIB, 'from'); - } - if ($xml['attribs']['type'] == 'pear-config') { - if (!in_array($xml['attribs']['to'], $config->getKeys())) { - return array(PEAR_TASK_ERROR_WRONG_ATTRIB_VALUE, 'to', $xml['attribs']['to'], - $config->getKeys()); - } - } elseif ($xml['attribs']['type'] == 'php-const') { - if (defined($xml['attribs']['to'])) { - return true; - } else { - return array(PEAR_TASK_ERROR_WRONG_ATTRIB_VALUE, 'to', $xml['attribs']['to'], - array('valid PHP constant')); - } - } elseif ($xml['attribs']['type'] == 'package-info') { - if (in_array($xml['attribs']['to'], - array('name', 'summary', 'channel', 'notes', 'extends', 'description', - 'release_notes', 'license', 'release-license', 'license-uri', - 'version', 'api-version', 'state', 'api-state', 'release_date', - 'date', 'time'))) { - return true; - } else { - return array(PEAR_TASK_ERROR_WRONG_ATTRIB_VALUE, 'to', $xml['attribs']['to'], - array('name', 'summary', 'channel', 'notes', 'extends', 'description', - 'release_notes', 'license', 'release-license', 'license-uri', - 'version', 'api-version', 'state', 'api-state', 'release_date', - 'date', 'time')); - } - } else { - return array(PEAR_TASK_ERROR_WRONG_ATTRIB_VALUE, 'type', $xml['attribs']['type'], - array('pear-config', 'package-info', 'php-const')); - } - return true; - } - - /** - * Initialize a task instance with the parameters - * @param array raw, parsed xml - * @param unused - */ - function init($xml, $attribs) - { - $this->_replacements = isset($xml['attribs']) ? array($xml) : $xml; - } - - /** - * Do a package.xml 1.0 replacement, with additional package-info fields available - * - * See validateXml() source for the complete list of allowed fields - * @param PEAR_PackageFile_v1|PEAR_PackageFile_v2 - * @param string file contents - * @param string the eventual final file location (informational only) - * @return string|false|PEAR_Error false to skip this file, PEAR_Error to fail - * (use $this->throwError), otherwise return the new contents - */ - function startSession($pkg, $contents, $dest) - { - $subst_from = $subst_to = array(); - foreach ($this->_replacements as $a) { - $a = $a['attribs']; - $to = ''; - if ($a['type'] == 'pear-config') { - if ($this->installphase == PEAR_TASK_PACKAGE) { - return false; - } - if ($a['to'] == 'master_server') { - $chan = $this->registry->getChannel($pkg->getChannel()); - if (!PEAR::isError($chan)) { - $to = $chan->getServer(); - } else { - $this->logger->log(0, "$dest: invalid pear-config replacement: $a[to]"); - return false; - } - } else { - if ($this->config->isDefinedLayer('ftp')) { - // try the remote config file first - $to = $this->config->get($a['to'], 'ftp', $pkg->getChannel()); - if (is_null($to)) { - // then default to local - $to = $this->config->get($a['to'], null, $pkg->getChannel()); - } - } else { - $to = $this->config->get($a['to'], null, $pkg->getChannel()); - } - } - if (is_null($to)) { - $this->logger->log(0, "$dest: invalid pear-config replacement: $a[to]"); - return false; - } - } elseif ($a['type'] == 'php-const') { - if ($this->installphase == PEAR_TASK_PACKAGE) { - return false; - } - if (defined($a['to'])) { - $to = constant($a['to']); - } else { - $this->logger->log(0, "$dest: invalid php-const replacement: $a[to]"); - return false; - } - } else { - if ($t = $pkg->packageInfo($a['to'])) { - $to = $t; - } else { - $this->logger->log(0, "$dest: invalid package-info replacement: $a[to]"); - return false; - } - } - if (!is_null($to)) { - $subst_from[] = $a['from']; - $subst_to[] = $to; - } - } - $this->logger->log(3, "doing " . sizeof($subst_from) . - " substitution(s) for $dest"); - if (sizeof($subst_from)) { - $contents = str_replace($subst_from, $subst_to, $contents); - } - return $contents; - } -} -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/Task/Replace/rw.php b/src/vitis/vas/rest/class/PEAR/Task/Replace/rw.php deleted file mode 100755 index fe03d2e6..00000000 --- a/src/vitis/vas/rest/class/PEAR/Task/Replace/rw.php +++ /dev/null @@ -1,67 +0,0 @@ -<?php -/** - * <tasks:replace> - read/write version - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: rw.php,v 1.4 2008/01/03 20:26:37 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 1.4.0a10 - */ -/** - * Base class - */ -require_once 'PEAR/Task/Replace.php'; -/** - * Abstracts the replace task xml. - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 1.4.0a10 - */ -class PEAR_Task_Replace_rw extends PEAR_Task_Replace -{ - function PEAR_Task_Replace_rw(&$pkg, &$config, &$logger, $fileXml) - { - parent::PEAR_Task_Common($config, $logger, PEAR_TASK_PACKAGE); - $this->_contents = $fileXml; - $this->_pkg = &$pkg; - $this->_params = array(); - } - - function validate() - { - return $this->validateXml($this->_pkg, $this->_params, $this->config, $this->_contents); - } - - function setInfo($from, $to, $type) - { - $this->_params = array('attribs' => array('from' => $from, 'to' => $to, 'type' => $type)); - } - - function getName() - { - return 'replace'; - } - - function getXml() - { - return $this->_params; - } -} -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/Task/Unixeol.php b/src/vitis/vas/rest/class/PEAR/Task/Unixeol.php deleted file mode 100755 index bfd3f11c..00000000 --- a/src/vitis/vas/rest/class/PEAR/Task/Unixeol.php +++ /dev/null @@ -1,83 +0,0 @@ -<?php -/** - * <tasks:unixeol> - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Unixeol.php,v 1.10 2008/05/13 21:28:20 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 1.4.0a1 - */ -/** - * Base class - */ -require_once 'PEAR/Task/Common.php'; -/** - * Implements the unix line endings file task. - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 1.4.0a1 - */ -class PEAR_Task_Unixeol extends PEAR_Task_Common -{ - var $type = 'simple'; - var $phase = PEAR_TASK_PACKAGE; - var $_replacements; - - /** - * Validate the raw xml at parsing-time. - * @param PEAR_PackageFile_v2 - * @param array raw, parsed xml - * @param PEAR_Config - * @static - */ - function validateXml($pkg, $xml, $config, $fileXml) - { - if ($xml != '') { - return array(PEAR_TASK_ERROR_INVALID, 'no attributes allowed'); - } - return true; - } - - /** - * Initialize a task instance with the parameters - * @param array raw, parsed xml - * @param unused - */ - function init($xml, $attribs) - { - } - - /** - * Replace all line endings with line endings customized for the current OS - * - * See validateXml() source for the complete list of allowed fields - * @param PEAR_PackageFile_v1|PEAR_PackageFile_v2 - * @param string file contents - * @param string the eventual final file location (informational only) - * @return string|false|PEAR_Error false to skip this file, PEAR_Error to fail - * (use $this->throwError), otherwise return the new contents - */ - function startSession($pkg, $contents, $dest) - { - $this->logger->log(3, "replacing all line endings with \\n in $dest"); - return preg_replace("/\r\n|\n\r|\r|\n/", "\n", $contents); - } -} -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/Task/Unixeol/rw.php b/src/vitis/vas/rest/class/PEAR/Task/Unixeol/rw.php deleted file mode 100755 index f04f0f00..00000000 --- a/src/vitis/vas/rest/class/PEAR/Task/Unixeol/rw.php +++ /dev/null @@ -1,62 +0,0 @@ -<?php -/** - * <tasks:unixeol> - read/write version - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: rw.php,v 1.5 2008/01/03 20:26:37 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 1.4.0a10 - */ -/** - * Base class - */ -require_once 'PEAR/Task/Unixeol.php'; -/** - * Abstracts the unixeol task xml. - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 1.4.0a10 - */ -class PEAR_Task_Unixeol_rw extends PEAR_Task_Unixeol -{ - function PEAR_Task_Unixeol_rw(&$pkg, &$config, &$logger, $fileXml) - { - parent::PEAR_Task_Common($config, $logger, PEAR_TASK_PACKAGE); - $this->_contents = $fileXml; - $this->_pkg = &$pkg; - $this->_params = array(); - } - - function validate() - { - return true; - } - - function getName() - { - return 'unixeol'; - } - - function getXml() - { - return ''; - } -} -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/Task/Windowseol.php b/src/vitis/vas/rest/class/PEAR/Task/Windowseol.php deleted file mode 100755 index 1a1be1e4..00000000 --- a/src/vitis/vas/rest/class/PEAR/Task/Windowseol.php +++ /dev/null @@ -1,83 +0,0 @@ -<?php -/** - * <tasks:windowseol> - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Windowseol.php,v 1.9 2008/05/13 21:28:20 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 1.4.0a1 - */ -/** - * Base class - */ -require_once 'PEAR/Task/Common.php'; -/** - * Implements the windows line endsings file task. - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 1.4.0a1 - */ -class PEAR_Task_Windowseol extends PEAR_Task_Common -{ - var $type = 'simple'; - var $phase = PEAR_TASK_PACKAGE; - var $_replacements; - - /** - * Validate the raw xml at parsing-time. - * @param PEAR_PackageFile_v2 - * @param array raw, parsed xml - * @param PEAR_Config - * @static - */ - function validateXml($pkg, $xml, $config, $fileXml) - { - if ($xml != '') { - return array(PEAR_TASK_ERROR_INVALID, 'no attributes allowed'); - } - return true; - } - - /** - * Initialize a task instance with the parameters - * @param array raw, parsed xml - * @param unused - */ - function init($xml, $attribs) - { - } - - /** - * Replace all line endings with windows line endings - * - * See validateXml() source for the complete list of allowed fields - * @param PEAR_PackageFile_v1|PEAR_PackageFile_v2 - * @param string file contents - * @param string the eventual final file location (informational only) - * @return string|false|PEAR_Error false to skip this file, PEAR_Error to fail - * (use $this->throwError), otherwise return the new contents - */ - function startSession($pkg, $contents, $dest) - { - $this->logger->log(3, "replacing all line endings with \\r\\n in $dest"); - return preg_replace("/\r\n|\n\r|\r|\n/", "\r\n", $contents); - } -} -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/Task/Windowseol/rw.php b/src/vitis/vas/rest/class/PEAR/Task/Windowseol/rw.php deleted file mode 100755 index c61a15d8..00000000 --- a/src/vitis/vas/rest/class/PEAR/Task/Windowseol/rw.php +++ /dev/null @@ -1,62 +0,0 @@ -<?php -/** - * <tasks:windowseol> - read/write version - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: rw.php,v 1.5 2008/01/03 20:26:37 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 1.4.0a10 - */ -/** - * Base class - */ -require_once 'PEAR/Task/Windowseol.php'; -/** - * Abstracts the windowseol task xml. - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 1.4.0a10 - */ -class PEAR_Task_Windowseol_rw extends PEAR_Task_Windowseol -{ - function PEAR_Task_Windowseol_rw(&$pkg, &$config, &$logger, $fileXml) - { - parent::PEAR_Task_Common($config, $logger, PEAR_TASK_PACKAGE); - $this->_contents = $fileXml; - $this->_pkg = &$pkg; - $this->_params = array(); - } - - function validate() - { - return true; - } - - function getName() - { - return 'windowseol'; - } - - function getXml() - { - return ''; - } -} -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/Validate.php b/src/vitis/vas/rest/class/PEAR/Validate.php deleted file mode 100755 index 34796b79..00000000 --- a/src/vitis/vas/rest/class/PEAR/Validate.php +++ /dev/null @@ -1,634 +0,0 @@ -<?php -/** - * PEAR_Validate - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Validate.php,v 1.52 2008/01/03 20:26:36 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 1.4.0a1 - */ -/**#@+ - * Constants for install stage - */ -define('PEAR_VALIDATE_INSTALLING', 1); -define('PEAR_VALIDATE_UNINSTALLING', 2); // this is not bit-mapped like the others -define('PEAR_VALIDATE_NORMAL', 3); -define('PEAR_VALIDATE_DOWNLOADING', 4); // this is not bit-mapped like the others -define('PEAR_VALIDATE_PACKAGING', 7); -/**#@-*/ -require_once 'PEAR/Common.php'; -require_once 'PEAR/Validator/PECL.php'; - -/** - * Validation class for package.xml - channel-level advanced validation - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 1.4.0a1 - */ -class PEAR_Validate -{ - var $packageregex = _PEAR_COMMON_PACKAGE_NAME_PREG; - /** - * @var PEAR_PackageFile_v1|PEAR_PackageFile_v2 - */ - var $_packagexml; - /** - * @var int one of the PEAR_VALIDATE_* constants - */ - var $_state = PEAR_VALIDATE_NORMAL; - /** - * Format: ('error' => array('field' => name, 'reason' => reason), 'warning' => same) - * @var array - * @access private - */ - var $_failures = array('error' => array(), 'warning' => array()); - - /** - * Override this method to handle validation of normal package names - * @param string - * @return bool - * @access protected - */ - function _validPackageName($name) - { - return (bool) preg_match('/^' . $this->packageregex . '\\z/', $name); - } - - /** - * @param string package name to validate - * @param string name of channel-specific validation package - * @final - */ - function validPackageName($name, $validatepackagename = false) - { - if ($validatepackagename) { - if (strtolower($name) == strtolower($validatepackagename)) { - return (bool) preg_match('/^[a-zA-Z0-9_]+(?:\.[a-zA-Z0-9_]+)*\\z/', $name); - } - } - return $this->_validPackageName($name); - } - - /** - * This validates a bundle name, and bundle names must conform - * to the PEAR naming convention, so the method is final and static. - * @param string - * @final - * @static - */ - function validGroupName($name) - { - return (bool) preg_match('/^' . _PEAR_COMMON_PACKAGE_NAME_PREG . '\\z/', $name); - } - - /** - * Determine whether $state represents a valid stability level - * @param string - * @return bool - * @static - * @final - */ - function validState($state) - { - return in_array($state, array('snapshot', 'devel', 'alpha', 'beta', 'stable')); - } - - /** - * Get a list of valid stability levels - * @return array - * @static - * @final - */ - function getValidStates() - { - return array('snapshot', 'devel', 'alpha', 'beta', 'stable'); - } - - /** - * Determine whether a version is a properly formatted version number that can be used - * by version_compare - * @param string - * @return bool - * @static - * @final - */ - function validVersion($ver) - { - return (bool) preg_match(PEAR_COMMON_PACKAGE_VERSION_PREG, $ver); - } - - /** - * @param PEAR_PackageFile_v1|PEAR_PackageFile_v2 - */ - function setPackageFile(&$pf) - { - $this->_packagexml = &$pf; - } - - /** - * @access private - */ - function _addFailure($field, $reason) - { - $this->_failures['errors'][] = array('field' => $field, 'reason' => $reason); - } - - /** - * @access private - */ - function _addWarning($field, $reason) - { - $this->_failures['warnings'][] = array('field' => $field, 'reason' => $reason); - } - - function getFailures() - { - $failures = $this->_failures; - $this->_failures = array('warnings' => array(), 'errors' => array()); - return $failures; - } - - /** - * @param int one of the PEAR_VALIDATE_* constants - */ - function validate($state = null) - { - if (!isset($this->_packagexml)) { - return false; - } - if ($state !== null) { - $this->_state = $state; - } - $this->_failures = array('warnings' => array(), 'errors' => array()); - $this->validatePackageName(); - $this->validateVersion(); - $this->validateMaintainers(); - $this->validateDate(); - $this->validateSummary(); - $this->validateDescription(); - $this->validateLicense(); - $this->validateNotes(); - if ($this->_packagexml->getPackagexmlVersion() == '1.0') { - $this->validateState(); - $this->validateFilelist(); - } elseif ($this->_packagexml->getPackagexmlVersion() == '2.0' || - $this->_packagexml->getPackagexmlVersion() == '2.1') { - $this->validateTime(); - $this->validateStability(); - $this->validateDeps(); - $this->validateMainFilelist(); - $this->validateReleaseFilelist(); - //$this->validateGlobalTasks(); - $this->validateChangelog(); - } - return !((bool) count($this->_failures['errors'])); - } - - /** - * @access protected - */ - function validatePackageName() - { - if ($this->_state == PEAR_VALIDATE_PACKAGING || - $this->_state == PEAR_VALIDATE_NORMAL) { - if (($this->_packagexml->getPackagexmlVersion() == '2.0' || - $this->_packagexml->getPackagexmlVersion() == '2.1') && - $this->_packagexml->getExtends()) { - $version = $this->_packagexml->getVersion() . ''; - $name = $this->_packagexml->getPackage(); - $test = array_shift($a = explode('.', $version)); - if ($test == '0') { - return true; - } - $vlen = strlen($test); - $majver = substr($name, strlen($name) - $vlen); - while ($majver && !is_numeric($majver{0})) { - $majver = substr($majver, 1); - } - if ($majver != $test) { - $this->_addWarning('package', "package $name extends package " . - $this->_packagexml->getExtends() . ' and so the name should ' . - 'have a postfix equal to the major version like "' . - $this->_packagexml->getExtends() . $test . '"'); - return true; - } elseif (substr($name, 0, strlen($name) - $vlen) != - $this->_packagexml->getExtends()) { - $this->_addWarning('package', "package $name extends package " . - $this->_packagexml->getExtends() . ' and so the name must ' . - 'be an extension like "' . $this->_packagexml->getExtends() . - $test . '"'); - return true; - } - } - } - if (!$this->validPackageName($this->_packagexml->getPackage())) { - $this->_addFailure('name', 'package name "' . - $this->_packagexml->getPackage() . '" is invalid'); - return false; - } - } - - /** - * @access protected - */ - function validateVersion() - { - if ($this->_state != PEAR_VALIDATE_PACKAGING) { - if (!$this->validVersion($this->_packagexml->getVersion())) { - $this->_addFailure('version', - 'Invalid version number "' . $this->_packagexml->getVersion() . '"'); - } - return false; - } - $version = $this->_packagexml->getVersion(); - $versioncomponents = explode('.', $version); - if (count($versioncomponents) != 3) { - $this->_addWarning('version', - 'A version number should have 3 decimals (x.y.z)'); - return true; - } - $name = $this->_packagexml->getPackage(); - // version must be based upon state - switch ($this->_packagexml->getState()) { - case 'snapshot' : - return true; - case 'devel' : - if ($versioncomponents[0] . 'a' == '0a') { - return true; - } - if ($versioncomponents[0] == 0) { - $versioncomponents[0] = '0'; - $this->_addWarning('version', - 'version "' . $version . '" should be "' . - implode('.' ,$versioncomponents) . '"'); - } else { - $this->_addWarning('version', - 'packages with devel stability must be < version 1.0.0'); - } - return true; - break; - case 'alpha' : - case 'beta' : - // check for a package that extends a package, - // like Foo and Foo2 - if ($this->_state == PEAR_VALIDATE_PACKAGING) { - if (substr($versioncomponents[2], 1, 2) == 'rc') { - $this->_addFailure('version', 'Release Candidate versions ' . - 'must have capital RC, not lower-case rc'); - return false; - } - } - if (!$this->_packagexml->getExtends()) { - if ($versioncomponents[0] == '1') { - if ($versioncomponents[2]{0} == '0') { - if ($versioncomponents[2] == '0') { - // version 1.*.0000 - $this->_addWarning('version', - 'version 1.' . $versioncomponents[1] . - '.0 probably should not be alpha or beta'); - return true; - } elseif (strlen($versioncomponents[2]) > 1) { - // version 1.*.0RC1 or 1.*.0beta24 etc. - return true; - } else { - // version 1.*.0 - $this->_addWarning('version', - 'version 1.' . $versioncomponents[1] . - '.0 probably should not be alpha or beta'); - return true; - } - } else { - $this->_addWarning('version', - 'bugfix versions (1.3.x where x > 0) probably should ' . - 'not be alpha or beta'); - return true; - } - } elseif ($versioncomponents[0] != '0') { - $this->_addWarning('version', - 'major versions greater than 1 are not allowed for packages ' . - 'without an <extends> tag or an identical postfix (foo2 v2.0.0)'); - return true; - } - if ($versioncomponents[0] . 'a' == '0a') { - return true; - } - if ($versioncomponents[0] == 0) { - $versioncomponents[0] = '0'; - $this->_addWarning('version', - 'version "' . $version . '" should be "' . - implode('.' ,$versioncomponents) . '"'); - } - } else { - $vlen = strlen($versioncomponents[0] . ''); - $majver = substr($name, strlen($name) - $vlen); - while ($majver && !is_numeric($majver{0})) { - $majver = substr($majver, 1); - } - if (($versioncomponents[0] != 0) && $majver != $versioncomponents[0]) { - $this->_addWarning('version', 'first version number "' . - $versioncomponents[0] . '" must match the postfix of ' . - 'package name "' . $name . '" (' . - $majver . ')'); - return true; - } - if ($versioncomponents[0] == $majver) { - if ($versioncomponents[2]{0} == '0') { - if ($versioncomponents[2] == '0') { - // version 2.*.0000 - $this->_addWarning('version', - "version $majver." . $versioncomponents[1] . - '.0 probably should not be alpha or beta'); - return false; - } elseif (strlen($versioncomponents[2]) > 1) { - // version 2.*.0RC1 or 2.*.0beta24 etc. - return true; - } else { - // version 2.*.0 - $this->_addWarning('version', - "version $majver." . $versioncomponents[1] . - '.0 cannot be alpha or beta'); - return true; - } - } else { - $this->_addWarning('version', - "bugfix versions ($majver.x.y where y > 0) should " . - 'not be alpha or beta'); - return true; - } - } elseif ($versioncomponents[0] != '0') { - $this->_addWarning('version', - "only versions 0.x.y and $majver.x.y are allowed for alpha/beta releases"); - return true; - } - if ($versioncomponents[0] . 'a' == '0a') { - return true; - } - if ($versioncomponents[0] == 0) { - $versioncomponents[0] = '0'; - $this->_addWarning('version', - 'version "' . $version . '" should be "' . - implode('.' ,$versioncomponents) . '"'); - } - } - return true; - break; - case 'stable' : - if ($versioncomponents[0] == '0') { - $this->_addWarning('version', 'versions less than 1.0.0 cannot ' . - 'be stable'); - return true; - } - if (!is_numeric($versioncomponents[2])) { - if (preg_match('/\d+(rc|a|alpha|b|beta)\d*/i', - $versioncomponents[2])) { - $this->_addWarning('version', 'version "' . $version . '" or any ' . - 'RC/beta/alpha version cannot be stable'); - return true; - } - } - // check for a package that extends a package, - // like Foo and Foo2 - if ($this->_packagexml->getExtends()) { - $vlen = strlen($versioncomponents[0] . ''); - $majver = substr($name, strlen($name) - $vlen); - while ($majver && !is_numeric($majver{0})) { - $majver = substr($majver, 1); - } - if (($versioncomponents[0] != 0) && $majver != $versioncomponents[0]) { - $this->_addWarning('version', 'first version number "' . - $versioncomponents[0] . '" must match the postfix of ' . - 'package name "' . $name . '" (' . - $majver . ')'); - return true; - } - } elseif ($versioncomponents[0] > 1) { - $this->_addWarning('version', 'major version x in x.y.z may not be greater than ' . - '1 for any package that does not have an <extends> tag'); - } - return true; - break; - default : - return false; - break; - } - } - - /** - * @access protected - */ - function validateMaintainers() - { - // maintainers can only be truly validated server-side for most channels - // but allow this customization for those who wish it - return true; - } - - /** - * @access protected - */ - function validateDate() - { - if ($this->_state == PEAR_VALIDATE_NORMAL || - $this->_state == PEAR_VALIDATE_PACKAGING) { - - if (!preg_match('/(\d\d\d\d)\-(\d\d)\-(\d\d)/', - $this->_packagexml->getDate(), $res) || - count($res) < 4 - || !checkdate($res[2], $res[3], $res[1]) - ) { - $this->_addFailure('date', 'invalid release date "' . - $this->_packagexml->getDate() . '"'); - return false; - } - - - if ($this->_state == PEAR_VALIDATE_PACKAGING && - $this->_packagexml->getDate() != date('Y-m-d')) { - $this->_addWarning('date', 'Release Date "' . - $this->_packagexml->getDate() . '" is not today'); - } - } - return true; - } - - /** - * @access protected - */ - function validateTime() - { - if (!$this->_packagexml->getTime()) { - // default of no time value set - return true; - } - // packager automatically sets time, so only validate if - // pear validate is called - if ($this->_state = PEAR_VALIDATE_NORMAL) { - if (!preg_match('/\d\d:\d\d:\d\d/', - $this->_packagexml->getTime())) { - $this->_addFailure('time', 'invalid release time "' . - $this->_packagexml->getTime() . '"'); - return false; - } - if (strtotime($this->_packagexml->getTime()) == -1) { - $this->_addFailure('time', 'invalid release time "' . - $this->_packagexml->getTime() . '"'); - return false; - } - } - return true; - } - - /** - * @access protected - */ - function validateState() - { - // this is the closest to "final" php4 can get - if (!PEAR_Validate::validState($this->_packagexml->getState())) { - if (strtolower($this->_packagexml->getState() == 'rc')) { - $this->_addFailure('state', 'RC is not a state, it is a version ' . - 'postfix, use ' . $this->_packagexml->getVersion() . 'RC1, state beta'); - } - $this->_addFailure('state', 'invalid release state "' . - $this->_packagexml->getState() . '", must be one of: ' . - implode(', ', PEAR_Validate::getValidStates())); - return false; - } - return true; - } - - /** - * @access protected - */ - function validateStability() - { - $ret = true; - $packagestability = $this->_packagexml->getState(); - $apistability = $this->_packagexml->getState('api'); - if (!PEAR_Validate::validState($packagestability)) { - $this->_addFailure('state', 'invalid release stability "' . - $this->_packagexml->getState() . '", must be one of: ' . - implode(', ', PEAR_Validate::getValidStates())); - $ret = false; - } - $apistates = PEAR_Validate::getValidStates(); - array_shift($apistates); // snapshot is not allowed - if (!in_array($apistability, $apistates)) { - $this->_addFailure('state', 'invalid API stability "' . - $this->_packagexml->getState('api') . '", must be one of: ' . - implode(', ', $apistates)); - $ret = false; - } - return $ret; - } - - /** - * @access protected - */ - function validateSummary() - { - return true; - } - - /** - * @access protected - */ - function validateDescription() - { - return true; - } - - /** - * @access protected - */ - function validateLicense() - { - return true; - } - - /** - * @access protected - */ - function validateNotes() - { - return true; - } - - /** - * for package.xml 2.0 only - channels can't use package.xml 1.0 - * @access protected - */ - function validateDependencies() - { - return true; - } - - /** - * for package.xml 1.0 only - * @access private - */ - function _validateFilelist() - { - return true; // placeholder for now - } - - /** - * for package.xml 2.0 only - * @access protected - */ - function validateMainFilelist() - { - return true; // placeholder for now - } - - /** - * for package.xml 2.0 only - * @access protected - */ - function validateReleaseFilelist() - { - return true; // placeholder for now - } - - /** - * @access protected - */ - function validateChangelog() - { - return true; - } - - /** - * @access protected - */ - function validateFilelist() - { - return true; - } - - /** - * @access protected - */ - function validateDeps() - { - return true; - } -} -?> diff --git a/src/vitis/vas/rest/class/PEAR/Validator/PECL.php b/src/vitis/vas/rest/class/PEAR/Validator/PECL.php deleted file mode 100755 index 354a5bed..00000000 --- a/src/vitis/vas/rest/class/PEAR/Validator/PECL.php +++ /dev/null @@ -1,63 +0,0 @@ -<?php -/** - * Channel Validator for the pecl.php.net channel - * - * PHP 4 and PHP 5 - * - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2006 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: PECL.php,v 1.9 2008/01/03 20:26:37 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 1.4.0a5 - */ -/** - * This is the parent class for all validators - */ -require_once 'PEAR/Validate.php'; -/** - * Channel Validator for the pecl.php.net channel - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 1.4.0a5 - */ -class PEAR_Validator_PECL extends PEAR_Validate -{ - function validateVersion() - { - if ($this->_state == PEAR_VALIDATE_PACKAGING) { - $version = $this->_packagexml->getVersion(); - $versioncomponents = explode('.', $version); - $last = array_pop($versioncomponents); - if (substr($last, 1, 2) == 'rc') { - $this->_addFailure('version', 'Release Candidate versions must have ' . - 'upper-case RC, not lower-case rc'); - return false; - } - } - return true; - } - - function validatePackageName() - { - $ret = parent::validatePackageName(); - if ($this->_packagexml->getPackageType() == 'extsrc' || - $this->_packagexml->getPackageType() == 'zendextsrc') { - if (strtolower($this->_packagexml->getPackage()) != - strtolower($this->_packagexml->getProvidesExtension())) { - $this->_addWarning('providesextension', 'package name "' . - $this->_packagexml->getPackage() . '" is different from extension name "' . - $this->_packagexml->getProvidesExtension() . '"'); - } - } - return $ret; - } -} -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PEAR/XMLParser.php b/src/vitis/vas/rest/class/PEAR/XMLParser.php deleted file mode 100755 index faabc073..00000000 --- a/src/vitis/vas/rest/class/PEAR/XMLParser.php +++ /dev/null @@ -1,261 +0,0 @@ -<?php -/** - * PEAR_XMLParser - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.0 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_0.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @author Stephan Schmidt (original XML_Unserializer code) - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: XMLParser.php,v 1.13 2008/01/03 20:26:36 cellog Exp $ - * @link http://pear.php.net/package/PEAR - * @since File available since Release 1.4.0a1 - */ - -/** - * Parser for any xml file - * @category pear - * @package PEAR - * @author Greg Beaver <cellog@php.net> - * @author Stephan Schmidt (original XML_Unserializer code) - * @copyright 1997-2008 The PHP Group - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: 1.7.2 - * @link http://pear.php.net/package/PEAR - * @since Class available since Release 1.4.0a1 - */ -class PEAR_XMLParser -{ - /** - * unserilialized data - * @var string $_serializedData - */ - var $_unserializedData = null; - - /** - * name of the root tag - * @var string $_root - */ - var $_root = null; - - /** - * stack for all data that is found - * @var array $_dataStack - */ - var $_dataStack = array(); - - /** - * stack for all values that are generated - * @var array $_valStack - */ - var $_valStack = array(); - - /** - * current tag depth - * @var int $_depth - */ - var $_depth = 0; - - /** - * @return array - */ - function getData() - { - return $this->_unserializedData; - } - - /** - * @param string xml content - * @return true|PEAR_Error - */ - function parse($data) - { - if (!extension_loaded('xml')) { - include_once 'PEAR.php'; - return PEAR::raiseError("XML Extension not found", 1); - } - $this->_valStack = array(); - $this->_dataStack = array(); - $this->_depth = 0; - - if (version_compare(phpversion(), '5.0.0', 'lt')) { - if (strpos($data, 'encoding="UTF-8"')) { - $data = utf8_decode($data); - } - $xp = xml_parser_create('ISO-8859-1'); - } else { - if (strpos($data, 'encoding="UTF-8"')) { - $xp = xml_parser_create('UTF-8'); - } else { - $xp = xml_parser_create('ISO-8859-1'); - } - } - xml_parser_set_option($xp, XML_OPTION_CASE_FOLDING, 0); - xml_set_object($xp, $this); - xml_set_element_handler($xp, 'startHandler', 'endHandler'); - xml_set_character_data_handler($xp, 'cdataHandler'); - if (!xml_parse($xp, $data)) { - $msg = xml_error_string(xml_get_error_code($xp)); - $line = xml_get_current_line_number($xp); - xml_parser_free($xp); - include_once 'PEAR.php'; - return PEAR::raiseError("XML Error: '$msg' on line '$line'", 2); - } - xml_parser_free($xp); - return true; - } - - /** - * Start element handler for XML parser - * - * @access private - * @param object $parser XML parser object - * @param string $element XML element - * @param array $attribs attributes of XML tag - * @return void - */ - function startHandler($parser, $element, $attribs) - { - $type = 'string'; - - $this->_depth++; - $this->_dataStack[$this->_depth] = null; - - $val = array( - 'name' => $element, - 'value' => null, - 'type' => $type, - 'childrenKeys' => array(), - 'aggregKeys' => array() - ); - - if (count($attribs) > 0) { - $val['children'] = array(); - $val['type'] = 'array'; - - $val['children']['attribs'] = $attribs; - - } - - array_push($this->_valStack, $val); - } - - /** - * post-process data - * - * @param string $data - * @param string $element element name - */ - function postProcess($data, $element) - { - return trim($data); - } - - /** - * End element handler for XML parser - * - * @access private - * @param object XML parser object - * @param string - * @return void - */ - function endHandler($parser, $element) - { - $value = array_pop($this->_valStack); - $data = $this->postProcess($this->_dataStack[$this->_depth], $element); - - // adjust type of the value - switch(strtolower($value['type'])) { - - /* - * unserialize an array - */ - case 'array': - if ($data !== '') { - $value['children']['_content'] = $data; - } - if (isset($value['children'])) { - $value['value'] = $value['children']; - } else { - $value['value'] = array(); - } - break; - - /* - * unserialize a null value - */ - case 'null': - $data = null; - break; - - /* - * unserialize any scalar value - */ - default: - settype($data, $value['type']); - $value['value'] = $data; - break; - } - $parent = array_pop($this->_valStack); - if ($parent === null) { - $this->_unserializedData = &$value['value']; - $this->_root = &$value['name']; - return true; - } else { - // parent has to be an array - if (!isset($parent['children']) || !is_array($parent['children'])) { - $parent['children'] = array(); - if ($parent['type'] != 'array') { - $parent['type'] = 'array'; - } - } - - if (!empty($value['name'])) { - // there already has been a tag with this name - if (in_array($value['name'], $parent['childrenKeys'])) { - // no aggregate has been created for this tag - if (!in_array($value['name'], $parent['aggregKeys'])) { - if (isset($parent['children'][$value['name']])) { - $parent['children'][$value['name']] = array($parent['children'][$value['name']]); - } else { - $parent['children'][$value['name']] = array(); - } - array_push($parent['aggregKeys'], $value['name']); - } - array_push($parent['children'][$value['name']], $value['value']); - } else { - $parent['children'][$value['name']] = &$value['value']; - array_push($parent['childrenKeys'], $value['name']); - } - } else { - array_push($parent['children'],$value['value']); - } - array_push($this->_valStack, $parent); - } - - $this->_depth--; - } - - /** - * Handler for character data - * - * @access private - * @param object XML parser object - * @param string CDATA - * @return void - */ - function cdataHandler($parser, $cdata) - { - $this->_dataStack[$this->_depth] .= $cdata; - } -} -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PHPMailer/extras/EasyPeasyICS.php b/src/vitis/vas/rest/class/PHPMailer/extras/EasyPeasyICS.php deleted file mode 100755 index d8bfcfae..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/extras/EasyPeasyICS.php +++ /dev/null @@ -1,148 +0,0 @@ -<?php -/** - * EasyPeasyICS Simple ICS/vCal data generator. - * @author Marcus Bointon <phpmailer@synchromedia.co.uk> - * @author Manuel Reinhard <manu@sprain.ch> - * - * Built with inspiration from - * http://stackoverflow.com/questions/1463480/how-can-i-use-php-to-dynamically-publish-an-ical-file-to-be-read-by-google-calend/1464355#1464355 - * History: - * 2010/12/17 - Manuel Reinhard - when it all started - * 2014 PHPMailer project becomes maintainer - */ - -/** - * Class EasyPeasyICS. - * Simple ICS data generator - * @package phpmailer - * @subpackage easypeasyics - */ -class EasyPeasyICS -{ - /** - * The name of the calendar - * @var string - */ - protected $calendarName; - /** - * The array of events to add to this calendar - * @var array - */ - protected $events = array(); - - /** - * Constructor - * @param string $calendarName - */ - public function __construct($calendarName = "") - { - $this->calendarName = $calendarName; - } - - /** - * Add an event to this calendar. - * @param string $start The start date and time as a unix timestamp - * @param string $end The end date and time as a unix timestamp - * @param string $summary A summary or title for the event - * @param string $description A description of the event - * @param string $url A URL for the event - * @param string $uid A unique identifier for the event - generated automatically if not provided - * @return array An array of event details, including any generated UID - */ - public function addEvent($start, $end, $summary = '', $description = '', $url = '', $uid = '') - { - if (empty($uid)) { - $uid = md5(uniqid(mt_rand(), true)) . '@EasyPeasyICS'; - } - $event = array( - 'start' => gmdate('Ymd', $start) . 'T' . gmdate('His', $start) . 'Z', - 'end' => gmdate('Ymd', $end) . 'T' . gmdate('His', $end) . 'Z', - 'summary' => $summary, - 'description' => $description, - 'url' => $url, - 'uid' => $uid - ); - $this->events[] = $event; - return $event; - } - - /** - * @return array Get the array of events. - */ - public function getEvents() - { - return $this->events; - } - - /** - * Clear all events. - */ - public function clearEvents() - { - $this->events = array(); - } - - /** - * Get the name of the calendar. - * @return string - */ - public function getName() - { - return $this->calendarName; - } - - /** - * Set the name of the calendar. - * @param $name - */ - public function setName($name) - { - $this->calendarName = $name; - } - - /** - * Render and optionally output a vcal string. - * @param bool $output Whether to output the calendar data directly (the default). - * @return string The complete rendered vlal - */ - public function render($output = true) - { - //Add header - $ics = 'BEGIN:VCALENDAR -METHOD:PUBLISH -VERSION:2.0 -X-WR-CALNAME:' . $this->calendarName . ' -PRODID:-//hacksw/handcal//NONSGML v1.0//EN'; - - //Add events - foreach ($this->events as $event) { - $ics .= ' -BEGIN:VEVENT -UID:' . $event['uid'] . ' -DTSTAMP:' . gmdate('Ymd') . 'T' . gmdate('His') . 'Z -DTSTART:' . $event['start'] . ' -DTEND:' . $event['end'] . ' -SUMMARY:' . str_replace("\n", "\\n", $event['summary']) . ' -DESCRIPTION:' . str_replace("\n", "\\n", $event['description']) . ' -URL;VALUE=URI:' . $event['url'] . ' -END:VEVENT'; - } - - //Add footer - $ics .= ' -END:VCALENDAR'; - - if ($output) { - //Output - $filename = $this->calendarName; - //Filename needs quoting if it contains spaces - if (strpos($filename, ' ') !== false) { - $filename = '"'.$filename.'"'; - } - header('Content-type: text/calendar; charset=utf-8'); - header('Content-Disposition: inline; filename=' . $filename . '.ics'); - echo $ics; - } - return $ics; - } -} diff --git a/src/vitis/vas/rest/class/PHPMailer/extras/README.md b/src/vitis/vas/rest/class/PHPMailer/extras/README.md deleted file mode 100755 index dac79e05..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/extras/README.md +++ /dev/null @@ -1,17 +0,0 @@ -#PHPMailer Extras - -These classes provide optional additional functions to PHPMailer. - -These are not loaded by the PHPMailer autoloader, so in some cases you may need to `require` them yourself before using them. - -##EasyPeasyICS - -This class was originally written by Manuel Reinhard and provides a simple means of generating ICS/vCal files that are used in sending calendar events. PHPMailer does not use it directly, but you can use it to generate content appropriate for placing in the `Ical` property of PHPMailer. The PHPMailer project is now its official home as Manuel has given permission for that and is no longer maintaining it himself. - -##htmlfilter - -This class by Konstantin Riabitsev and Jim Jagielski implements HTML filtering to remove potentially malicious tags, such as `<script>` or `onclick=` attributes that can result in XSS attacks. This is a simple filter and is not as comprehensive as [HTMLawed](http://www.bioinformatics.org/phplabware/internal_utilities/htmLawed/) or [HTMLPurifier](http://htmlpurifier.org), but it's easier to use and considerably better than nothing! PHPMailer does not use it directly, but you may want to apply it to user-supplied HTML before using it as a message body. - -##NTLM_SASL_client - -This class by Manuel Lemos (bundled with permission) adds the ability to authenticate with Microsoft Windows mail servers that use NTLM-based authentication. It is used by PHPMailer if you send via SMTP and set the `AuthType` property to `NTLM`; you will also need to use the `Realm` and `Workstation` properties. The original source is [here](http://www.phpclasses.org/browse/file/7495.html). diff --git a/src/vitis/vas/rest/class/PHPMailer/extras/htmlfilter.php b/src/vitis/vas/rest/class/PHPMailer/extras/htmlfilter.php deleted file mode 100755 index 0c55ddb7..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/extras/htmlfilter.php +++ /dev/null @@ -1,1159 +0,0 @@ -<?php -/** - * htmlfilter.inc - * --------------- - * This set of functions allows you to filter html in order to remove - * any malicious tags from it. Useful in cases when you need to filter - * user input for any cross-site-scripting attempts. - * - * Copyright (C) 2002-2004 by Duke University - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA - * 02110-1301 USA - * - * @Author Konstantin Riabitsev <icon@linux.duke.edu> - * @Author Jim Jagielski <jim@jaguNET.com / jimjag@gmail.com> - * @Version 1.1 ($Date$) - */ - -/** - * This function returns the final tag out of the tag name, an array - * of attributes, and the type of the tag. This function is called by - * tln_sanitize internally. - * - * @param string $tagname the name of the tag. - * @param array $attary the array of attributes and their values - * @param integer $tagtype The type of the tag (see in comments). - * @return string A string with the final tag representation. - */ -function tln_tagprint($tagname, $attary, $tagtype) -{ - if ($tagtype == 2) { - $fulltag = '</' . $tagname . '>'; - } else { - $fulltag = '<' . $tagname; - if (is_array($attary) && sizeof($attary)) { - $atts = array(); - foreach($attary as $attname => $attvalue) { - array_push($atts, "$attname=$attvalue"); - } - $fulltag .= ' ' . join(' ', $atts); - } - if ($tagtype == 3) { - $fulltag .= ' /'; - } - $fulltag .= '>'; - } - return $fulltag; -} - -/** - * A small helper function to use with array_walk. Modifies a by-ref - * value and makes it lowercase. - * - * @param string $val a value passed by-ref. - * @return void since it modifies a by-ref value. - */ -function tln_casenormalize(&$val) -{ - $val = strtolower($val); -} - -/** - * This function skips any whitespace from the current position within - * a string and to the next non-whitespace value. - * - * @param string $body the string - * @param integer $offset the offset within the string where we should start - * looking for the next non-whitespace character. - * @return integer the location within the $body where the next - * non-whitespace char is located. - */ -function tln_skipspace($body, $offset) -{ - preg_match('/^(\s*)/s', substr($body, $offset), $matches); - if (sizeof($matches[1])) { - $count = strlen($matches[1]); - $offset += $count; - } - return $offset; -} - -/** - * This function looks for the next character within a string. It's - * really just a glorified "strpos", except it catches the failures - * nicely. - * - * @param string $body The string to look for needle in. - * @param integer $offset Start looking from this position. - * @param string $needle The character/string to look for. - * @return integer location of the next occurrence of the needle, or - * strlen($body) if needle wasn't found. - */ -function tln_findnxstr($body, $offset, $needle) -{ - $pos = strpos($body, $needle, $offset); - if ($pos === false) { - $pos = strlen($body); - } - return $pos; -} - -/** - * This function takes a PCRE-style regexp and tries to match it - * within the string. - * - * @param string $body The string to look for needle in. - * @param integer $offset Start looking from here. - * @param string $reg A PCRE-style regex to match. - * @return array|boolean Returns a false if no matches found, or an array - * with the following members: - * - integer with the location of the match within $body - * - string with whatever content between offset and the match - * - string with whatever it is we matched - */ -function tln_findnxreg($body, $offset, $reg) -{ - $matches = array(); - $retarr = array(); - $preg_rule = '%^(.*?)(' . $reg . ')%s'; - preg_match($preg_rule, substr($body, $offset), $matches); - if (!isset($matches[0]) || !$matches[0]) { - $retarr = false; - } else { - $retarr[0] = $offset + strlen($matches[1]); - $retarr[1] = $matches[1]; - $retarr[2] = $matches[2]; - } - return $retarr; -} - -/** - * This function looks for the next tag. - * - * @param string $body String where to look for the next tag. - * @param integer $offset Start looking from here. - * @return array|boolean false if no more tags exist in the body, or - * an array with the following members: - * - string with the name of the tag - * - array with attributes and their values - * - integer with tag type (1, 2, or 3) - * - integer where the tag starts (starting "<") - * - integer where the tag ends (ending ">") - * first three members will be false, if the tag is invalid. - */ -function tln_getnxtag($body, $offset) -{ - if ($offset > strlen($body)) { - return false; - } - $lt = tln_findnxstr($body, $offset, '<'); - if ($lt == strlen($body)) { - return false; - } - /** - * We are here: - * blah blah <tag attribute="value"> - * \---------^ - */ - $pos = tln_skipspace($body, $lt + 1); - if ($pos >= strlen($body)) { - return array(false, false, false, $lt, strlen($body)); - } - /** - * There are 3 kinds of tags: - * 1. Opening tag, e.g.: - * <a href="blah"> - * 2. Closing tag, e.g.: - * </a> - * 3. XHTML-style content-less tag, e.g.: - * <img src="blah"/> - */ - switch (substr($body, $pos, 1)) { - case '/': - $tagtype = 2; - $pos++; - break; - case '!': - /** - * A comment or an SGML declaration. - */ - if (substr($body, $pos + 1, 2) == '--') { - $gt = strpos($body, '-->', $pos); - if ($gt === false) { - $gt = strlen($body); - } else { - $gt += 2; - } - return array(false, false, false, $lt, $gt); - } else { - $gt = tln_findnxstr($body, $pos, '>'); - return array(false, false, false, $lt, $gt); - } - break; - default: - /** - * Assume tagtype 1 for now. If it's type 3, we'll switch values - * later. - */ - $tagtype = 1; - break; - } - - /** - * Look for next [\W-_], which will indicate the end of the tag name. - */ - $regary = tln_findnxreg($body, $pos, '[^\w\-_]'); - if ($regary == false) { - return array(false, false, false, $lt, strlen($body)); - } - list($pos, $tagname, $match) = $regary; - $tagname = strtolower($tagname); - - /** - * $match can be either of these: - * '>' indicating the end of the tag entirely. - * '\s' indicating the end of the tag name. - * '/' indicating that this is type-3 xhtml tag. - * - * Whatever else we find there indicates an invalid tag. - */ - switch ($match) { - case '/': - /** - * This is an xhtml-style tag with a closing / at the - * end, like so: <img src="blah"/>. Check if it's followed - * by the closing bracket. If not, then this tag is invalid - */ - if (substr($body, $pos, 2) == '/>') { - $pos++; - $tagtype = 3; - } else { - $gt = tln_findnxstr($body, $pos, '>'); - $retary = array(false, false, false, $lt, $gt); - return $retary; - } - //intentional fall-through - case '>': - return array($tagname, false, $tagtype, $lt, $pos); - break; - default: - /** - * Check if it's whitespace - */ - if (!preg_match('/\s/', $match)) { - /** - * This is an invalid tag! Look for the next closing ">". - */ - $gt = tln_findnxstr($body, $lt, '>'); - return array(false, false, false, $lt, $gt); - } - break; - } - - /** - * At this point we're here: - * <tagname attribute='blah'> - * \-------^ - * - * At this point we loop in order to find all attributes. - */ - $attary = array(); - - while ($pos <= strlen($body)) { - $pos = tln_skipspace($body, $pos); - if ($pos == strlen($body)) { - /** - * Non-closed tag. - */ - return array(false, false, false, $lt, $pos); - } - /** - * See if we arrived at a ">" or "/>", which means that we reached - * the end of the tag. - */ - $matches = array(); - if (preg_match('%^(\s*)(>|/>)%s', substr($body, $pos), $matches)) { - /** - * Yep. So we did. - */ - $pos += strlen($matches[1]); - if ($matches[2] == '/>') { - $tagtype = 3; - $pos++; - } - return array($tagname, $attary, $tagtype, $lt, $pos); - } - - /** - * There are several types of attributes, with optional - * [:space:] between members. - * Type 1: - * attrname[:space:]=[:space:]'CDATA' - * Type 2: - * attrname[:space:]=[:space:]"CDATA" - * Type 3: - * attr[:space:]=[:space:]CDATA - * Type 4: - * attrname - * - * We leave types 1 and 2 the same, type 3 we check for - * '"' and convert to """ if needed, then wrap in - * double quotes. Type 4 we convert into: - * attrname="yes". - */ - $regary = tln_findnxreg($body, $pos, '[^\w\-_]'); - if ($regary == false) { - /** - * Looks like body ended before the end of tag. - */ - return array(false, false, false, $lt, strlen($body)); - } - list($pos, $attname, $match) = $regary; - $attname = strtolower($attname); - /** - * We arrived at the end of attribute name. Several things possible - * here: - * '>' means the end of the tag and this is attribute type 4 - * '/' if followed by '>' means the same thing as above - * '\s' means a lot of things -- look what it's followed by. - * anything else means the attribute is invalid. - */ - switch ($match) { - case '/': - /** - * This is an xhtml-style tag with a closing / at the - * end, like so: <img src="blah"/>. Check if it's followed - * by the closing bracket. If not, then this tag is invalid - */ - if (substr($body, $pos, 2) == '/>') { - $pos++; - $tagtype = 3; - } else { - $gt = tln_findnxstr($body, $pos, '>'); - $retary = array(false, false, false, $lt, $gt); - return $retary; - } - //intentional fall-through - case '>': - $attary{$attname} = '"yes"'; - return array($tagname, $attary, $tagtype, $lt, $pos); - break; - default: - /** - * Skip whitespace and see what we arrive at. - */ - $pos = tln_skipspace($body, $pos); - $char = substr($body, $pos, 1); - /** - * Two things are valid here: - * '=' means this is attribute type 1 2 or 3. - * \w means this was attribute type 4. - * anything else we ignore and re-loop. End of tag and - * invalid stuff will be caught by our checks at the beginning - * of the loop. - */ - if ($char == '=') { - $pos++; - $pos = tln_skipspace($body, $pos); - /** - * Here are 3 possibilities: - * "'" attribute type 1 - * '"' attribute type 2 - * everything else is the content of tag type 3 - */ - $quot = substr($body, $pos, 1); - if ($quot == '\'') { - $regary = tln_findnxreg($body, $pos + 1, '\''); - if ($regary == false) { - return array(false, false, false, $lt, strlen($body)); - } - list($pos, $attval, $match) = $regary; - $pos++; - $attary{$attname} = '\'' . $attval . '\''; - } elseif ($quot == '"') { - $regary = tln_findnxreg($body, $pos + 1, '\"'); - if ($regary == false) { - return array(false, false, false, $lt, strlen($body)); - } - list($pos, $attval, $match) = $regary; - $pos++; - $attary{$attname} = '"' . $attval . '"'; - } else { - /** - * These are hateful. Look for \s, or >. - */ - $regary = tln_findnxreg($body, $pos, '[\s>]'); - if ($regary == false) { - return array(false, false, false, $lt, strlen($body)); - } - list($pos, $attval, $match) = $regary; - /** - * If it's ">" it will be caught at the top. - */ - $attval = preg_replace('/\"/s', '"', $attval); - $attary{$attname} = '"' . $attval . '"'; - } - } elseif (preg_match('|[\w/>]|', $char)) { - /** - * That was attribute type 4. - */ - $attary{$attname} = '"yes"'; - } else { - /** - * An illegal character. Find next '>' and return. - */ - $gt = tln_findnxstr($body, $pos, '>'); - return array(false, false, false, $lt, $gt); - } - break; - } - } - /** - * The fact that we got here indicates that the tag end was never - * found. Return invalid tag indication so it gets stripped. - */ - return array(false, false, false, $lt, strlen($body)); -} - -/** - * Translates entities into literal values so they can be checked. - * - * @param string $attvalue the by-ref value to check. - * @param string $regex the regular expression to check against. - * @param boolean $hex whether the entities are hexadecimal. - * @return boolean True or False depending on whether there were matches. - */ -function tln_deent(&$attvalue, $regex, $hex = false) -{ - preg_match_all($regex, $attvalue, $matches); - if (is_array($matches) && sizeof($matches[0]) > 0) { - $repl = array(); - for ($i = 0; $i < sizeof($matches[0]); $i++) { - $numval = $matches[1][$i]; - if ($hex) { - $numval = hexdec($numval); - } - $repl{$matches[0][$i]} = chr($numval); - } - $attvalue = strtr($attvalue, $repl); - return true; - } else { - return false; - } -} - -/** - * This function checks attribute values for entity-encoded values - * and returns them translated into 8-bit strings so we can run - * checks on them. - * - * @param string $attvalue A string to run entity check against. - */ -function tln_defang(&$attvalue) -{ - /** - * Skip this if there aren't ampersands or backslashes. - */ - if (strpos($attvalue, '&') === false - && strpos($attvalue, '\\') === false - ) { - return; - } - do { - $m = false; - $m = $m || tln_deent($attvalue, '/\�*(\d+);*/s'); - $m = $m || tln_deent($attvalue, '/\�*((\d|[a-f])+);*/si', true); - $m = $m || tln_deent($attvalue, '/\\\\(\d+)/s', true); - } while ($m == true); - $attvalue = stripslashes($attvalue); -} - -/** - * Kill any tabs, newlines, or carriage returns. Our friends the - * makers of the browser with 95% market value decided that it'd - * be funny to make "java[tab]script" be just as good as "javascript". - * - * @param string $attvalue The attribute value before extraneous spaces removed. - */ -function tln_unspace(&$attvalue) -{ - if (strcspn($attvalue, "\t\r\n\0 ") != strlen($attvalue)) { - $attvalue = str_replace( - array("\t", "\r", "\n", "\0", " "), - array('', '', '', '', ''), - $attvalue - ); - } -} - -/** - * This function runs various checks against the attributes. - * - * @param string $tagname String with the name of the tag. - * @param array $attary Array with all tag attributes. - * @param array $rm_attnames See description for tln_sanitize - * @param array $bad_attvals See description for tln_sanitize - * @param array $add_attr_to_tag See description for tln_sanitize - * @param string $trans_image_path - * @param boolean $block_external_images - * @return array with modified attributes. - */ -function tln_fixatts( - $tagname, - $attary, - $rm_attnames, - $bad_attvals, - $add_attr_to_tag, - $trans_image_path, - $block_external_images -) { - foreach($attary as $attname => $attvalue) { - /** - * See if this attribute should be removed. - */ - foreach ($rm_attnames as $matchtag => $matchattrs) { - if (preg_match($matchtag, $tagname)) { - foreach ($matchattrs as $matchattr) { - if (preg_match($matchattr, $attname)) { - unset($attary{$attname}); - continue; - } - } - } - } - /** - * Remove any backslashes, entities, or extraneous whitespace. - */ - $oldattvalue = $attvalue; - tln_defang($attvalue); - if ($attname == 'style' && $attvalue !== $oldattvalue) { - $attvalue = "idiocy"; - $attary{$attname} = $attvalue; - } - tln_unspace($attvalue); - - /** - * Now let's run checks on the attvalues. - * I don't expect anyone to comprehend this. If you do, - * get in touch with me so I can drive to where you live and - * shake your hand personally. :) - */ - foreach ($bad_attvals as $matchtag => $matchattrs) { - if (preg_match($matchtag, $tagname)) { - foreach ($matchattrs as $matchattr => $valary) { - if (preg_match($matchattr, $attname)) { - /** - * There are two arrays in valary. - * First is matches. - * Second one is replacements - */ - list($valmatch, $valrepl) = $valary; - $newvalue = preg_replace($valmatch, $valrepl, $attvalue); - if ($newvalue != $attvalue) { - $attary{$attname} = $newvalue; - $attvalue = $newvalue; - } - } - } - } - } - if ($attname == 'style') { - if (preg_match('/[\0-\37\200-\377]+/', $attvalue)) { - $attary{$attname} = '"disallowed character"'; - } - preg_match_all("/url\s*\((.+)\)/si", $attvalue, $aMatch); - if (count($aMatch)) { - foreach($aMatch[1] as $sMatch) { - $urlvalue = $sMatch; - tln_fixurl($attname, $urlvalue, $trans_image_path, $block_external_images); - $attary{$attname} = str_replace($sMatch, $urlvalue, $attvalue); - } - } - } - } - /** - * See if we need to append any attributes to this tag. - */ - foreach ($add_attr_to_tag as $matchtag => $addattary) { - if (preg_match($matchtag, $tagname)) { - $attary = array_merge($attary, $addattary); - } - } - return $attary; -} - -function tln_fixurl($attname, &$attvalue, $trans_image_path, $block_external_images) -{ - $sQuote = '"'; - $attvalue = trim($attvalue); - if ($attvalue && ($attvalue[0] =='"'|| $attvalue[0] == "'")) { - // remove the double quotes - $sQuote = $attvalue[0]; - $attvalue = trim(substr($attvalue,1,-1)); - } - - /** - * Replace empty src tags with the blank image. src is only used - * for frames, images, and image inputs. Doing a replace should - * not affect them working as should be, however it will stop - * IE from being kicked off when src for img tags are not set - */ - if ($attvalue == '') { - $attvalue = $sQuote . $trans_image_path . $sQuote; - } else { - // first, disallow 8 bit characters and control characters - if (preg_match('/[\0-\37\200-\377]+/',$attvalue)) { - switch ($attname) { - case 'href': - $attvalue = $sQuote . 'http://invalid-stuff-detected.example.com' . $sQuote; - break; - default: - $attvalue = $sQuote . $trans_image_path . $sQuote; - break; - } - } else { - $aUrl = parse_url($attvalue); - if (isset($aUrl['scheme'])) { - switch(strtolower($aUrl['scheme'])) { - case 'mailto': - case 'http': - case 'https': - case 'ftp': - if ($attname != 'href') { - if ($block_external_images == true) { - $attvalue = $sQuote . $trans_image_path . $sQuote; - } else { - if (!isset($aUrl['path'])) { - $attvalue = $sQuote . $trans_image_path . $sQuote; - } - } - } else { - $attvalue = $sQuote . $attvalue . $sQuote; - } - break; - case 'outbind': - $attvalue = $sQuote . $attvalue . $sQuote; - break; - case 'cid': - $attvalue = $sQuote . $attvalue . $sQuote; - break; - default: - $attvalue = $sQuote . $trans_image_path . $sQuote; - break; - } - } else { - if (!isset($aUrl['path']) || $aUrl['path'] != $trans_image_path) { - $$attvalue = $sQuote . $trans_image_path . $sQuote; - } - } - } - } -} - -function tln_fixstyle($body, $pos, $trans_image_path, $block_external_images) -{ - // workaround for </style> in between comments - $content = ''; - $sToken = ''; - $bSucces = false; - $bEndTag = false; - for ($i=$pos,$iCount=strlen($body);$i<$iCount;++$i) { - $char = $body{$i}; - switch ($char) { - case '<': - $sToken = $char; - break; - case '/': - if ($sToken == '<') { - $sToken .= $char; - $bEndTag = true; - } else { - $content .= $char; - } - break; - case '>': - if ($bEndTag) { - $sToken .= $char; - if (preg_match('/\<\/\s*style\s*\>/i',$sToken,$aMatch)) { - $newpos = $i + 1; - $bSucces = true; - break 2; - } else { - $content .= $sToken; - } - $bEndTag = false; - } else { - $content .= $char; - } - break; - case '!': - if ($sToken == '<') { - // possible comment - if (isset($body{$i+2}) && substr($body,$i,3) == '!--') { - $i = strpos($body,'-->',$i+3); - if ($i === false) { // no end comment - $i = strlen($body); - } - $sToken = ''; - } - } else { - $content .= $char; - } - break; - default: - if ($bEndTag) { - $sToken .= $char; - } else { - $content .= $char; - } - break; - } - } - if ($bSucces == FALSE){ - return array(FALSE, strlen($body)); - } - - - - /** - * First look for general BODY style declaration, which would be - * like so: - * body {background: blah-blah} - * and change it to .bodyclass so we can just assign it to a <div> - */ - $content = preg_replace("|body(\s*\{.*?\})|si", ".bodyclass\\1", $content); - - /** - * Fix url('blah') declarations. - */ - // $content = preg_replace("|url\s*\(\s*([\'\"])\s*\S+script\s*:.*?([\'\"])\s*\)|si", - // "url(\\1$trans_image_path\\2)", $content); - - // first check for 8bit sequences and disallowed control characters - if (preg_match('/[\16-\37\200-\377]+/',$content)) { - $content = '<!-- style block removed by html filter due to presence of 8bit characters -->'; - return array($content, $newpos); - } - - // remove @import line - $content = preg_replace("/^\s*(@import.*)$/mi","\n<!-- @import rules forbidden -->\n",$content); - - $content = preg_replace("/(\\\\)?u(\\\\)?r(\\\\)?l(\\\\)?/i", 'url', $content); - preg_match_all("/url\s*\((.+)\)/si",$content,$aMatch); - if (count($aMatch)) { - $aValue = $aReplace = array(); - foreach($aMatch[1] as $sMatch) { - // url value - $urlvalue = $sMatch; - tln_fixurl('style',$urlvalue, $trans_image_path, $block_external_images); - $aValue[] = $sMatch; - $aReplace[] = $urlvalue; - } - $content = str_replace($aValue,$aReplace,$content); - } - - /** - * Remove any backslashes, entities, and extraneous whitespace. - */ - $contentTemp = $content; - tln_defang($contentTemp); - tln_unspace($contentTemp); - - $match = array('/\/\*.*\*\//', - '/expression/i', - '/behaviou*r/i', - '/binding/i', - '/include-source/i', - '/javascript/i', - '/script/i', - '/position/i'); - $replace = array('','idiocy', 'idiocy', 'idiocy', 'idiocy', 'idiocy', 'idiocy', ''); - $contentNew = preg_replace($match, $replace, $contentTemp); - if ($contentNew !== $contentTemp) { - $content = $contentNew; - } - return array($content, $newpos); -} - -function tln_body2div($attary, $trans_image_path) -{ - $divattary = array('class' => "'bodyclass'"); - $text = '#000000'; - $has_bgc_stl = $has_txt_stl = false; - $styledef = ''; - if (is_array($attary) && sizeof($attary) > 0){ - foreach ($attary as $attname=>$attvalue){ - $quotchar = substr($attvalue, 0, 1); - $attvalue = str_replace($quotchar, "", $attvalue); - switch ($attname){ - case 'background': - $styledef .= "background-image: url('$trans_image_path'); "; - break; - case 'bgcolor': - $has_bgc_stl = true; - $styledef .= "background-color: $attvalue; "; - break; - case 'text': - $has_txt_stl = true; - $styledef .= "color: $attvalue; "; - break; - } - } - // Outlook defines a white bgcolor and no text color. This can lead to - // white text on a white bg with certain themes. - if ($has_bgc_stl && !$has_txt_stl) { - $styledef .= "color: $text; "; - } - if (strlen($styledef) > 0){ - $divattary{"style"} = "\"$styledef\""; - } - } - return $divattary; -} - -/** - * - * @param string $body The HTML you wish to filter - * @param array $tag_list see description above - * @param array $rm_tags_with_content see description above - * @param array $self_closing_tags see description above - * @param boolean $force_tag_closing see description above - * @param array $rm_attnames see description above - * @param array $bad_attvals see description above - * @param array $add_attr_to_tag see description above - * @param string $trans_image_path - * @param boolean $block_external_images - - * @return string Sanitized html safe to show on your pages. - */ -function tln_sanitize( - $body, - $tag_list, - $rm_tags_with_content, - $self_closing_tags, - $force_tag_closing, - $rm_attnames, - $bad_attvals, - $add_attr_to_tag, - $trans_image_path, - $block_external_images -) { - /** - * Normalize rm_tags and rm_tags_with_content. - */ - $rm_tags = array_shift($tag_list); - @array_walk($tag_list, 'tln_casenormalize'); - @array_walk($rm_tags_with_content, 'tln_casenormalize'); - @array_walk($self_closing_tags, 'tln_casenormalize'); - /** - * See if tag_list is of tags to remove or tags to allow. - * false means remove these tags - * true means allow these tags - */ - $curpos = 0; - $open_tags = array(); - $trusted = "<!-- begin tln_sanitized html -->\n"; - $skip_content = false; - /** - * Take care of netscape's stupid javascript entities like - * &{alert('boo')}; - */ - $body = preg_replace('/&(\{.*?\};)/si', '&\\1', $body); - while (($curtag = tln_getnxtag($body, $curpos)) != false) { - list($tagname, $attary, $tagtype, $lt, $gt) = $curtag; - $free_content = substr($body, $curpos, $lt-$curpos); - /** - * Take care of <style> - */ - if ($tagname == "style" && $tagtype == 1){ - list($free_content, $curpos) = - tln_fixstyle($body, $gt+1, $trans_image_path, $block_external_images); - if ($free_content != FALSE){ - if ( !empty($attary) ) { - $attary = tln_fixatts($tagname, - $attary, - $rm_attnames, - $bad_attvals, - $add_attr_to_tag, - $trans_image_path, - $block_external_images - ); - } - $trusted .= tln_tagprint($tagname, $attary, $tagtype); - $trusted .= $free_content; - $trusted .= tln_tagprint($tagname, null, 2); - } - continue; - } - if ($skip_content == false){ - $trusted .= $free_content; - } - if ($tagname != false) { - if ($tagtype == 2) { - if ($skip_content == $tagname) { - /** - * Got to the end of tag we needed to remove. - */ - $tagname = false; - $skip_content = false; - } else { - if ($skip_content == false) { - if ($tagname == "body") { - $tagname = "div"; - } - if (isset($open_tags{$tagname}) && - $open_tags{$tagname} > 0 - ) { - $open_tags{$tagname}--; - } else { - $tagname = false; - } - } - } - } else { - /** - * $rm_tags_with_content - */ - if ($skip_content == false) { - /** - * See if this is a self-closing type and change - * tagtype appropriately. - */ - if ($tagtype == 1 - && in_array($tagname, $self_closing_tags) - ) { - $tagtype = 3; - } - /** - * See if we should skip this tag and any content - * inside it. - */ - if ($tagtype == 1 - && in_array($tagname, $rm_tags_with_content) - ) { - $skip_content = $tagname; - } else { - if (($rm_tags == false - && in_array($tagname, $tag_list)) || - ($rm_tags == true - && !in_array($tagname, $tag_list)) - ) { - $tagname = false; - } else { - /** - * Convert body into div. - */ - if ($tagname == "body"){ - $tagname = "div"; - $attary = tln_body2div($attary, $trans_image_path); - } - if ($tagtype == 1) { - if (isset($open_tags{$tagname})) { - $open_tags{$tagname}++; - } else { - $open_tags{$tagname} = 1; - } - } - /** - * This is where we run other checks. - */ - if (is_array($attary) && sizeof($attary) > 0) { - $attary = tln_fixatts( - $tagname, - $attary, - $rm_attnames, - $bad_attvals, - $add_attr_to_tag, - $trans_image_path, - $block_external_images - ); - } - } - } - } - } - if ($tagname != false && $skip_content == false) { - $trusted .= tln_tagprint($tagname, $attary, $tagtype); - } - } - $curpos = $gt + 1; - } - $trusted .= substr($body, $curpos, strlen($body) - $curpos); - if ($force_tag_closing == true) { - foreach ($open_tags as $tagname => $opentimes) { - while ($opentimes > 0) { - $trusted .= '</' . $tagname . '>'; - $opentimes--; - } - } - $trusted .= "\n"; - } - $trusted .= "<!-- end tln_sanitized html -->\n"; - return $trusted; -} - -// -// Use the nifty htmlfilter library -// - - -function HTMLFilter($body, $trans_image_path, $block_external_images = false) -{ - - $tag_list = array( - false, - "object", - "meta", - "html", - "head", - "base", - "link", - "frame", - "iframe", - "plaintext", - "marquee" - ); - - $rm_tags_with_content = array( - "script", - "applet", - "embed", - "title", - "frameset", - "xmp", - "xml" - ); - - $self_closing_tags = array( - "img", - "br", - "hr", - "input", - "outbind" - ); - - $force_tag_closing = true; - - $rm_attnames = array( - "/.*/" => - array( - // "/target/i", - "/^on.*/i", - "/^dynsrc/i", - "/^data.*/i", - "/^lowsrc.*/i" - ) - ); - - $bad_attvals = array( - "/.*/" => - array( - "/^src|background/i" => - array( - array( - '/^([\'"])\s*\S+script\s*:.*([\'"])/si', - '/^([\'"])\s*mocha\s*:*.*([\'"])/si', - '/^([\'"])\s*about\s*:.*([\'"])/si' - ), - array( - "\\1$trans_image_path\\2", - "\\1$trans_image_path\\2", - "\\1$trans_image_path\\2" - ) - ), - "/^href|action/i" => - array( - array( - '/^([\'"])\s*\S+script\s*:.*([\'"])/si', - '/^([\'"])\s*mocha\s*:*.*([\'"])/si', - '/^([\'"])\s*about\s*:.*([\'"])/si' - ), - array( - "\\1#\\1", - "\\1#\\1", - "\\1#\\1" - ) - ), - "/^style/i" => - array( - array( - "/\/\*.*\*\//", - "/expression/i", - "/binding/i", - "/behaviou*r/i", - "/include-source/i", - '/position\s*:/i', - '/(\\\\)?u(\\\\)?r(\\\\)?l(\\\\)?/i', - '/url\s*\(\s*([\'"])\s*\S+script\s*:.*([\'"])\s*\)/si', - '/url\s*\(\s*([\'"])\s*mocha\s*:.*([\'"])\s*\)/si', - '/url\s*\(\s*([\'"])\s*about\s*:.*([\'"])\s*\)/si', - '/(.*)\s*:\s*url\s*\(\s*([\'"]*)\s*\S+script\s*:.*([\'"]*)\s*\)/si' - ), - array( - "", - "idiocy", - "idiocy", - "idiocy", - "idiocy", - "idiocy", - "url", - "url(\\1#\\1)", - "url(\\1#\\1)", - "url(\\1#\\1)", - "\\1:url(\\2#\\3)" - ) - ) - ) - ); - - if ($block_external_images) { - array_push( - $bad_attvals{'/.*/'}{'/^src|background/i'}[0], - '/^([\'\"])\s*https*:.*([\'\"])/si' - ); - array_push( - $bad_attvals{'/.*/'}{'/^src|background/i'}[1], - "\\1$trans_image_path\\1" - ); - array_push( - $bad_attvals{'/.*/'}{'/^style/i'}[0], - '/url\(([\'\"])\s*https*:.*([\'\"])\)/si' - ); - array_push( - $bad_attvals{'/.*/'}{'/^style/i'}[1], - "url(\\1$trans_image_path\\1)" - ); - } - - $add_attr_to_tag = array( - "/^a$/i" => - array('target' => '"_blank"') - ); - - $trusted = tln_sanitize( - $body, - $tag_list, - $rm_tags_with_content, - $self_closing_tags, - $force_tag_closing, - $rm_attnames, - $bad_attvals, - $add_attr_to_tag, - $trans_image_path, - $block_external_images - ); - return $trusted; -} diff --git a/src/vitis/vas/rest/class/PHPMailer/extras/ntlm_sasl_client.php b/src/vitis/vas/rest/class/PHPMailer/extras/ntlm_sasl_client.php deleted file mode 100755 index 3fd53924..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/extras/ntlm_sasl_client.php +++ /dev/null @@ -1,185 +0,0 @@ -<?php -/* - * ntlm_sasl_client.php - * - * @(#) $Id: ntlm_sasl_client.php,v 1.3 2004/11/17 08:00:37 mlemos Exp $ - * - */ - -define("SASL_NTLM_STATE_START", 0); -define("SASL_NTLM_STATE_IDENTIFY_DOMAIN", 1); -define("SASL_NTLM_STATE_RESPOND_CHALLENGE", 2); -define("SASL_NTLM_STATE_DONE", 3); -define("SASL_FAIL", -1); -define("SASL_CONTINUE", 1); - -class ntlm_sasl_client_class -{ - public $credentials = array(); - public $state = SASL_NTLM_STATE_START; - - public function initialize(&$client) - { - if (!function_exists($function = "mcrypt_encrypt") - || !function_exists($function = "mhash") - ) { - $extensions = array( - "mcrypt_encrypt" => "mcrypt", - "mhash" => "mhash" - ); - $client->error = "the extension " . $extensions[$function] . - " required by the NTLM SASL client class is not available in this PHP configuration"; - return (0); - } - return (1); - } - - public function ASCIIToUnicode($ascii) - { - for ($unicode = "", $a = 0; $a < strlen($ascii); $a++) { - $unicode .= substr($ascii, $a, 1) . chr(0); - } - return ($unicode); - } - - public function typeMsg1($domain, $workstation) - { - $domain_length = strlen($domain); - $workstation_length = strlen($workstation); - $workstation_offset = 32; - $domain_offset = $workstation_offset + $workstation_length; - return ( - "NTLMSSP\0" . - "\x01\x00\x00\x00" . - "\x07\x32\x00\x00" . - pack("v", $domain_length) . - pack("v", $domain_length) . - pack("V", $domain_offset) . - pack("v", $workstation_length) . - pack("v", $workstation_length) . - pack("V", $workstation_offset) . - $workstation . - $domain - ); - } - - public function NTLMResponse($challenge, $password) - { - $unicode = $this->ASCIIToUnicode($password); - $md4 = mhash(MHASH_MD4, $unicode); - $padded = $md4 . str_repeat(chr(0), 21 - strlen($md4)); - $iv_size = mcrypt_get_iv_size(MCRYPT_DES, MCRYPT_MODE_ECB); - $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); - for ($response = "", $third = 0; $third < 21; $third += 7) { - for ($packed = "", $p = $third; $p < $third + 7; $p++) { - $packed .= str_pad(decbin(ord(substr($padded, $p, 1))), 8, "0", STR_PAD_LEFT); - } - for ($key = "", $p = 0; $p < strlen($packed); $p += 7) { - $s = substr($packed, $p, 7); - $b = $s . ((substr_count($s, "1") % 2) ? "0" : "1"); - $key .= chr(bindec($b)); - } - $ciphertext = mcrypt_encrypt(MCRYPT_DES, $key, $challenge, MCRYPT_MODE_ECB, $iv); - $response .= $ciphertext; - } - return $response; - } - - public function typeMsg3($ntlm_response, $user, $domain, $workstation) - { - $domain_unicode = $this->ASCIIToUnicode($domain); - $domain_length = strlen($domain_unicode); - $domain_offset = 64; - $user_unicode = $this->ASCIIToUnicode($user); - $user_length = strlen($user_unicode); - $user_offset = $domain_offset + $domain_length; - $workstation_unicode = $this->ASCIIToUnicode($workstation); - $workstation_length = strlen($workstation_unicode); - $workstation_offset = $user_offset + $user_length; - $lm = ""; - $lm_length = strlen($lm); - $lm_offset = $workstation_offset + $workstation_length; - $ntlm = $ntlm_response; - $ntlm_length = strlen($ntlm); - $ntlm_offset = $lm_offset + $lm_length; - $session = ""; - $session_length = strlen($session); - $session_offset = $ntlm_offset + $ntlm_length; - return ( - "NTLMSSP\0" . - "\x03\x00\x00\x00" . - pack("v", $lm_length) . - pack("v", $lm_length) . - pack("V", $lm_offset) . - pack("v", $ntlm_length) . - pack("v", $ntlm_length) . - pack("V", $ntlm_offset) . - pack("v", $domain_length) . - pack("v", $domain_length) . - pack("V", $domain_offset) . - pack("v", $user_length) . - pack("v", $user_length) . - pack("V", $user_offset) . - pack("v", $workstation_length) . - pack("v", $workstation_length) . - pack("V", $workstation_offset) . - pack("v", $session_length) . - pack("v", $session_length) . - pack("V", $session_offset) . - "\x01\x02\x00\x00" . - $domain_unicode . - $user_unicode . - $workstation_unicode . - $lm . - $ntlm - ); - } - - public function start(&$client, &$message, &$interactions) - { - if ($this->state != SASL_NTLM_STATE_START) { - $client->error = "NTLM authentication state is not at the start"; - return (SASL_FAIL); - } - $this->credentials = array( - "user" => "", - "password" => "", - "realm" => "", - "workstation" => "" - ); - $defaults = array(); - $status = $client->GetCredentials($this->credentials, $defaults, $interactions); - if ($status == SASL_CONTINUE) { - $this->state = SASL_NTLM_STATE_IDENTIFY_DOMAIN; - } - unset($message); - return ($status); - } - - public function step(&$client, $response, &$message, &$interactions) - { - switch ($this->state) { - case SASL_NTLM_STATE_IDENTIFY_DOMAIN: - $message = $this->typeMsg1($this->credentials["realm"], $this->credentials["workstation"]); - $this->state = SASL_NTLM_STATE_RESPOND_CHALLENGE; - break; - case SASL_NTLM_STATE_RESPOND_CHALLENGE: - $ntlm_response = $this->NTLMResponse(substr($response, 24, 8), $this->credentials["password"]); - $message = $this->typeMsg3( - $ntlm_response, - $this->credentials["user"], - $this->credentials["realm"], - $this->credentials["workstation"] - ); - $this->state = SASL_NTLM_STATE_DONE; - break; - case SASL_NTLM_STATE_DONE: - $client->error = "NTLM authentication was finished without success"; - return (SASL_FAIL); - default: - $client->error = "invalid NTLM authentication step state"; - return (SASL_FAIL); - } - return (SASL_CONTINUE); - } -} diff --git a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-am.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-am.php deleted file mode 100755 index ff2a9695..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-am.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php -/** - * Armenian PHPMailer language file: refer to English translation for definitive list - * @package PHPMailer - * @author Hrayr Grigoryan <hrayr@bits.am> - */ - -$PHPMAILER_LANG['authenticate'] = 'SMTP -ի սխալ: չհաջողվեց ստուգել իսկությունը.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP -ի սխալ: չհաջողվեց կապ հաստատել SMTP սերվերի հետ.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP -ի սխալ: տվյալները ընդունված չեն.'; -$PHPMAILER_LANG['empty_message'] = 'Հաղորդագրությունը դատարկ է'; -$PHPMAILER_LANG['encoding'] = 'Կոդավորման անհայտ տեսակ: '; -$PHPMAILER_LANG['execute'] = 'Չհաջողվեց իրականացնել հրամանը: '; -$PHPMAILER_LANG['file_access'] = 'Ֆայլը հասանելի չէ: '; -$PHPMAILER_LANG['file_open'] = 'Ֆայլի սխալ: ֆայլը չհաջողվեց բացել: '; -$PHPMAILER_LANG['from_failed'] = 'Ուղարկողի հետևյալ հասցեն սխալ է: '; -$PHPMAILER_LANG['instantiate'] = 'Հնարավոր չէ կանչել mail ֆունկցիան.'; -$PHPMAILER_LANG['invalid_address'] = 'Հասցեն սխալ է: '; -$PHPMAILER_LANG['mailer_not_supported'] = ' փոստային սերվերի հետ չի աշխատում.'; -$PHPMAILER_LANG['provide_address'] = 'Անհրաժեշտ է տրամադրել գոնե մեկ ստացողի e-mail հասցե.'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP -ի սխալ: չի հաջողվել ուղարկել հետևյալ ստացողների հասցեներին: '; -$PHPMAILER_LANG['signing'] = 'Ստորագրման սխալ: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP -ի connect() ֆունկցիան չի հաջողվել'; -$PHPMAILER_LANG['smtp_error'] = 'SMTP սերվերի սխալ: '; -$PHPMAILER_LANG['variable_set'] = 'Չի հաջողվում ստեղծել կամ վերափոխել փոփոխականը: '; -$PHPMAILER_LANG['extension_missing'] = 'Հավելվածը բացակայում է: '; diff --git a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ar.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ar.php deleted file mode 100755 index 790e2a5e..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ar.php +++ /dev/null @@ -1,27 +0,0 @@ -<?php -/** - * Arabic PHPMailer language file: refer to English translation for definitive list - * @package PHPMailer - * @author bahjat al mostafa <bahjat983@hotmail.com> - */ - -$PHPMAILER_LANG['authenticate'] = 'خطأ SMTP : لا يمكن تأكيد الهوية.'; -$PHPMAILER_LANG['connect_host'] = 'خطأ SMTP: لا يمكن الاتصال بالخادم SMTP.'; -$PHPMAILER_LANG['data_not_accepted'] = 'خطأ SMTP: لم يتم قبول المعلومات .'; -$PHPMAILER_LANG['empty_message'] = 'نص الرسالة فارغ'; -$PHPMAILER_LANG['encoding'] = 'ترميز غير معروف: '; -$PHPMAILER_LANG['execute'] = 'لا يمكن تنفيذ : '; -$PHPMAILER_LANG['file_access'] = 'لا يمكن الوصول للملف: '; -$PHPMAILER_LANG['file_open'] = 'خطأ في الملف: لا يمكن فتحه: '; -$PHPMAILER_LANG['from_failed'] = 'خطأ على مستوى عنوان المرسل : '; -$PHPMAILER_LANG['instantiate'] = 'لا يمكن توفير خدمة البريد.'; -$PHPMAILER_LANG['invalid_address'] = 'الإرسال غير ممكن لأن عنوان البريد الإلكتروني غير صالح: '; -$PHPMAILER_LANG['mailer_not_supported'] = ' برنامج الإرسال غير مدعوم.'; -$PHPMAILER_LANG['provide_address'] = 'يجب توفير عنوان البريد الإلكتروني لمستلم واحد على الأقل.'; -$PHPMAILER_LANG['recipients_failed'] = 'خطأ SMTP: الأخطاء التالية ' . - 'فشل في الارسال لكل من : '; -$PHPMAILER_LANG['signing'] = 'خطأ في التوقيع: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() غير ممكن.'; -$PHPMAILER_LANG['smtp_error'] = 'خطأ على مستوى الخادم SMTP: '; -$PHPMAILER_LANG['variable_set'] = 'لا يمكن تعيين أو إعادة تعيين متغير: '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-az.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-az.php deleted file mode 100755 index 3749d83d..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-az.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php -/** - * Azerbaijani PHPMailer language file: refer to English translation for definitive list - * @package PHPMailer - * @author @mirjalal - */ - -$PHPMAILER_LANG['authenticate'] = 'SMTP xətası: Giriş uğursuz oldu.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP xətası: SMTP serverinə qoşulma uğursuz oldu.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP xətası: Verilənlər qəbul edilməyib.'; -$PHPMAILER_LANG['empty_message'] = 'Boş mesaj göndərilə bilməz.'; -$PHPMAILER_LANG['encoding'] = 'Qeyri-müəyyən kodlaşdırma: '; -$PHPMAILER_LANG['execute'] = 'Əmr yerinə yetirilmədi: '; -$PHPMAILER_LANG['file_access'] = 'Fayla giriş yoxdur: '; -$PHPMAILER_LANG['file_open'] = 'Fayl xətası: Fayl açıla bilmədi: '; -$PHPMAILER_LANG['from_failed'] = 'Göstərilən poçtlara göndərmə uğursuz oldu: '; -$PHPMAILER_LANG['instantiate'] = 'Mail funksiyası işə salına bilmədi.'; -$PHPMAILER_LANG['invalid_address'] = 'Düzgün olmayan e-mail adresi: '; -$PHPMAILER_LANG['mailer_not_supported'] = ' - e-mail kitabxanası dəstəklənmir.'; -$PHPMAILER_LANG['provide_address'] = 'Ən azı bir e-mail adresi daxil edilməlidir.'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP xətası: Aşağıdakı ünvanlar üzrə alıcılara göndərmə uğursuzdur: '; -$PHPMAILER_LANG['signing'] = 'İmzalama xətası: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP serverinə qoşulma uğursuz oldu.'; -$PHPMAILER_LANG['smtp_error'] = 'SMTP serveri xətası: '; -$PHPMAILER_LANG['variable_set'] = 'Dəyişənin quraşdırılması uğursuz oldu: '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ba.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ba.php deleted file mode 100755 index 576c4bb5..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ba.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php -/** - * Bosnian PHPMailer language file: refer to English translation for definitive list - * @package PHPMailer - * @author Ermin Islamagić <ermin@islamagic.com> - */ - -$PHPMAILER_LANG['authenticate'] = 'SMTP Greška: Neuspjela prijava.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP Greška: Nije moguće spojiti se sa SMTP serverom.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Greška: Podatci nisu prihvaćeni.'; -$PHPMAILER_LANG['empty_message'] = 'Sadržaj poruke je prazan.'; -$PHPMAILER_LANG['encoding'] = 'Nepoznata kriptografija: '; -$PHPMAILER_LANG['execute'] = 'Nije moguće izvršiti naredbu: '; -$PHPMAILER_LANG['file_access'] = 'Nije moguće pristupiti datoteci: '; -$PHPMAILER_LANG['file_open'] = 'Nije moguće otvoriti datoteku: '; -$PHPMAILER_LANG['from_failed'] = 'SMTP Greška: Slanje sa navedenih e-mail adresa nije uspjelo: '; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP Greška: Slanje na navedene e-mail adrese nije uspjelo: '; -$PHPMAILER_LANG['instantiate'] = 'Ne mogu pokrenuti mail funkcionalnost.'; -$PHPMAILER_LANG['invalid_address'] = 'E-mail nije poslan. Neispravna e-mail adresa: '; -$PHPMAILER_LANG['mailer_not_supported'] = ' mailer nije podržan.'; -$PHPMAILER_LANG['provide_address'] = 'Definišite barem jednu adresu primaoca.'; -$PHPMAILER_LANG['signing'] = 'Greška prilikom prijave: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'Spajanje na SMTP server nije uspjelo.'; -$PHPMAILER_LANG['smtp_error'] = 'SMTP greška: '; -$PHPMAILER_LANG['variable_set'] = 'Nije moguće postaviti varijablu ili je vratiti nazad: '; -$PHPMAILER_LANG['extension_missing'] = 'Nedostaje ekstenzija: '; \ No newline at end of file diff --git a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-be.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-be.php deleted file mode 100755 index e2f98f0f..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-be.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php -/** - * Belarusian PHPMailer language file: refer to English translation for definitive list - * @package PHPMailer - * @author Aleksander Maksymiuk <info@setpro.pl> - */ - -$PHPMAILER_LANG['authenticate'] = 'Памылка SMTP: памылка ідэнтыфікацыі.'; -$PHPMAILER_LANG['connect_host'] = 'Памылка SMTP: нельга ўстанавіць сувязь з SMTP-серверам.'; -$PHPMAILER_LANG['data_not_accepted'] = 'Памылка SMTP: звесткі непрынятыя.'; -$PHPMAILER_LANG['empty_message'] = 'Пустое паведамленне.'; -$PHPMAILER_LANG['encoding'] = 'Невядомая кадыроўка тэксту: '; -$PHPMAILER_LANG['execute'] = 'Нельга выканаць каманду: '; -$PHPMAILER_LANG['file_access'] = 'Няма доступу да файла: '; -$PHPMAILER_LANG['file_open'] = 'Нельга адкрыць файл: '; -$PHPMAILER_LANG['from_failed'] = 'Няправільны адрас адпраўніка: '; -$PHPMAILER_LANG['instantiate'] = 'Нельга прымяніць функцыю mail().'; -$PHPMAILER_LANG['invalid_address'] = 'Нельга даслаць паведамленне, няправільны email атрымальніка: '; -$PHPMAILER_LANG['provide_address'] = 'Запоўніце, калі ласка, правільны email атрымальніка.'; -$PHPMAILER_LANG['mailer_not_supported'] = ' - паштовы сервер не падтрымліваецца.'; -$PHPMAILER_LANG['recipients_failed'] = 'Памылка SMTP: няправільныя атрымальнікі: '; -$PHPMAILER_LANG['signing'] = 'Памылка подпісу паведамлення: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'Памылка сувязі з SMTP-серверам.'; -$PHPMAILER_LANG['smtp_error'] = 'Памылка SMTP: '; -$PHPMAILER_LANG['variable_set'] = 'Нельга ўстанавіць або перамяніць значэнне пераменнай: '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-bg.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-bg.php deleted file mode 100755 index b22941f6..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-bg.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php -/** - * Bulgarian PHPMailer language file: refer to English translation for definitive list - * @package PHPMailer - * @author Mikhail Kyosev <mialygk@gmail.com> - */ - -$PHPMAILER_LANG['authenticate'] = 'SMTP грешка: Не може да се удостовери пред сървъра.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP грешка: Не може да се свърже с SMTP хоста.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP грешка: данните не са приети.'; -$PHPMAILER_LANG['empty_message'] = 'Съдържанието на съобщението е празно'; -$PHPMAILER_LANG['encoding'] = 'Неизвестно кодиране: '; -$PHPMAILER_LANG['execute'] = 'Не може да се изпълни: '; -$PHPMAILER_LANG['file_access'] = 'Няма достъп до файл: '; -$PHPMAILER_LANG['file_open'] = 'Файлова грешка: Не може да се отвори файл: '; -$PHPMAILER_LANG['from_failed'] = 'Следните адреси за подател са невалидни: '; -$PHPMAILER_LANG['instantiate'] = 'Не може да се инстанцира функцията mail.'; -$PHPMAILER_LANG['invalid_address'] = 'Невалиден адрес: '; -$PHPMAILER_LANG['mailer_not_supported'] = ' - пощенски сървър не се поддържа.'; -$PHPMAILER_LANG['provide_address'] = 'Трябва да предоставите поне един email адрес за получател.'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP грешка: Следните адреси за Получател са невалидни: '; -$PHPMAILER_LANG['signing'] = 'Грешка при подписване: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP провален connect().'; -$PHPMAILER_LANG['smtp_error'] = 'SMTP сървърна грешка: '; -$PHPMAILER_LANG['variable_set'] = 'Не може да се установи или възстанови променлива: '; -$PHPMAILER_LANG['extension_missing'] = 'Липсва разширение: '; diff --git a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ca.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ca.php deleted file mode 100755 index 4117596c..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ca.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php -/** - * Catalan PHPMailer language file: refer to English translation for definitive list - * @package PHPMailer - * @author Ivan <web AT microstudi DOT com> - */ - -$PHPMAILER_LANG['authenticate'] = 'Error SMTP: No s’ha pogut autenticar.'; -$PHPMAILER_LANG['connect_host'] = 'Error SMTP: No es pot connectar al servidor SMTP.'; -$PHPMAILER_LANG['data_not_accepted'] = 'Error SMTP: Dades no acceptades.'; -$PHPMAILER_LANG['empty_message'] = 'El cos del missatge està buit.'; -$PHPMAILER_LANG['encoding'] = 'Codificació desconeguda: '; -$PHPMAILER_LANG['execute'] = 'No es pot executar: '; -$PHPMAILER_LANG['file_access'] = 'No es pot accedir a l’arxiu: '; -$PHPMAILER_LANG['file_open'] = 'Error d’Arxiu: No es pot obrir l’arxiu: '; -$PHPMAILER_LANG['from_failed'] = 'La(s) següent(s) adreces de remitent han fallat: '; -$PHPMAILER_LANG['instantiate'] = 'No s’ha pogut crear una instància de la funció Mail.'; -$PHPMAILER_LANG['invalid_address'] = 'Adreça d’email invalida: '; -$PHPMAILER_LANG['mailer_not_supported'] = ' mailer no està suportat'; -$PHPMAILER_LANG['provide_address'] = 'S’ha de proveir almenys una adreça d’email com a destinatari.'; -$PHPMAILER_LANG['recipients_failed'] = 'Error SMTP: Els següents destinataris han fallat: '; -$PHPMAILER_LANG['signing'] = 'Error al signar: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'Ha fallat el SMTP Connect().'; -$PHPMAILER_LANG['smtp_error'] = 'Error del servidor SMTP: '; -$PHPMAILER_LANG['variable_set'] = 'No s’ha pogut establir o restablir la variable: '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ch.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ch.php deleted file mode 100755 index 4fda6b85..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ch.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php -/** - * Chinese PHPMailer language file: refer to English translation for definitive list - * @package PHPMailer - * @author LiuXin <http://www.80x86.cn/blog/> - */ - -$PHPMAILER_LANG['authenticate'] = 'SMTP 错误:身份验证失败。'; -$PHPMAILER_LANG['connect_host'] = 'SMTP 错误: 不能连接SMTP主机。'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP 错误: 数据不可接受。'; -//$PHPMAILER_LANG['empty_message'] = 'Message body empty'; -$PHPMAILER_LANG['encoding'] = '未知编码:'; -$PHPMAILER_LANG['execute'] = '不能执行: '; -$PHPMAILER_LANG['file_access'] = '不能访问文件:'; -$PHPMAILER_LANG['file_open'] = '文件错误:不能打开文件:'; -$PHPMAILER_LANG['from_failed'] = '下面的发送地址邮件发送失败了: '; -$PHPMAILER_LANG['instantiate'] = '不能实现mail方法。'; -//$PHPMAILER_LANG['invalid_address'] = 'Invalid address: '; -$PHPMAILER_LANG['mailer_not_supported'] = ' 您所选择的发送邮件的方法并不支持。'; -$PHPMAILER_LANG['provide_address'] = '您必须提供至少一个 收信人的email地址。'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP 错误: 下面的 收件人失败了: '; -//$PHPMAILER_LANG['signing'] = 'Signing Error: '; -//$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.'; -//$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -//$PHPMAILER_LANG['variable_set'] = 'Cannot set or reset variable: '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-cs.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-cs.php deleted file mode 100755 index 1160cf0c..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-cs.php +++ /dev/null @@ -1,25 +0,0 @@ -<?php -/** - * Czech PHPMailer language file: refer to English translation for definitive list - * @package PHPMailer - */ - -$PHPMAILER_LANG['authenticate'] = 'Chyba SMTP: Autentizace selhala.'; -$PHPMAILER_LANG['connect_host'] = 'Chyba SMTP: Nelze navázat spojení se SMTP serverem.'; -$PHPMAILER_LANG['data_not_accepted'] = 'Chyba SMTP: Data nebyla přijata.'; -$PHPMAILER_LANG['empty_message'] = 'Prázdné tělo zprávy'; -$PHPMAILER_LANG['encoding'] = 'Neznámé kódování: '; -$PHPMAILER_LANG['execute'] = 'Nelze provést: '; -$PHPMAILER_LANG['file_access'] = 'Nelze získat přístup k souboru: '; -$PHPMAILER_LANG['file_open'] = 'Chyba souboru: Nelze otevřít soubor pro čtení: '; -$PHPMAILER_LANG['from_failed'] = 'Následující adresa odesílatele je nesprávná: '; -$PHPMAILER_LANG['instantiate'] = 'Nelze vytvořit instanci emailové funkce.'; -$PHPMAILER_LANG['invalid_address'] = 'Neplatná adresa: '; -$PHPMAILER_LANG['mailer_not_supported'] = ' mailer není podporován.'; -$PHPMAILER_LANG['provide_address'] = 'Musíte zadat alespoň jednu emailovou adresu příjemce.'; -$PHPMAILER_LANG['recipients_failed'] = 'Chyba SMTP: Následující adresy příjemců nejsou správně: '; -$PHPMAILER_LANG['signing'] = 'Chyba přihlašování: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() selhal.'; -$PHPMAILER_LANG['smtp_error'] = 'Chyba SMTP serveru: '; -$PHPMAILER_LANG['variable_set'] = 'Nelze nastavit nebo změnit proměnnou: '; -$PHPMAILER_LANG['extension_missing'] = 'Chybí rozšíření: '; diff --git a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-da.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-da.php deleted file mode 100755 index e725f4b4..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-da.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php -/** - * Danish PHPMailer language file: refer to English translation for definitive list - * @package PHPMailer - * @author Mikael Stokkebro <info@stokkebro.dk> - */ - -$PHPMAILER_LANG['authenticate'] = 'SMTP fejl: Kunne ikke logge på.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP fejl: Kunne ikke tilslutte SMTP serveren.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP fejl: Data kunne ikke accepteres.'; -//$PHPMAILER_LANG['empty_message'] = 'Message body empty'; -$PHPMAILER_LANG['encoding'] = 'Ukendt encode-format: '; -$PHPMAILER_LANG['execute'] = 'Kunne ikke køre: '; -$PHPMAILER_LANG['file_access'] = 'Ingen adgang til fil: '; -$PHPMAILER_LANG['file_open'] = 'Fil fejl: Kunne ikke åbne filen: '; -$PHPMAILER_LANG['from_failed'] = 'Følgende afsenderadresse er forkert: '; -$PHPMAILER_LANG['instantiate'] = 'Kunne ikke initialisere email funktionen.'; -//$PHPMAILER_LANG['invalid_address'] = 'Invalid address: '; -$PHPMAILER_LANG['mailer_not_supported'] = ' mailer understøttes ikke.'; -$PHPMAILER_LANG['provide_address'] = 'Du skal indtaste mindst en modtagers emailadresse.'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP fejl: Følgende modtagere er forkerte: '; -//$PHPMAILER_LANG['signing'] = 'Signing Error: '; -//$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.'; -//$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -//$PHPMAILER_LANG['variable_set'] = 'Cannot set or reset variable: '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-de.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-de.php deleted file mode 100755 index aa987a9c..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-de.php +++ /dev/null @@ -1,25 +0,0 @@ -<?php -/** - * German PHPMailer language file: refer to English translation for definitive list - * @package PHPMailer - */ - -$PHPMAILER_LANG['authenticate'] = 'SMTP-Fehler: Authentifizierung fehlgeschlagen.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP-Fehler: Konnte keine Verbindung zum SMTP-Host herstellen.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP-Fehler: Daten werden nicht akzeptiert.'; -$PHPMAILER_LANG['empty_message'] = 'E-Mail-Inhalt ist leer.'; -$PHPMAILER_LANG['encoding'] = 'Unbekannte Kodierung: '; -$PHPMAILER_LANG['execute'] = 'Konnte folgenden Befehl nicht ausführen: '; -$PHPMAILER_LANG['file_access'] = 'Zugriff auf folgende Datei fehlgeschlagen: '; -$PHPMAILER_LANG['file_open'] = 'Dateifehler: Konnte folgende Datei nicht öffnen: '; -$PHPMAILER_LANG['from_failed'] = 'Die folgende Absenderadresse ist nicht korrekt: '; -$PHPMAILER_LANG['instantiate'] = 'Mail-Funktion konnte nicht initialisiert werden.'; -$PHPMAILER_LANG['invalid_address'] = 'Die Adresse ist ungültig: '; -$PHPMAILER_LANG['mailer_not_supported'] = ' mailer wird nicht unterstützt.'; -$PHPMAILER_LANG['provide_address'] = 'Bitte geben Sie mindestens eine Empfängeradresse an.'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP-Fehler: Die folgenden Empfänger sind nicht korrekt: '; -$PHPMAILER_LANG['signing'] = 'Fehler beim Signieren: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'Verbindung zum SMTP-Server fehlgeschlagen.'; -$PHPMAILER_LANG['smtp_error'] = 'Fehler vom SMTP-Server: '; -$PHPMAILER_LANG['variable_set'] = 'Kann Variable nicht setzen oder zurücksetzen: '; -$PHPMAILER_LANG['extension_missing'] = 'Fehlende Erweiterung: '; diff --git a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-el.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-el.php deleted file mode 100755 index 7109641e..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-el.php +++ /dev/null @@ -1,25 +0,0 @@ -<?php -/** - * Greek PHPMailer language file: refer to English translation for definitive list - * @package PHPMailer - */ - -$PHPMAILER_LANG['authenticate'] = 'SMTP Σφάλμα: Αδυναμία πιστοποίησης (authentication).'; -$PHPMAILER_LANG['connect_host'] = 'SMTP Σφάλμα: Αδυναμία σύνδεσης στον SMTP-Host.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Σφάλμα: Τα δεδομένα δεν έγιναν αποδεκτά.'; -$PHPMAILER_LANG['empty_message'] = 'Το E-Mail δεν έχει περιεχόμενο .'; -$PHPMAILER_LANG['encoding'] = 'Αγνωστο Encoding-Format: '; -$PHPMAILER_LANG['execute'] = 'Αδυναμία εκτέλεσης ακόλουθης εντολής: '; -$PHPMAILER_LANG['file_access'] = 'Αδυναμία προσπέλασης του αρχείου: '; -$PHPMAILER_LANG['file_open'] = 'Σφάλμα Αρχείου: Δεν είναι δυνατό το άνοιγμα του ακόλουθου αρχείου: '; -$PHPMAILER_LANG['from_failed'] = 'Η παρακάτω διεύθυνση αποστολέα δεν είναι σωστή: '; -$PHPMAILER_LANG['instantiate'] = 'Αδυναμία εκκίνησης Mail function.'; -$PHPMAILER_LANG['invalid_address'] = 'Το μήνυμα δεν εστάλη, η διεύθυνση δεν είναι έγκυρη: '; -$PHPMAILER_LANG['mailer_not_supported'] = ' mailer δεν υποστηρίζεται.'; -$PHPMAILER_LANG['provide_address'] = 'Παρακαλούμε δώστε τουλάχιστον μια e-mail διεύθυνση παραλήπτη.'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP Σφάλμα: Οι παρακάτω διευθύνσεις παραλήπτη δεν είναι έγκυρες: '; -$PHPMAILER_LANG['signing'] = 'Σφάλμα υπογραφής: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'Αποτυχία σύνδεσης στον SMTP Server.'; -$PHPMAILER_LANG['smtp_error'] = 'Σφάλμα από τον SMTP Server: '; -$PHPMAILER_LANG['variable_set'] = 'Αδυναμία ορισμού ή αρχικοποίησης μεταβλητής: '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-eo.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-eo.php deleted file mode 100755 index 5ca6cb70..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-eo.php +++ /dev/null @@ -1,25 +0,0 @@ -<?php -/** - * Esperanto PHPMailer language file: refer to English translation for definitive list - * @package PHPMailer - */ - -$PHPMAILER_LANG['authenticate'] = 'Eraro de servilo SMTP : aŭtentigo malsukcesis.'; -$PHPMAILER_LANG['connect_host'] = 'Eraro de servilo SMTP : konektado al servilo malsukcesis.'; -$PHPMAILER_LANG['data_not_accepted'] = 'Eraro de servilo SMTP : neĝustaj datumoj.'; -$PHPMAILER_LANG['empty_message'] = 'Teksto de mesaĝo mankas.'; -$PHPMAILER_LANG['encoding'] = 'Nekonata kodoprezento: '; -$PHPMAILER_LANG['execute'] = 'Lanĉi rulumadon ne eblis: '; -$PHPMAILER_LANG['file_access'] = 'Aliro al dosiero ne sukcesis: '; -$PHPMAILER_LANG['file_open'] = 'Eraro de dosiero: malfermo neeblas: '; -$PHPMAILER_LANG['from_failed'] = 'Jena adreso de sendinto malsukcesis: '; -$PHPMAILER_LANG['instantiate'] = 'Genero de retmesaĝa funkcio neeblis.'; -$PHPMAILER_LANG['invalid_address'] = 'Retadreso ne validas: '; -$PHPMAILER_LANG['mailer_not_supported'] = ' mesaĝilo ne subtenata.'; -$PHPMAILER_LANG['provide_address'] = 'Vi devas tajpi almenaŭ unu recevontan retadreson.'; -$PHPMAILER_LANG['recipients_failed'] = 'Eraro de servilo SMTP : la jenaj poŝtrecivuloj kaŭzis eraron: '; -$PHPMAILER_LANG['signing'] = 'Eraro de subskribo: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP konektado malsukcesis.'; -$PHPMAILER_LANG['smtp_error'] = 'Eraro de servilo SMTP : '; -$PHPMAILER_LANG['variable_set'] = 'Variablo ne pravalorizeblas aŭ ne repravalorizeblas: '; -$PHPMAILER_LANG['extension_missing'] = 'Mankas etendo: '; diff --git a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-es.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-es.php deleted file mode 100755 index f2c4e831..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-es.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php -/** - * Spanish PHPMailer language file: refer to English translation for definitive list - * @package PHPMailer - * @author Matt Sturdy <matt.sturdy@gmail.com> - */ - -$PHPMAILER_LANG['authenticate'] = 'Error SMTP: Imposible autentificar.'; -$PHPMAILER_LANG['connect_host'] = 'Error SMTP: Imposible conectar al servidor SMTP.'; -$PHPMAILER_LANG['data_not_accepted'] = 'Error SMTP: Datos no aceptados.'; -$PHPMAILER_LANG['empty_message'] = 'El cuerpo del mensaje está vacío.'; -$PHPMAILER_LANG['encoding'] = 'Codificación desconocida: '; -$PHPMAILER_LANG['execute'] = 'Imposible ejecutar: '; -$PHPMAILER_LANG['file_access'] = 'Imposible acceder al archivo: '; -$PHPMAILER_LANG['file_open'] = 'Error de Archivo: Imposible abrir el archivo: '; -$PHPMAILER_LANG['from_failed'] = 'La(s) siguiente(s) direcciones de remitente fallaron: '; -$PHPMAILER_LANG['instantiate'] = 'Imposible crear una instancia de la función Mail.'; -$PHPMAILER_LANG['invalid_address'] = 'Imposible enviar: dirección de email inválido: '; -$PHPMAILER_LANG['mailer_not_supported'] = ' mailer no está soportado.'; -$PHPMAILER_LANG['provide_address'] = 'Debe proporcionar al menos una dirección de email de destino.'; -$PHPMAILER_LANG['recipients_failed'] = 'Error SMTP: Los siguientes destinos fallaron: '; -$PHPMAILER_LANG['signing'] = 'Error al firmar: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() falló.'; -$PHPMAILER_LANG['smtp_error'] = 'Error del servidor SMTP: '; -$PHPMAILER_LANG['variable_set'] = 'No se pudo configurar la variable: '; -$PHPMAILER_LANG['extension_missing'] = 'Extensión faltante: '; diff --git a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-et.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-et.php deleted file mode 100755 index 7e06da13..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-et.php +++ /dev/null @@ -1,27 +0,0 @@ -<?php -/** - * Estonian PHPMailer language file: refer to English translation for definitive list - * @package PHPMailer - * @author Indrek Päri - * @author Elan Ruusamäe <glen@delfi.ee> - */ - -$PHPMAILER_LANG['authenticate'] = 'SMTP Viga: Autoriseerimise viga.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP Viga: Ei õnnestunud luua ühendust SMTP serveriga.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Viga: Vigased andmed.'; -$PHPMAILER_LANG['empty_message'] = 'Tühi kirja sisu'; -$PHPMAILER_LANG["encoding"] = 'Tundmatu kodeering: '; -$PHPMAILER_LANG['execute'] = 'Tegevus ebaõnnestus: '; -$PHPMAILER_LANG['file_access'] = 'Pole piisavalt õiguseid järgneva faili avamiseks: '; -$PHPMAILER_LANG['file_open'] = 'Faili Viga: Faili avamine ebaõnnestus: '; -$PHPMAILER_LANG['from_failed'] = 'Järgnev saatja e-posti aadress on vigane: '; -$PHPMAILER_LANG['instantiate'] = 'mail funktiooni käivitamine ebaõnnestus.'; -$PHPMAILER_LANG['invalid_address'] = 'Saatmine peatatud, e-posti address vigane: '; -$PHPMAILER_LANG['provide_address'] = 'Te peate määrama vähemalt ühe saaja e-posti aadressi.'; -$PHPMAILER_LANG['mailer_not_supported'] = ' maileri tugi puudub.'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP Viga: Järgnevate saajate e-posti aadressid on vigased: '; -$PHPMAILER_LANG["signing"] = 'Viga allkirjastamisel: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() ebaõnnestus.'; -$PHPMAILER_LANG['smtp_error'] = 'SMTP serveri viga: '; -$PHPMAILER_LANG['variable_set'] = 'Ei õnnestunud määrata või lähtestada muutujat: '; -$PHPMAILER_LANG['extension_missing'] = 'Nõutud laiendus on puudu: '; diff --git a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-fa.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-fa.php deleted file mode 100755 index ad0745c5..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-fa.php +++ /dev/null @@ -1,27 +0,0 @@ -<?php -/** - * Persian/Farsi PHPMailer language file: refer to English translation for definitive list - * @package PHPMailer - * @author Ali Jazayeri <jaza.ali@gmail.com> - * @author Mohammad Hossein Mojtahedi <mhm5000@gmail.com> - */ - -$PHPMAILER_LANG['authenticate'] = 'خطای SMTP: احراز هویت با شکست مواجه شد.'; -$PHPMAILER_LANG['connect_host'] = 'خطای SMTP: اتصال به سرور SMTP برقرار نشد.'; -$PHPMAILER_LANG['data_not_accepted'] = 'خطای SMTP: دادهها نادرست هستند.'; -$PHPMAILER_LANG['empty_message'] = 'بخش متن پیام خالی است.'; -$PHPMAILER_LANG['encoding'] = 'کدگذاری ناشناخته: '; -$PHPMAILER_LANG['execute'] = 'امکان اجرا وجود ندارد: '; -$PHPMAILER_LANG['file_access'] = 'امکان دسترسی به فایل وجود ندارد: '; -$PHPMAILER_LANG['file_open'] = 'خطای File: امکان بازکردن فایل وجود ندارد: '; -$PHPMAILER_LANG['from_failed'] = 'آدرس فرستنده اشتباه است: '; -$PHPMAILER_LANG['instantiate'] = 'امکان معرفی تابع ایمیل وجود ندارد.'; -$PHPMAILER_LANG['invalid_address'] = 'آدرس ایمیل معتبر نیست: '; -$PHPMAILER_LANG['mailer_not_supported'] = ' mailer پشتیبانی نمیشود.'; -$PHPMAILER_LANG['provide_address'] = 'باید حداقل یک آدرس گیرنده وارد کنید.'; -$PHPMAILER_LANG['recipients_failed'] = 'خطای SMTP: ارسال به آدرس گیرنده با خطا مواجه شد: '; -$PHPMAILER_LANG['signing'] = 'خطا در امضا: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'خطا در اتصال به SMTP.'; -$PHPMAILER_LANG['smtp_error'] = 'خطا در SMTP Server: '; -$PHPMAILER_LANG['variable_set'] = 'امکان ارسال یا ارسال مجدد متغیرها وجود ندارد: '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-fi.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-fi.php deleted file mode 100755 index ec4e7523..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-fi.php +++ /dev/null @@ -1,27 +0,0 @@ -<?php -/** - * Finnish PHPMailer language file: refer to English translation for definitive list - * @package PHPMailer - * @author Jyry Kuukanen - */ - -$PHPMAILER_LANG['authenticate'] = 'SMTP-virhe: käyttäjätunnistus epäonnistui.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP-virhe: yhteys palvelimeen ei onnistu.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP-virhe: data on virheellinen.'; -//$PHPMAILER_LANG['empty_message'] = 'Message body empty'; -$PHPMAILER_LANG['encoding'] = 'Tuntematon koodaustyyppi: '; -$PHPMAILER_LANG['execute'] = 'Suoritus epäonnistui: '; -$PHPMAILER_LANG['file_access'] = 'Seuraavaan tiedostoon ei ole oikeuksia: '; -$PHPMAILER_LANG['file_open'] = 'Tiedostovirhe: Ei voida avata tiedostoa: '; -$PHPMAILER_LANG['from_failed'] = 'Seuraava lähettäjän osoite on virheellinen: '; -$PHPMAILER_LANG['instantiate'] = 'mail-funktion luonti epäonnistui.'; -//$PHPMAILER_LANG['invalid_address'] = 'Invalid address: '; -$PHPMAILER_LANG['mailer_not_supported'] = 'postivälitintyyppiä ei tueta.'; -$PHPMAILER_LANG['provide_address'] = 'Aseta vähintään yksi vastaanottajan sähköpostiosoite.'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP-virhe: seuraava vastaanottaja osoite on virheellinen.'; -$PHPMAILER_LANG['encoding'] = 'Tuntematon koodaustyyppi: '; -//$PHPMAILER_LANG['signing'] = 'Signing Error: '; -//$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.'; -//$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -//$PHPMAILER_LANG['variable_set'] = 'Cannot set or reset variable: '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-fo.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-fo.php deleted file mode 100755 index 68cdef1d..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-fo.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php -/** - * Faroese PHPMailer language file: refer to English translation for definitive list - * @package PHPMailer - * @author Dávur Sørensen <http://www.profo-webdesign.dk> - */ - -$PHPMAILER_LANG['authenticate'] = 'SMTP feilur: Kundi ikki góðkenna.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP feilur: Kundi ikki knýta samband við SMTP vert.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP feilur: Data ikki góðkent.'; -//$PHPMAILER_LANG['empty_message'] = 'Message body empty'; -$PHPMAILER_LANG['encoding'] = 'Ókend encoding: '; -$PHPMAILER_LANG['execute'] = 'Kundi ikki útføra: '; -$PHPMAILER_LANG['file_access'] = 'Kundi ikki tilganga fílu: '; -$PHPMAILER_LANG['file_open'] = 'Fílu feilur: Kundi ikki opna fílu: '; -$PHPMAILER_LANG['from_failed'] = 'fylgjandi Frá/From adressa miseydnaðist: '; -$PHPMAILER_LANG['instantiate'] = 'Kuni ikki instantiera mail funktión.'; -//$PHPMAILER_LANG['invalid_address'] = 'Invalid address: '; -$PHPMAILER_LANG['mailer_not_supported'] = ' er ikki supporterað.'; -$PHPMAILER_LANG['provide_address'] = 'Tú skal uppgeva minst móttakara-emailadressu(r).'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP Feilur: Fylgjandi móttakarar miseydnaðust: '; -//$PHPMAILER_LANG['signing'] = 'Signing Error: '; -//$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.'; -//$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -//$PHPMAILER_LANG['variable_set'] = 'Cannot set or reset variable: '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-fr.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-fr.php deleted file mode 100755 index af68c923..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-fr.php +++ /dev/null @@ -1,29 +0,0 @@ -<?php -/** - * French PHPMailer language file: refer to English translation for definitive list - * @package PHPMailer - * Some French punctuation requires a thin non-breaking space (U+202F) character before it, - * for example before a colon or exclamation mark. - * There is one of these characters between these quotes: " " - * @see http://unicode.org/udhr/n/notes_fra.html - */ - -$PHPMAILER_LANG['authenticate'] = 'Erreur SMTP : échec de l\'authentification.'; -$PHPMAILER_LANG['connect_host'] = 'Erreur SMTP : impossible de se connecter au serveur SMTP.'; -$PHPMAILER_LANG['data_not_accepted'] = 'Erreur SMTP : données incorrectes.'; -$PHPMAILER_LANG['empty_message'] = 'Corps du message vide.'; -$PHPMAILER_LANG['encoding'] = 'Encodage inconnu : '; -$PHPMAILER_LANG['execute'] = 'Impossible de lancer l\'exécution : '; -$PHPMAILER_LANG['file_access'] = 'Impossible d\'accéder au fichier : '; -$PHPMAILER_LANG['file_open'] = 'Ouverture du fichier impossible : '; -$PHPMAILER_LANG['from_failed'] = 'L\'adresse d\'expéditeur suivante a échoué : '; -$PHPMAILER_LANG['instantiate'] = 'Impossible d\'instancier la fonction mail.'; -$PHPMAILER_LANG['invalid_address'] = 'L\'adresse courriel n\'est pas valide : '; -$PHPMAILER_LANG['mailer_not_supported'] = ' client de messagerie non supporté.'; -$PHPMAILER_LANG['provide_address'] = 'Vous devez fournir au moins une adresse de destinataire.'; -$PHPMAILER_LANG['recipients_failed'] = 'Erreur SMTP : les destinataires suivants sont en erreur : '; -$PHPMAILER_LANG['signing'] = 'Erreur de signature : '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'Échec de la connexion SMTP.'; -$PHPMAILER_LANG['smtp_error'] = 'Erreur du serveur SMTP : '; -$PHPMAILER_LANG['variable_set'] = 'Impossible d\'initialiser ou de réinitialiser une variable : '; -$PHPMAILER_LANG['extension_missing'] = 'Extension manquante : '; diff --git a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-gl.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-gl.php deleted file mode 100755 index 9b4ce4d8..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-gl.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php -/** - * Galician PHPMailer language file: refer to English translation for definitive list - * @package PHPMailer - * @author by Donato Rouco <donatorouco@gmail.com> - */ - -$PHPMAILER_LANG['authenticate'] = 'Erro SMTP: Non puido ser autentificado.'; -$PHPMAILER_LANG['connect_host'] = 'Erro SMTP: Non puido conectar co servidor SMTP.'; -$PHPMAILER_LANG['data_not_accepted'] = 'Erro SMTP: Datos non aceptados.'; -$PHPMAILER_LANG['empty_message'] = 'Corpo da mensaxe vacía'; -$PHPMAILER_LANG['encoding'] = 'Codificación descoñecida: '; -$PHPMAILER_LANG['execute'] = 'Non puido ser executado: '; -$PHPMAILER_LANG['file_access'] = 'Nob puido acceder ó arquivo: '; -$PHPMAILER_LANG['file_open'] = 'Erro de Arquivo: No puido abrir o arquivo: '; -$PHPMAILER_LANG['from_failed'] = 'A(s) seguinte(s) dirección(s) de remitente(s) deron erro: '; -$PHPMAILER_LANG['instantiate'] = 'Non puido crear unha instancia da función Mail.'; -$PHPMAILER_LANG['invalid_address'] = 'Non puido envia-lo correo: dirección de email inválida: '; -$PHPMAILER_LANG['mailer_not_supported'] = ' mailer non está soportado.'; -$PHPMAILER_LANG['provide_address'] = 'Debe engadir polo menos unha dirección de email coma destino.'; -$PHPMAILER_LANG['recipients_failed'] = 'Erro SMTP: Os seguintes destinos fallaron: '; -$PHPMAILER_LANG['signing'] = 'Erro ó firmar: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() fallou.'; -$PHPMAILER_LANG['smtp_error'] = 'Erro do servidor SMTP: '; -$PHPMAILER_LANG['variable_set'] = 'Non puidemos axustar ou reaxustar a variábel: '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-he.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-he.php deleted file mode 100755 index 70eb7175..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-he.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php -/** - * Hebrew PHPMailer language file: refer to English translation for definitive list - * @package PHPMailer - * @author Ronny Sherer <ronny@hoojima.com> - */ - -$PHPMAILER_LANG['authenticate'] = 'שגיאת SMTP: פעולת האימות נכשלה.'; -$PHPMAILER_LANG['connect_host'] = 'שגיאת SMTP: לא הצלחתי להתחבר לשרת SMTP.'; -$PHPMAILER_LANG['data_not_accepted'] = 'שגיאת SMTP: מידע לא התקבל.'; -$PHPMAILER_LANG['empty_message'] = 'גוף ההודעה ריק'; -$PHPMAILER_LANG['invalid_address'] = 'כתובת שגויה: '; -$PHPMAILER_LANG['encoding'] = 'קידוד לא מוכר: '; -$PHPMAILER_LANG['execute'] = 'לא הצלחתי להפעיל את: '; -$PHPMAILER_LANG['file_access'] = 'לא ניתן לגשת לקובץ: '; -$PHPMAILER_LANG['file_open'] = 'שגיאת קובץ: לא ניתן לגשת לקובץ: '; -$PHPMAILER_LANG['from_failed'] = 'כתובות הנמענים הבאות נכשלו: '; -$PHPMAILER_LANG['instantiate'] = 'לא הצלחתי להפעיל את פונקציית המייל.'; -$PHPMAILER_LANG['mailer_not_supported'] = ' אינה נתמכת.'; -$PHPMAILER_LANG['provide_address'] = 'חובה לספק לפחות כתובת אחת של מקבל המייל.'; -$PHPMAILER_LANG['recipients_failed'] = 'שגיאת SMTP: הנמענים הבאים נכשלו: '; -$PHPMAILER_LANG['signing'] = 'שגיאת חתימה: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.'; -$PHPMAILER_LANG['smtp_error'] = 'שגיאת שרת SMTP: '; -$PHPMAILER_LANG['variable_set'] = 'לא ניתן לקבוע או לשנות את המשתנה: '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-hi.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-hi.php deleted file mode 100755 index 607a5ee3..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-hi.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php -/** - * Hindi PHPMailer language file: refer to English translation for definitive list - * @package PHPMailer - * @author Yash Karanke <mr.karanke@gmail.com> - */ - -$PHPMAILER_LANG['authenticate'] = 'SMTP त्रुटि: प्रामाणिकता की जांच नहीं हो सका। '; -$PHPMAILER_LANG['connect_host'] = 'SMTP त्रुटि: SMTP सर्वर से कनेक्ट नहीं हो सका। '; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP त्रुटि: डेटा स्वीकार नहीं किया जाता है। '; -$PHPMAILER_LANG['empty_message'] = 'संदेश खाली है। '; -$PHPMAILER_LANG['encoding'] = 'अज्ञात एन्कोडिंग प्रकार। '; -$PHPMAILER_LANG['execute'] = 'आदेश को निष्पादित करने में विफल। '; -$PHPMAILER_LANG['file_access'] = 'फ़ाइल उपलब्ध नहीं है। '; -$PHPMAILER_LANG['file_open'] = 'फ़ाइल त्रुटि: फाइल को खोला नहीं जा सका। '; -$PHPMAILER_LANG['from_failed'] = 'प्रेषक का पता गलत है। '; -$PHPMAILER_LANG['instantiate'] = 'मेल फ़ंक्शन कॉल नहीं कर सकता है।'; -$PHPMAILER_LANG['invalid_address'] = 'पता गलत है। '; -$PHPMAILER_LANG['mailer_not_supported'] = 'मेल सर्वर के साथ काम नहीं करता है। '; -$PHPMAILER_LANG['provide_address'] = 'आपको कम से कम एक प्राप्तकर्ता का ई-मेल पता प्रदान करना होगा।'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP त्रुटि: निम्न प्राप्तकर्ताओं को पते भेजने में विफल। '; -$PHPMAILER_LANG['signing'] = 'साइनअप त्रुटि:। '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP का connect () फ़ंक्शन विफल हुआ। '; -$PHPMAILER_LANG['smtp_error'] = 'SMTP सर्वर त्रुटि। '; -$PHPMAILER_LANG['variable_set'] = 'चर को बना या संशोधित नहीं किया जा सकता। '; -$PHPMAILER_LANG['extension_missing'] = 'एक्सटेन्षन गायब है: '; diff --git a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-hr.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-hr.php deleted file mode 100755 index 3822920a..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-hr.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php -/** - * Croatian PHPMailer language file: refer to English translation for definitive list - * @package PHPMailer - * @author Hrvoj3e <hrvoj3e@gmail.com> - */ - -$PHPMAILER_LANG['authenticate'] = 'SMTP Greška: Neuspjela autentikacija.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP Greška: Ne mogu se spojiti na SMTP poslužitelj.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Greška: Podatci nisu prihvaćeni.'; -$PHPMAILER_LANG['empty_message'] = 'Sadržaj poruke je prazan.'; -$PHPMAILER_LANG['encoding'] = 'Nepoznati encoding: '; -$PHPMAILER_LANG['execute'] = 'Nije moguće izvršiti naredbu: '; -$PHPMAILER_LANG['file_access'] = 'Nije moguće pristupiti datoteci: '; -$PHPMAILER_LANG['file_open'] = 'Nije moguće otvoriti datoteku: '; -$PHPMAILER_LANG['from_failed'] = 'SMTP Greška: Slanje s navedenih e-mail adresa nije uspjelo: '; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP Greška: Slanje na navedenih e-mail adresa nije uspjelo: '; -$PHPMAILER_LANG['instantiate'] = 'Ne mogu pokrenuti mail funkcionalnost.'; -$PHPMAILER_LANG['invalid_address'] = 'E-mail nije poslan. Neispravna e-mail adresa: '; -$PHPMAILER_LANG['mailer_not_supported'] = ' mailer nije podržan.'; -$PHPMAILER_LANG['provide_address'] = 'Definirajte barem jednu adresu primatelja.'; -$PHPMAILER_LANG['signing'] = 'Greška prilikom prijave: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'Spajanje na SMTP poslužitelj nije uspjelo.'; -$PHPMAILER_LANG['smtp_error'] = 'Greška SMTP poslužitelja: '; -$PHPMAILER_LANG['variable_set'] = 'Ne mogu postaviti varijablu niti ju vratiti nazad: '; -$PHPMAILER_LANG['extension_missing'] = 'Nedostaje proširenje: '; diff --git a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-hu.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-hu.php deleted file mode 100755 index d7ca8887..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-hu.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php -/** - * Hungarian PHPMailer language file: refer to English translation for definitive list - * @package PHPMailer - * @author @dominicus-75 - */ - -$PHPMAILER_LANG['authenticate'] = 'SMTP hiba: az azonosítás sikertelen.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP hiba: nem lehet kapcsolódni az SMTP-szerverhez.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP hiba: adatok visszautasítva.'; -$PHPMAILER_LANG['empty_message'] = 'Üres az üzenettörzs.'; -$PHPMAILER_LANG['encoding'] = 'Ismeretlen kódolás: '; -$PHPMAILER_LANG['execute'] = 'Nem lehet végrehajtani: '; -$PHPMAILER_LANG['file_access'] = 'A következő fájl nem elérhető: '; -$PHPMAILER_LANG['file_open'] = 'Fájl hiba: a következő fájlt nem lehet megnyitni: '; -$PHPMAILER_LANG['from_failed'] = 'A feladóként megadott következő cím hibás: '; -$PHPMAILER_LANG['instantiate'] = 'A PHP mail() függvényt nem sikerült végrehajtani.'; -$PHPMAILER_LANG['invalid_address'] = 'Érvénytelen cím: '; -$PHPMAILER_LANG['mailer_not_supported'] = ' a mailer-osztály nem támogatott.'; -$PHPMAILER_LANG['provide_address'] = 'Legalább egy címzettet fel kell tüntetni.'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP hiba: a címzettként megadott következő címek hibásak: '; -$PHPMAILER_LANG['signing'] = 'Hibás aláírás: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'Hiba az SMTP-kapcsolatban.'; -$PHPMAILER_LANG['smtp_error'] = 'SMTP-szerver hiba: '; -$PHPMAILER_LANG['variable_set'] = 'A következő változók beállítása nem sikerült: '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-id.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-id.php deleted file mode 100755 index 97c16e08..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-id.php +++ /dev/null @@ -1,27 +0,0 @@ -<?php -/** - * Indonesian PHPMailer language file: refer to English translation for definitive list - * @package PHPMailer - * @author Cecep Prawiro <cecep.prawiro@gmail.com> - * @author @januridp - */ - -$PHPMAILER_LANG['authenticate'] = 'Kesalahan SMTP: Tidak dapat mengotentikasi.'; -$PHPMAILER_LANG['connect_host'] = 'Kesalahan SMTP: Tidak dapat terhubung ke host SMTP.'; -$PHPMAILER_LANG['data_not_accepted'] = 'Kesalahan SMTP: Data tidak diterima peladen.'; -$PHPMAILER_LANG['empty_message'] = 'Isi pesan kosong'; -$PHPMAILER_LANG['encoding'] = 'Pengkodean karakter tidak dikenali: '; -$PHPMAILER_LANG['execute'] = 'Tidak dapat menjalankan proses : '; -$PHPMAILER_LANG['file_access'] = 'Tidak dapat mengakses berkas : '; -$PHPMAILER_LANG['file_open'] = 'Kesalahan File: Berkas tidak bisa dibuka : '; -$PHPMAILER_LANG['from_failed'] = 'Alamat pengirim berikut mengakibatkan kesalahan : '; -$PHPMAILER_LANG['instantiate'] = 'Tidak dapat menginisialisasi fungsi surel'; -$PHPMAILER_LANG['invalid_address'] = 'Gagal terkirim, alamat surel tidak benar : '; -$PHPMAILER_LANG['provide_address'] = 'Harus disediakan minimal satu alamat tujuan'; -$PHPMAILER_LANG['mailer_not_supported'] = 'Pengirim tidak didukung'; -$PHPMAILER_LANG['recipients_failed'] = 'Kesalahan SMTP: Alamat tujuan berikut menghasilkan kesalahan : '; -$PHPMAILER_LANG['signing'] = 'Kesalahan dalam tanda tangan : '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() gagal.'; -$PHPMAILER_LANG['smtp_error'] = 'Kesalahan pada pelayan SMTP : '; -$PHPMAILER_LANG['variable_set'] = 'Tidak berhasil mengatur atau mengatur ulang variable : '; -$PHPMAILER_LANG['extension_missing'] = 'Ekstensi hilang: '; diff --git a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-it.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-it.php deleted file mode 100755 index d2f4643e..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-it.php +++ /dev/null @@ -1,27 +0,0 @@ -<?php -/** - * Italian PHPMailer language file: refer to English translation for definitive list - * @package PHPMailer - * @author Ilias Bartolini <brain79@inwind.it> - * @author Stefano Sabatini <sabas88@gmail.com> - */ - -$PHPMAILER_LANG['authenticate'] = 'SMTP Error: Impossibile autenticarsi.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP Error: Impossibile connettersi all\'host SMTP.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Error: Dati non accettati dal server.'; -$PHPMAILER_LANG['empty_message'] = 'Il corpo del messaggio è vuoto'; -$PHPMAILER_LANG['encoding'] = 'Codifica dei caratteri sconosciuta: '; -$PHPMAILER_LANG['execute'] = 'Impossibile eseguire l\'operazione: '; -$PHPMAILER_LANG['file_access'] = 'Impossibile accedere al file: '; -$PHPMAILER_LANG['file_open'] = 'File Error: Impossibile aprire il file: '; -$PHPMAILER_LANG['from_failed'] = 'I seguenti indirizzi mittenti hanno generato errore: '; -$PHPMAILER_LANG['instantiate'] = 'Impossibile istanziare la funzione mail'; -$PHPMAILER_LANG['invalid_address'] = 'Impossibile inviare, l\'indirizzo email non è valido: '; -$PHPMAILER_LANG['provide_address'] = 'Deve essere fornito almeno un indirizzo ricevente'; -$PHPMAILER_LANG['mailer_not_supported'] = 'Mailer non supportato'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP Error: I seguenti indirizzi destinatari hanno generato un errore: '; -$PHPMAILER_LANG['signing'] = 'Errore nella firma: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() fallita.'; -$PHPMAILER_LANG['smtp_error'] = 'Errore del server SMTP: '; -$PHPMAILER_LANG['variable_set'] = 'Impossibile impostare o resettare la variabile: '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ja.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ja.php deleted file mode 100755 index 2d778728..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ja.php +++ /dev/null @@ -1,27 +0,0 @@ -<?php -/** - * Japanese PHPMailer language file: refer to English translation for definitive list - * @package PHPMailer - * @author Mitsuhiro Yoshida <http://mitstek.com/> - * @author Yoshi Sakai <http://bluemooninc.jp/> - */ - -$PHPMAILER_LANG['authenticate'] = 'SMTPエラー: 認証できませんでした。'; -$PHPMAILER_LANG['connect_host'] = 'SMTPエラー: SMTPホストに接続できませんでした。'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTPエラー: データが受け付けられませんでした。'; -//$PHPMAILER_LANG['empty_message'] = 'Message body empty'; -$PHPMAILER_LANG['encoding'] = '不明なエンコーディング: '; -$PHPMAILER_LANG['execute'] = '実行できませんでした: '; -$PHPMAILER_LANG['file_access'] = 'ファイルにアクセスできません: '; -$PHPMAILER_LANG['file_open'] = 'ファイルエラー: ファイルを開けません: '; -$PHPMAILER_LANG['from_failed'] = 'Fromアドレスを登録する際にエラーが発生しました: '; -$PHPMAILER_LANG['instantiate'] = 'メール関数が正常に動作しませんでした。'; -//$PHPMAILER_LANG['invalid_address'] = 'Invalid address: '; -$PHPMAILER_LANG['provide_address'] = '少なくとも1つメールアドレスを 指定する必要があります。'; -$PHPMAILER_LANG['mailer_not_supported'] = ' メーラーがサポートされていません。'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTPエラー: 次の受信者アドレスに 間違いがあります: '; -//$PHPMAILER_LANG['signing'] = 'Signing Error: '; -//$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.'; -//$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -//$PHPMAILER_LANG['variable_set'] = 'Cannot set or reset variable: '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ka.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ka.php deleted file mode 100755 index dd1af8ab..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ka.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php -/** - * Georgian PHPMailer language file: refer to English translation for definitive list - * @package PHPMailer - * @author Avtandil Kikabidze aka LONGMAN <akalongman@gmail.com> - */ - -$PHPMAILER_LANG['authenticate'] = 'SMTP შეცდომა: ავტორიზაცია შეუძლებელია.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP შეცდომა: SMTP სერვერთან დაკავშირება შეუძლებელია.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP შეცდომა: მონაცემები არ იქნა მიღებული.'; -$PHPMAILER_LANG['encoding'] = 'კოდირების უცნობი ტიპი: '; -$PHPMAILER_LANG['execute'] = 'შეუძლებელია შემდეგი ბრძანების შესრულება: '; -$PHPMAILER_LANG['file_access'] = 'შეუძლებელია წვდომა ფაილთან: '; -$PHPMAILER_LANG['file_open'] = 'ფაილური სისტემის შეცდომა: არ იხსნება ფაილი: '; -$PHPMAILER_LANG['from_failed'] = 'გამგზავნის არასწორი მისამართი: '; -$PHPMAILER_LANG['instantiate'] = 'mail ფუნქციის გაშვება ვერ ხერხდება.'; -$PHPMAILER_LANG['provide_address'] = 'გთხოვთ მიუთითოთ ერთი ადრესატის e-mail მისამართი მაინც.'; -$PHPMAILER_LANG['mailer_not_supported'] = ' - საფოსტო სერვერის მხარდაჭერა არ არის.'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP შეცდომა: შემდეგ მისამართებზე გაგზავნა ვერ მოხერხდა: '; -$PHPMAILER_LANG['empty_message'] = 'შეტყობინება ცარიელია'; -$PHPMAILER_LANG['invalid_address'] = 'არ გაიგზავნა, e-mail მისამართის არასწორი ფორმატი: '; -$PHPMAILER_LANG['signing'] = 'ხელმოწერის შეცდომა: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'შეცდომა SMTP სერვერთან დაკავშირებისას'; -$PHPMAILER_LANG['smtp_error'] = 'SMTP სერვერის შეცდომა: '; -$PHPMAILER_LANG['variable_set'] = 'შეუძლებელია შემდეგი ცვლადის შექმნა ან შეცვლა: '; -$PHPMAILER_LANG['extension_missing'] = 'ბიბლიოთეკა არ არსებობს: '; diff --git a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ko.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ko.php deleted file mode 100755 index 9599fa68..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ko.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php -/** - * Korean PHPMailer language file: refer to English translation for definitive list - * @package PHPMailer - * @author ChalkPE <amato0617@gmail.com> - */ - -$PHPMAILER_LANG['authenticate'] = 'SMTP 오류: 인증할 수 없습니다.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP 오류: SMTP 호스트에 접속할 수 없습니다.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP 오류: 데이터가 받아들여지지 않았습니다.'; -$PHPMAILER_LANG['empty_message'] = '메세지 내용이 없습니다'; -$PHPMAILER_LANG['encoding'] = '알 수 없는 인코딩: '; -$PHPMAILER_LANG['execute'] = '실행 불가: '; -$PHPMAILER_LANG['file_access'] = '파일 접근 불가: '; -$PHPMAILER_LANG['file_open'] = '파일 오류: 파일을 열 수 없습니다: '; -$PHPMAILER_LANG['from_failed'] = '다음 From 주소에서 오류가 발생했습니다: '; -$PHPMAILER_LANG['instantiate'] = 'mail 함수를 인스턴스화할 수 없습니다'; -$PHPMAILER_LANG['invalid_address'] = '잘못된 주소: '; -$PHPMAILER_LANG['mailer_not_supported'] = ' 메일러는 지원되지 않습니다.'; -$PHPMAILER_LANG['provide_address'] = '적어도 한 개 이상의 수신자 메일 주소를 제공해야 합니다.'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP 오류: 다음 수신자에서 오류가 발생했습니다: '; -$PHPMAILER_LANG['signing'] = '서명 오류: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP 연결을 실패하였습니다.'; -$PHPMAILER_LANG['smtp_error'] = 'SMTP 서버 오류: '; -$PHPMAILER_LANG['variable_set'] = '변수 설정 및 초기화 불가: '; -$PHPMAILER_LANG['extension_missing'] = '확장자 없음: '; diff --git a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-lt.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-lt.php deleted file mode 100755 index 1253a4fd..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-lt.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php -/** - * Lithuanian PHPMailer language file: refer to English translation for definitive list - * @package PHPMailer - * @author Dainius Kaupaitis <dk@sum.lt> - */ - -$PHPMAILER_LANG['authenticate'] = 'SMTP klaida: autentifikacija nepavyko.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP klaida: nepavyksta prisijungti prie SMTP stoties.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP klaida: duomenys nepriimti.'; -$PHPMAILER_LANG['empty_message'] = 'Laiško turinys tuščias'; -$PHPMAILER_LANG['encoding'] = 'Neatpažinta koduotė: '; -$PHPMAILER_LANG['execute'] = 'Nepavyko įvykdyti komandos: '; -$PHPMAILER_LANG['file_access'] = 'Byla nepasiekiama: '; -$PHPMAILER_LANG['file_open'] = 'Bylos klaida: Nepavyksta atidaryti: '; -$PHPMAILER_LANG['from_failed'] = 'Neteisingas siuntėjo adresas: '; -$PHPMAILER_LANG['instantiate'] = 'Nepavyko paleisti mail funkcijos.'; -$PHPMAILER_LANG['invalid_address'] = 'Neteisingas adresas: '; -$PHPMAILER_LANG['mailer_not_supported'] = ' pašto stotis nepalaikoma.'; -$PHPMAILER_LANG['provide_address'] = 'Nurodykite bent vieną gavėjo adresą.'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP klaida: nepavyko išsiųsti šiems gavėjams: '; -$PHPMAILER_LANG['signing'] = 'Prisijungimo klaida: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP susijungimo klaida'; -$PHPMAILER_LANG['smtp_error'] = 'SMTP stoties klaida: '; -$PHPMAILER_LANG['variable_set'] = 'Nepavyko priskirti reikšmės kintamajam: '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-lv.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-lv.php deleted file mode 100755 index 39bf9a19..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-lv.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php -/** - * Latvian PHPMailer language file: refer to English translation for definitive list - * @package PHPMailer - * @author Eduards M. <e@npd.lv> - */ - -$PHPMAILER_LANG['authenticate'] = 'SMTP kļūda: Autorizācija neizdevās.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP Kļūda: Nevar izveidot savienojumu ar SMTP serveri.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Kļūda: Nepieņem informāciju.'; -$PHPMAILER_LANG['empty_message'] = 'Ziņojuma teksts ir tukšs'; -$PHPMAILER_LANG['encoding'] = 'Neatpazīts kodējums: '; -$PHPMAILER_LANG['execute'] = 'Neizdevās izpildīt komandu: '; -$PHPMAILER_LANG['file_access'] = 'Fails nav pieejams: '; -$PHPMAILER_LANG['file_open'] = 'Faila kļūda: Nevar atvērt failu: '; -$PHPMAILER_LANG['from_failed'] = 'Nepareiza sūtītāja adrese: '; -$PHPMAILER_LANG['instantiate'] = 'Nevar palaist sūtīšanas funkciju.'; -$PHPMAILER_LANG['invalid_address'] = 'Nepareiza adrese: '; -$PHPMAILER_LANG['mailer_not_supported'] = ' sūtītājs netiek atbalstīts.'; -$PHPMAILER_LANG['provide_address'] = 'Lūdzu, norādiet vismaz vienu adresātu.'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP kļūda: neizdevās nosūtīt šādiem saņēmējiem: '; -$PHPMAILER_LANG['signing'] = 'Autorizācijas kļūda: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP savienojuma kļūda'; -$PHPMAILER_LANG['smtp_error'] = 'SMTP servera kļūda: '; -$PHPMAILER_LANG['variable_set'] = 'Nevar piešķirt mainīgā vērtību: '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ms.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ms.php deleted file mode 100755 index 4e2c3408..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ms.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php -/** - * Malaysian PHPMailer language file: refer to English translation for definitive list - * @package PHPMailer - * @author Nawawi Jamili <nawawi@rutweb.com> - */ - -$PHPMAILER_LANG['authenticate'] = 'Ralat SMTP: Tidak dapat pengesahan.'; -$PHPMAILER_LANG['connect_host'] = 'Ralat SMTP: Tidak dapat menghubungi hos pelayan SMTP.'; -$PHPMAILER_LANG['data_not_accepted'] = 'Ralat SMTP: Data tidak diterima oleh pelayan.'; -$PHPMAILER_LANG['empty_message'] = 'Tiada isi untuk mesej'; -$PHPMAILER_LANG['encoding'] = 'Pengekodan tidak diketahui: '; -$PHPMAILER_LANG['execute'] = 'Tidak dapat melaksanakan: '; -$PHPMAILER_LANG['file_access'] = 'Tidak dapat mengakses fail: '; -$PHPMAILER_LANG['file_open'] = 'Ralat Fail: Tidak dapat membuka fail: '; -$PHPMAILER_LANG['from_failed'] = 'Berikut merupakan ralat dari alamat e-mel: '; -$PHPMAILER_LANG['instantiate'] = 'Tidak dapat memberi contoh fungsi e-mel.'; -$PHPMAILER_LANG['invalid_address'] = 'Alamat emel tidak sah: '; -$PHPMAILER_LANG['mailer_not_supported'] = ' jenis penghantar emel tidak disokong.'; -$PHPMAILER_LANG['provide_address'] = 'Anda perlu menyediakan sekurang-kurangnya satu alamat e-mel penerima.'; -$PHPMAILER_LANG['recipients_failed'] = 'Ralat SMTP: Penerima e-mel berikut telah gagal: '; -$PHPMAILER_LANG['signing'] = 'Ralat pada tanda tangan: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() telah gagal.'; -$PHPMAILER_LANG['smtp_error'] = 'Ralat pada pelayan SMTP: '; -$PHPMAILER_LANG['variable_set'] = 'Tidak boleh menetapkan atau menetapkan semula pembolehubah: '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-nb.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-nb.php deleted file mode 100755 index 44610542..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-nb.php +++ /dev/null @@ -1,25 +0,0 @@ -<?php -/** - * Norwegian Bokmål PHPMailer language file: refer to English translation for definitive list - * @package PHPMailer - */ - -$PHPMAILER_LANG['authenticate'] = 'SMTP Feil: Kunne ikke autentisere.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP Feil: Kunne ikke koble til SMTP tjener.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Feil: Datainnhold ikke akseptert.'; -$PHPMAILER_LANG['empty_message'] = 'Melding kropp tomt'; -$PHPMAILER_LANG['encoding'] = 'Ukjent koding: '; -$PHPMAILER_LANG['execute'] = 'Kunne ikke utføre: '; -$PHPMAILER_LANG['file_access'] = 'Får ikke tilgang til filen: '; -$PHPMAILER_LANG['file_open'] = 'Fil Feil: Kunne ikke åpne filen: '; -$PHPMAILER_LANG['from_failed'] = 'Følgende Frå adresse feilet: '; -$PHPMAILER_LANG['instantiate'] = 'Kunne ikke initialisere post funksjon.'; -$PHPMAILER_LANG['invalid_address'] = 'Ugyldig adresse: '; -$PHPMAILER_LANG['mailer_not_supported'] = ' sender er ikke støttet.'; -$PHPMAILER_LANG['provide_address'] = 'Du må opppgi minst en mottakeradresse.'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP Feil: Følgende mottakeradresse feilet: '; -$PHPMAILER_LANG['signing'] = 'Signering Feil: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP connect() feilet.'; -$PHPMAILER_LANG['smtp_error'] = 'SMTP server feil: '; -$PHPMAILER_LANG['variable_set'] = 'Kan ikke skrive eller omskrive variabel: '; -$PHPMAILER_LANG['extension_missing'] = 'Utvidelse mangler: '; diff --git a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-nl.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-nl.php deleted file mode 100755 index c36d8b21..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-nl.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php -/** - * Dutch PHPMailer language file: refer to PHPMailer.php for definitive list. - * @package PHPMailer - * @author Tuxion <team@tuxion.nl> - */ - -$PHPMAILER_LANG['authenticate'] = 'SMTP-fout: authenticatie mislukt.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP-fout: kon niet verbinden met SMTP-host.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP-fout: data niet geaccepteerd.'; -$PHPMAILER_LANG['empty_message'] = 'Berichttekst is leeg'; -$PHPMAILER_LANG['encoding'] = 'Onbekende codering: '; -$PHPMAILER_LANG['execute'] = 'Kon niet uitvoeren: '; -$PHPMAILER_LANG['file_access'] = 'Kreeg geen toegang tot bestand: '; -$PHPMAILER_LANG['file_open'] = 'Bestandsfout: kon bestand niet openen: '; -$PHPMAILER_LANG['from_failed'] = 'Het volgende afzendersadres is mislukt: '; -$PHPMAILER_LANG['instantiate'] = 'Kon mailfunctie niet initialiseren.'; -$PHPMAILER_LANG['invalid_address'] = 'Ongeldig adres: '; -$PHPMAILER_LANG['mailer_not_supported'] = ' mailer wordt niet ondersteund.'; -$PHPMAILER_LANG['provide_address'] = 'Er moet minstens één ontvanger worden opgegeven.'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP-fout: de volgende ontvangers zijn mislukt: '; -$PHPMAILER_LANG['signing'] = 'Signeerfout: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Verbinding mislukt.'; -$PHPMAILER_LANG['smtp_error'] = 'SMTP-serverfout: '; -$PHPMAILER_LANG['variable_set'] = 'Kan de volgende variabele niet instellen of resetten: '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-pl.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-pl.php deleted file mode 100755 index 3da0dee9..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-pl.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php -/** - * Polish PHPMailer language file: refer to English translation for definitive list - * @package PHPMailer - */ - -$PHPMAILER_LANG['authenticate'] = 'Błąd SMTP: Nie można przeprowadzić uwierzytelnienia.'; -$PHPMAILER_LANG['connect_host'] = 'Błąd SMTP: Nie można połączyć się z wybranym hostem.'; -$PHPMAILER_LANG['data_not_accepted'] = 'Błąd SMTP: Dane nie zostały przyjęte.'; -$PHPMAILER_LANG['empty_message'] = 'Wiadomość jest pusta.'; -$PHPMAILER_LANG['encoding'] = 'Nieznany sposób kodowania znaków: '; -$PHPMAILER_LANG['execute'] = 'Nie można uruchomić: '; -$PHPMAILER_LANG['file_access'] = 'Brak dostępu do pliku: '; -$PHPMAILER_LANG['file_open'] = 'Nie można otworzyć pliku: '; -$PHPMAILER_LANG['from_failed'] = 'Następujący adres Nadawcy jest nieprawidłowy: '; -$PHPMAILER_LANG['instantiate'] = 'Nie można wywołać funkcji mail(). Sprawdź konfigurację serwera.'; -$PHPMAILER_LANG['invalid_address'] = 'Nie można wysłać wiadomości, '. - 'następujący adres Odbiorcy jest nieprawidłowy: '; -$PHPMAILER_LANG['provide_address'] = 'Należy podać prawidłowy adres email Odbiorcy.'; -$PHPMAILER_LANG['mailer_not_supported'] = 'Wybrana metoda wysyłki wiadomości nie jest obsługiwana.'; -$PHPMAILER_LANG['recipients_failed'] = 'Błąd SMTP: Następujący odbiorcy są nieprawidłowi: '; -$PHPMAILER_LANG['signing'] = 'Błąd podpisywania wiadomości: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() zakończone niepowodzeniem.'; -$PHPMAILER_LANG['smtp_error'] = 'Błąd SMTP: '; -$PHPMAILER_LANG['variable_set'] = 'Nie można ustawić lub zmodyfikować zmiennej: '; -$PHPMAILER_LANG['extension_missing'] = 'Brakujące rozszerzenie: '; diff --git a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-pt.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-pt.php deleted file mode 100755 index f365d5d0..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-pt.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php -/** - * Portuguese (European) PHPMailer language file: refer to English translation for definitive list - * @package PHPMailer - * @author Jonadabe <jonadabe@hotmail.com> - */ - -$PHPMAILER_LANG['authenticate'] = 'Erro do SMTP: Não foi possível realizar a autenticação.'; -$PHPMAILER_LANG['connect_host'] = 'Erro do SMTP: Não foi possível realizar ligação com o servidor SMTP.'; -$PHPMAILER_LANG['data_not_accepted'] = 'Erro do SMTP: Os dados foram rejeitados.'; -$PHPMAILER_LANG['empty_message'] = 'A mensagem no e-mail está vazia.'; -$PHPMAILER_LANG['encoding'] = 'Codificação desconhecida: '; -$PHPMAILER_LANG['execute'] = 'Não foi possível executar: '; -$PHPMAILER_LANG['file_access'] = 'Não foi possível aceder o ficheiro: '; -$PHPMAILER_LANG['file_open'] = 'Abertura do ficheiro: Não foi possível abrir o ficheiro: '; -$PHPMAILER_LANG['from_failed'] = 'Ocorreram falhas nos endereços dos seguintes remententes: '; -$PHPMAILER_LANG['instantiate'] = 'Não foi possível iniciar uma instância da função mail.'; -$PHPMAILER_LANG['invalid_address'] = 'Não foi enviado nenhum e-mail para o endereço de e-mail inválido: '; -$PHPMAILER_LANG['mailer_not_supported'] = ' mailer não é suportado.'; -$PHPMAILER_LANG['provide_address'] = 'Tem de fornecer pelo menos um endereço como destinatário do e-mail.'; -$PHPMAILER_LANG['recipients_failed'] = 'Erro do SMTP: O endereço do seguinte destinatário falhou: '; -$PHPMAILER_LANG['signing'] = 'Erro ao assinar: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() falhou.'; -$PHPMAILER_LANG['smtp_error'] = 'Erro de servidor SMTP: '; -$PHPMAILER_LANG['variable_set'] = 'Não foi possível definir ou redefinir a variável: '; -$PHPMAILER_LANG['extension_missing'] = 'Extensão em falta: '; diff --git a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-pt_br.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-pt_br.php deleted file mode 100755 index 4ec10f77..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-pt_br.php +++ /dev/null @@ -1,29 +0,0 @@ -<?php -/** - * Brazilian Portuguese PHPMailer language file: refer to English translation for definitive list - * @package PHPMailer - * @author Paulo Henrique Garcia <paulo@controllerweb.com.br> - * @author Lucas Guimarães <lucas@lucasguimaraes.com> - * @author Phelipe Alves <phelipealvesdesouza@gmail.com> - * @author Fabio Beneditto <fabiobeneditto@gmail.com> - */ - -$PHPMAILER_LANG['authenticate'] = 'Erro de SMTP: Não foi possível autenticar.'; -$PHPMAILER_LANG['connect_host'] = 'Erro de SMTP: Não foi possível conectar ao servidor SMTP.'; -$PHPMAILER_LANG['data_not_accepted'] = 'Erro de SMTP: Dados rejeitados.'; -$PHPMAILER_LANG['empty_message'] = 'Mensagem vazia'; -$PHPMAILER_LANG['encoding'] = 'Codificação desconhecida: '; -$PHPMAILER_LANG['execute'] = 'Não foi possível executar: '; -$PHPMAILER_LANG['file_access'] = 'Não foi possível acessar o arquivo: '; -$PHPMAILER_LANG['file_open'] = 'Erro de Arquivo: Não foi possível abrir o arquivo: '; -$PHPMAILER_LANG['from_failed'] = 'Os seguintes remetentes falharam: '; -$PHPMAILER_LANG['instantiate'] = 'Não foi possível instanciar a função mail.'; -$PHPMAILER_LANG['invalid_address'] = 'Endereço de e-mail inválido: '; -$PHPMAILER_LANG['mailer_not_supported'] = ' mailer não é suportado.'; -$PHPMAILER_LANG['provide_address'] = 'Você deve informar pelo menos um destinatário.'; -$PHPMAILER_LANG['recipients_failed'] = 'Erro de SMTP: Os seguintes destinatários falharam: '; -$PHPMAILER_LANG['signing'] = 'Erro de Assinatura: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() falhou.'; -$PHPMAILER_LANG['smtp_error'] = 'Erro de servidor SMTP: '; -$PHPMAILER_LANG['variable_set'] = 'Não foi possível definir ou redefinir a variável: '; -$PHPMAILER_LANG['extension_missing'] = 'Extensão ausente: '; diff --git a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ro.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ro.php deleted file mode 100755 index fa100eaa..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ro.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php -/** - * Romanian PHPMailer language file: refer to English translation for definitive list - * @package PHPMailer - * @author Alex Florea <alecz.fia@gmail.com> - */ - -$PHPMAILER_LANG['authenticate'] = 'Eroare SMTP: Autentificarea a eșuat.'; -$PHPMAILER_LANG['connect_host'] = 'Eroare SMTP: Conectarea la serverul SMTP a eșuat.'; -$PHPMAILER_LANG['data_not_accepted'] = 'Eroare SMTP: Datele nu au fost acceptate.'; -$PHPMAILER_LANG['empty_message'] = 'Mesajul este gol.'; -$PHPMAILER_LANG['encoding'] = 'Encodare necunoscută: '; -$PHPMAILER_LANG['execute'] = 'Nu se poate executa următoarea comandă: '; -$PHPMAILER_LANG['file_access'] = 'Nu se poate accesa următorul fișier: '; -$PHPMAILER_LANG['file_open'] = 'Eroare fișier: Nu se poate deschide următorul fișier: '; -$PHPMAILER_LANG['from_failed'] = 'Următoarele adrese From au dat eroare: '; -$PHPMAILER_LANG['instantiate'] = 'Funcția mail nu a putut fi inițializată.'; -$PHPMAILER_LANG['invalid_address'] = 'Adresa de email nu este validă: '; -$PHPMAILER_LANG['mailer_not_supported'] = ' mailer nu este suportat.'; -$PHPMAILER_LANG['provide_address'] = 'Trebuie să adăugați cel puțin o adresă de email.'; -$PHPMAILER_LANG['recipients_failed'] = 'Eroare SMTP: Următoarele adrese de email au eșuat: '; -$PHPMAILER_LANG['signing'] = 'A aparut o problemă la semnarea emailului. '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'Conectarea la serverul SMTP a eșuat.'; -$PHPMAILER_LANG['smtp_error'] = 'Eroare server SMTP: '; -$PHPMAILER_LANG['variable_set'] = 'Nu se poate seta/reseta variabila. '; -$PHPMAILER_LANG['extension_missing'] = 'Lipsește extensia: '; diff --git a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-rs.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-rs.php deleted file mode 100755 index 0502f021..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-rs.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php -/** - * Serbian PHPMailer language file: refer to English translation for definitive list - * @package PHPMailer - * @author Александар Јевремовић <ajevremovic@gmail.com> - */ - -$PHPMAILER_LANG['authenticate'] = 'SMTP грешка: аутентификација није успела.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP грешка: није могуће повезивање са SMTP сервером.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP грешка: подаци нису прихваћени.'; -$PHPMAILER_LANG['empty_message'] = 'Садржај поруке је празан.'; -$PHPMAILER_LANG['encoding'] = 'Непознато кодовање: '; -$PHPMAILER_LANG['execute'] = 'Није могуће извршити наредбу: '; -$PHPMAILER_LANG['file_access'] = 'Није могуће приступити датотеци: '; -$PHPMAILER_LANG['file_open'] = 'Није могуће отворити датотеку: '; -$PHPMAILER_LANG['from_failed'] = 'SMTP грешка: слање са следећих адреса није успело: '; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP грешка: слање на следеће адресе није успело: '; -$PHPMAILER_LANG['instantiate'] = 'Није могуће покренути mail функцију.'; -$PHPMAILER_LANG['invalid_address'] = 'Порука није послата због неисправне адресе: '; -$PHPMAILER_LANG['mailer_not_supported'] = ' мејлер није подржан.'; -$PHPMAILER_LANG['provide_address'] = 'Потребно је задати најмање једну адресу.'; -$PHPMAILER_LANG['signing'] = 'Грешка приликом пријављивања: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'Повезивање са SMTP сервером није успело.'; -$PHPMAILER_LANG['smtp_error'] = 'Грешка SMTP сервера: '; -$PHPMAILER_LANG['variable_set'] = 'Није могуће задати променљиву, нити је вратити уназад: '; -$PHPMAILER_LANG['extension_missing'] = 'Недостаје проширење: '; diff --git a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ru.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ru.php deleted file mode 100755 index 4066f6b4..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-ru.php +++ /dev/null @@ -1,27 +0,0 @@ -<?php -/** - * Russian PHPMailer language file: refer to English translation for definitive list - * @package PHPMailer - * @author Alexey Chumakov <alex@chumakov.ru> - * @author Foster Snowhill <i18n@forstwoof.ru> - */ - -$PHPMAILER_LANG['authenticate'] = 'Ошибка SMTP: ошибка авторизации.'; -$PHPMAILER_LANG['connect_host'] = 'Ошибка SMTP: не удается подключиться к серверу SMTP.'; -$PHPMAILER_LANG['data_not_accepted'] = 'Ошибка SMTP: данные не приняты.'; -$PHPMAILER_LANG['encoding'] = 'Неизвестный вид кодировки: '; -$PHPMAILER_LANG['execute'] = 'Невозможно выполнить команду: '; -$PHPMAILER_LANG['file_access'] = 'Нет доступа к файлу: '; -$PHPMAILER_LANG['file_open'] = 'Файловая ошибка: не удается открыть файл: '; -$PHPMAILER_LANG['from_failed'] = 'Неверный адрес отправителя: '; -$PHPMAILER_LANG['instantiate'] = 'Невозможно запустить функцию mail.'; -$PHPMAILER_LANG['provide_address'] = 'Пожалуйста, введите хотя бы один адрес e-mail получателя.'; -$PHPMAILER_LANG['mailer_not_supported'] = ' — почтовый сервер не поддерживается.'; -$PHPMAILER_LANG['recipients_failed'] = 'Ошибка SMTP: отправка по следующим адресам получателей не удалась: '; -$PHPMAILER_LANG['empty_message'] = 'Пустое сообщение'; -$PHPMAILER_LANG['invalid_address'] = 'Не отослано, неправильный формат email адреса: '; -$PHPMAILER_LANG['signing'] = 'Ошибка подписи: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'Ошибка соединения с SMTP-сервером'; -$PHPMAILER_LANG['smtp_error'] = 'Ошибка SMTP-сервера: '; -$PHPMAILER_LANG['variable_set'] = 'Невозможно установить или переустановить переменную: '; -$PHPMAILER_LANG['extension_missing'] = 'Расширение отсутствует: '; diff --git a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-sk.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-sk.php deleted file mode 100755 index a38f4e52..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-sk.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php -/** - * Slovak PHPMailer language file: refer to English translation for definitive list - * @package PHPMailer - * @author Michal Tinka <michaltinka@gmail.com> - */ - -$PHPMAILER_LANG['authenticate'] = 'SMTP Error: Chyba autentifikácie.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP Error: Nebolo možné nadviazať spojenie so SMTP serverom.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Error: Dáta neboli prijaté'; -$PHPMAILER_LANG['empty_message'] = 'Prázdne telo správy.'; -$PHPMAILER_LANG['encoding'] = 'Neznáme kódovanie: '; -$PHPMAILER_LANG['execute'] = 'Nedá sa vykonať: '; -$PHPMAILER_LANG['file_access'] = 'Súbor nebol nájdený: '; -$PHPMAILER_LANG['file_open'] = 'File Error: Súbor sa otvoriť pre čítanie: '; -$PHPMAILER_LANG['from_failed'] = 'Následujúca adresa From je nesprávna: '; -$PHPMAILER_LANG['instantiate'] = 'Nedá sa vytvoriť inštancia emailovej funkcie.'; -$PHPMAILER_LANG['invalid_address'] = 'Neodoslané, emailová adresa je nesprávna: '; -$PHPMAILER_LANG['mailer_not_supported'] = ' emailový klient nieje podporovaný.'; -$PHPMAILER_LANG['provide_address'] = 'Musíte zadať aspoň jednu emailovú adresu príjemcu.'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP Error: Adresy príjemcov niesu správne '; -$PHPMAILER_LANG['signing'] = 'Chyba prihlasovania: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() zlyhalo.'; -$PHPMAILER_LANG['smtp_error'] = 'SMTP chyba serveru: '; -$PHPMAILER_LANG['variable_set'] = 'Nemožno nastaviť alebo resetovať premennú: '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-sl.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-sl.php deleted file mode 100755 index 54c95725..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-sl.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php -/** - * Slovene PHPMailer language file: refer to English translation for definitive list - * @package PHPMailer - * @author Klemen Tušar <techouse@gmail.com> - */ - -$PHPMAILER_LANG['authenticate'] = 'SMTP napaka: Avtentikacija ni uspela.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP napaka: Ne morem vzpostaviti povezave s SMTP gostiteljem.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP napaka: Strežnik zavrača podatke.'; -$PHPMAILER_LANG['empty_message'] = 'E-poštno sporočilo nima vsebine.'; -$PHPMAILER_LANG['encoding'] = 'Nepoznan tip kodiranja: '; -$PHPMAILER_LANG['execute'] = 'Operacija ni uspela: '; -$PHPMAILER_LANG['file_access'] = 'Nimam dostopa do datoteke: '; -$PHPMAILER_LANG['file_open'] = 'Ne morem odpreti datoteke: '; -$PHPMAILER_LANG['from_failed'] = 'Neveljaven e-naslov pošiljatelja: '; -$PHPMAILER_LANG['instantiate'] = 'Ne morem inicializirati mail funkcije.'; -$PHPMAILER_LANG['invalid_address'] = 'E-poštno sporočilo ni bilo poslano. E-naslov je neveljaven: '; -$PHPMAILER_LANG['mailer_not_supported'] = ' mailer ni podprt.'; -$PHPMAILER_LANG['provide_address'] = 'Prosim vnesite vsaj enega naslovnika.'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP napaka: Sledeči naslovniki so neveljavni: '; -$PHPMAILER_LANG['signing'] = 'Napaka pri podpisovanju: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'Ne morem vzpostaviti povezave s SMTP strežnikom.'; -$PHPMAILER_LANG['smtp_error'] = 'Napaka SMTP strežnika: '; -$PHPMAILER_LANG['variable_set'] = 'Ne morem nastaviti oz. ponastaviti spremenljivke: '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-sr.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-sr.php deleted file mode 100755 index ed95ca6e..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-sr.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php -/** - * Serbian PHPMailer language file: refer to English translation for definitive list - * @package PHPMailer - * @author Александар Јевремовић <ajevremovic@gmail.com> - */ - -$PHPMAILER_LANG['authenticate'] = 'SMTP грешка: аутентификација није успела.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP грешка: није могуће повезивање са SMTP сервером.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP грешка: подаци нису прихваћени.'; -$PHPMAILER_LANG['empty_message'] = 'Садржај поруке је празан.'; -$PHPMAILER_LANG['encoding'] = 'Непознато кодовање: '; -$PHPMAILER_LANG['execute'] = 'Није могуће извршити наредбу: '; -$PHPMAILER_LANG['file_access'] = 'Није могуће приступити датотеци: '; -$PHPMAILER_LANG['file_open'] = 'Није могуће отворити датотеку: '; -$PHPMAILER_LANG['from_failed'] = 'SMTP грешка: слање са следећих адреса није успело: '; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP грешка: слање на следеће адресе није успело: '; -$PHPMAILER_LANG['instantiate'] = 'Није могуће покренути mail функцију.'; -$PHPMAILER_LANG['invalid_address'] = 'Порука није послата због неисправне адресе: '; -$PHPMAILER_LANG['mailer_not_supported'] = ' мејлер није подржан.'; -$PHPMAILER_LANG['provide_address'] = 'Потребно је задати најмање једну адресу.'; -$PHPMAILER_LANG['signing'] = 'Грешка приликом пријављивања: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'Повезивање са SMTP сервером није успело.'; -$PHPMAILER_LANG['smtp_error'] = 'Грешка SMTP сервера: '; -$PHPMAILER_LANG['variable_set'] = 'Није могуће задати променљиву, нити је вратити уназад: '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-sv.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-sv.php deleted file mode 100755 index 4408e63e..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-sv.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php -/** - * Swedish PHPMailer language file: refer to English translation for definitive list - * @package PHPMailer - * @author Johan Linnér <johan@linner.biz> - */ - -$PHPMAILER_LANG['authenticate'] = 'SMTP fel: Kunde inte autentisera.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP fel: Kunde inte ansluta till SMTP-server.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP fel: Data accepterades inte.'; -//$PHPMAILER_LANG['empty_message'] = 'Message body empty'; -$PHPMAILER_LANG['encoding'] = 'Okänt encode-format: '; -$PHPMAILER_LANG['execute'] = 'Kunde inte köra: '; -$PHPMAILER_LANG['file_access'] = 'Ingen åtkomst till fil: '; -$PHPMAILER_LANG['file_open'] = 'Fil fel: Kunde inte öppna fil: '; -$PHPMAILER_LANG['from_failed'] = 'Följande avsändaradress är felaktig: '; -$PHPMAILER_LANG['instantiate'] = 'Kunde inte initiera e-postfunktion.'; -$PHPMAILER_LANG['invalid_address'] = 'Felaktig adress: '; -$PHPMAILER_LANG['provide_address'] = 'Du måste ange minst en mottagares e-postadress.'; -$PHPMAILER_LANG['mailer_not_supported'] = ' mailer stöds inte.'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP fel: Följande mottagare är felaktig: '; -$PHPMAILER_LANG['signing'] = 'Signerings fel: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() misslyckades.'; -$PHPMAILER_LANG['smtp_error'] = 'SMTP server fel: '; -$PHPMAILER_LANG['variable_set'] = 'Kunde inte definiera eller återställa variabel: '; -$PHPMAILER_LANG['extension_missing'] = 'Tillägg ej tillgängligt: '; diff --git a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-tr.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-tr.php deleted file mode 100755 index cfe8eaae..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-tr.php +++ /dev/null @@ -1,30 +0,0 @@ -<?php -/** - * Turkish PHPMailer language file: refer to English translation for definitive list - * @package PHPMailer - * @author Elçin Özel - * @author Can Yılmaz - * @author Mehmet Benlioğlu - * @author @yasinaydin - * @author Ogün Karakuş - */ - -$PHPMAILER_LANG['authenticate'] = 'SMTP Hatası: Oturum açılamadı.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP Hatası: SMTP sunucusuna bağlanılamadı.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Hatası: Veri kabul edilmedi.'; -$PHPMAILER_LANG['empty_message'] = 'Mesajın içeriği boş'; -$PHPMAILER_LANG['encoding'] = 'Bilinmeyen karakter kodlama: '; -$PHPMAILER_LANG['execute'] = 'Çalıştırılamadı: '; -$PHPMAILER_LANG['file_access'] = 'Dosyaya erişilemedi: '; -$PHPMAILER_LANG['file_open'] = 'Dosya Hatası: Dosya açılamadı: '; -$PHPMAILER_LANG['from_failed'] = 'Belirtilen adreslere gönderme başarısız: '; -$PHPMAILER_LANG['instantiate'] = 'Örnek e-posta fonksiyonu oluşturulamadı.'; -$PHPMAILER_LANG['invalid_address'] = 'Geçersiz e-posta adresi: '; -$PHPMAILER_LANG['mailer_not_supported'] = ' e-posta kütüphanesi desteklenmiyor.'; -$PHPMAILER_LANG['provide_address'] = 'En az bir alıcı e-posta adresi belirtmelisiniz.'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP Hatası: Belirtilen alıcılara ulaşılamadı: '; -$PHPMAILER_LANG['signing'] = 'İmzalama hatası: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP connect() fonksiyonu başarısız.'; -$PHPMAILER_LANG['smtp_error'] = 'SMTP sunucu hatası: '; -$PHPMAILER_LANG['variable_set'] = 'Değişken ayarlanamadı ya da sıfırlanamadı: '; -$PHPMAILER_LANG['extension_missing'] = 'Eklenti bulunamadı: '; diff --git a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-uk.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-uk.php deleted file mode 100755 index 9a7b3467..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-uk.php +++ /dev/null @@ -1,27 +0,0 @@ -<?php -/** - * Ukrainian PHPMailer language file: refer to English translation for definitive list - * @package PHPMailer - * @author Yuriy Rudyy <yrudyy@prs.net.ua> - * @fixed by Boris Yurchenko <boris@yurchenko.pp.ua> - */ - -$PHPMAILER_LANG['authenticate'] = 'Помилка SMTP: помилка авторизації.'; -$PHPMAILER_LANG['connect_host'] = 'Помилка SMTP: не вдається під\'єднатися до серверу SMTP.'; -$PHPMAILER_LANG['data_not_accepted'] = 'Помилка SMTP: дані не прийняті.'; -$PHPMAILER_LANG['encoding'] = 'Невідомий тип кодування: '; -$PHPMAILER_LANG['execute'] = 'Неможливо виконати команду: '; -$PHPMAILER_LANG['file_access'] = 'Немає доступу до файлу: '; -$PHPMAILER_LANG['file_open'] = 'Помилка файлової системи: не вдається відкрити файл: '; -$PHPMAILER_LANG['from_failed'] = 'Невірна адреса відправника: '; -$PHPMAILER_LANG['instantiate'] = 'Неможливо запустити функцію mail.'; -$PHPMAILER_LANG['provide_address'] = 'Будь-ласка, введіть хоча б одну адресу e-mail отримувача.'; -$PHPMAILER_LANG['mailer_not_supported'] = ' - поштовий сервер не підтримується.'; -$PHPMAILER_LANG['recipients_failed'] = 'Помилка SMTP: відправлення наступним отримувачам не вдалося: '; -$PHPMAILER_LANG['empty_message'] = 'Пусте тіло повідомлення'; -$PHPMAILER_LANG['invalid_address'] = 'Не відправлено, невірний формат адреси e-mail: '; -$PHPMAILER_LANG['signing'] = 'Помилка підпису: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'Помилка з\'єднання із SMTP-сервером'; -$PHPMAILER_LANG['smtp_error'] = 'Помилка SMTP-сервера: '; -$PHPMAILER_LANG['variable_set'] = 'Неможливо встановити або перевстановити змінну: '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-vi.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-vi.php deleted file mode 100755 index c60dadeb..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-vi.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php -/** - * Vietnamese (Tiếng Việt) PHPMailer language file: refer to English translation for definitive list. - * @package PHPMailer - * @author VINADES.,JSC <contact@vinades.vn> - */ - -$PHPMAILER_LANG['authenticate'] = 'Lỗi SMTP: Không thể xác thực.'; -$PHPMAILER_LANG['connect_host'] = 'Lỗi SMTP: Không thể kết nối máy chủ SMTP.'; -$PHPMAILER_LANG['data_not_accepted'] = 'Lỗi SMTP: Dữ liệu không được chấp nhận.'; -$PHPMAILER_LANG['empty_message'] = 'Không có nội dung'; -$PHPMAILER_LANG['encoding'] = 'Mã hóa không xác định: '; -$PHPMAILER_LANG['execute'] = 'Không thực hiện được: '; -$PHPMAILER_LANG['file_access'] = 'Không thể truy cập tệp tin '; -$PHPMAILER_LANG['file_open'] = 'Lỗi Tập tin: Không thể mở tệp tin: '; -$PHPMAILER_LANG['from_failed'] = 'Lỗi địa chỉ gửi đi: '; -$PHPMAILER_LANG['instantiate'] = 'Không dùng được các hàm gửi thư.'; -$PHPMAILER_LANG['invalid_address'] = 'Đại chỉ emai không đúng: '; -$PHPMAILER_LANG['mailer_not_supported'] = ' trình gửi thư không được hỗ trợ.'; -$PHPMAILER_LANG['provide_address'] = 'Bạn phải cung cấp ít nhất một địa chỉ người nhận.'; -$PHPMAILER_LANG['recipients_failed'] = 'Lỗi SMTP: lỗi địa chỉ người nhận: '; -$PHPMAILER_LANG['signing'] = 'Lỗi đăng nhập: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'Lỗi kết nối với SMTP'; -$PHPMAILER_LANG['smtp_error'] = 'Lỗi máy chủ smtp '; -$PHPMAILER_LANG['variable_set'] = 'Không thể thiết lập hoặc thiết lập lại biến: '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-zh.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-zh.php deleted file mode 100755 index 3e9e358c..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-zh.php +++ /dev/null @@ -1,28 +0,0 @@ -<?php -/** - * Traditional Chinese PHPMailer language file: refer to English translation for definitive list - * @package PHPMailer - * @author liqwei <liqwei@liqwei.com> - * @author Peter Dave Hello <@PeterDaveHello/> - * @author Jason Chiang <xcojad@gmail.com> - */ - -$PHPMAILER_LANG['authenticate'] = 'SMTP 錯誤:登入失敗。'; -$PHPMAILER_LANG['connect_host'] = 'SMTP 錯誤:無法連線到 SMTP 主機。'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP 錯誤:無法接受的資料。'; -$PHPMAILER_LANG['empty_message'] = '郵件內容為空'; -$PHPMAILER_LANG['encoding'] = '未知編碼: '; -$PHPMAILER_LANG['execute'] = '無法執行:'; -$PHPMAILER_LANG['file_access'] = '無法存取檔案:'; -$PHPMAILER_LANG['file_open'] = '檔案錯誤:無法開啟檔案:'; -$PHPMAILER_LANG['from_failed'] = '發送地址錯誤:'; -$PHPMAILER_LANG['instantiate'] = '未知函數呼叫。'; -$PHPMAILER_LANG['invalid_address'] = '因為電子郵件地址無效,無法傳送: '; -$PHPMAILER_LANG['mailer_not_supported'] = '不支援的發信客戶端。'; -$PHPMAILER_LANG['provide_address'] = '必須提供至少一個收件人地址。'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP 錯誤:以下收件人地址錯誤:'; -$PHPMAILER_LANG['signing'] = '電子簽章錯誤: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP 連線失敗'; -$PHPMAILER_LANG['smtp_error'] = 'SMTP 伺服器錯誤: '; -$PHPMAILER_LANG['variable_set'] = '無法設定或重設變數: '; -$PHPMAILER_LANG['extension_missing'] = '遺失模組 Extension: '; diff --git a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-zh_cn.php b/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-zh_cn.php deleted file mode 100755 index 37537802..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/language/phpmailer.lang-zh_cn.php +++ /dev/null @@ -1,28 +0,0 @@ -<?php -/** - * Simplified Chinese PHPMailer language file: refer to English translation for definitive list - * @package PHPMailer - * @author liqwei <liqwei@liqwei.com> - * @author young <masxy@foxmail.com> - * @author Teddysun <i@teddysun.com> - */ - -$PHPMAILER_LANG['authenticate'] = 'SMTP 错误:登录失败。'; -$PHPMAILER_LANG['connect_host'] = 'SMTP 错误:无法连接到 SMTP 主机。'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP 错误:数据不被接受。'; -$PHPMAILER_LANG['empty_message'] = '邮件正文为空。'; -$PHPMAILER_LANG['encoding'] = '未知编码:'; -$PHPMAILER_LANG['execute'] = '无法执行:'; -$PHPMAILER_LANG['file_access'] = '无法访问文件:'; -$PHPMAILER_LANG['file_open'] = '文件错误:无法打开文件:'; -$PHPMAILER_LANG['from_failed'] = '发送地址错误:'; -$PHPMAILER_LANG['instantiate'] = '未知函数调用。'; -$PHPMAILER_LANG['invalid_address'] = '发送失败,电子邮箱地址是无效的:'; -$PHPMAILER_LANG['mailer_not_supported'] = '发信客户端不被支持。'; -$PHPMAILER_LANG['provide_address'] = '必须提供至少一个收件人地址。'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP 错误:收件人地址错误:'; -$PHPMAILER_LANG['signing'] = '登录失败:'; -$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP服务器连接失败。'; -$PHPMAILER_LANG['smtp_error'] = 'SMTP服务器出错:'; -$PHPMAILER_LANG['variable_set'] = '无法设置或重置变量:'; -$PHPMAILER_LANG['extension_missing'] = '丢失模块 Extension:'; diff --git a/src/vitis/vas/rest/class/PHPMailer/src/Exception.php b/src/vitis/vas/rest/class/PHPMailer/src/Exception.php deleted file mode 100755 index 9a05dec3..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/src/Exception.php +++ /dev/null @@ -1,39 +0,0 @@ -<?php -/** - * PHPMailer Exception class. - * PHP Version 5.5. - * - * @see https://github.com/PHPMailer/PHPMailer/ The PHPMailer GitHub project - * - * @author Marcus Bointon (Synchro/coolbru) <phpmailer@synchromedia.co.uk> - * @author Jim Jagielski (jimjag) <jimjag@gmail.com> - * @author Andy Prevost (codeworxtech) <codeworxtech@users.sourceforge.net> - * @author Brent R. Matzelle (original founder) - * @copyright 2012 - 2017 Marcus Bointon - * @copyright 2010 - 2012 Jim Jagielski - * @copyright 2004 - 2009 Andy Prevost - * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License - * @note This program is distributed in the hope that it will be useful - WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. - */ - -namespace PHPMailer\PHPMailer; - -/** - * PHPMailer exception handler. - * - * @author Marcus Bointon <phpmailer@synchromedia.co.uk> - */ -class Exception extends \Exception -{ - /** - * Prettify error message output. - * - * @return string - */ - public function errorMessage() - { - return '<strong>' . htmlspecialchars($this->getMessage()) . "</strong><br />\n"; - } -} diff --git a/src/vitis/vas/rest/class/PHPMailer/src/OAuth.php b/src/vitis/vas/rest/class/PHPMailer/src/OAuth.php deleted file mode 100755 index 0bce7e34..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/src/OAuth.php +++ /dev/null @@ -1,138 +0,0 @@ -<?php -/** - * PHPMailer - PHP email creation and transport class. - * PHP Version 5.5. - * - * @see https://github.com/PHPMailer/PHPMailer/ The PHPMailer GitHub project - * - * @author Marcus Bointon (Synchro/coolbru) <phpmailer@synchromedia.co.uk> - * @author Jim Jagielski (jimjag) <jimjag@gmail.com> - * @author Andy Prevost (codeworxtech) <codeworxtech@users.sourceforge.net> - * @author Brent R. Matzelle (original founder) - * @copyright 2012 - 2015 Marcus Bointon - * @copyright 2010 - 2012 Jim Jagielski - * @copyright 2004 - 2009 Andy Prevost - * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License - * @note This program is distributed in the hope that it will be useful - WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. - */ - -namespace PHPMailer\PHPMailer; - -use League\OAuth2\Client\Grant\RefreshToken; -use League\OAuth2\Client\Provider\AbstractProvider; -use League\OAuth2\Client\Token\AccessToken; - -/** - * OAuth - OAuth2 authentication wrapper class. - * Uses the oauth2-client package from the League of Extraordinary Packages. - * - * @see http://oauth2-client.thephpleague.com - * - * @author Marcus Bointon (Synchro/coolbru) <phpmailer@synchromedia.co.uk> - */ -class OAuth -{ - /** - * An instance of the League OAuth Client Provider. - * - * @var AbstractProvider - */ - protected $provider; - - /** - * The current OAuth access token. - * - * @var AccessToken - */ - protected $oauthToken; - - /** - * The user's email address, usually used as the login ID - * and also the from address when sending email. - * - * @var string - */ - protected $oauthUserEmail = ''; - - /** - * The client secret, generated in the app definition of the service you're connecting to. - * - * @var string - */ - protected $oauthClientSecret = ''; - - /** - * The client ID, generated in the app definition of the service you're connecting to. - * - * @var string - */ - protected $oauthClientId = ''; - - /** - * The refresh token, used to obtain new AccessTokens. - * - * @var string - */ - protected $oauthRefreshToken = ''; - - /** - * OAuth constructor. - * - * @param array $options Associative array containing - * `provider`, `userName`, `clientSecret`, `clientId` and `refreshToken` elements - */ - public function __construct($options) - { - $this->provider = $options['provider']; - $this->oauthUserEmail = $options['userName']; - $this->oauthClientSecret = $options['clientSecret']; - $this->oauthClientId = $options['clientId']; - $this->oauthRefreshToken = $options['refreshToken']; - } - - /** - * Get a new RefreshToken. - * - * @return RefreshToken - */ - protected function getGrant() - { - return new RefreshToken(); - } - - /** - * Get a new AccessToken. - * - * @return AccessToken - */ - protected function getToken() - { - return $this->provider->getAccessToken( - $this->getGrant(), - ['refresh_token' => $this->oauthRefreshToken] - ); - } - - /** - * Generate a base64-encoded OAuth token. - * - * @return string - */ - public function getOauth64() - { - // Get a new token if it's not available or has expired - if (null === $this->oauthToken or $this->oauthToken->hasExpired()) { - $this->oauthToken = $this->getToken(); - } - - return base64_encode( - 'user=' . - $this->oauthUserEmail . - "\001auth=Bearer " . - $this->oauthToken . - "\001\001" - ); - } -} diff --git a/src/vitis/vas/rest/class/PHPMailer/src/PHPMailer.php b/src/vitis/vas/rest/class/PHPMailer/src/PHPMailer.php deleted file mode 100755 index eb12b171..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/src/PHPMailer.php +++ /dev/null @@ -1,4420 +0,0 @@ -<?php -/** - * PHPMailer - PHP email creation and transport class. - * PHP Version 5.5. - * - * @see https://github.com/PHPMailer/PHPMailer/ The PHPMailer GitHub project - * - * @author Marcus Bointon (Synchro/coolbru) <phpmailer@synchromedia.co.uk> - * @author Jim Jagielski (jimjag) <jimjag@gmail.com> - * @author Andy Prevost (codeworxtech) <codeworxtech@users.sourceforge.net> - * @author Brent R. Matzelle (original founder) - * @copyright 2012 - 2017 Marcus Bointon - * @copyright 2010 - 2012 Jim Jagielski - * @copyright 2004 - 2009 Andy Prevost - * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License - * @note This program is distributed in the hope that it will be useful - WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. - */ - -namespace PHPMailer\PHPMailer; - -/** - * PHPMailer - PHP email creation and transport class. - * - * @author Marcus Bointon (Synchro/coolbru) <phpmailer@synchromedia.co.uk> - * @author Jim Jagielski (jimjag) <jimjag@gmail.com> - * @author Andy Prevost (codeworxtech) <codeworxtech@users.sourceforge.net> - * @author Brent R. Matzelle (original founder) - */ -class PHPMailer -{ - /** - * Email priority. - * Options: null (default), 1 = High, 3 = Normal, 5 = low. - * When null, the header is not set at all. - * - * @var int - */ - public $Priority; - - /** - * The character set of the message. - * - * @var string - */ - public $CharSet = 'iso-8859-1'; - - /** - * The MIME Content-type of the message. - * - * @var string - */ - public $ContentType = 'text/plain'; - - /** - * The message encoding. - * Options: "8bit", "7bit", "binary", "base64", and "quoted-printable". - * - * @var string - */ - public $Encoding = '8bit'; - - /** - * Holds the most recent mailer error message. - * - * @var string - */ - public $ErrorInfo = ''; - - /** - * The From email address for the message. - * - * @var string - */ - public $From = 'root@localhost'; - - /** - * The From name of the message. - * - * @var string - */ - public $FromName = 'Root User'; - - /** - * The envelope sender of the message. - * This will usually be turned into a Return-Path header by the receiver, - * and is the address that bounces will be sent to. - * If not empty, will be passed via `-f` to sendmail or as the 'MAIL FROM' value over SMTP. - * - * @var string - */ - public $Sender = ''; - - /** - * The Subject of the message. - * - * @var string - */ - public $Subject = ''; - - /** - * An HTML or plain text message body. - * If HTML then call isHTML(true). - * - * @var string - */ - public $Body = ''; - - /** - * The plain-text message body. - * This body can be read by mail clients that do not have HTML email - * capability such as mutt & Eudora. - * Clients that can read HTML will view the normal Body. - * - * @var string - */ - public $AltBody = ''; - - /** - * An iCal message part body. - * Only supported in simple alt or alt_inline message types - * To generate iCal event structures, use classes like EasyPeasyICS or iCalcreator. - * - * @see http://sprain.ch/blog/downloads/php-class-easypeasyics-create-ical-files-with-php/ - * @see http://kigkonsult.se/iCalcreator/ - * - * @var string - */ - public $Ical = ''; - - /** - * The complete compiled MIME message body. - * - * @var string - */ - protected $MIMEBody = ''; - - /** - * The complete compiled MIME message headers. - * - * @var string - */ - protected $MIMEHeader = ''; - - /** - * Extra headers that createHeader() doesn't fold in. - * - * @var string - */ - protected $mailHeader = ''; - - /** - * Word-wrap the message body to this number of chars. - * Set to 0 to not wrap. A useful value here is 78, for RFC2822 section 2.1.1 compliance. - * - * @see static::STD_LINE_LENGTH - * - * @var int - */ - public $WordWrap = 0; - - /** - * Which method to use to send mail. - * Options: "mail", "sendmail", or "smtp". - * - * @var string - */ - public $Mailer = 'mail'; - - /** - * The path to the sendmail program. - * - * @var string - */ - public $Sendmail = '/usr/sbin/sendmail'; - - /** - * Whether mail() uses a fully sendmail-compatible MTA. - * One which supports sendmail's "-oi -f" options. - * - * @var bool - */ - public $UseSendmailOptions = true; - - /** - * The email address that a reading confirmation should be sent to, also known as read receipt. - * - * @var string - */ - public $ConfirmReadingTo = ''; - - /** - * The hostname to use in the Message-ID header and as default HELO string. - * If empty, PHPMailer attempts to find one with, in order, - * $_SERVER['SERVER_NAME'], gethostname(), php_uname('n'), or the value - * 'localhost.localdomain'. - * - * @var string - */ - public $Hostname = ''; - - /** - * An ID to be used in the Message-ID header. - * If empty, a unique id will be generated. - * You can set your own, but it must be in the format "<id@domain>", - * as defined in RFC5322 section 3.6.4 or it will be ignored. - * - * @see https://tools.ietf.org/html/rfc5322#section-3.6.4 - * - * @var string - */ - public $MessageID = ''; - - /** - * The message Date to be used in the Date header. - * If empty, the current date will be added. - * - * @var string - */ - public $MessageDate = ''; - - /** - * SMTP hosts. - * Either a single hostname or multiple semicolon-delimited hostnames. - * You can also specify a different port - * for each host by using this format: [hostname:port] - * (e.g. "smtp1.example.com:25;smtp2.example.com"). - * You can also specify encryption type, for example: - * (e.g. "tls://smtp1.example.com:587;ssl://smtp2.example.com:465"). - * Hosts will be tried in order. - * - * @var string - */ - public $Host = 'localhost'; - - /** - * The default SMTP server port. - * - * @var int - */ - public $Port = 25; - - /** - * The SMTP HELO of the message. - * Default is $Hostname. If $Hostname is empty, PHPMailer attempts to find - * one with the same method described above for $Hostname. - * - * @see PHPMailer::$Hostname - * - * @var string - */ - public $Helo = ''; - - /** - * What kind of encryption to use on the SMTP connection. - * Options: '', 'ssl' or 'tls'. - * - * @var string - */ - public $SMTPSecure = ''; - - /** - * Whether to enable TLS encryption automatically if a server supports it, - * even if `SMTPSecure` is not set to 'tls'. - * Be aware that in PHP >= 5.6 this requires that the server's certificates are valid. - * - * @var bool - */ - public $SMTPAutoTLS = true; - - /** - * Whether to use SMTP authentication. - * Uses the Username and Password properties. - * - * @see PHPMailer::$Username - * @see PHPMailer::$Password - * - * @var bool - */ - public $SMTPAuth = false; - - /** - * Options array passed to stream_context_create when connecting via SMTP. - * - * @var array - */ - public $SMTPOptions = []; - - /** - * SMTP username. - * - * @var string - */ - public $Username = ''; - - /** - * SMTP password. - * - * @var string - */ - public $Password = ''; - - /** - * SMTP auth type. - * Options are CRAM-MD5, LOGIN, PLAIN, XOAUTH2, attempted in that order if not specified. - * - * @var string - */ - public $AuthType = ''; - - /** - * An instance of the PHPMailer OAuth class. - * - * @var OAuth - */ - protected $oauth; - - /** - * The SMTP server timeout in seconds. - * Default of 5 minutes (300sec) is from RFC2821 section 4.5.3.2. - * - * @var int - */ - public $Timeout = 300; - - /** - * SMTP class debug output mode. - * Debug output level. - * Options: - * * `0` No output - * * `1` Commands - * * `2` Data and commands - * * `3` As 2 plus connection status - * * `4` Low-level data output. - * - * @see SMTP::$do_debug - * - * @var int - */ - public $SMTPDebug = 0; - - /** - * How to handle debug output. - * Options: - * * `echo` Output plain-text as-is, appropriate for CLI - * * `html` Output escaped, line breaks converted to `<br>`, appropriate for browser output - * * `error_log` Output to error log as configured in php.ini - * By default PHPMailer will use `echo` if run from a `cli` or `cli-server` SAPI, `html` otherwise. - * Alternatively, you can provide a callable expecting two params: a message string and the debug level: - * - * ```php - * $mail->Debugoutput = function($str, $level) {echo "debug level $level; message: $str";}; - * ``` - * - * Alternatively, you can pass in an instance of a PSR-3 compatible logger, though only `debug` - * level output is used: - * - * ```php - * $mail->Debugoutput = new myPsr3Logger; - * ``` - * - * @see SMTP::$Debugoutput - * - * @var string|callable|\Psr\Log\LoggerInterface - */ - public $Debugoutput = 'echo'; - - /** - * Whether to keep SMTP connection open after each message. - * If this is set to true then to close the connection - * requires an explicit call to smtpClose(). - * - * @var bool - */ - public $SMTPKeepAlive = false; - - /** - * Whether to split multiple to addresses into multiple messages - * or send them all in one message. - * Only supported in `mail` and `sendmail` transports, not in SMTP. - * - * @var bool - */ - public $SingleTo = false; - - /** - * Storage for addresses when SingleTo is enabled. - * - * @var array - */ - protected $SingleToArray = []; - - /** - * Whether to generate VERP addresses on send. - * Only applicable when sending via SMTP. - * - * @see https://en.wikipedia.org/wiki/Variable_envelope_return_path - * @see http://www.postfix.org/VERP_README.html Postfix VERP info - * - * @var bool - */ - public $do_verp = false; - - /** - * Whether to allow sending messages with an empty body. - * - * @var bool - */ - public $AllowEmpty = false; - - /** - * DKIM selector. - * - * @var string - */ - public $DKIM_selector = ''; - - /** - * DKIM Identity. - * Usually the email address used as the source of the email. - * - * @var string - */ - public $DKIM_identity = ''; - - /** - * DKIM passphrase. - * Used if your key is encrypted. - * - * @var string - */ - public $DKIM_passphrase = ''; - - /** - * DKIM signing domain name. - * - * @example 'example.com' - * - * @var string - */ - public $DKIM_domain = ''; - - /** - * DKIM private key file path. - * - * @var string - */ - public $DKIM_private = ''; - - /** - * DKIM private key string. - * - * If set, takes precedence over `$DKIM_private`. - * - * @var string - */ - public $DKIM_private_string = ''; - - /** - * Callback Action function name. - * - * The function that handles the result of the send email action. - * It is called out by send() for each email sent. - * - * Value can be any php callable: http://www.php.net/is_callable - * - * Parameters: - * bool $result result of the send action - * array $to email addresses of the recipients - * array $cc cc email addresses - * array $bcc bcc email addresses - * string $subject the subject - * string $body the email body - * string $from email address of sender - * string $extra extra information of possible use - * "smtp_transaction_id' => last smtp transaction id - * - * @var string - */ - public $action_function = ''; - - /** - * What to put in the X-Mailer header. - * Options: An empty string for PHPMailer default, whitespace for none, or a string to use. - * - * @var string - */ - public $XMailer = ''; - - /** - * Which validator to use by default when validating email addresses. - * May be a callable to inject your own validator, but there are several built-in validators. - * The default validator uses PHP's FILTER_VALIDATE_EMAIL filter_var option. - * - * @see PHPMailer::validateAddress() - * - * @var string|callable - */ - public static $validator = 'php'; - - /** - * An instance of the SMTP sender class. - * - * @var SMTP - */ - protected $smtp; - - /** - * The array of 'to' names and addresses. - * - * @var array - */ - protected $to = []; - - /** - * The array of 'cc' names and addresses. - * - * @var array - */ - protected $cc = []; - - /** - * The array of 'bcc' names and addresses. - * - * @var array - */ - protected $bcc = []; - - /** - * The array of reply-to names and addresses. - * - * @var array - */ - protected $ReplyTo = []; - - /** - * An array of all kinds of addresses. - * Includes all of $to, $cc, $bcc. - * - * @see PHPMailer::$to - * @see PHPMailer::$cc - * @see PHPMailer::$bcc - * - * @var array - */ - protected $all_recipients = []; - - /** - * An array of names and addresses queued for validation. - * In send(), valid and non duplicate entries are moved to $all_recipients - * and one of $to, $cc, or $bcc. - * This array is used only for addresses with IDN. - * - * @see PHPMailer::$to - * @see PHPMailer::$cc - * @see PHPMailer::$bcc - * @see PHPMailer::$all_recipients - * - * @var array - */ - protected $RecipientsQueue = []; - - /** - * An array of reply-to names and addresses queued for validation. - * In send(), valid and non duplicate entries are moved to $ReplyTo. - * This array is used only for addresses with IDN. - * - * @see PHPMailer::$ReplyTo - * - * @var array - */ - protected $ReplyToQueue = []; - - /** - * The array of attachments. - * - * @var array - */ - protected $attachment = []; - - /** - * The array of custom headers. - * - * @var array - */ - protected $CustomHeader = []; - - /** - * The most recent Message-ID (including angular brackets). - * - * @var string - */ - protected $lastMessageID = ''; - - /** - * The message's MIME type. - * - * @var string - */ - protected $message_type = ''; - - /** - * The array of MIME boundary strings. - * - * @var array - */ - protected $boundary = []; - - /** - * The array of available languages. - * - * @var array - */ - protected $language = []; - - /** - * The number of errors encountered. - * - * @var int - */ - protected $error_count = 0; - - /** - * The S/MIME certificate file path. - * - * @var string - */ - protected $sign_cert_file = ''; - - /** - * The S/MIME key file path. - * - * @var string - */ - protected $sign_key_file = ''; - - /** - * The optional S/MIME extra certificates ("CA Chain") file path. - * - * @var string - */ - protected $sign_extracerts_file = ''; - - /** - * The S/MIME password for the key. - * Used only if the key is encrypted. - * - * @var string - */ - protected $sign_key_pass = ''; - - /** - * Whether to throw exceptions for errors. - * - * @var bool - */ - protected $exceptions = false; - - /** - * Unique ID used for message ID and boundaries. - * - * @var string - */ - protected $uniqueid = ''; - - /** - * The PHPMailer Version number. - * - * @var string - */ - const VERSION = '6.0.3'; - - /** - * Error severity: message only, continue processing. - * - * @var int - */ - const STOP_MESSAGE = 0; - - /** - * Error severity: message, likely ok to continue processing. - * - * @var int - */ - const STOP_CONTINUE = 1; - - /** - * Error severity: message, plus full stop, critical error reached. - * - * @var int - */ - const STOP_CRITICAL = 2; - - /** - * SMTP RFC standard line ending. - * - * @var string - */ - protected static $LE = "\r\n"; - - /** - * The maximum line length allowed by RFC 2822 section 2.1.1. - * - * @var int - */ - const MAX_LINE_LENGTH = 998; - - /** - * The lower maximum line length allowed by RFC 2822 section 2.1.1. - * This length does NOT include the line break - * 76 means that lines will be 77 or 78 chars depending on whether - * the line break format is LF or CRLF; both are valid. - * - * @var int - */ - const STD_LINE_LENGTH = 76; - - /** - * Constructor. - * - * @param bool $exceptions Should we throw external exceptions? - */ - public function __construct($exceptions = null) - { - if (null !== $exceptions) { - $this->exceptions = (bool) $exceptions; - } - //Pick an appropriate debug output format automatically - $this->Debugoutput = (strpos(PHP_SAPI, 'cli') !== false ? 'echo' : 'html'); - } - - /** - * Destructor. - */ - public function __destruct() - { - //Close any open SMTP connection nicely - $this->smtpClose(); - } - - /** - * Call mail() in a safe_mode-aware fashion. - * Also, unless sendmail_path points to sendmail (or something that - * claims to be sendmail), don't pass params (not a perfect fix, - * but it will do). - * - * @param string $to To - * @param string $subject Subject - * @param string $body Message Body - * @param string $header Additional Header(s) - * @param string|null $params Params - * - * @return bool - */ - private function mailPassthru($to, $subject, $body, $header, $params) - { - //Check overloading of mail function to avoid double-encoding - if (ini_get('mbstring.func_overload') & 1) { - $subject = $this->secureHeader($subject); - } else { - $subject = $this->encodeHeader($this->secureHeader($subject)); - } - //Calling mail() with null params breaks - if (!$this->UseSendmailOptions or null === $params) { - $result = @mail($to, $subject, $body, $header); - } else { - $result = @mail($to, $subject, $body, $header, $params); - } - - return $result; - } - - /** - * Output debugging info via user-defined method. - * Only generates output if SMTP debug output is enabled (@see SMTP::$do_debug). - * - * @see PHPMailer::$Debugoutput - * @see PHPMailer::$SMTPDebug - * - * @param string $str - */ - protected function edebug($str) - { - if ($this->SMTPDebug <= 0) { - return; - } - //Is this a PSR-3 logger? - if ($this->Debugoutput instanceof \Psr\Log\LoggerInterface) { - $this->Debugoutput->debug($str); - - return; - } - //Avoid clash with built-in function names - if (!in_array($this->Debugoutput, ['error_log', 'html', 'echo']) and is_callable($this->Debugoutput)) { - call_user_func($this->Debugoutput, $str, $this->SMTPDebug); - - return; - } - switch ($this->Debugoutput) { - case 'error_log': - //Don't output, just log - error_log($str); - break; - case 'html': - //Cleans up output a bit for a better looking, HTML-safe output - echo htmlentities( - preg_replace('/[\r\n]+/', '', $str), - ENT_QUOTES, - 'UTF-8' - ), "<br>\n"; - break; - case 'echo': - default: - //Normalize line breaks - $str = preg_replace('/\r\n|\r/ms', "\n", $str); - echo gmdate('Y-m-d H:i:s'), - "\t", - //Trim trailing space - trim( - //Indent for readability, except for trailing break - str_replace( - "\n", - "\n \t ", - trim($str) - ) - ), - "\n"; - } - } - - /** - * Sets message type to HTML or plain. - * - * @param bool $isHtml True for HTML mode - */ - public function isHTML($isHtml = true) - { - if ($isHtml) { - $this->ContentType = 'text/html'; - } else { - $this->ContentType = 'text/plain'; - } - } - - /** - * Send messages using SMTP. - */ - public function isSMTP() - { - $this->Mailer = 'smtp'; - } - - /** - * Send messages using PHP's mail() function. - */ - public function isMail() - { - $this->Mailer = 'mail'; - } - - /** - * Send messages using $Sendmail. - */ - public function isSendmail() - { - $ini_sendmail_path = ini_get('sendmail_path'); - - if (false === stripos($ini_sendmail_path, 'sendmail')) { - $this->Sendmail = '/usr/sbin/sendmail'; - } else { - $this->Sendmail = $ini_sendmail_path; - } - $this->Mailer = 'sendmail'; - } - - /** - * Send messages using qmail. - */ - public function isQmail() - { - $ini_sendmail_path = ini_get('sendmail_path'); - - if (false === stripos($ini_sendmail_path, 'qmail')) { - $this->Sendmail = '/var/qmail/bin/qmail-inject'; - } else { - $this->Sendmail = $ini_sendmail_path; - } - $this->Mailer = 'qmail'; - } - - /** - * Add a "To" address. - * - * @param string $address The email address to send to - * @param string $name - * - * @return bool true on success, false if address already used or invalid in some way - */ - public function addAddress($address, $name = '') - { - return $this->addOrEnqueueAnAddress('to', $address, $name); - } - - /** - * Add a "CC" address. - * - * @param string $address The email address to send to - * @param string $name - * - * @return bool true on success, false if address already used or invalid in some way - */ - public function addCC($address, $name = '') - { - return $this->addOrEnqueueAnAddress('cc', $address, $name); - } - - /** - * Add a "BCC" address. - * - * @param string $address The email address to send to - * @param string $name - * - * @return bool true on success, false if address already used or invalid in some way - */ - public function addBCC($address, $name = '') - { - return $this->addOrEnqueueAnAddress('bcc', $address, $name); - } - - /** - * Add a "Reply-To" address. - * - * @param string $address The email address to reply to - * @param string $name - * - * @return bool true on success, false if address already used or invalid in some way - */ - public function addReplyTo($address, $name = '') - { - return $this->addOrEnqueueAnAddress('Reply-To', $address, $name); - } - - /** - * Add an address to one of the recipient arrays or to the ReplyTo array. Because PHPMailer - * can't validate addresses with an IDN without knowing the PHPMailer::$CharSet (that can still - * be modified after calling this function), addition of such addresses is delayed until send(). - * Addresses that have been added already return false, but do not throw exceptions. - * - * @param string $kind One of 'to', 'cc', 'bcc', or 'ReplyTo' - * @param string $address The email address to send, resp. to reply to - * @param string $name - * - * @throws Exception - * - * @return bool true on success, false if address already used or invalid in some way - */ - protected function addOrEnqueueAnAddress($kind, $address, $name) - { - $address = trim($address); - $name = trim(preg_replace('/[\r\n]+/', '', $name)); //Strip breaks and trim - $pos = strrpos($address, '@'); - if (false === $pos) { - // At-sign is missing. - $error_message = sprintf('%s (%s): %s', - $this->lang('invalid_address'), - $kind, - $address); - $this->setError($error_message); - $this->edebug($error_message); - if ($this->exceptions) { - throw new Exception($error_message); - } - - return false; - } - $params = [$kind, $address, $name]; - // Enqueue addresses with IDN until we know the PHPMailer::$CharSet. - if ($this->has8bitChars(substr($address, ++$pos)) and static::idnSupported()) { - if ('Reply-To' != $kind) { - if (!array_key_exists($address, $this->RecipientsQueue)) { - $this->RecipientsQueue[$address] = $params; - - return true; - } - } else { - if (!array_key_exists($address, $this->ReplyToQueue)) { - $this->ReplyToQueue[$address] = $params; - - return true; - } - } - - return false; - } - - // Immediately add standard addresses without IDN. - return call_user_func_array([$this, 'addAnAddress'], $params); - } - - /** - * Add an address to one of the recipient arrays or to the ReplyTo array. - * Addresses that have been added already return false, but do not throw exceptions. - * - * @param string $kind One of 'to', 'cc', 'bcc', or 'ReplyTo' - * @param string $address The email address to send, resp. to reply to - * @param string $name - * - * @throws Exception - * - * @return bool true on success, false if address already used or invalid in some way - */ - protected function addAnAddress($kind, $address, $name = '') - { - if (!in_array($kind, ['to', 'cc', 'bcc', 'Reply-To'])) { - $error_message = sprintf('%s: %s', - $this->lang('Invalid recipient kind'), - $kind); - $this->setError($error_message); - $this->edebug($error_message); - if ($this->exceptions) { - throw new Exception($error_message); - } - - return false; - } - if (!static::validateAddress($address)) { - $error_message = sprintf('%s (%s): %s', - $this->lang('invalid_address'), - $kind, - $address); - $this->setError($error_message); - $this->edebug($error_message); - if ($this->exceptions) { - throw new Exception($error_message); - } - - return false; - } - if ('Reply-To' != $kind) { - if (!array_key_exists(strtolower($address), $this->all_recipients)) { - $this->{$kind}[] = [$address, $name]; - $this->all_recipients[strtolower($address)] = true; - - return true; - } - } else { - if (!array_key_exists(strtolower($address), $this->ReplyTo)) { - $this->ReplyTo[strtolower($address)] = [$address, $name]; - - return true; - } - } - - return false; - } - - /** - * Parse and validate a string containing one or more RFC822-style comma-separated email addresses - * of the form "display name <address>" into an array of name/address pairs. - * Uses the imap_rfc822_parse_adrlist function if the IMAP extension is available. - * Note that quotes in the name part are removed. - * - * @see http://www.andrew.cmu.edu/user/agreen1/testing/mrbs/web/Mail/RFC822.php A more careful implementation - * - * @param string $addrstr The address list string - * @param bool $useimap Whether to use the IMAP extension to parse the list - * - * @return array - */ - public static function parseAddresses($addrstr, $useimap = true) - { - $addresses = []; - if ($useimap and function_exists('imap_rfc822_parse_adrlist')) { - //Use this built-in parser if it's available - $list = imap_rfc822_parse_adrlist($addrstr, ''); - foreach ($list as $address) { - if ('.SYNTAX-ERROR.' != $address->host) { - if (static::validateAddress($address->mailbox . '@' . $address->host)) { - $addresses[] = [ - 'name' => (property_exists($address, 'personal') ? $address->personal : ''), - 'address' => $address->mailbox . '@' . $address->host, - ]; - } - } - } - } else { - //Use this simpler parser - $list = explode(',', $addrstr); - foreach ($list as $address) { - $address = trim($address); - //Is there a separate name part? - if (strpos($address, '<') === false) { - //No separate name, just use the whole thing - if (static::validateAddress($address)) { - $addresses[] = [ - 'name' => '', - 'address' => $address, - ]; - } - } else { - list($name, $email) = explode('<', $address); - $email = trim(str_replace('>', '', $email)); - if (static::validateAddress($email)) { - $addresses[] = [ - 'name' => trim(str_replace(['"', "'"], '', $name)), - 'address' => $email, - ]; - } - } - } - } - - return $addresses; - } - - /** - * Set the From and FromName properties. - * - * @param string $address - * @param string $name - * @param bool $auto Whether to also set the Sender address, defaults to true - * - * @throws Exception - * - * @return bool - */ - public function setFrom($address, $name = '', $auto = true) - { - $address = trim($address); - $name = trim(preg_replace('/[\r\n]+/', '', $name)); //Strip breaks and trim - // Don't validate now addresses with IDN. Will be done in send(). - $pos = strrpos($address, '@'); - if (false === $pos or - (!$this->has8bitChars(substr($address, ++$pos)) or !static::idnSupported()) and - !static::validateAddress($address)) { - $error_message = sprintf('%s (From): %s', - $this->lang('invalid_address'), - $address); - $this->setError($error_message); - $this->edebug($error_message); - if ($this->exceptions) { - throw new Exception($error_message); - } - - return false; - } - $this->From = $address; - $this->FromName = $name; - if ($auto) { - if (empty($this->Sender)) { - $this->Sender = $address; - } - } - - return true; - } - - /** - * Return the Message-ID header of the last email. - * Technically this is the value from the last time the headers were created, - * but it's also the message ID of the last sent message except in - * pathological cases. - * - * @return string - */ - public function getLastMessageID() - { - return $this->lastMessageID; - } - - /** - * Check that a string looks like an email address. - * Validation patterns supported: - * * `auto` Pick best pattern automatically; - * * `pcre8` Use the squiloople.com pattern, requires PCRE > 8.0; - * * `pcre` Use old PCRE implementation; - * * `php` Use PHP built-in FILTER_VALIDATE_EMAIL; - * * `html5` Use the pattern given by the HTML5 spec for 'email' type form input elements. - * * `noregex` Don't use a regex: super fast, really dumb. - * Alternatively you may pass in a callable to inject your own validator, for example: - * - * ```php - * PHPMailer::validateAddress('user@example.com', function($address) { - * return (strpos($address, '@') !== false); - * }); - * ``` - * - * You can also set the PHPMailer::$validator static to a callable, allowing built-in methods to use your validator. - * - * @param string $address The email address to check - * @param string|callable $patternselect Which pattern to use - * - * @return bool - */ - public static function validateAddress($address, $patternselect = null) - { - if (null === $patternselect) { - $patternselect = static::$validator; - } - if (is_callable($patternselect)) { - return call_user_func($patternselect, $address); - } - //Reject line breaks in addresses; it's valid RFC5322, but not RFC5321 - if (strpos($address, "\n") !== false or strpos($address, "\r") !== false) { - return false; - } - switch ($patternselect) { - case 'pcre': //Kept for BC - case 'pcre8': - /* - * A more complex and more permissive version of the RFC5322 regex on which FILTER_VALIDATE_EMAIL - * is based. - * In addition to the addresses allowed by filter_var, also permits: - * * dotless domains: `a@b` - * * comments: `1234 @ local(blah) .machine .example` - * * quoted elements: `'"test blah"@example.org'` - * * numeric TLDs: `a@b.123` - * * unbracketed IPv4 literals: `a@192.168.0.1` - * * IPv6 literals: 'first.last@[IPv6:a1::]' - * Not all of these will necessarily work for sending! - * - * @see http://squiloople.com/2009/12/20/email-address-validation/ - * @copyright 2009-2010 Michael Rushton - * Feel free to use and redistribute this code. But please keep this copyright notice. - */ - return (bool) preg_match( - '/^(?!(?>(?1)"?(?>\\\[ -~]|[^"])"?(?1)){255,})(?!(?>(?1)"?(?>\\\[ -~]|[^"])"?(?1)){65,}@)' . - '((?>(?>(?>((?>(?>(?>\x0D\x0A)?[\t ])+|(?>[\t ]*\x0D\x0A)?[\t ]+)?)(\((?>(?2)' . - '(?>[\x01-\x08\x0B\x0C\x0E-\'*-\[\]-\x7F]|\\\[\x00-\x7F]|(?3)))*(?2)\)))+(?2))|(?2))?)' . - '([!#-\'*+\/-9=?^-~-]+|"(?>(?2)(?>[\x01-\x08\x0B\x0C\x0E-!#-\[\]-\x7F]|\\\[\x00-\x7F]))*' . - '(?2)")(?>(?1)\.(?1)(?4))*(?1)@(?!(?1)[a-z0-9-]{64,})(?1)(?>([a-z0-9](?>[a-z0-9-]*[a-z0-9])?)' . - '(?>(?1)\.(?!(?1)[a-z0-9-]{64,})(?1)(?5)){0,126}|\[(?:(?>IPv6:(?>([a-f0-9]{1,4})(?>:(?6)){7}' . - '|(?!(?:.*[a-f0-9][:\]]){8,})((?6)(?>:(?6)){0,6})?::(?7)?))|(?>(?>IPv6:(?>(?6)(?>:(?6)){5}:' . - '|(?!(?:.*[a-f0-9]:){6,})(?8)?::(?>((?6)(?>:(?6)){0,4}):)?))?(25[0-5]|2[0-4][0-9]|1[0-9]{2}' . - '|[1-9]?[0-9])(?>\.(?9)){3}))\])(?1)$/isD', - $address - ); - case 'html5': - /* - * This is the pattern used in the HTML5 spec for validation of 'email' type form input elements. - * - * @see http://www.whatwg.org/specs/web-apps/current-work/#e-mail-state-(type=email) - */ - return (bool) preg_match( - '/^[a-zA-Z0-9.!#$%&\'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}' . - '[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/sD', - $address - ); - case 'php': - default: - return (bool) filter_var($address, FILTER_VALIDATE_EMAIL); - } - } - - /** - * Tells whether IDNs (Internationalized Domain Names) are supported or not. This requires the - * `intl` and `mbstring` PHP extensions. - * - * @return bool `true` if required functions for IDN support are present - */ - public static function idnSupported() - { - return function_exists('idn_to_ascii') and function_exists('mb_convert_encoding'); - } - - /** - * Converts IDN in given email address to its ASCII form, also known as punycode, if possible. - * Important: Address must be passed in same encoding as currently set in PHPMailer::$CharSet. - * This function silently returns unmodified address if: - * - No conversion is necessary (i.e. domain name is not an IDN, or is already in ASCII form) - * - Conversion to punycode is impossible (e.g. required PHP functions are not available) - * or fails for any reason (e.g. domain contains characters not allowed in an IDN). - * - * @see PHPMailer::$CharSet - * - * @param string $address The email address to convert - * - * @return string The encoded address in ASCII form - */ - public function punyencodeAddress($address) - { - // Verify we have required functions, CharSet, and at-sign. - $pos = strrpos($address, '@'); - if (static::idnSupported() and - !empty($this->CharSet) and - false !== $pos - ) { - $domain = substr($address, ++$pos); - // Verify CharSet string is a valid one, and domain properly encoded in this CharSet. - if ($this->has8bitChars($domain) and @mb_check_encoding($domain, $this->CharSet)) { - $domain = mb_convert_encoding($domain, 'UTF-8', $this->CharSet); - //Ignore IDE complaints about this line - method signature changed in PHP 5.4 - $errorcode = 0; - $punycode = idn_to_ascii($domain, $errorcode, INTL_IDNA_VARIANT_UTS46); - if (false !== $punycode) { - return substr($address, 0, $pos) . $punycode; - } - } - } - - return $address; - } - - /** - * Create a message and send it. - * Uses the sending method specified by $Mailer. - * - * @throws Exception - * - * @return bool false on error - See the ErrorInfo property for details of the error - */ - public function send() - { - try { - if (!$this->preSend()) { - return false; - } - - return $this->postSend(); - } catch (Exception $exc) { - $this->mailHeader = ''; - $this->setError($exc->getMessage()); - if ($this->exceptions) { - throw $exc; - } - - return false; - } - } - - /** - * Prepare a message for sending. - * - * @throws Exception - * - * @return bool - */ - public function preSend() - { - if ('smtp' == $this->Mailer or - ('mail' == $this->Mailer and stripos(PHP_OS, 'WIN') === 0) - ) { - //SMTP mandates RFC-compliant line endings - //and it's also used with mail() on Windows - static::setLE("\r\n"); - } else { - //Maintain backward compatibility with legacy Linux command line mailers - static::setLE(PHP_EOL); - } - //Check for buggy PHP versions that add a header with an incorrect line break - if (ini_get('mail.add_x_header') == 1 - and 'mail' == $this->Mailer - and stripos(PHP_OS, 'WIN') === 0 - and ((version_compare(PHP_VERSION, '7.0.0', '>=') - and version_compare(PHP_VERSION, '7.0.17', '<')) - or (version_compare(PHP_VERSION, '7.1.0', '>=') - and version_compare(PHP_VERSION, '7.1.3', '<'))) - ) { - trigger_error( - 'Your version of PHP is affected by a bug that may result in corrupted messages.' . - ' To fix it, switch to sending using SMTP, disable the mail.add_x_header option in' . - ' your php.ini, switch to MacOS or Linux, or upgrade your PHP to version 7.0.17+ or 7.1.3+.', - E_USER_WARNING - ); - } - - try { - $this->error_count = 0; // Reset errors - $this->mailHeader = ''; - - // Dequeue recipient and Reply-To addresses with IDN - foreach (array_merge($this->RecipientsQueue, $this->ReplyToQueue) as $params) { - $params[1] = $this->punyencodeAddress($params[1]); - call_user_func_array([$this, 'addAnAddress'], $params); - } - if (count($this->to) + count($this->cc) + count($this->bcc) < 1) { - throw new Exception($this->lang('provide_address'), self::STOP_CRITICAL); - } - - // Validate From, Sender, and ConfirmReadingTo addresses - foreach (['From', 'Sender', 'ConfirmReadingTo'] as $address_kind) { - $this->$address_kind = trim($this->$address_kind); - if (empty($this->$address_kind)) { - continue; - } - $this->$address_kind = $this->punyencodeAddress($this->$address_kind); - if (!static::validateAddress($this->$address_kind)) { - $error_message = sprintf('%s (%s): %s', - $this->lang('invalid_address'), - $address_kind, - $this->$address_kind); - $this->setError($error_message); - $this->edebug($error_message); - if ($this->exceptions) { - throw new Exception($error_message); - } - - return false; - } - } - - // Set whether the message is multipart/alternative - if ($this->alternativeExists()) { - $this->ContentType = 'multipart/alternative'; - } - - $this->setMessageType(); - // Refuse to send an empty message unless we are specifically allowing it - if (!$this->AllowEmpty and empty($this->Body)) { - throw new Exception($this->lang('empty_message'), self::STOP_CRITICAL); - } - - //Trim subject consistently - $this->Subject = trim($this->Subject); - // Create body before headers in case body makes changes to headers (e.g. altering transfer encoding) - $this->MIMEHeader = ''; - $this->MIMEBody = $this->createBody(); - // createBody may have added some headers, so retain them - $tempheaders = $this->MIMEHeader; - $this->MIMEHeader = $this->createHeader(); - $this->MIMEHeader .= $tempheaders; - - // To capture the complete message when using mail(), create - // an extra header list which createHeader() doesn't fold in - if ('mail' == $this->Mailer) { - if (count($this->to) > 0) { - $this->mailHeader .= $this->addrAppend('To', $this->to); - } else { - $this->mailHeader .= $this->headerLine('To', 'undisclosed-recipients:;'); - } - $this->mailHeader .= $this->headerLine( - 'Subject', - $this->encodeHeader($this->secureHeader($this->Subject)) - ); - } - - // Sign with DKIM if enabled - if (!empty($this->DKIM_domain) - and !empty($this->DKIM_selector) - and (!empty($this->DKIM_private_string) - or (!empty($this->DKIM_private) and file_exists($this->DKIM_private)) - ) - ) { - $header_dkim = $this->DKIM_Add( - $this->MIMEHeader . $this->mailHeader, - $this->encodeHeader($this->secureHeader($this->Subject)), - $this->MIMEBody - ); - $this->MIMEHeader = rtrim($this->MIMEHeader, "\r\n ") . static::$LE . - static::normalizeBreaks($header_dkim) . static::$LE; - } - - return true; - } catch (Exception $exc) { - $this->setError($exc->getMessage()); - if ($this->exceptions) { - throw $exc; - } - - return false; - } - } - - /** - * Actually send a message via the selected mechanism. - * - * @throws Exception - * - * @return bool - */ - public function postSend() - { - try { - // Choose the mailer and send through it - switch ($this->Mailer) { - case 'sendmail': - case 'qmail': - return $this->sendmailSend($this->MIMEHeader, $this->MIMEBody); - case 'smtp': - return $this->smtpSend($this->MIMEHeader, $this->MIMEBody); - case 'mail': - return $this->mailSend($this->MIMEHeader, $this->MIMEBody); - default: - $sendMethod = $this->Mailer . 'Send'; - if (method_exists($this, $sendMethod)) { - return $this->$sendMethod($this->MIMEHeader, $this->MIMEBody); - } - - return $this->mailSend($this->MIMEHeader, $this->MIMEBody); - } - } catch (Exception $exc) { - $this->setError($exc->getMessage()); - $this->edebug($exc->getMessage()); - if ($this->exceptions) { - throw $exc; - } - } - - return false; - } - - /** - * Send mail using the $Sendmail program. - * - * @see PHPMailer::$Sendmail - * - * @param string $header The message headers - * @param string $body The message body - * - * @throws Exception - * - * @return bool - */ - protected function sendmailSend($header, $body) - { - // CVE-2016-10033, CVE-2016-10045: Don't pass -f if characters will be escaped. - if (!empty($this->Sender) and self::isShellSafe($this->Sender)) { - if ('qmail' == $this->Mailer) { - $sendmailFmt = '%s -f%s'; - } else { - $sendmailFmt = '%s -oi -f%s -t'; - } - } else { - if ('qmail' == $this->Mailer) { - $sendmailFmt = '%s'; - } else { - $sendmailFmt = '%s -oi -t'; - } - } - - $sendmail = sprintf($sendmailFmt, escapeshellcmd($this->Sendmail), $this->Sender); - - if ($this->SingleTo) { - foreach ($this->SingleToArray as $toAddr) { - $mail = @popen($sendmail, 'w'); - if (!$mail) { - throw new Exception($this->lang('execute') . $this->Sendmail, self::STOP_CRITICAL); - } - fwrite($mail, 'To: ' . $toAddr . "\n"); - fwrite($mail, $header); - fwrite($mail, $body); - $result = pclose($mail); - $this->doCallback( - ($result == 0), - [$toAddr], - $this->cc, - $this->bcc, - $this->Subject, - $body, - $this->From, - [] - ); - if (0 !== $result) { - throw new Exception($this->lang('execute') . $this->Sendmail, self::STOP_CRITICAL); - } - } - } else { - $mail = @popen($sendmail, 'w'); - if (!$mail) { - throw new Exception($this->lang('execute') . $this->Sendmail, self::STOP_CRITICAL); - } - fwrite($mail, $header); - fwrite($mail, $body); - $result = pclose($mail); - $this->doCallback( - ($result == 0), - $this->to, - $this->cc, - $this->bcc, - $this->Subject, - $body, - $this->From, - [] - ); - if (0 !== $result) { - throw new Exception($this->lang('execute') . $this->Sendmail, self::STOP_CRITICAL); - } - } - - return true; - } - - /** - * Fix CVE-2016-10033 and CVE-2016-10045 by disallowing potentially unsafe shell characters. - * Note that escapeshellarg and escapeshellcmd are inadequate for our purposes, especially on Windows. - * - * @see https://github.com/PHPMailer/PHPMailer/issues/924 CVE-2016-10045 bug report - * - * @param string $string The string to be validated - * - * @return bool - */ - protected static function isShellSafe($string) - { - // Future-proof - if (escapeshellcmd($string) !== $string - or !in_array(escapeshellarg($string), ["'$string'", "\"$string\""]) - ) { - return false; - } - - $length = strlen($string); - - for ($i = 0; $i < $length; ++$i) { - $c = $string[$i]; - - // All other characters have a special meaning in at least one common shell, including = and +. - // Full stop (.) has a special meaning in cmd.exe, but its impact should be negligible here. - // Note that this does permit non-Latin alphanumeric characters based on the current locale. - if (!ctype_alnum($c) && strpos('@_-.', $c) === false) { - return false; - } - } - - return true; - } - - /** - * Send mail using the PHP mail() function. - * - * @see http://www.php.net/manual/en/book.mail.php - * - * @param string $header The message headers - * @param string $body The message body - * - * @throws Exception - * - * @return bool - */ - protected function mailSend($header, $body) - { - $toArr = []; - foreach ($this->to as $toaddr) { - $toArr[] = $this->addrFormat($toaddr); - } - $to = implode(', ', $toArr); - - $params = null; - //This sets the SMTP envelope sender which gets turned into a return-path header by the receiver - if (!empty($this->Sender) and static::validateAddress($this->Sender)) { - //A space after `-f` is optional, but there is a long history of its presence - //causing problems, so we don't use one - //Exim docs: http://www.exim.org/exim-html-current/doc/html/spec_html/ch-the_exim_command_line.html - //Sendmail docs: http://www.sendmail.org/~ca/email/man/sendmail.html - //Qmail docs: http://www.qmail.org/man/man8/qmail-inject.html - //Example problem: https://www.drupal.org/node/1057954 - // CVE-2016-10033, CVE-2016-10045: Don't pass -f if characters will be escaped. - if (self::isShellSafe($this->Sender)) { - $params = sprintf('-f%s', $this->Sender); - } - } - if (!empty($this->Sender) and static::validateAddress($this->Sender)) { - $old_from = ini_get('sendmail_from'); - ini_set('sendmail_from', $this->Sender); - } - $result = false; - if ($this->SingleTo and count($toArr) > 1) { - foreach ($toArr as $toAddr) { - $result = $this->mailPassthru($toAddr, $this->Subject, $body, $header, $params); - $this->doCallback($result, [$toAddr], $this->cc, $this->bcc, $this->Subject, $body, $this->From, []); - } - } else { - $result = $this->mailPassthru($to, $this->Subject, $body, $header, $params); - $this->doCallback($result, $this->to, $this->cc, $this->bcc, $this->Subject, $body, $this->From, []); - } - if (isset($old_from)) { - ini_set('sendmail_from', $old_from); - } - if (!$result) { - throw new Exception($this->lang('instantiate'), self::STOP_CRITICAL); - } - - return true; - } - - /** - * Get an instance to use for SMTP operations. - * Override this function to load your own SMTP implementation, - * or set one with setSMTPInstance. - * - * @return SMTP - */ - public function getSMTPInstance() - { - if (!is_object($this->smtp)) { - $this->smtp = new SMTP(); - } - - return $this->smtp; - } - - /** - * Provide an instance to use for SMTP operations. - * - * @param SMTP $smtp - * - * @return SMTP - */ - public function setSMTPInstance(SMTP $smtp) - { - $this->smtp = $smtp; - - return $this->smtp; - } - - /** - * Send mail via SMTP. - * Returns false if there is a bad MAIL FROM, RCPT, or DATA input. - * - * @see PHPMailer::setSMTPInstance() to use a different class. - * - * @uses \PHPMailer\PHPMailer\SMTP - * - * @param string $header The message headers - * @param string $body The message body - * - * @throws Exception - * - * @return bool - */ - protected function smtpSend($header, $body) - { - $bad_rcpt = []; - if (!$this->smtpConnect($this->SMTPOptions)) { - throw new Exception($this->lang('smtp_connect_failed'), self::STOP_CRITICAL); - } - //Sender already validated in preSend() - if ('' == $this->Sender) { - $smtp_from = $this->From; - } else { - $smtp_from = $this->Sender; - } - if (!$this->smtp->mail($smtp_from)) { - $this->setError($this->lang('from_failed') . $smtp_from . ' : ' . implode(',', $this->smtp->getError())); - throw new Exception($this->ErrorInfo, self::STOP_CRITICAL); - } - - $callbacks = []; - // Attempt to send to all recipients - foreach ([$this->to, $this->cc, $this->bcc] as $togroup) { - foreach ($togroup as $to) { - if (!$this->smtp->recipient($to[0])) { - $error = $this->smtp->getError(); - $bad_rcpt[] = ['to' => $to[0], 'error' => $error['detail']]; - $isSent = false; - } else { - $isSent = true; - } - - $callbacks[] = ['issent'=>$isSent, 'to'=>$to[0]]; - } - } - - // Only send the DATA command if we have viable recipients - if ((count($this->all_recipients) > count($bad_rcpt)) and !$this->smtp->data($header . $body)) { - throw new Exception($this->lang('data_not_accepted'), self::STOP_CRITICAL); - } - - $smtp_transaction_id = $this->smtp->getLastTransactionID(); - - if ($this->SMTPKeepAlive) { - $this->smtp->reset(); - } else { - $this->smtp->quit(); - $this->smtp->close(); - } - - foreach ($callbacks as $cb) { - $this->doCallback( - $cb['issent'], - [$cb['to']], - [], - [], - $this->Subject, - $body, - $this->From, - ['smtp_transaction_id' => $smtp_transaction_id] - ); - } - - //Create error message for any bad addresses - if (count($bad_rcpt) > 0) { - $errstr = ''; - foreach ($bad_rcpt as $bad) { - $errstr .= $bad['to'] . ': ' . $bad['error']; - } - throw new Exception( - $this->lang('recipients_failed') . $errstr, - self::STOP_CONTINUE - ); - } - - return true; - } - - /** - * Initiate a connection to an SMTP server. - * Returns false if the operation failed. - * - * @param array $options An array of options compatible with stream_context_create() - * - * @throws Exception - * - * @uses \PHPMailer\PHPMailer\SMTP - * - * @return bool - */ - public function smtpConnect($options = null) - { - if (null === $this->smtp) { - $this->smtp = $this->getSMTPInstance(); - } - - //If no options are provided, use whatever is set in the instance - if (null === $options) { - $options = $this->SMTPOptions; - } - - // Already connected? - if ($this->smtp->connected()) { - return true; - } - - $this->smtp->setTimeout($this->Timeout); - $this->smtp->setDebugLevel($this->SMTPDebug); - $this->smtp->setDebugOutput($this->Debugoutput); - $this->smtp->setVerp($this->do_verp); - $hosts = explode(';', $this->Host); - $lastexception = null; - - foreach ($hosts as $hostentry) { - $hostinfo = []; - if (!preg_match( - '/^((ssl|tls):\/\/)*([a-zA-Z0-9\.-]*|\[[a-fA-F0-9:]+\]):?([0-9]*)$/', - trim($hostentry), - $hostinfo - )) { - static::edebug($this->lang('connect_host') . ' ' . $hostentry); - // Not a valid host entry - continue; - } - // $hostinfo[2]: optional ssl or tls prefix - // $hostinfo[3]: the hostname - // $hostinfo[4]: optional port number - // The host string prefix can temporarily override the current setting for SMTPSecure - // If it's not specified, the default value is used - - //Check the host name is a valid name or IP address before trying to use it - if (!static::isValidHost($hostinfo[3])) { - static::edebug($this->lang('connect_host') . ' ' . $hostentry); - continue; - } - $prefix = ''; - $secure = $this->SMTPSecure; - $tls = ('tls' == $this->SMTPSecure); - if ('ssl' == $hostinfo[2] or ('' == $hostinfo[2] and 'ssl' == $this->SMTPSecure)) { - $prefix = 'ssl://'; - $tls = false; // Can't have SSL and TLS at the same time - $secure = 'ssl'; - } elseif ('tls' == $hostinfo[2]) { - $tls = true; - // tls doesn't use a prefix - $secure = 'tls'; - } - //Do we need the OpenSSL extension? - $sslext = defined('OPENSSL_ALGO_SHA256'); - if ('tls' === $secure or 'ssl' === $secure) { - //Check for an OpenSSL constant rather than using extension_loaded, which is sometimes disabled - if (!$sslext) { - throw new Exception($this->lang('extension_missing') . 'openssl', self::STOP_CRITICAL); - } - } - $host = $hostinfo[3]; - $port = $this->Port; - $tport = (int) $hostinfo[4]; - if ($tport > 0 and $tport < 65536) { - $port = $tport; - } - if ($this->smtp->connect($prefix . $host, $port, $this->Timeout, $options)) { - try { - if ($this->Helo) { - $hello = $this->Helo; - } else { - $hello = $this->serverHostname(); - } - $this->smtp->hello($hello); - //Automatically enable TLS encryption if: - // * it's not disabled - // * we have openssl extension - // * we are not already using SSL - // * the server offers STARTTLS - if ($this->SMTPAutoTLS and $sslext and 'ssl' != $secure and $this->smtp->getServerExt('STARTTLS')) { - $tls = true; - } - if ($tls) { - if (!$this->smtp->startTLS()) { - throw new Exception($this->lang('connect_host')); - } - // We must resend EHLO after TLS negotiation - $this->smtp->hello($hello); - } - if ($this->SMTPAuth) { - if (!$this->smtp->authenticate( - $this->Username, - $this->Password, - $this->AuthType, - $this->oauth - ) - ) { - throw new Exception($this->lang('authenticate')); - } - } - - return true; - } catch (Exception $exc) { - $lastexception = $exc; - $this->edebug($exc->getMessage()); - // We must have connected, but then failed TLS or Auth, so close connection nicely - $this->smtp->quit(); - } - } - } - // If we get here, all connection attempts have failed, so close connection hard - $this->smtp->close(); - // As we've caught all exceptions, just report whatever the last one was - if ($this->exceptions and null !== $lastexception) { - throw $lastexception; - } - - return false; - } - - /** - * Close the active SMTP session if one exists. - */ - public function smtpClose() - { - if (null !== $this->smtp) { - if ($this->smtp->connected()) { - $this->smtp->quit(); - $this->smtp->close(); - } - } - } - - /** - * Set the language for error messages. - * Returns false if it cannot load the language file. - * The default language is English. - * - * @param string $langcode ISO 639-1 2-character language code (e.g. French is "fr") - * @param string $lang_path Path to the language file directory, with trailing separator (slash) - * - * @return bool - */ - public function setLanguage($langcode = 'en', $lang_path = '') - { - // Backwards compatibility for renamed language codes - $renamed_langcodes = [ - 'br' => 'pt_br', - 'cz' => 'cs', - 'dk' => 'da', - 'no' => 'nb', - 'se' => 'sv', - 'sr' => 'rs', - ]; - - if (isset($renamed_langcodes[$langcode])) { - $langcode = $renamed_langcodes[$langcode]; - } - - // Define full set of translatable strings in English - $PHPMAILER_LANG = [ - 'authenticate' => 'SMTP Error: Could not authenticate.', - 'connect_host' => 'SMTP Error: Could not connect to SMTP host.', - 'data_not_accepted' => 'SMTP Error: data not accepted.', - 'empty_message' => 'Message body empty', - 'encoding' => 'Unknown encoding: ', - 'execute' => 'Could not execute: ', - 'file_access' => 'Could not access file: ', - 'file_open' => 'File Error: Could not open file: ', - 'from_failed' => 'The following From address failed: ', - 'instantiate' => 'Could not instantiate mail function.', - 'invalid_address' => 'Invalid address: ', - 'mailer_not_supported' => ' mailer is not supported.', - 'provide_address' => 'You must provide at least one recipient email address.', - 'recipients_failed' => 'SMTP Error: The following recipients failed: ', - 'signing' => 'Signing Error: ', - 'smtp_connect_failed' => 'SMTP connect() failed.', - 'smtp_error' => 'SMTP server error: ', - 'variable_set' => 'Cannot set or reset variable: ', - 'extension_missing' => 'Extension missing: ', - ]; - if (empty($lang_path)) { - // Calculate an absolute path so it can work if CWD is not here - $lang_path = __DIR__ . DIRECTORY_SEPARATOR . 'language' . DIRECTORY_SEPARATOR; - } - //Validate $langcode - if (!preg_match('/^[a-z]{2}(?:_[a-zA-Z]{2})?$/', $langcode)) { - $langcode = 'en'; - } - $foundlang = true; - $lang_file = $lang_path . 'phpmailer.lang-' . $langcode . '.php'; - // There is no English translation file - if ('en' != $langcode) { - // Make sure language file path is readable - if (!file_exists($lang_file)) { - $foundlang = false; - } else { - // Overwrite language-specific strings. - // This way we'll never have missing translation keys. - $foundlang = include $lang_file; - } - } - $this->language = $PHPMAILER_LANG; - - return (bool) $foundlang; // Returns false if language not found - } - - /** - * Get the array of strings for the current language. - * - * @return array - */ - public function getTranslations() - { - return $this->language; - } - - /** - * Create recipient headers. - * - * @param string $type - * @param array $addr An array of recipients, - * where each recipient is a 2-element indexed array with element 0 containing an address - * and element 1 containing a name, like: - * [['joe@example.com', 'Joe User'], ['zoe@example.com', 'Zoe User']] - * - * @return string - */ - public function addrAppend($type, $addr) - { - $addresses = []; - foreach ($addr as $address) { - $addresses[] = $this->addrFormat($address); - } - - return $type . ': ' . implode(', ', $addresses) . static::$LE; - } - - /** - * Format an address for use in a message header. - * - * @param array $addr A 2-element indexed array, element 0 containing an address, element 1 containing a name like - * ['joe@example.com', 'Joe User'] - * - * @return string - */ - public function addrFormat($addr) - { - if (empty($addr[1])) { // No name provided - return $this->secureHeader($addr[0]); - } - - return $this->encodeHeader($this->secureHeader($addr[1]), 'phrase') . ' <' . $this->secureHeader( - $addr[0] - ) . '>'; - } - - /** - * Word-wrap message. - * For use with mailers that do not automatically perform wrapping - * and for quoted-printable encoded messages. - * Original written by philippe. - * - * @param string $message The message to wrap - * @param int $length The line length to wrap to - * @param bool $qp_mode Whether to run in Quoted-Printable mode - * - * @return string - */ - public function wrapText($message, $length, $qp_mode = false) - { - if ($qp_mode) { - $soft_break = sprintf(' =%s', static::$LE); - } else { - $soft_break = static::$LE; - } - // If utf-8 encoding is used, we will need to make sure we don't - // split multibyte characters when we wrap - $is_utf8 = 'utf-8' == strtolower($this->CharSet); - $lelen = strlen(static::$LE); - $crlflen = strlen(static::$LE); - - $message = static::normalizeBreaks($message); - //Remove a trailing line break - if (substr($message, -$lelen) == static::$LE) { - $message = substr($message, 0, -$lelen); - } - - //Split message into lines - $lines = explode(static::$LE, $message); - //Message will be rebuilt in here - $message = ''; - foreach ($lines as $line) { - $words = explode(' ', $line); - $buf = ''; - $firstword = true; - foreach ($words as $word) { - if ($qp_mode and (strlen($word) > $length)) { - $space_left = $length - strlen($buf) - $crlflen; - if (!$firstword) { - if ($space_left > 20) { - $len = $space_left; - if ($is_utf8) { - $len = $this->utf8CharBoundary($word, $len); - } elseif ('=' == substr($word, $len - 1, 1)) { - --$len; - } elseif ('=' == substr($word, $len - 2, 1)) { - $len -= 2; - } - $part = substr($word, 0, $len); - $word = substr($word, $len); - $buf .= ' ' . $part; - $message .= $buf . sprintf('=%s', static::$LE); - } else { - $message .= $buf . $soft_break; - } - $buf = ''; - } - while (strlen($word) > 0) { - if ($length <= 0) { - break; - } - $len = $length; - if ($is_utf8) { - $len = $this->utf8CharBoundary($word, $len); - } elseif ('=' == substr($word, $len - 1, 1)) { - --$len; - } elseif ('=' == substr($word, $len - 2, 1)) { - $len -= 2; - } - $part = substr($word, 0, $len); - $word = substr($word, $len); - - if (strlen($word) > 0) { - $message .= $part . sprintf('=%s', static::$LE); - } else { - $buf = $part; - } - } - } else { - $buf_o = $buf; - if (!$firstword) { - $buf .= ' '; - } - $buf .= $word; - - if (strlen($buf) > $length and '' != $buf_o) { - $message .= $buf_o . $soft_break; - $buf = $word; - } - } - $firstword = false; - } - $message .= $buf . static::$LE; - } - - return $message; - } - - /** - * Find the last character boundary prior to $maxLength in a utf-8 - * quoted-printable encoded string. - * Original written by Colin Brown. - * - * @param string $encodedText utf-8 QP text - * @param int $maxLength Find the last character boundary prior to this length - * - * @return int - */ - public function utf8CharBoundary($encodedText, $maxLength) - { - $foundSplitPos = false; - $lookBack = 3; - while (!$foundSplitPos) { - $lastChunk = substr($encodedText, $maxLength - $lookBack, $lookBack); - $encodedCharPos = strpos($lastChunk, '='); - if (false !== $encodedCharPos) { - // Found start of encoded character byte within $lookBack block. - // Check the encoded byte value (the 2 chars after the '=') - $hex = substr($encodedText, $maxLength - $lookBack + $encodedCharPos + 1, 2); - $dec = hexdec($hex); - if ($dec < 128) { - // Single byte character. - // If the encoded char was found at pos 0, it will fit - // otherwise reduce maxLength to start of the encoded char - if ($encodedCharPos > 0) { - $maxLength -= $lookBack - $encodedCharPos; - } - $foundSplitPos = true; - } elseif ($dec >= 192) { - // First byte of a multi byte character - // Reduce maxLength to split at start of character - $maxLength -= $lookBack - $encodedCharPos; - $foundSplitPos = true; - } elseif ($dec < 192) { - // Middle byte of a multi byte character, look further back - $lookBack += 3; - } - } else { - // No encoded character found - $foundSplitPos = true; - } - } - - return $maxLength; - } - - /** - * Apply word wrapping to the message body. - * Wraps the message body to the number of chars set in the WordWrap property. - * You should only do this to plain-text bodies as wrapping HTML tags may break them. - * This is called automatically by createBody(), so you don't need to call it yourself. - */ - public function setWordWrap() - { - if ($this->WordWrap < 1) { - return; - } - - switch ($this->message_type) { - case 'alt': - case 'alt_inline': - case 'alt_attach': - case 'alt_inline_attach': - $this->AltBody = $this->wrapText($this->AltBody, $this->WordWrap); - break; - default: - $this->Body = $this->wrapText($this->Body, $this->WordWrap); - break; - } - } - - /** - * Assemble message headers. - * - * @return string The assembled headers - */ - public function createHeader() - { - $result = ''; - - $result .= $this->headerLine('Date', '' == $this->MessageDate ? self::rfcDate() : $this->MessageDate); - - // To be created automatically by mail() - if ($this->SingleTo) { - if ('mail' != $this->Mailer) { - foreach ($this->to as $toaddr) { - $this->SingleToArray[] = $this->addrFormat($toaddr); - } - } - } else { - if (count($this->to) > 0) { - if ('mail' != $this->Mailer) { - $result .= $this->addrAppend('To', $this->to); - } - } elseif (count($this->cc) == 0) { - $result .= $this->headerLine('To', 'undisclosed-recipients:;'); - } - } - - $result .= $this->addrAppend('From', [[trim($this->From), $this->FromName]]); - - // sendmail and mail() extract Cc from the header before sending - if (count($this->cc) > 0) { - $result .= $this->addrAppend('Cc', $this->cc); - } - - // sendmail and mail() extract Bcc from the header before sending - if (( - 'sendmail' == $this->Mailer or 'qmail' == $this->Mailer or 'mail' == $this->Mailer - ) - and count($this->bcc) > 0 - ) { - $result .= $this->addrAppend('Bcc', $this->bcc); - } - - if (count($this->ReplyTo) > 0) { - $result .= $this->addrAppend('Reply-To', $this->ReplyTo); - } - - // mail() sets the subject itself - if ('mail' != $this->Mailer) { - $result .= $this->headerLine('Subject', $this->encodeHeader($this->secureHeader($this->Subject))); - } - - // Only allow a custom message ID if it conforms to RFC 5322 section 3.6.4 - // https://tools.ietf.org/html/rfc5322#section-3.6.4 - if ('' != $this->MessageID and preg_match('/^<.*@.*>$/', $this->MessageID)) { - $this->lastMessageID = $this->MessageID; - } else { - $this->lastMessageID = sprintf('<%s@%s>', $this->uniqueid, $this->serverHostname()); - } - $result .= $this->headerLine('Message-ID', $this->lastMessageID); - if (null !== $this->Priority) { - $result .= $this->headerLine('X-Priority', $this->Priority); - } - if ('' == $this->XMailer) { - $result .= $this->headerLine( - 'X-Mailer', - 'PHPMailer ' . self::VERSION . ' (https://github.com/PHPMailer/PHPMailer)' - ); - } else { - $myXmailer = trim($this->XMailer); - if ($myXmailer) { - $result .= $this->headerLine('X-Mailer', $myXmailer); - } - } - - if ('' != $this->ConfirmReadingTo) { - $result .= $this->headerLine('Disposition-Notification-To', '<' . $this->ConfirmReadingTo . '>'); - } - - // Add custom headers - foreach ($this->CustomHeader as $header) { - $result .= $this->headerLine( - trim($header[0]), - $this->encodeHeader(trim($header[1])) - ); - } - if (!$this->sign_key_file) { - $result .= $this->headerLine('MIME-Version', '1.0'); - $result .= $this->getMailMIME(); - } - - return $result; - } - - /** - * Get the message MIME type headers. - * - * @return string - */ - public function getMailMIME() - { - $result = ''; - $ismultipart = true; - switch ($this->message_type) { - case 'inline': - $result .= $this->headerLine('Content-Type', 'multipart/related;'); - $result .= $this->textLine("\tboundary=\"" . $this->boundary[1] . '"'); - break; - case 'attach': - case 'inline_attach': - case 'alt_attach': - case 'alt_inline_attach': - $result .= $this->headerLine('Content-Type', 'multipart/mixed;'); - $result .= $this->textLine("\tboundary=\"" . $this->boundary[1] . '"'); - break; - case 'alt': - case 'alt_inline': - $result .= $this->headerLine('Content-Type', 'multipart/alternative;'); - $result .= $this->textLine("\tboundary=\"" . $this->boundary[1] . '"'); - break; - default: - // Catches case 'plain': and case '': - $result .= $this->textLine('Content-Type: ' . $this->ContentType . '; charset=' . $this->CharSet); - $ismultipart = false; - break; - } - // RFC1341 part 5 says 7bit is assumed if not specified - if ('7bit' != $this->Encoding) { - // RFC 2045 section 6.4 says multipart MIME parts may only use 7bit, 8bit or binary CTE - if ($ismultipart) { - if ('8bit' == $this->Encoding) { - $result .= $this->headerLine('Content-Transfer-Encoding', '8bit'); - } - // The only remaining alternatives are quoted-printable and base64, which are both 7bit compatible - } else { - $result .= $this->headerLine('Content-Transfer-Encoding', $this->Encoding); - } - } - - if ('mail' != $this->Mailer) { - $result .= static::$LE; - } - - return $result; - } - - /** - * Returns the whole MIME message. - * Includes complete headers and body. - * Only valid post preSend(). - * - * @see PHPMailer::preSend() - * - * @return string - */ - public function getSentMIMEMessage() - { - return rtrim($this->MIMEHeader . $this->mailHeader, "\n\r") . static::$LE . static::$LE . $this->MIMEBody; - } - - /** - * Create a unique ID to use for boundaries. - * - * @return string - */ - protected function generateId() - { - $len = 32; //32 bytes = 256 bits - if (function_exists('random_bytes')) { - $bytes = random_bytes($len); - } elseif (function_exists('openssl_random_pseudo_bytes')) { - $bytes = openssl_random_pseudo_bytes($len); - } else { - //Use a hash to force the length to the same as the other methods - $bytes = hash('sha256', uniqid((string) mt_rand(), true), true); - } - - //We don't care about messing up base64 format here, just want a random string - return str_replace(['=', '+', '/'], '', base64_encode(hash('sha256', $bytes, true))); - } - - /** - * Assemble the message body. - * Returns an empty string on failure. - * - * @throws Exception - * - * @return string The assembled message body - */ - public function createBody() - { - $body = ''; - //Create unique IDs and preset boundaries - $this->uniqueid = $this->generateId(); - $this->boundary[1] = 'b1_' . $this->uniqueid; - $this->boundary[2] = 'b2_' . $this->uniqueid; - $this->boundary[3] = 'b3_' . $this->uniqueid; - - if ($this->sign_key_file) { - $body .= $this->getMailMIME() . static::$LE; - } - - $this->setWordWrap(); - - $bodyEncoding = $this->Encoding; - $bodyCharSet = $this->CharSet; - //Can we do a 7-bit downgrade? - if ('8bit' == $bodyEncoding and !$this->has8bitChars($this->Body)) { - $bodyEncoding = '7bit'; - //All ISO 8859, Windows codepage and UTF-8 charsets are ascii compatible up to 7-bit - $bodyCharSet = 'us-ascii'; - } - //If lines are too long, and we're not already using an encoding that will shorten them, - //change to quoted-printable transfer encoding for the body part only - if ('base64' != $this->Encoding and static::hasLineLongerThanMax($this->Body)) { - $bodyEncoding = 'quoted-printable'; - } - - $altBodyEncoding = $this->Encoding; - $altBodyCharSet = $this->CharSet; - //Can we do a 7-bit downgrade? - if ('8bit' == $altBodyEncoding and !$this->has8bitChars($this->AltBody)) { - $altBodyEncoding = '7bit'; - //All ISO 8859, Windows codepage and UTF-8 charsets are ascii compatible up to 7-bit - $altBodyCharSet = 'us-ascii'; - } - //If lines are too long, and we're not already using an encoding that will shorten them, - //change to quoted-printable transfer encoding for the alt body part only - if ('base64' != $altBodyEncoding and static::hasLineLongerThanMax($this->AltBody)) { - $altBodyEncoding = 'quoted-printable'; - } - //Use this as a preamble in all multipart message types - $mimepre = 'This is a multi-part message in MIME format.' . static::$LE; - switch ($this->message_type) { - case 'inline': - $body .= $mimepre; - $body .= $this->getBoundary($this->boundary[1], $bodyCharSet, '', $bodyEncoding); - $body .= $this->encodeString($this->Body, $bodyEncoding); - $body .= static::$LE; - $body .= $this->attachAll('inline', $this->boundary[1]); - break; - case 'attach': - $body .= $mimepre; - $body .= $this->getBoundary($this->boundary[1], $bodyCharSet, '', $bodyEncoding); - $body .= $this->encodeString($this->Body, $bodyEncoding); - $body .= static::$LE; - $body .= $this->attachAll('attachment', $this->boundary[1]); - break; - case 'inline_attach': - $body .= $mimepre; - $body .= $this->textLine('--' . $this->boundary[1]); - $body .= $this->headerLine('Content-Type', 'multipart/related;'); - $body .= $this->textLine("\tboundary=\"" . $this->boundary[2] . '"'); - $body .= static::$LE; - $body .= $this->getBoundary($this->boundary[2], $bodyCharSet, '', $bodyEncoding); - $body .= $this->encodeString($this->Body, $bodyEncoding); - $body .= static::$LE; - $body .= $this->attachAll('inline', $this->boundary[2]); - $body .= static::$LE; - $body .= $this->attachAll('attachment', $this->boundary[1]); - break; - case 'alt': - $body .= $mimepre; - $body .= $this->getBoundary($this->boundary[1], $altBodyCharSet, 'text/plain', $altBodyEncoding); - $body .= $this->encodeString($this->AltBody, $altBodyEncoding); - $body .= static::$LE; - $body .= $this->getBoundary($this->boundary[1], $bodyCharSet, 'text/html', $bodyEncoding); - $body .= $this->encodeString($this->Body, $bodyEncoding); - $body .= static::$LE; - if (!empty($this->Ical)) { - $body .= $this->getBoundary($this->boundary[1], '', 'text/calendar; method=REQUEST', ''); - $body .= $this->encodeString($this->Ical, $this->Encoding); - $body .= static::$LE; - } - $body .= $this->endBoundary($this->boundary[1]); - break; - case 'alt_inline': - $body .= $mimepre; - $body .= $this->getBoundary($this->boundary[1], $altBodyCharSet, 'text/plain', $altBodyEncoding); - $body .= $this->encodeString($this->AltBody, $altBodyEncoding); - $body .= static::$LE; - $body .= $this->textLine('--' . $this->boundary[1]); - $body .= $this->headerLine('Content-Type', 'multipart/related;'); - $body .= $this->textLine("\tboundary=\"" . $this->boundary[2] . '"'); - $body .= static::$LE; - $body .= $this->getBoundary($this->boundary[2], $bodyCharSet, 'text/html', $bodyEncoding); - $body .= $this->encodeString($this->Body, $bodyEncoding); - $body .= static::$LE; - $body .= $this->attachAll('inline', $this->boundary[2]); - $body .= static::$LE; - $body .= $this->endBoundary($this->boundary[1]); - break; - case 'alt_attach': - $body .= $mimepre; - $body .= $this->textLine('--' . $this->boundary[1]); - $body .= $this->headerLine('Content-Type', 'multipart/alternative;'); - $body .= $this->textLine("\tboundary=\"" . $this->boundary[2] . '"'); - $body .= static::$LE; - $body .= $this->getBoundary($this->boundary[2], $altBodyCharSet, 'text/plain', $altBodyEncoding); - $body .= $this->encodeString($this->AltBody, $altBodyEncoding); - $body .= static::$LE; - $body .= $this->getBoundary($this->boundary[2], $bodyCharSet, 'text/html', $bodyEncoding); - $body .= $this->encodeString($this->Body, $bodyEncoding); - $body .= static::$LE; - if (!empty($this->Ical)) { - $body .= $this->getBoundary($this->boundary[2], '', 'text/calendar; method=REQUEST', ''); - $body .= $this->encodeString($this->Ical, $this->Encoding); - } - $body .= $this->endBoundary($this->boundary[2]); - $body .= static::$LE; - $body .= $this->attachAll('attachment', $this->boundary[1]); - break; - case 'alt_inline_attach': - $body .= $mimepre; - $body .= $this->textLine('--' . $this->boundary[1]); - $body .= $this->headerLine('Content-Type', 'multipart/alternative;'); - $body .= $this->textLine("\tboundary=\"" . $this->boundary[2] . '"'); - $body .= static::$LE; - $body .= $this->getBoundary($this->boundary[2], $altBodyCharSet, 'text/plain', $altBodyEncoding); - $body .= $this->encodeString($this->AltBody, $altBodyEncoding); - $body .= static::$LE; - $body .= $this->textLine('--' . $this->boundary[2]); - $body .= $this->headerLine('Content-Type', 'multipart/related;'); - $body .= $this->textLine("\tboundary=\"" . $this->boundary[3] . '"'); - $body .= static::$LE; - $body .= $this->getBoundary($this->boundary[3], $bodyCharSet, 'text/html', $bodyEncoding); - $body .= $this->encodeString($this->Body, $bodyEncoding); - $body .= static::$LE; - $body .= $this->attachAll('inline', $this->boundary[3]); - $body .= static::$LE; - $body .= $this->endBoundary($this->boundary[2]); - $body .= static::$LE; - $body .= $this->attachAll('attachment', $this->boundary[1]); - break; - default: - // Catch case 'plain' and case '', applies to simple `text/plain` and `text/html` body content types - //Reset the `Encoding` property in case we changed it for line length reasons - $this->Encoding = $bodyEncoding; - $body .= $this->encodeString($this->Body, $this->Encoding); - break; - } - - if ($this->isError()) { - $body = ''; - if ($this->exceptions) { - throw new Exception($this->lang('empty_message'), self::STOP_CRITICAL); - } - } elseif ($this->sign_key_file) { - try { - if (!defined('PKCS7_TEXT')) { - throw new Exception($this->lang('extension_missing') . 'openssl'); - } - // @TODO would be nice to use php://temp streams here - $file = tempnam(sys_get_temp_dir(), 'mail'); - if (false === file_put_contents($file, $body)) { - throw new Exception($this->lang('signing') . ' Could not write temp file'); - } - $signed = tempnam(sys_get_temp_dir(), 'signed'); - //Workaround for PHP bug https://bugs.php.net/bug.php?id=69197 - if (empty($this->sign_extracerts_file)) { - $sign = @openssl_pkcs7_sign( - $file, - $signed, - 'file://' . realpath($this->sign_cert_file), - ['file://' . realpath($this->sign_key_file), $this->sign_key_pass], - [] - ); - } else { - $sign = @openssl_pkcs7_sign( - $file, - $signed, - 'file://' . realpath($this->sign_cert_file), - ['file://' . realpath($this->sign_key_file), $this->sign_key_pass], - [], - PKCS7_DETACHED, - $this->sign_extracerts_file - ); - } - @unlink($file); - if ($sign) { - $body = file_get_contents($signed); - @unlink($signed); - //The message returned by openssl contains both headers and body, so need to split them up - $parts = explode("\n\n", $body, 2); - $this->MIMEHeader .= $parts[0] . static::$LE . static::$LE; - $body = $parts[1]; - } else { - @unlink($signed); - throw new Exception($this->lang('signing') . openssl_error_string()); - } - } catch (Exception $exc) { - $body = ''; - if ($this->exceptions) { - throw $exc; - } - } - } - - return $body; - } - - /** - * Return the start of a message boundary. - * - * @param string $boundary - * @param string $charSet - * @param string $contentType - * @param string $encoding - * - * @return string - */ - protected function getBoundary($boundary, $charSet, $contentType, $encoding) - { - $result = ''; - if ('' == $charSet) { - $charSet = $this->CharSet; - } - if ('' == $contentType) { - $contentType = $this->ContentType; - } - if ('' == $encoding) { - $encoding = $this->Encoding; - } - $result .= $this->textLine('--' . $boundary); - $result .= sprintf('Content-Type: %s; charset=%s', $contentType, $charSet); - $result .= static::$LE; - // RFC1341 part 5 says 7bit is assumed if not specified - if ('7bit' != $encoding) { - $result .= $this->headerLine('Content-Transfer-Encoding', $encoding); - } - $result .= static::$LE; - - return $result; - } - - /** - * Return the end of a message boundary. - * - * @param string $boundary - * - * @return string - */ - protected function endBoundary($boundary) - { - return static::$LE . '--' . $boundary . '--' . static::$LE; - } - - /** - * Set the message type. - * PHPMailer only supports some preset message types, not arbitrary MIME structures. - */ - protected function setMessageType() - { - $type = []; - if ($this->alternativeExists()) { - $type[] = 'alt'; - } - if ($this->inlineImageExists()) { - $type[] = 'inline'; - } - if ($this->attachmentExists()) { - $type[] = 'attach'; - } - $this->message_type = implode('_', $type); - if ('' == $this->message_type) { - //The 'plain' message_type refers to the message having a single body element, not that it is plain-text - $this->message_type = 'plain'; - } - } - - /** - * Format a header line. - * - * @param string $name - * @param string|int $value - * - * @return string - */ - public function headerLine($name, $value) - { - return $name . ': ' . $value . static::$LE; - } - - /** - * Return a formatted mail line. - * - * @param string $value - * - * @return string - */ - public function textLine($value) - { - return $value . static::$LE; - } - - /** - * Add an attachment from a path on the filesystem. - * Never use a user-supplied path to a file! - * Returns false if the file could not be found or read. - * - * @param string $path Path to the attachment - * @param string $name Overrides the attachment name - * @param string $encoding File encoding (see $Encoding) - * @param string $type File extension (MIME) type - * @param string $disposition Disposition to use - * - * @throws Exception - * - * @return bool - */ - public function addAttachment($path, $name = '', $encoding = 'base64', $type = '', $disposition = 'attachment') - { - try { - if (!@is_file($path)) { - throw new Exception($this->lang('file_access') . $path, self::STOP_CONTINUE); - } - - // If a MIME type is not specified, try to work it out from the file name - if ('' == $type) { - $type = static::filenameToType($path); - } - - $filename = basename($path); - if ('' == $name) { - $name = $filename; - } - - $this->attachment[] = [ - 0 => $path, - 1 => $filename, - 2 => $name, - 3 => $encoding, - 4 => $type, - 5 => false, // isStringAttachment - 6 => $disposition, - 7 => $name, - ]; - } catch (Exception $exc) { - $this->setError($exc->getMessage()); - $this->edebug($exc->getMessage()); - if ($this->exceptions) { - throw $exc; - } - - return false; - } - - return true; - } - - /** - * Return the array of attachments. - * - * @return array - */ - public function getAttachments() - { - return $this->attachment; - } - - /** - * Attach all file, string, and binary attachments to the message. - * Returns an empty string on failure. - * - * @param string $disposition_type - * @param string $boundary - * - * @return string - */ - protected function attachAll($disposition_type, $boundary) - { - // Return text of body - $mime = []; - $cidUniq = []; - $incl = []; - - // Add all attachments - foreach ($this->attachment as $attachment) { - // Check if it is a valid disposition_filter - if ($attachment[6] == $disposition_type) { - // Check for string attachment - $string = ''; - $path = ''; - $bString = $attachment[5]; - if ($bString) { - $string = $attachment[0]; - } else { - $path = $attachment[0]; - } - - $inclhash = hash('sha256', serialize($attachment)); - if (in_array($inclhash, $incl)) { - continue; - } - $incl[] = $inclhash; - $name = $attachment[2]; - $encoding = $attachment[3]; - $type = $attachment[4]; - $disposition = $attachment[6]; - $cid = $attachment[7]; - if ('inline' == $disposition and array_key_exists($cid, $cidUniq)) { - continue; - } - $cidUniq[$cid] = true; - - $mime[] = sprintf('--%s%s', $boundary, static::$LE); - //Only include a filename property if we have one - if (!empty($name)) { - $mime[] = sprintf( - 'Content-Type: %s; name="%s"%s', - $type, - $this->encodeHeader($this->secureHeader($name)), - static::$LE - ); - } else { - $mime[] = sprintf( - 'Content-Type: %s%s', - $type, - static::$LE - ); - } - // RFC1341 part 5 says 7bit is assumed if not specified - if ('7bit' != $encoding) { - $mime[] = sprintf('Content-Transfer-Encoding: %s%s', $encoding, static::$LE); - } - - if (!empty($cid)) { - $mime[] = sprintf('Content-ID: <%s>%s', $cid, static::$LE); - } - - // If a filename contains any of these chars, it should be quoted, - // but not otherwise: RFC2183 & RFC2045 5.1 - // Fixes a warning in IETF's msglint MIME checker - // Allow for bypassing the Content-Disposition header totally - if (!(empty($disposition))) { - $encoded_name = $this->encodeHeader($this->secureHeader($name)); - if (preg_match('/[ \(\)<>@,;:\\"\/\[\]\?=]/', $encoded_name)) { - $mime[] = sprintf( - 'Content-Disposition: %s; filename="%s"%s', - $disposition, - $encoded_name, - static::$LE . static::$LE - ); - } else { - if (!empty($encoded_name)) { - $mime[] = sprintf( - 'Content-Disposition: %s; filename=%s%s', - $disposition, - $encoded_name, - static::$LE . static::$LE - ); - } else { - $mime[] = sprintf( - 'Content-Disposition: %s%s', - $disposition, - static::$LE . static::$LE - ); - } - } - } else { - $mime[] = static::$LE; - } - - // Encode as string attachment - if ($bString) { - $mime[] = $this->encodeString($string, $encoding); - } else { - $mime[] = $this->encodeFile($path, $encoding); - } - if ($this->isError()) { - return ''; - } - $mime[] = static::$LE; - } - } - - $mime[] = sprintf('--%s--%s', $boundary, static::$LE); - - return implode('', $mime); - } - - /** - * Encode a file attachment in requested format. - * Returns an empty string on failure. - * - * @param string $path The full path to the file - * @param string $encoding The encoding to use; one of 'base64', '7bit', '8bit', 'binary', 'quoted-printable' - * - * @throws Exception - * - * @return string - */ - protected function encodeFile($path, $encoding = 'base64') - { - try { - if (!file_exists($path)) { - throw new Exception($this->lang('file_open') . $path, self::STOP_CONTINUE); - } - $file_buffer = file_get_contents($path); - if (false === $file_buffer) { - throw new Exception($this->lang('file_open') . $path, self::STOP_CONTINUE); - } - $file_buffer = $this->encodeString($file_buffer, $encoding); - - return $file_buffer; - } catch (Exception $exc) { - $this->setError($exc->getMessage()); - - return ''; - } - } - - /** - * Encode a string in requested format. - * Returns an empty string on failure. - * - * @param string $str The text to encode - * @param string $encoding The encoding to use; one of 'base64', '7bit', '8bit', 'binary', 'quoted-printable - * - * @return string - */ - public function encodeString($str, $encoding = 'base64') - { - $encoded = ''; - switch (strtolower($encoding)) { - case 'base64': - $encoded = chunk_split( - base64_encode($str), - static::STD_LINE_LENGTH, - static::$LE - ); - break; - case '7bit': - case '8bit': - $encoded = static::normalizeBreaks($str); - // Make sure it ends with a line break - if (substr($encoded, -(strlen(static::$LE))) != static::$LE) { - $encoded .= static::$LE; - } - break; - case 'binary': - $encoded = $str; - break; - case 'quoted-printable': - $encoded = $this->encodeQP($str); - break; - default: - $this->setError($this->lang('encoding') . $encoding); - break; - } - - return $encoded; - } - - /** - * Encode a header value (not including its label) optimally. - * Picks shortest of Q, B, or none. Result includes folding if needed. - * See RFC822 definitions for phrase, comment and text positions. - * - * @param string $str The header value to encode - * @param string $position What context the string will be used in - * - * @return string - */ - public function encodeHeader($str, $position = 'text') - { - $matchcount = 0; - switch (strtolower($position)) { - case 'phrase': - if (!preg_match('/[\200-\377]/', $str)) { - // Can't use addslashes as we don't know the value of magic_quotes_sybase - $encoded = addcslashes($str, "\0..\37\177\\\""); - if (($str == $encoded) and !preg_match('/[^A-Za-z0-9!#$%&\'*+\/=?^_`{|}~ -]/', $str)) { - return $encoded; - } - - return "\"$encoded\""; - } - $matchcount = preg_match_all('/[^\040\041\043-\133\135-\176]/', $str, $matches); - break; - /* @noinspection PhpMissingBreakStatementInspection */ - case 'comment': - $matchcount = preg_match_all('/[()"]/', $str, $matches); - //fallthrough - case 'text': - default: - $matchcount += preg_match_all('/[\000-\010\013\014\016-\037\177-\377]/', $str, $matches); - break; - } - - //RFCs specify a maximum line length of 78 chars, however mail() will sometimes - //corrupt messages with headers longer than 65 chars. See #818 - $lengthsub = 'mail' == $this->Mailer ? 13 : 0; - $maxlen = static::STD_LINE_LENGTH - $lengthsub; - // Try to select the encoding which should produce the shortest output - if ($matchcount > strlen($str) / 3) { - // More than a third of the content will need encoding, so B encoding will be most efficient - $encoding = 'B'; - //This calculation is: - // max line length - // - shorten to avoid mail() corruption - // - Q/B encoding char overhead ("` =?<charset>?[QB]?<content>?=`") - // - charset name length - $maxlen = static::STD_LINE_LENGTH - $lengthsub - 8 - strlen($this->CharSet); - if ($this->hasMultiBytes($str)) { - // Use a custom function which correctly encodes and wraps long - // multibyte strings without breaking lines within a character - $encoded = $this->base64EncodeWrapMB($str, "\n"); - } else { - $encoded = base64_encode($str); - $maxlen -= $maxlen % 4; - $encoded = trim(chunk_split($encoded, $maxlen, "\n")); - } - $encoded = preg_replace('/^(.*)$/m', ' =?' . $this->CharSet . "?$encoding?\\1?=", $encoded); - } elseif ($matchcount > 0) { - //1 or more chars need encoding, use Q-encode - $encoding = 'Q'; - //Recalc max line length for Q encoding - see comments on B encode - $maxlen = static::STD_LINE_LENGTH - $lengthsub - 8 - strlen($this->CharSet); - $encoded = $this->encodeQ($str, $position); - $encoded = $this->wrapText($encoded, $maxlen, true); - $encoded = str_replace('=' . static::$LE, "\n", trim($encoded)); - $encoded = preg_replace('/^(.*)$/m', ' =?' . $this->CharSet . "?$encoding?\\1?=", $encoded); - } elseif (strlen($str) > $maxlen) { - //No chars need encoding, but line is too long, so fold it - $encoded = trim($this->wrapText($str, $maxlen, false)); - if ($str == $encoded) { - //Wrapping nicely didn't work, wrap hard instead - $encoded = trim(chunk_split($str, static::STD_LINE_LENGTH, static::$LE)); - } - $encoded = str_replace(static::$LE, "\n", trim($encoded)); - $encoded = preg_replace('/^(.*)$/m', ' \\1', $encoded); - } else { - //No reformatting needed - return $str; - } - - return trim(static::normalizeBreaks($encoded)); - } - - /** - * Check if a string contains multi-byte characters. - * - * @param string $str multi-byte text to wrap encode - * - * @return bool - */ - public function hasMultiBytes($str) - { - if (function_exists('mb_strlen')) { - return strlen($str) > mb_strlen($str, $this->CharSet); - } - - // Assume no multibytes (we can't handle without mbstring functions anyway) - return false; - } - - /** - * Does a string contain any 8-bit chars (in any charset)? - * - * @param string $text - * - * @return bool - */ - public function has8bitChars($text) - { - return (bool) preg_match('/[\x80-\xFF]/', $text); - } - - /** - * Encode and wrap long multibyte strings for mail headers - * without breaking lines within a character. - * Adapted from a function by paravoid. - * - * @see http://www.php.net/manual/en/function.mb-encode-mimeheader.php#60283 - * - * @param string $str multi-byte text to wrap encode - * @param string $linebreak string to use as linefeed/end-of-line - * - * @return string - */ - public function base64EncodeWrapMB($str, $linebreak = null) - { - $start = '=?' . $this->CharSet . '?B?'; - $end = '?='; - $encoded = ''; - if (null === $linebreak) { - $linebreak = static::$LE; - } - - $mb_length = mb_strlen($str, $this->CharSet); - // Each line must have length <= 75, including $start and $end - $length = 75 - strlen($start) - strlen($end); - // Average multi-byte ratio - $ratio = $mb_length / strlen($str); - // Base64 has a 4:3 ratio - $avgLength = floor($length * $ratio * .75); - - for ($i = 0; $i < $mb_length; $i += $offset) { - $lookBack = 0; - do { - $offset = $avgLength - $lookBack; - $chunk = mb_substr($str, $i, $offset, $this->CharSet); - $chunk = base64_encode($chunk); - ++$lookBack; - } while (strlen($chunk) > $length); - $encoded .= $chunk . $linebreak; - } - - // Chomp the last linefeed - return substr($encoded, 0, -strlen($linebreak)); - } - - /** - * Encode a string in quoted-printable format. - * According to RFC2045 section 6.7. - * - * @param string $string The text to encode - * - * @return string - */ - public function encodeQP($string) - { - return static::normalizeBreaks(quoted_printable_encode($string)); - } - - /** - * Encode a string using Q encoding. - * - * @see http://tools.ietf.org/html/rfc2047#section-4.2 - * - * @param string $str the text to encode - * @param string $position Where the text is going to be used, see the RFC for what that means - * - * @return string - */ - public function encodeQ($str, $position = 'text') - { - // There should not be any EOL in the string - $pattern = ''; - $encoded = str_replace(["\r", "\n"], '', $str); - switch (strtolower($position)) { - case 'phrase': - // RFC 2047 section 5.3 - $pattern = '^A-Za-z0-9!*+\/ -'; - break; - /* - * RFC 2047 section 5.2. - * Build $pattern without including delimiters and [] - */ - /* @noinspection PhpMissingBreakStatementInspection */ - case 'comment': - $pattern = '\(\)"'; - /* Intentional fall through */ - case 'text': - default: - // RFC 2047 section 5.1 - // Replace every high ascii, control, =, ? and _ characters - /** @noinspection SuspiciousAssignmentsInspection */ - $pattern = '\000-\011\013\014\016-\037\075\077\137\177-\377' . $pattern; - break; - } - $matches = []; - if (preg_match_all("/[{$pattern}]/", $encoded, $matches)) { - // If the string contains an '=', make sure it's the first thing we replace - // so as to avoid double-encoding - $eqkey = array_search('=', $matches[0]); - if (false !== $eqkey) { - unset($matches[0][$eqkey]); - array_unshift($matches[0], '='); - } - foreach (array_unique($matches[0]) as $char) { - $encoded = str_replace($char, '=' . sprintf('%02X', ord($char)), $encoded); - } - } - // Replace spaces with _ (more readable than =20) - // RFC 2047 section 4.2(2) - return str_replace(' ', '_', $encoded); - } - - /** - * Add a string or binary attachment (non-filesystem). - * This method can be used to attach ascii or binary data, - * such as a BLOB record from a database. - * - * @param string $string String attachment data - * @param string $filename Name of the attachment - * @param string $encoding File encoding (see $Encoding) - * @param string $type File extension (MIME) type - * @param string $disposition Disposition to use - */ - public function addStringAttachment( - $string, - $filename, - $encoding = 'base64', - $type = '', - $disposition = 'attachment' - ) { - // If a MIME type is not specified, try to work it out from the file name - if ('' == $type) { - $type = static::filenameToType($filename); - } - // Append to $attachment array - $this->attachment[] = [ - 0 => $string, - 1 => $filename, - 2 => basename($filename), - 3 => $encoding, - 4 => $type, - 5 => true, // isStringAttachment - 6 => $disposition, - 7 => 0, - ]; - } - - /** - * Add an embedded (inline) attachment from a file. - * This can include images, sounds, and just about any other document type. - * These differ from 'regular' attachments in that they are intended to be - * displayed inline with the message, not just attached for download. - * This is used in HTML messages that embed the images - * the HTML refers to using the $cid value. - * Never use a user-supplied path to a file! - * - * @param string $path Path to the attachment - * @param string $cid Content ID of the attachment; Use this to reference - * the content when using an embedded image in HTML - * @param string $name Overrides the attachment name - * @param string $encoding File encoding (see $Encoding) - * @param string $type File MIME type - * @param string $disposition Disposition to use - * - * @return bool True on successfully adding an attachment - */ - public function addEmbeddedImage($path, $cid, $name = '', $encoding = 'base64', $type = '', $disposition = 'inline') - { - if (!@is_file($path)) { - $this->setError($this->lang('file_access') . $path); - - return false; - } - - // If a MIME type is not specified, try to work it out from the file name - if ('' == $type) { - $type = static::filenameToType($path); - } - - $filename = basename($path); - if ('' == $name) { - $name = $filename; - } - - // Append to $attachment array - $this->attachment[] = [ - 0 => $path, - 1 => $filename, - 2 => $name, - 3 => $encoding, - 4 => $type, - 5 => false, // isStringAttachment - 6 => $disposition, - 7 => $cid, - ]; - - return true; - } - - /** - * Add an embedded stringified attachment. - * This can include images, sounds, and just about any other document type. - * If your filename doesn't contain an extension, be sure to set the $type to an appropriate MIME type. - * - * @param string $string The attachment binary data - * @param string $cid Content ID of the attachment; Use this to reference - * the content when using an embedded image in HTML - * @param string $name A filename for the attachment. If this contains an extension, - * PHPMailer will attempt to set a MIME type for the attachment. - * For example 'file.jpg' would get an 'image/jpeg' MIME type. - * @param string $encoding File encoding (see $Encoding), defaults to 'base64' - * @param string $type MIME type - will be used in preference to any automatically derived type - * @param string $disposition Disposition to use - * - * @return bool True on successfully adding an attachment - */ - public function addStringEmbeddedImage( - $string, - $cid, - $name = '', - $encoding = 'base64', - $type = '', - $disposition = 'inline' - ) { - // If a MIME type is not specified, try to work it out from the name - if ('' == $type and !empty($name)) { - $type = static::filenameToType($name); - } - - // Append to $attachment array - $this->attachment[] = [ - 0 => $string, - 1 => $name, - 2 => $name, - 3 => $encoding, - 4 => $type, - 5 => true, // isStringAttachment - 6 => $disposition, - 7 => $cid, - ]; - - return true; - } - - /** - * Check if an embedded attachment is present with this cid. - * - * @param string $cid - * - * @return bool - */ - protected function cidExists($cid) - { - foreach ($this->attachment as $attachment) { - if ('inline' == $attachment[6] and $cid == $attachment[7]) { - return true; - } - } - - return false; - } - - /** - * Check if an inline attachment is present. - * - * @return bool - */ - public function inlineImageExists() - { - foreach ($this->attachment as $attachment) { - if ('inline' == $attachment[6]) { - return true; - } - } - - return false; - } - - /** - * Check if an attachment (non-inline) is present. - * - * @return bool - */ - public function attachmentExists() - { - foreach ($this->attachment as $attachment) { - if ('attachment' == $attachment[6]) { - return true; - } - } - - return false; - } - - /** - * Check if this message has an alternative body set. - * - * @return bool - */ - public function alternativeExists() - { - return !empty($this->AltBody); - } - - /** - * Clear queued addresses of given kind. - * - * @param string $kind 'to', 'cc', or 'bcc' - */ - public function clearQueuedAddresses($kind) - { - $this->RecipientsQueue = array_filter( - $this->RecipientsQueue, - function ($params) use ($kind) { - return $params[0] != $kind; - } - ); - } - - /** - * Clear all To recipients. - */ - public function clearAddresses() - { - foreach ($this->to as $to) { - unset($this->all_recipients[strtolower($to[0])]); - } - $this->to = []; - $this->clearQueuedAddresses('to'); - } - - /** - * Clear all CC recipients. - */ - public function clearCCs() - { - foreach ($this->cc as $cc) { - unset($this->all_recipients[strtolower($cc[0])]); - } - $this->cc = []; - $this->clearQueuedAddresses('cc'); - } - - /** - * Clear all BCC recipients. - */ - public function clearBCCs() - { - foreach ($this->bcc as $bcc) { - unset($this->all_recipients[strtolower($bcc[0])]); - } - $this->bcc = []; - $this->clearQueuedAddresses('bcc'); - } - - /** - * Clear all ReplyTo recipients. - */ - public function clearReplyTos() - { - $this->ReplyTo = []; - $this->ReplyToQueue = []; - } - - /** - * Clear all recipient types. - */ - public function clearAllRecipients() - { - $this->to = []; - $this->cc = []; - $this->bcc = []; - $this->all_recipients = []; - $this->RecipientsQueue = []; - } - - /** - * Clear all filesystem, string, and binary attachments. - */ - public function clearAttachments() - { - $this->attachment = []; - } - - /** - * Clear all custom headers. - */ - public function clearCustomHeaders() - { - $this->CustomHeader = []; - } - - /** - * Add an error message to the error container. - * - * @param string $msg - */ - protected function setError($msg) - { - ++$this->error_count; - if ('smtp' == $this->Mailer and null !== $this->smtp) { - $lasterror = $this->smtp->getError(); - if (!empty($lasterror['error'])) { - $msg .= $this->lang('smtp_error') . $lasterror['error']; - if (!empty($lasterror['detail'])) { - $msg .= ' Detail: ' . $lasterror['detail']; - } - if (!empty($lasterror['smtp_code'])) { - $msg .= ' SMTP code: ' . $lasterror['smtp_code']; - } - if (!empty($lasterror['smtp_code_ex'])) { - $msg .= ' Additional SMTP info: ' . $lasterror['smtp_code_ex']; - } - } - } - $this->ErrorInfo = $msg; - } - - /** - * Return an RFC 822 formatted date. - * - * @return string - */ - public static function rfcDate() - { - // Set the time zone to whatever the default is to avoid 500 errors - // Will default to UTC if it's not set properly in php.ini - date_default_timezone_set(@date_default_timezone_get()); - - return date('D, j M Y H:i:s O'); - } - - /** - * Get the server hostname. - * Returns 'localhost.localdomain' if unknown. - * - * @return string - */ - protected function serverHostname() - { - $result = ''; - if (!empty($this->Hostname)) { - $result = $this->Hostname; - } elseif (isset($_SERVER) and array_key_exists('SERVER_NAME', $_SERVER)) { - $result = $_SERVER['SERVER_NAME']; - } elseif (function_exists('gethostname') and gethostname() !== false) { - $result = gethostname(); - } elseif (php_uname('n') !== false) { - $result = php_uname('n'); - } - if (!static::isValidHost($result)) { - return 'localhost.localdomain'; - } - - return $result; - } - - /** - * Validate whether a string contains a valid value to use as a hostname or IP address. - * IPv6 addresses must include [], e.g. `[::1]`, not just `::1`. - * - * @param string $host The host name or IP address to check - * - * @return bool - */ - public static function isValidHost($host) - { - //Simple syntax limits - if (empty($host) - or !is_string($host) - or strlen($host) > 256 - ) { - return false; - } - //Looks like a bracketed IPv6 address - if (trim($host, '[]') != $host) { - return (bool) filter_var(trim($host, '[]'), FILTER_VALIDATE_IP, FILTER_FLAG_IPV6); - } - //If removing all the dots results in a numeric string, it must be an IPv4 address. - //Need to check this first because otherwise things like `999.0.0.0` are considered valid host names - if (is_numeric(str_replace('.', '', $host))) { - //Is it a valid IPv4 address? - return (bool) filter_var($host, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4); - } - if (filter_var('http://' . $host, FILTER_VALIDATE_URL, FILTER_FLAG_HOST_REQUIRED)) { - //Is it a syntactically valid hostname? - return true; - } - - return false; - } - - /** - * Get an error message in the current language. - * - * @param string $key - * - * @return string - */ - protected function lang($key) - { - if (count($this->language) < 1) { - $this->setLanguage('en'); // set the default language - } - - if (array_key_exists($key, $this->language)) { - if ('smtp_connect_failed' == $key) { - //Include a link to troubleshooting docs on SMTP connection failure - //this is by far the biggest cause of support questions - //but it's usually not PHPMailer's fault. - return $this->language[$key] . ' https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting'; - } - - return $this->language[$key]; - } - - //Return the key as a fallback - return $key; - } - - /** - * Check if an error occurred. - * - * @return bool True if an error did occur - */ - public function isError() - { - return $this->error_count > 0; - } - - /** - * Add a custom header. - * $name value can be overloaded to contain - * both header name and value (name:value). - * - * @param string $name Custom header name - * @param string|null $value Header value - */ - public function addCustomHeader($name, $value = null) - { - if (null === $value) { - // Value passed in as name:value - $this->CustomHeader[] = explode(':', $name, 2); - } else { - $this->CustomHeader[] = [$name, $value]; - } - } - - /** - * Returns all custom headers. - * - * @return array - */ - public function getCustomHeaders() - { - return $this->CustomHeader; - } - - /** - * Create a message body from an HTML string. - * Automatically inlines images and creates a plain-text version by converting the HTML, - * overwriting any existing values in Body and AltBody. - * Do not source $message content from user input! - * $basedir is prepended when handling relative URLs, e.g. <img src="/images/a.png"> and must not be empty - * will look for an image file in $basedir/images/a.png and convert it to inline. - * If you don't provide a $basedir, relative paths will be left untouched (and thus probably break in email) - * Converts data-uri images into embedded attachments. - * If you don't want to apply these transformations to your HTML, just set Body and AltBody directly. - * - * @param string $message HTML message string - * @param string $basedir Absolute path to a base directory to prepend to relative paths to images - * @param bool|callable $advanced Whether to use the internal HTML to text converter - * or your own custom converter @see PHPMailer::html2text() - * - * @return string $message The transformed message Body - */ - public function msgHTML($message, $basedir = '', $advanced = false) - { - preg_match_all('/(src|background)=["\'](.*)["\']/Ui', $message, $images); - if (array_key_exists(2, $images)) { - if (strlen($basedir) > 1 && '/' != substr($basedir, -1)) { - // Ensure $basedir has a trailing / - $basedir .= '/'; - } - foreach ($images[2] as $imgindex => $url) { - // Convert data URIs into embedded images - //e.g. "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" - if (preg_match('#^data:(image/(?:jpe?g|gif|png));?(base64)?,(.+)#', $url, $match)) { - if (count($match) == 4 and 'base64' == $match[2]) { - $data = base64_decode($match[3]); - } elseif ('' == $match[2]) { - $data = rawurldecode($match[3]); - } else { - //Not recognised so leave it alone - continue; - } - //Hash the decoded data, not the URL so that the same data-URI image used in multiple places - //will only be embedded once, even if it used a different encoding - $cid = hash('sha256', $data) . '@phpmailer.0'; // RFC2392 S 2 - - if (!$this->cidExists($cid)) { - $this->addStringEmbeddedImage($data, $cid, 'embed' . $imgindex, 'base64', $match[1]); - } - $message = str_replace( - $images[0][$imgindex], - $images[1][$imgindex] . '="cid:' . $cid . '"', - $message - ); - continue; - } - if (// Only process relative URLs if a basedir is provided (i.e. no absolute local paths) - !empty($basedir) - // Ignore URLs containing parent dir traversal (..) - and (strpos($url, '..') === false) - // Do not change urls that are already inline images - and 0 !== strpos($url, 'cid:') - // Do not change absolute URLs, including anonymous protocol - and !preg_match('#^[a-z][a-z0-9+.-]*:?//#i', $url) - ) { - $filename = basename($url); - $directory = dirname($url); - if ('.' == $directory) { - $directory = ''; - } - $cid = hash('sha256', $url) . '@phpmailer.0'; // RFC2392 S 2 - if (strlen($basedir) > 1 and '/' != substr($basedir, -1)) { - $basedir .= '/'; - } - if (strlen($directory) > 1 and '/' != substr($directory, -1)) { - $directory .= '/'; - } - if ($this->addEmbeddedImage( - $basedir . $directory . $filename, - $cid, - $filename, - 'base64', - static::_mime_types((string) static::mb_pathinfo($filename, PATHINFO_EXTENSION)) - ) - ) { - $message = preg_replace( - '/' . $images[1][$imgindex] . '=["\']' . preg_quote($url, '/') . '["\']/Ui', - $images[1][$imgindex] . '="cid:' . $cid . '"', - $message - ); - } - } - } - } - $this->isHTML(true); - // Convert all message body line breaks to LE, makes quoted-printable encoding work much better - $this->Body = static::normalizeBreaks($message); - $this->AltBody = static::normalizeBreaks($this->html2text($message, $advanced)); - if (!$this->alternativeExists()) { - $this->AltBody = 'This is an HTML-only message. To view it, activate HTML in your email application.' - . static::$LE; - } - - return $this->Body; - } - - /** - * Convert an HTML string into plain text. - * This is used by msgHTML(). - * Note - older versions of this function used a bundled advanced converter - * which was removed for license reasons in #232. - * Example usage: - * - * ```php - * // Use default conversion - * $plain = $mail->html2text($html); - * // Use your own custom converter - * $plain = $mail->html2text($html, function($html) { - * $converter = new MyHtml2text($html); - * return $converter->get_text(); - * }); - * ``` - * - * @param string $html The HTML text to convert - * @param bool|callable $advanced Any boolean value to use the internal converter, - * or provide your own callable for custom conversion - * - * @return string - */ - public function html2text($html, $advanced = false) - { - if (is_callable($advanced)) { - return call_user_func($advanced, $html); - } - - return html_entity_decode( - trim(strip_tags(preg_replace('/<(head|title|style|script)[^>]*>.*?<\/\\1>/si', '', $html))), - ENT_QUOTES, - $this->CharSet - ); - } - - /** - * Get the MIME type for a file extension. - * - * @param string $ext File extension - * - * @return string MIME type of file - */ - public static function _mime_types($ext = '') - { - $mimes = [ - 'xl' => 'application/excel', - 'js' => 'application/javascript', - 'hqx' => 'application/mac-binhex40', - 'cpt' => 'application/mac-compactpro', - 'bin' => 'application/macbinary', - 'doc' => 'application/msword', - 'word' => 'application/msword', - 'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', - 'xltx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.template', - 'potx' => 'application/vnd.openxmlformats-officedocument.presentationml.template', - 'ppsx' => 'application/vnd.openxmlformats-officedocument.presentationml.slideshow', - 'pptx' => 'application/vnd.openxmlformats-officedocument.presentationml.presentation', - 'sldx' => 'application/vnd.openxmlformats-officedocument.presentationml.slide', - 'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', - 'dotx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.template', - 'xlam' => 'application/vnd.ms-excel.addin.macroEnabled.12', - 'xlsb' => 'application/vnd.ms-excel.sheet.binary.macroEnabled.12', - 'class' => 'application/octet-stream', - 'dll' => 'application/octet-stream', - 'dms' => 'application/octet-stream', - 'exe' => 'application/octet-stream', - 'lha' => 'application/octet-stream', - 'lzh' => 'application/octet-stream', - 'psd' => 'application/octet-stream', - 'sea' => 'application/octet-stream', - 'so' => 'application/octet-stream', - 'oda' => 'application/oda', - 'pdf' => 'application/pdf', - 'ai' => 'application/postscript', - 'eps' => 'application/postscript', - 'ps' => 'application/postscript', - 'smi' => 'application/smil', - 'smil' => 'application/smil', - 'mif' => 'application/vnd.mif', - 'xls' => 'application/vnd.ms-excel', - 'ppt' => 'application/vnd.ms-powerpoint', - 'wbxml' => 'application/vnd.wap.wbxml', - 'wmlc' => 'application/vnd.wap.wmlc', - 'dcr' => 'application/x-director', - 'dir' => 'application/x-director', - 'dxr' => 'application/x-director', - 'dvi' => 'application/x-dvi', - 'gtar' => 'application/x-gtar', - 'php3' => 'application/x-httpd-php', - 'php4' => 'application/x-httpd-php', - 'php' => 'application/x-httpd-php', - 'phtml' => 'application/x-httpd-php', - 'phps' => 'application/x-httpd-php-source', - 'swf' => 'application/x-shockwave-flash', - 'sit' => 'application/x-stuffit', - 'tar' => 'application/x-tar', - 'tgz' => 'application/x-tar', - 'xht' => 'application/xhtml+xml', - 'xhtml' => 'application/xhtml+xml', - 'zip' => 'application/zip', - 'mid' => 'audio/midi', - 'midi' => 'audio/midi', - 'mp2' => 'audio/mpeg', - 'mp3' => 'audio/mpeg', - 'm4a' => 'audio/mp4', - 'mpga' => 'audio/mpeg', - 'aif' => 'audio/x-aiff', - 'aifc' => 'audio/x-aiff', - 'aiff' => 'audio/x-aiff', - 'ram' => 'audio/x-pn-realaudio', - 'rm' => 'audio/x-pn-realaudio', - 'rpm' => 'audio/x-pn-realaudio-plugin', - 'ra' => 'audio/x-realaudio', - 'wav' => 'audio/x-wav', - 'mka' => 'audio/x-matroska', - 'bmp' => 'image/bmp', - 'gif' => 'image/gif', - 'jpeg' => 'image/jpeg', - 'jpe' => 'image/jpeg', - 'jpg' => 'image/jpeg', - 'png' => 'image/png', - 'tiff' => 'image/tiff', - 'tif' => 'image/tiff', - 'webp' => 'image/webp', - 'heif' => 'image/heif', - 'heifs' => 'image/heif-sequence', - 'heic' => 'image/heic', - 'heics' => 'image/heic-sequence', - 'eml' => 'message/rfc822', - 'css' => 'text/css', - 'html' => 'text/html', - 'htm' => 'text/html', - 'shtml' => 'text/html', - 'log' => 'text/plain', - 'text' => 'text/plain', - 'txt' => 'text/plain', - 'rtx' => 'text/richtext', - 'rtf' => 'text/rtf', - 'vcf' => 'text/vcard', - 'vcard' => 'text/vcard', - 'ics' => 'text/calendar', - 'xml' => 'text/xml', - 'xsl' => 'text/xml', - 'wmv' => 'video/x-ms-wmv', - 'mpeg' => 'video/mpeg', - 'mpe' => 'video/mpeg', - 'mpg' => 'video/mpeg', - 'mp4' => 'video/mp4', - 'm4v' => 'video/mp4', - 'mov' => 'video/quicktime', - 'qt' => 'video/quicktime', - 'rv' => 'video/vnd.rn-realvideo', - 'avi' => 'video/x-msvideo', - 'movie' => 'video/x-sgi-movie', - 'webm' => 'video/webm', - 'mkv' => 'video/x-matroska', - ]; - $ext = strtolower($ext); - if (array_key_exists($ext, $mimes)) { - return $mimes[$ext]; - } - - return 'application/octet-stream'; - } - - /** - * Map a file name to a MIME type. - * Defaults to 'application/octet-stream', i.e.. arbitrary binary data. - * - * @param string $filename A file name or full path, does not need to exist as a file - * - * @return string - */ - public static function filenameToType($filename) - { - // In case the path is a URL, strip any query string before getting extension - $qpos = strpos($filename, '?'); - if (false !== $qpos) { - $filename = substr($filename, 0, $qpos); - } - $ext = static::mb_pathinfo($filename, PATHINFO_EXTENSION); - - return static::_mime_types($ext); - } - - /** - * Multi-byte-safe pathinfo replacement. - * Drop-in replacement for pathinfo(), but multibyte- and cross-platform-safe. - * - * @see http://www.php.net/manual/en/function.pathinfo.php#107461 - * - * @param string $path A filename or path, does not need to exist as a file - * @param int|string $options Either a PATHINFO_* constant, - * or a string name to return only the specified piece - * - * @return string|array - */ - public static function mb_pathinfo($path, $options = null) - { - $ret = ['dirname' => '', 'basename' => '', 'extension' => '', 'filename' => '']; - $pathinfo = []; - if (preg_match('#^(.*?)[\\\\/]*(([^/\\\\]*?)(\.([^\.\\\\/]+?)|))[\\\\/\.]*$#im', $path, $pathinfo)) { - if (array_key_exists(1, $pathinfo)) { - $ret['dirname'] = $pathinfo[1]; - } - if (array_key_exists(2, $pathinfo)) { - $ret['basename'] = $pathinfo[2]; - } - if (array_key_exists(5, $pathinfo)) { - $ret['extension'] = $pathinfo[5]; - } - if (array_key_exists(3, $pathinfo)) { - $ret['filename'] = $pathinfo[3]; - } - } - switch ($options) { - case PATHINFO_DIRNAME: - case 'dirname': - return $ret['dirname']; - case PATHINFO_BASENAME: - case 'basename': - return $ret['basename']; - case PATHINFO_EXTENSION: - case 'extension': - return $ret['extension']; - case PATHINFO_FILENAME: - case 'filename': - return $ret['filename']; - default: - return $ret; - } - } - - /** - * Set or reset instance properties. - * You should avoid this function - it's more verbose, less efficient, more error-prone and - * harder to debug than setting properties directly. - * Usage Example: - * `$mail->set('SMTPSecure', 'tls');` - * is the same as: - * `$mail->SMTPSecure = 'tls';`. - * - * @param string $name The property name to set - * @param mixed $value The value to set the property to - * - * @return bool - */ - public function set($name, $value = '') - { - if (property_exists($this, $name)) { - $this->$name = $value; - - return true; - } - $this->setError($this->lang('variable_set') . $name); - - return false; - } - - /** - * Strip newlines to prevent header injection. - * - * @param string $str - * - * @return string - */ - public function secureHeader($str) - { - return trim(str_replace(["\r", "\n"], '', $str)); - } - - /** - * Normalize line breaks in a string. - * Converts UNIX LF, Mac CR and Windows CRLF line breaks into a single line break format. - * Defaults to CRLF (for message bodies) and preserves consecutive breaks. - * - * @param string $text - * @param string $breaktype What kind of line break to use; defaults to static::$LE - * - * @return string - */ - public static function normalizeBreaks($text, $breaktype = null) - { - if (null === $breaktype) { - $breaktype = static::$LE; - } - // Normalise to \n - $text = str_replace(["\r\n", "\r"], "\n", $text); - // Now convert LE as needed - if ("\n" !== $breaktype) { - $text = str_replace("\n", $breaktype, $text); - } - - return $text; - } - - /** - * Return the current line break format string. - * - * @return string - */ - public static function getLE() - { - return static::$LE; - } - - /** - * Set the line break format string, e.g. "\r\n". - * - * @param string $le - */ - protected static function setLE($le) - { - static::$LE = $le; - } - - /** - * Set the public and private key files and password for S/MIME signing. - * - * @param string $cert_filename - * @param string $key_filename - * @param string $key_pass Password for private key - * @param string $extracerts_filename Optional path to chain certificate - */ - public function sign($cert_filename, $key_filename, $key_pass, $extracerts_filename = '') - { - $this->sign_cert_file = $cert_filename; - $this->sign_key_file = $key_filename; - $this->sign_key_pass = $key_pass; - $this->sign_extracerts_file = $extracerts_filename; - } - - /** - * Quoted-Printable-encode a DKIM header. - * - * @param string $txt - * - * @return string - */ - public function DKIM_QP($txt) - { - $line = ''; - $len = strlen($txt); - for ($i = 0; $i < $len; ++$i) { - $ord = ord($txt[$i]); - if (((0x21 <= $ord) and ($ord <= 0x3A)) or $ord == 0x3C or ((0x3E <= $ord) and ($ord <= 0x7E))) { - $line .= $txt[$i]; - } else { - $line .= '=' . sprintf('%02X', $ord); - } - } - - return $line; - } - - /** - * Generate a DKIM signature. - * - * @param string $signHeader - * - * @throws Exception - * - * @return string The DKIM signature value - */ - public function DKIM_Sign($signHeader) - { - if (!defined('PKCS7_TEXT')) { - if ($this->exceptions) { - throw new Exception($this->lang('extension_missing') . 'openssl'); - } - - return ''; - } - $privKeyStr = !empty($this->DKIM_private_string) ? - $this->DKIM_private_string : - file_get_contents($this->DKIM_private); - if ('' != $this->DKIM_passphrase) { - $privKey = openssl_pkey_get_private($privKeyStr, $this->DKIM_passphrase); - } else { - $privKey = openssl_pkey_get_private($privKeyStr); - } - if (openssl_sign($signHeader, $signature, $privKey, 'sha256WithRSAEncryption')) { - openssl_pkey_free($privKey); - - return base64_encode($signature); - } - openssl_pkey_free($privKey); - - return ''; - } - - /** - * Generate a DKIM canonicalization header. - * Uses the 'relaxed' algorithm from RFC6376 section 3.4.2. - * Canonicalized headers should *always* use CRLF, regardless of mailer setting. - * - * @see https://tools.ietf.org/html/rfc6376#section-3.4.2 - * - * @param string $signHeader Header - * - * @return string - */ - public function DKIM_HeaderC($signHeader) - { - //Unfold all header continuation lines - //Also collapses folded whitespace. - //Note PCRE \s is too broad a definition of whitespace; RFC5322 defines it as `[ \t]` - //@see https://tools.ietf.org/html/rfc5322#section-2.2 - //That means this may break if you do something daft like put vertical tabs in your headers. - $signHeader = preg_replace('/\r\n[ \t]+/', ' ', $signHeader); - $lines = explode("\r\n", $signHeader); - foreach ($lines as $key => $line) { - //If the header is missing a :, skip it as it's invalid - //This is likely to happen because the explode() above will also split - //on the trailing LE, leaving an empty line - if (strpos($line, ':') === false) { - continue; - } - list($heading, $value) = explode(':', $line, 2); - //Lower-case header name - $heading = strtolower($heading); - //Collapse white space within the value - $value = preg_replace('/[ \t]{2,}/', ' ', $value); - //RFC6376 is slightly unclear here - it says to delete space at the *end* of each value - //But then says to delete space before and after the colon. - //Net result is the same as trimming both ends of the value. - //by elimination, the same applies to the field name - $lines[$key] = trim($heading, " \t") . ':' . trim($value, " \t"); - } - - return implode("\r\n", $lines); - } - - /** - * Generate a DKIM canonicalization body. - * Uses the 'simple' algorithm from RFC6376 section 3.4.3. - * Canonicalized bodies should *always* use CRLF, regardless of mailer setting. - * - * @see https://tools.ietf.org/html/rfc6376#section-3.4.3 - * - * @param string $body Message Body - * - * @return string - */ - public function DKIM_BodyC($body) - { - if (empty($body)) { - return "\r\n"; - } - // Normalize line endings to CRLF - $body = static::normalizeBreaks($body, "\r\n"); - - //Reduce multiple trailing line breaks to a single one - return rtrim($body, "\r\n") . "\r\n"; - } - - /** - * Create the DKIM header and body in a new message header. - * - * @param string $headers_line Header lines - * @param string $subject Subject - * @param string $body Body - * - * @return string - */ - public function DKIM_Add($headers_line, $subject, $body) - { - $DKIMsignatureType = 'rsa-sha256'; // Signature & hash algorithms - $DKIMcanonicalization = 'relaxed/simple'; // Canonicalization of header/body - $DKIMquery = 'dns/txt'; // Query method - $DKIMtime = time(); // Signature Timestamp = seconds since 00:00:00 - Jan 1, 1970 (UTC time zone) - $subject_header = "Subject: $subject"; - $headers = explode(static::$LE, $headers_line); - $from_header = ''; - $to_header = ''; - $date_header = ''; - $current = ''; - foreach ($headers as $header) { - if (strpos($header, 'From:') === 0) { - $from_header = $header; - $current = 'from_header'; - } elseif (strpos($header, 'To:') === 0) { - $to_header = $header; - $current = 'to_header'; - } elseif (strpos($header, 'Date:') === 0) { - $date_header = $header; - $current = 'date_header'; - } else { - if (!empty($$current) and strpos($header, ' =?') === 0) { - $$current .= $header; - } else { - $current = ''; - } - } - } - $from = str_replace('|', '=7C', $this->DKIM_QP($from_header)); - $to = str_replace('|', '=7C', $this->DKIM_QP($to_header)); - $date = str_replace('|', '=7C', $this->DKIM_QP($date_header)); - $subject = str_replace( - '|', - '=7C', - $this->DKIM_QP($subject_header) - ); // Copied header fields (dkim-quoted-printable) - $body = $this->DKIM_BodyC($body); - $DKIMlen = strlen($body); // Length of body - $DKIMb64 = base64_encode(pack('H*', hash('sha256', $body))); // Base64 of packed binary SHA-256 hash of body - if ('' == $this->DKIM_identity) { - $ident = ''; - } else { - $ident = ' i=' . $this->DKIM_identity . ';'; - } - $dkimhdrs = 'DKIM-Signature: v=1; a=' . - $DKIMsignatureType . '; q=' . - $DKIMquery . '; l=' . - $DKIMlen . '; s=' . - $this->DKIM_selector . - ";\r\n" . - "\tt=" . $DKIMtime . '; c=' . $DKIMcanonicalization . ";\r\n" . - "\th=From:To:Date:Subject;\r\n" . - "\td=" . $this->DKIM_domain . ';' . $ident . "\r\n" . - "\tz=$from\r\n" . - "\t|$to\r\n" . - "\t|$date\r\n" . - "\t|$subject;\r\n" . - "\tbh=" . $DKIMb64 . ";\r\n" . - "\tb="; - $toSign = $this->DKIM_HeaderC( - $from_header . "\r\n" . - $to_header . "\r\n" . - $date_header . "\r\n" . - $subject_header . "\r\n" . - $dkimhdrs - ); - $signed = $this->DKIM_Sign($toSign); - - return static::normalizeBreaks($dkimhdrs . $signed) . static::$LE; - } - - /** - * Detect if a string contains a line longer than the maximum line length - * allowed by RFC 2822 section 2.1.1. - * - * @param string $str - * - * @return bool - */ - public static function hasLineLongerThanMax($str) - { - return (bool) preg_match('/^(.{' . (self::MAX_LINE_LENGTH + strlen(static::$LE)) . ',})/m', $str); - } - - /** - * Allows for public read access to 'to' property. - * Before the send() call, queued addresses (i.e. with IDN) are not yet included. - * - * @return array - */ - public function getToAddresses() - { - return $this->to; - } - - /** - * Allows for public read access to 'cc' property. - * Before the send() call, queued addresses (i.e. with IDN) are not yet included. - * - * @return array - */ - public function getCcAddresses() - { - return $this->cc; - } - - /** - * Allows for public read access to 'bcc' property. - * Before the send() call, queued addresses (i.e. with IDN) are not yet included. - * - * @return array - */ - public function getBccAddresses() - { - return $this->bcc; - } - - /** - * Allows for public read access to 'ReplyTo' property. - * Before the send() call, queued addresses (i.e. with IDN) are not yet included. - * - * @return array - */ - public function getReplyToAddresses() - { - return $this->ReplyTo; - } - - /** - * Allows for public read access to 'all_recipients' property. - * Before the send() call, queued addresses (i.e. with IDN) are not yet included. - * - * @return array - */ - public function getAllRecipientAddresses() - { - return $this->all_recipients; - } - - /** - * Perform a callback. - * - * @param bool $isSent - * @param array $to - * @param array $cc - * @param array $bcc - * @param string $subject - * @param string $body - * @param string $from - * @param array $extra - */ - protected function doCallback($isSent, $to, $cc, $bcc, $subject, $body, $from, $extra) - { - if (!empty($this->action_function) and is_callable($this->action_function)) { - call_user_func($this->action_function, $isSent, $to, $cc, $bcc, $subject, $body, $from, $extra); - } - } - - /** - * Get the OAuth instance. - * - * @return OAuth - */ - public function getOAuth() - { - return $this->oauth; - } - - /** - * Set an OAuth instance. - * - * @param OAuth $oauth - */ - public function setOAuth(OAuth $oauth) - { - $this->oauth = $oauth; - } -} diff --git a/src/vitis/vas/rest/class/PHPMailer/src/POP3.php b/src/vitis/vas/rest/class/PHPMailer/src/POP3.php deleted file mode 100755 index 47aa3949..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/src/POP3.php +++ /dev/null @@ -1,419 +0,0 @@ -<?php -/** - * PHPMailer POP-Before-SMTP Authentication Class. - * PHP Version 5.5. - * - * @see https://github.com/PHPMailer/PHPMailer/ The PHPMailer GitHub project - * - * @author Marcus Bointon (Synchro/coolbru) <phpmailer@synchromedia.co.uk> - * @author Jim Jagielski (jimjag) <jimjag@gmail.com> - * @author Andy Prevost (codeworxtech) <codeworxtech@users.sourceforge.net> - * @author Brent R. Matzelle (original founder) - * @copyright 2012 - 2017 Marcus Bointon - * @copyright 2010 - 2012 Jim Jagielski - * @copyright 2004 - 2009 Andy Prevost - * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License - * @note This program is distributed in the hope that it will be useful - WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. - */ - -namespace PHPMailer\PHPMailer; - -/** - * PHPMailer POP-Before-SMTP Authentication Class. - * Specifically for PHPMailer to use for RFC1939 POP-before-SMTP authentication. - * 1) This class does not support APOP authentication. - * 2) Opening and closing lots of POP3 connections can be quite slow. If you need - * to send a batch of emails then just perform the authentication once at the start, - * and then loop through your mail sending script. Providing this process doesn't - * take longer than the verification period lasts on your POP3 server, you should be fine. - * 3) This is really ancient technology; you should only need to use it to talk to very old systems. - * 4) This POP3 class is deliberately lightweight and incomplete, and implements just - * enough to do authentication. - * If you want a more complete class there are other POP3 classes for PHP available. - * - * @author Richard Davey (original author) <rich@corephp.co.uk> - * @author Marcus Bointon (Synchro/coolbru) <phpmailer@synchromedia.co.uk> - * @author Jim Jagielski (jimjag) <jimjag@gmail.com> - * @author Andy Prevost (codeworxtech) <codeworxtech@users.sourceforge.net> - */ -class POP3 -{ - /** - * The POP3 PHPMailer Version number. - * - * @var string - */ - const VERSION = '6.0.3'; - - /** - * Default POP3 port number. - * - * @var int - */ - const DEFAULT_PORT = 110; - - /** - * Default timeout in seconds. - * - * @var int - */ - const DEFAULT_TIMEOUT = 30; - - /** - * Debug display level. - * Options: 0 = no, 1+ = yes. - * - * @var int - */ - public $do_debug = 0; - - /** - * POP3 mail server hostname. - * - * @var string - */ - public $host; - - /** - * POP3 port number. - * - * @var int - */ - public $port; - - /** - * POP3 Timeout Value in seconds. - * - * @var int - */ - public $tval; - - /** - * POP3 username. - * - * @var string - */ - public $username; - - /** - * POP3 password. - * - * @var string - */ - public $password; - - /** - * Resource handle for the POP3 connection socket. - * - * @var resource - */ - protected $pop_conn; - - /** - * Are we connected? - * - * @var bool - */ - protected $connected = false; - - /** - * Error container. - * - * @var array - */ - protected $errors = []; - - /** - * Line break constant. - */ - const LE = "\r\n"; - - /** - * Simple static wrapper for all-in-one POP before SMTP. - * - * @param string $host The hostname to connect to - * @param int|bool $port The port number to connect to - * @param int|bool $timeout The timeout value - * @param string $username - * @param string $password - * @param int $debug_level - * - * @return bool - */ - public static function popBeforeSmtp( - $host, - $port = false, - $timeout = false, - $username = '', - $password = '', - $debug_level = 0 - ) { - $pop = new self(); - - return $pop->authorise($host, $port, $timeout, $username, $password, $debug_level); - } - - /** - * Authenticate with a POP3 server. - * A connect, login, disconnect sequence - * appropriate for POP-before SMTP authorisation. - * - * @param string $host The hostname to connect to - * @param int|bool $port The port number to connect to - * @param int|bool $timeout The timeout value - * @param string $username - * @param string $password - * @param int $debug_level - * - * @return bool - */ - public function authorise($host, $port = false, $timeout = false, $username = '', $password = '', $debug_level = 0) - { - $this->host = $host; - // If no port value provided, use default - if (false === $port) { - $this->port = static::DEFAULT_PORT; - } else { - $this->port = (int) $port; - } - // If no timeout value provided, use default - if (false === $timeout) { - $this->tval = static::DEFAULT_TIMEOUT; - } else { - $this->tval = (int) $timeout; - } - $this->do_debug = $debug_level; - $this->username = $username; - $this->password = $password; - // Reset the error log - $this->errors = []; - // connect - $result = $this->connect($this->host, $this->port, $this->tval); - if ($result) { - $login_result = $this->login($this->username, $this->password); - if ($login_result) { - $this->disconnect(); - - return true; - } - } - // We need to disconnect regardless of whether the login succeeded - $this->disconnect(); - - return false; - } - - /** - * Connect to a POP3 server. - * - * @param string $host - * @param int|bool $port - * @param int $tval - * - * @return bool - */ - public function connect($host, $port = false, $tval = 30) - { - // Are we already connected? - if ($this->connected) { - return true; - } - - //On Windows this will raise a PHP Warning error if the hostname doesn't exist. - //Rather than suppress it with @fsockopen, capture it cleanly instead - set_error_handler([$this, 'catchWarning']); - - if (false === $port) { - $port = static::DEFAULT_PORT; - } - - // connect to the POP3 server - $this->pop_conn = fsockopen( - $host, // POP3 Host - $port, // Port # - $errno, // Error Number - $errstr, // Error Message - $tval - ); // Timeout (seconds) - // Restore the error handler - restore_error_handler(); - - // Did we connect? - if (false === $this->pop_conn) { - // It would appear not... - $this->setError( - "Failed to connect to server $host on port $port. errno: $errno; errstr: $errstr" - ); - - return false; - } - - // Increase the stream time-out - stream_set_timeout($this->pop_conn, $tval, 0); - - // Get the POP3 server response - $pop3_response = $this->getResponse(); - // Check for the +OK - if ($this->checkResponse($pop3_response)) { - // The connection is established and the POP3 server is talking - $this->connected = true; - - return true; - } - - return false; - } - - /** - * Log in to the POP3 server. - * Does not support APOP (RFC 2828, 4949). - * - * @param string $username - * @param string $password - * - * @return bool - */ - public function login($username = '', $password = '') - { - if (!$this->connected) { - $this->setError('Not connected to POP3 server'); - } - if (empty($username)) { - $username = $this->username; - } - if (empty($password)) { - $password = $this->password; - } - - // Send the Username - $this->sendString("USER $username" . static::LE); - $pop3_response = $this->getResponse(); - if ($this->checkResponse($pop3_response)) { - // Send the Password - $this->sendString("PASS $password" . static::LE); - $pop3_response = $this->getResponse(); - if ($this->checkResponse($pop3_response)) { - return true; - } - } - - return false; - } - - /** - * Disconnect from the POP3 server. - */ - public function disconnect() - { - $this->sendString('QUIT'); - //The QUIT command may cause the daemon to exit, which will kill our connection - //So ignore errors here - try { - @fclose($this->pop_conn); - } catch (Exception $e) { - //Do nothing - } - } - - /** - * Get a response from the POP3 server. - * - * @param int $size The maximum number of bytes to retrieve - * - * @return string - */ - protected function getResponse($size = 128) - { - $response = fgets($this->pop_conn, $size); - if ($this->do_debug >= 1) { - echo 'Server -> Client: ', $response; - } - - return $response; - } - - /** - * Send raw data to the POP3 server. - * - * @param string $string - * - * @return int - */ - protected function sendString($string) - { - if ($this->pop_conn) { - if ($this->do_debug >= 2) { //Show client messages when debug >= 2 - echo 'Client -> Server: ', $string; - } - - return fwrite($this->pop_conn, $string, strlen($string)); - } - - return 0; - } - - /** - * Checks the POP3 server response. - * Looks for for +OK or -ERR. - * - * @param string $string - * - * @return bool - */ - protected function checkResponse($string) - { - if (substr($string, 0, 3) !== '+OK') { - $this->setError("Server reported an error: $string"); - - return false; - } - - return true; - } - - /** - * Add an error to the internal error store. - * Also display debug output if it's enabled. - * - * @param string $error - */ - protected function setError($error) - { - $this->errors[] = $error; - if ($this->do_debug >= 1) { - echo '<pre>'; - foreach ($this->errors as $e) { - print_r($e); - } - echo '</pre>'; - } - } - - /** - * Get an array of error messages, if any. - * - * @return array - */ - public function getErrors() - { - return $this->errors; - } - - /** - * POP3 connection error handler. - * - * @param int $errno - * @param string $errstr - * @param string $errfile - * @param int $errline - */ - protected function catchWarning($errno, $errstr, $errfile, $errline) - { - $this->setError( - 'Connecting to the POP3 server raised a PHP warning:' . - "errno: $errno errstr: $errstr; errfile: $errfile; errline: $errline" - ); - } -} diff --git a/src/vitis/vas/rest/class/PHPMailer/src/SMTP.php b/src/vitis/vas/rest/class/PHPMailer/src/SMTP.php deleted file mode 100755 index 27b752ec..00000000 --- a/src/vitis/vas/rest/class/PHPMailer/src/SMTP.php +++ /dev/null @@ -1,1325 +0,0 @@ -<?php -/** - * PHPMailer RFC821 SMTP email transport class. - * PHP Version 5.5. - * - * @see https://github.com/PHPMailer/PHPMailer/ The PHPMailer GitHub project - * - * @author Marcus Bointon (Synchro/coolbru) <phpmailer@synchromedia.co.uk> - * @author Jim Jagielski (jimjag) <jimjag@gmail.com> - * @author Andy Prevost (codeworxtech) <codeworxtech@users.sourceforge.net> - * @author Brent R. Matzelle (original founder) - * @copyright 2012 - 2017 Marcus Bointon - * @copyright 2010 - 2012 Jim Jagielski - * @copyright 2004 - 2009 Andy Prevost - * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License - * @note This program is distributed in the hope that it will be useful - WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. - */ - -namespace PHPMailer\PHPMailer; - -/** - * PHPMailer RFC821 SMTP email transport class. - * Implements RFC 821 SMTP commands and provides some utility methods for sending mail to an SMTP server. - * - * @author Chris Ryan - * @author Marcus Bointon <phpmailer@synchromedia.co.uk> - */ -class SMTP -{ - /** - * The PHPMailer SMTP version number. - * - * @var string - */ - const VERSION = '6.0.3'; - - /** - * SMTP line break constant. - * - * @var string - */ - const LE = "\r\n"; - - /** - * The SMTP port to use if one is not specified. - * - * @var int - */ - const DEFAULT_PORT = 25; - - /** - * The maximum line length allowed by RFC 2822 section 2.1.1. - * - * @var int - */ - const MAX_LINE_LENGTH = 998; - - /** - * Debug level for no output. - */ - const DEBUG_OFF = 0; - - /** - * Debug level to show client -> server messages. - */ - const DEBUG_CLIENT = 1; - - /** - * Debug level to show client -> server and server -> client messages. - */ - const DEBUG_SERVER = 2; - - /** - * Debug level to show connection status, client -> server and server -> client messages. - */ - const DEBUG_CONNECTION = 3; - - /** - * Debug level to show all messages. - */ - const DEBUG_LOWLEVEL = 4; - - /** - * Debug output level. - * Options: - * * self::DEBUG_OFF (`0`) No debug output, default - * * self::DEBUG_CLIENT (`1`) Client commands - * * self::DEBUG_SERVER (`2`) Client commands and server responses - * * self::DEBUG_CONNECTION (`3`) As DEBUG_SERVER plus connection status - * * self::DEBUG_LOWLEVEL (`4`) Low-level data output, all messages. - * - * @var int - */ - public $do_debug = self::DEBUG_OFF; - - /** - * How to handle debug output. - * Options: - * * `echo` Output plain-text as-is, appropriate for CLI - * * `html` Output escaped, line breaks converted to `<br>`, appropriate for browser output - * * `error_log` Output to error log as configured in php.ini - * Alternatively, you can provide a callable expecting two params: a message string and the debug level: - * - * ```php - * $smtp->Debugoutput = function($str, $level) {echo "debug level $level; message: $str";}; - * ``` - * - * Alternatively, you can pass in an instance of a PSR-3 compatible logger, though only `debug` - * level output is used: - * - * ```php - * $mail->Debugoutput = new myPsr3Logger; - * ``` - * - * @var string|callable|\Psr\Log\LoggerInterface - */ - public $Debugoutput = 'echo'; - - /** - * Whether to use VERP. - * - * @see http://en.wikipedia.org/wiki/Variable_envelope_return_path - * @see http://www.postfix.org/VERP_README.html Info on VERP - * - * @var bool - */ - public $do_verp = false; - - /** - * The timeout value for connection, in seconds. - * Default of 5 minutes (300sec) is from RFC2821 section 4.5.3.2. - * This needs to be quite high to function correctly with hosts using greetdelay as an anti-spam measure. - * - * @see http://tools.ietf.org/html/rfc2821#section-4.5.3.2 - * - * @var int - */ - public $Timeout = 300; - - /** - * How long to wait for commands to complete, in seconds. - * Default of 5 minutes (300sec) is from RFC2821 section 4.5.3.2. - * - * @var int - */ - public $Timelimit = 300; - - /** - * Patterns to extract an SMTP transaction id from reply to a DATA command. - * The first capture group in each regex will be used as the ID. - * MS ESMTP returns the message ID, which may not be correct for internal tracking. - * - * @var string[] - */ - protected $smtp_transaction_id_patterns = [ - 'exim' => '/[0-9]{3} OK id=(.*)/', - 'sendmail' => '/[0-9]{3} 2.0.0 (.*) Message/', - 'postfix' => '/[0-9]{3} 2.0.0 Ok: queued as (.*)/', - 'Microsoft_ESMTP' => '/[0-9]{3} 2.[0-9].0 (.*)@(?:.*) Queued mail for delivery/', - 'Amazon_SES' => '/[0-9]{3} Ok (.*)/', - 'SendGrid' => '/[0-9]{3} Ok: queued as (.*)/', - ]; - - /** - * The last transaction ID issued in response to a DATA command, - * if one was detected. - * - * @var string|bool|null - */ - protected $last_smtp_transaction_id; - - /** - * The socket for the server connection. - * - * @var ?resource - */ - protected $smtp_conn; - - /** - * Error information, if any, for the last SMTP command. - * - * @var array - */ - protected $error = [ - 'error' => '', - 'detail' => '', - 'smtp_code' => '', - 'smtp_code_ex' => '', - ]; - - /** - * The reply the server sent to us for HELO. - * If null, no HELO string has yet been received. - * - * @var string|null - */ - protected $helo_rply = null; - - /** - * The set of SMTP extensions sent in reply to EHLO command. - * Indexes of the array are extension names. - * Value at index 'HELO' or 'EHLO' (according to command that was sent) - * represents the server name. In case of HELO it is the only element of the array. - * Other values can be boolean TRUE or an array containing extension options. - * If null, no HELO/EHLO string has yet been received. - * - * @var array|null - */ - protected $server_caps = null; - - /** - * The most recent reply received from the server. - * - * @var string - */ - protected $last_reply = ''; - - /** - * Output debugging info via a user-selected method. - * - * @param string $str Debug string to output - * @param int $level The debug level of this message; see DEBUG_* constants - * - * @see SMTP::$Debugoutput - * @see SMTP::$do_debug - */ - protected function edebug($str, $level = 0) - { - if ($level > $this->do_debug) { - return; - } - //Is this a PSR-3 logger? - if ($this->Debugoutput instanceof \Psr\Log\LoggerInterface) { - $this->Debugoutput->debug($str); - - return; - } - //Avoid clash with built-in function names - if (!in_array($this->Debugoutput, ['error_log', 'html', 'echo']) and is_callable($this->Debugoutput)) { - call_user_func($this->Debugoutput, $str, $level); - - return; - } - switch ($this->Debugoutput) { - case 'error_log': - //Don't output, just log - error_log($str); - break; - case 'html': - //Cleans up output a bit for a better looking, HTML-safe output - echo gmdate('Y-m-d H:i:s'), ' ', htmlentities( - preg_replace('/[\r\n]+/', '', $str), - ENT_QUOTES, - 'UTF-8' - ), "<br>\n"; - break; - case 'echo': - default: - //Normalize line breaks - $str = preg_replace('/\r\n|\r/ms', "\n", $str); - echo gmdate('Y-m-d H:i:s'), - "\t", - //Trim trailing space - trim( - //Indent for readability, except for trailing break - str_replace( - "\n", - "\n \t ", - trim($str) - ) - ), - "\n"; - } - } - - /** - * Connect to an SMTP server. - * - * @param string $host SMTP server IP or host name - * @param int $port The port number to connect to - * @param int $timeout How long to wait for the connection to open - * @param array $options An array of options for stream_context_create() - * - * @return bool - */ - public function connect($host, $port = null, $timeout = 30, $options = []) - { - static $streamok; - //This is enabled by default since 5.0.0 but some providers disable it - //Check this once and cache the result - if (null === $streamok) { - $streamok = function_exists('stream_socket_client'); - } - // Clear errors to avoid confusion - $this->setError(''); - // Make sure we are __not__ connected - if ($this->connected()) { - // Already connected, generate error - $this->setError('Already connected to a server'); - - return false; - } - if (empty($port)) { - $port = self::DEFAULT_PORT; - } - // Connect to the SMTP server - $this->edebug( - "Connection: opening to $host:$port, timeout=$timeout, options=" . - (count($options) > 0 ? var_export($options, true) : 'array()'), - self::DEBUG_CONNECTION - ); - $errno = 0; - $errstr = ''; - if ($streamok) { - $socket_context = stream_context_create($options); - set_error_handler([$this, 'errorHandler']); - $this->smtp_conn = stream_socket_client( - $host . ':' . $port, - $errno, - $errstr, - $timeout, - STREAM_CLIENT_CONNECT, - $socket_context - ); - restore_error_handler(); - } else { - //Fall back to fsockopen which should work in more places, but is missing some features - $this->edebug( - 'Connection: stream_socket_client not available, falling back to fsockopen', - self::DEBUG_CONNECTION - ); - set_error_handler([$this, 'errorHandler']); - $this->smtp_conn = fsockopen( - $host, - $port, - $errno, - $errstr, - $timeout - ); - restore_error_handler(); - } - // Verify we connected properly - if (!is_resource($this->smtp_conn)) { - $this->setError( - 'Failed to connect to server', - '', - (string) $errno, - (string) $errstr - ); - $this->edebug( - 'SMTP ERROR: ' . $this->error['error'] - . ": $errstr ($errno)", - self::DEBUG_CLIENT - ); - - return false; - } - $this->edebug('Connection: opened', self::DEBUG_CONNECTION); - // SMTP server can take longer to respond, give longer timeout for first read - // Windows does not have support for this timeout function - if (substr(PHP_OS, 0, 3) != 'WIN') { - $max = ini_get('max_execution_time'); - // Don't bother if unlimited - if (0 != $max and $timeout > $max) { - @set_time_limit($timeout); - } - stream_set_timeout($this->smtp_conn, $timeout, 0); - } - // Get any announcement - $announce = $this->get_lines(); - $this->edebug('SERVER -> CLIENT: ' . $announce, self::DEBUG_SERVER); - - return true; - } - - /** - * Initiate a TLS (encrypted) session. - * - * @return bool - */ - public function startTLS() - { - if (!$this->sendCommand('STARTTLS', 'STARTTLS', 220)) { - return false; - } - - //Allow the best TLS version(s) we can - $crypto_method = STREAM_CRYPTO_METHOD_TLS_CLIENT; - - //PHP 5.6.7 dropped inclusion of TLS 1.1 and 1.2 in STREAM_CRYPTO_METHOD_TLS_CLIENT - //so add them back in manually if we can - if (defined('STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT')) { - $crypto_method |= STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT; - $crypto_method |= STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT; - } - - // Begin encrypted connection - set_error_handler([$this, 'errorHandler']); - $crypto_ok = stream_socket_enable_crypto( - $this->smtp_conn, - true, - $crypto_method - ); - restore_error_handler(); - - return (bool) $crypto_ok; - } - - /** - * Perform SMTP authentication. - * Must be run after hello(). - * - * @see hello() - * - * @param string $username The user name - * @param string $password The password - * @param string $authtype The auth type (CRAM-MD5, PLAIN, LOGIN, XOAUTH2) - * @param OAuth $OAuth An optional OAuth instance for XOAUTH2 authentication - * - * @return bool True if successfully authenticated - */ - public function authenticate( - $username, - $password, - $authtype = null, - $OAuth = null - ) { - if (!$this->server_caps) { - $this->setError('Authentication is not allowed before HELO/EHLO'); - - return false; - } - - if (array_key_exists('EHLO', $this->server_caps)) { - // SMTP extensions are available; try to find a proper authentication method - if (!array_key_exists('AUTH', $this->server_caps)) { - $this->setError('Authentication is not allowed at this stage'); - // 'at this stage' means that auth may be allowed after the stage changes - // e.g. after STARTTLS - - return false; - } - - $this->edebug('Auth method requested: ' . ($authtype ? $authtype : 'UNKNOWN'), self::DEBUG_LOWLEVEL); - $this->edebug( - 'Auth methods available on the server: ' . implode(',', $this->server_caps['AUTH']), - self::DEBUG_LOWLEVEL - ); - - //If we have requested a specific auth type, check the server supports it before trying others - if (!in_array($authtype, $this->server_caps['AUTH'])) { - $this->edebug('Requested auth method not available: ' . $authtype, self::DEBUG_LOWLEVEL); - $authtype = null; - } - - if (empty($authtype)) { - //If no auth mechanism is specified, attempt to use these, in this order - //Try CRAM-MD5 first as it's more secure than the others - foreach (['CRAM-MD5', 'LOGIN', 'PLAIN', 'XOAUTH2'] as $method) { - if (in_array($method, $this->server_caps['AUTH'])) { - $authtype = $method; - break; - } - } - if (empty($authtype)) { - $this->setError('No supported authentication methods found'); - - return false; - } - self::edebug('Auth method selected: ' . $authtype, self::DEBUG_LOWLEVEL); - } - - if (!in_array($authtype, $this->server_caps['AUTH'])) { - $this->setError("The requested authentication method \"$authtype\" is not supported by the server"); - - return false; - } - } elseif (empty($authtype)) { - $authtype = 'LOGIN'; - } - switch ($authtype) { - case 'PLAIN': - // Start authentication - if (!$this->sendCommand('AUTH', 'AUTH PLAIN', 334)) { - return false; - } - // Send encoded username and password - if (!$this->sendCommand( - 'User & Password', - base64_encode("\0" . $username . "\0" . $password), - 235 - ) - ) { - return false; - } - break; - case 'LOGIN': - // Start authentication - if (!$this->sendCommand('AUTH', 'AUTH LOGIN', 334)) { - return false; - } - if (!$this->sendCommand('Username', base64_encode($username), 334)) { - return false; - } - if (!$this->sendCommand('Password', base64_encode($password), 235)) { - return false; - } - break; - case 'CRAM-MD5': - // Start authentication - if (!$this->sendCommand('AUTH CRAM-MD5', 'AUTH CRAM-MD5', 334)) { - return false; - } - // Get the challenge - $challenge = base64_decode(substr($this->last_reply, 4)); - - // Build the response - $response = $username . ' ' . $this->hmac($challenge, $password); - - // send encoded credentials - return $this->sendCommand('Username', base64_encode($response), 235); - case 'XOAUTH2': - //The OAuth instance must be set up prior to requesting auth. - if (null === $OAuth) { - return false; - } - $oauth = $OAuth->getOauth64(); - - // Start authentication - if (!$this->sendCommand('AUTH', 'AUTH XOAUTH2 ' . $oauth, 235)) { - return false; - } - break; - default: - $this->setError("Authentication method \"$authtype\" is not supported"); - - return false; - } - - return true; - } - - /** - * Calculate an MD5 HMAC hash. - * Works like hash_hmac('md5', $data, $key) - * in case that function is not available. - * - * @param string $data The data to hash - * @param string $key The key to hash with - * - * @return string - */ - protected function hmac($data, $key) - { - if (function_exists('hash_hmac')) { - return hash_hmac('md5', $data, $key); - } - - // The following borrowed from - // http://php.net/manual/en/function.mhash.php#27225 - - // RFC 2104 HMAC implementation for php. - // Creates an md5 HMAC. - // Eliminates the need to install mhash to compute a HMAC - // by Lance Rushing - - $bytelen = 64; // byte length for md5 - if (strlen($key) > $bytelen) { - $key = pack('H*', md5($key)); - } - $key = str_pad($key, $bytelen, chr(0x00)); - $ipad = str_pad('', $bytelen, chr(0x36)); - $opad = str_pad('', $bytelen, chr(0x5c)); - $k_ipad = $key ^ $ipad; - $k_opad = $key ^ $opad; - - return md5($k_opad . pack('H*', md5($k_ipad . $data))); - } - - /** - * Check connection state. - * - * @return bool True if connected - */ - public function connected() - { - if (is_resource($this->smtp_conn)) { - $sock_status = stream_get_meta_data($this->smtp_conn); - if ($sock_status['eof']) { - // The socket is valid but we are not connected - $this->edebug( - 'SMTP NOTICE: EOF caught while checking if connected', - self::DEBUG_CLIENT - ); - $this->close(); - - return false; - } - - return true; // everything looks good - } - - return false; - } - - /** - * Close the socket and clean up the state of the class. - * Don't use this function without first trying to use QUIT. - * - * @see quit() - */ - public function close() - { - $this->setError(''); - $this->server_caps = null; - $this->helo_rply = null; - if (is_resource($this->smtp_conn)) { - // close the connection and cleanup - fclose($this->smtp_conn); - $this->smtp_conn = null; //Makes for cleaner serialization - $this->edebug('Connection: closed', self::DEBUG_CONNECTION); - } - } - - /** - * Send an SMTP DATA command. - * Issues a data command and sends the msg_data to the server, - * finializing the mail transaction. $msg_data is the message - * that is to be send with the headers. Each header needs to be - * on a single line followed by a <CRLF> with the message headers - * and the message body being separated by an additional <CRLF>. - * Implements RFC 821: DATA <CRLF>. - * - * @param string $msg_data Message data to send - * - * @return bool - */ - public function data($msg_data) - { - //This will use the standard timelimit - if (!$this->sendCommand('DATA', 'DATA', 354)) { - return false; - } - - /* The server is ready to accept data! - * According to rfc821 we should not send more than 1000 characters on a single line (including the LE) - * so we will break the data up into lines by \r and/or \n then if needed we will break each of those into - * smaller lines to fit within the limit. - * We will also look for lines that start with a '.' and prepend an additional '.'. - * NOTE: this does not count towards line-length limit. - */ - - // Normalize line breaks before exploding - $lines = explode("\n", str_replace(["\r\n", "\r"], "\n", $msg_data)); - - /* To distinguish between a complete RFC822 message and a plain message body, we check if the first field - * of the first line (':' separated) does not contain a space then it _should_ be a header and we will - * process all lines before a blank line as headers. - */ - - $field = substr($lines[0], 0, strpos($lines[0], ':')); - $in_headers = false; - if (!empty($field) and strpos($field, ' ') === false) { - $in_headers = true; - } - - foreach ($lines as $line) { - $lines_out = []; - if ($in_headers and $line == '') { - $in_headers = false; - } - //Break this line up into several smaller lines if it's too long - //Micro-optimisation: isset($str[$len]) is faster than (strlen($str) > $len), - while (isset($line[self::MAX_LINE_LENGTH])) { - //Working backwards, try to find a space within the last MAX_LINE_LENGTH chars of the line to break on - //so as to avoid breaking in the middle of a word - $pos = strrpos(substr($line, 0, self::MAX_LINE_LENGTH), ' '); - //Deliberately matches both false and 0 - if (!$pos) { - //No nice break found, add a hard break - $pos = self::MAX_LINE_LENGTH - 1; - $lines_out[] = substr($line, 0, $pos); - $line = substr($line, $pos); - } else { - //Break at the found point - $lines_out[] = substr($line, 0, $pos); - //Move along by the amount we dealt with - $line = substr($line, $pos + 1); - } - //If processing headers add a LWSP-char to the front of new line RFC822 section 3.1.1 - if ($in_headers) { - $line = "\t" . $line; - } - } - $lines_out[] = $line; - - //Send the lines to the server - foreach ($lines_out as $line_out) { - //RFC2821 section 4.5.2 - if (!empty($line_out) and $line_out[0] == '.') { - $line_out = '.' . $line_out; - } - $this->client_send($line_out . static::LE, 'DATA'); - } - } - - //Message data has been sent, complete the command - //Increase timelimit for end of DATA command - $savetimelimit = $this->Timelimit; - $this->Timelimit = $this->Timelimit * 2; - $result = $this->sendCommand('DATA END', '.', 250); - $this->recordLastTransactionID(); - //Restore timelimit - $this->Timelimit = $savetimelimit; - - return $result; - } - - /** - * Send an SMTP HELO or EHLO command. - * Used to identify the sending server to the receiving server. - * This makes sure that client and server are in a known state. - * Implements RFC 821: HELO <SP> <domain> <CRLF> - * and RFC 2821 EHLO. - * - * @param string $host The host name or IP to connect to - * - * @return bool - */ - public function hello($host = '') - { - //Try extended hello first (RFC 2821) - return (bool) ($this->sendHello('EHLO', $host) or $this->sendHello('HELO', $host)); - } - - /** - * Send an SMTP HELO or EHLO command. - * Low-level implementation used by hello(). - * - * @param string $hello The HELO string - * @param string $host The hostname to say we are - * - * @return bool - * - * @see hello() - */ - protected function sendHello($hello, $host) - { - $noerror = $this->sendCommand($hello, $hello . ' ' . $host, 250); - $this->helo_rply = $this->last_reply; - if ($noerror) { - $this->parseHelloFields($hello); - } else { - $this->server_caps = null; - } - - return $noerror; - } - - /** - * Parse a reply to HELO/EHLO command to discover server extensions. - * In case of HELO, the only parameter that can be discovered is a server name. - * - * @param string $type `HELO` or `EHLO` - */ - protected function parseHelloFields($type) - { - $this->server_caps = []; - $lines = explode("\n", $this->helo_rply); - - foreach ($lines as $n => $s) { - //First 4 chars contain response code followed by - or space - $s = trim(substr($s, 4)); - if (empty($s)) { - continue; - } - $fields = explode(' ', $s); - if (!empty($fields)) { - if (!$n) { - $name = $type; - $fields = $fields[0]; - } else { - $name = array_shift($fields); - switch ($name) { - case 'SIZE': - $fields = ($fields ? $fields[0] : 0); - break; - case 'AUTH': - if (!is_array($fields)) { - $fields = []; - } - break; - default: - $fields = true; - } - } - $this->server_caps[$name] = $fields; - } - } - } - - /** - * Send an SMTP MAIL command. - * Starts a mail transaction from the email address specified in - * $from. Returns true if successful or false otherwise. If True - * the mail transaction is started and then one or more recipient - * commands may be called followed by a data command. - * Implements RFC 821: MAIL <SP> FROM:<reverse-path> <CRLF>. - * - * @param string $from Source address of this message - * - * @return bool - */ - public function mail($from) - { - $useVerp = ($this->do_verp ? ' XVERP' : ''); - - return $this->sendCommand( - 'MAIL FROM', - 'MAIL FROM:<' . $from . '>' . $useVerp, - 250 - ); - } - - /** - * Send an SMTP QUIT command. - * Closes the socket if there is no error or the $close_on_error argument is true. - * Implements from RFC 821: QUIT <CRLF>. - * - * @param bool $close_on_error Should the connection close if an error occurs? - * - * @return bool - */ - public function quit($close_on_error = true) - { - $noerror = $this->sendCommand('QUIT', 'QUIT', 221); - $err = $this->error; //Save any error - if ($noerror or $close_on_error) { - $this->close(); - $this->error = $err; //Restore any error from the quit command - } - - return $noerror; - } - - /** - * Send an SMTP RCPT command. - * Sets the TO argument to $toaddr. - * Returns true if the recipient was accepted false if it was rejected. - * Implements from RFC 821: RCPT <SP> TO:<forward-path> <CRLF>. - * - * @param string $address The address the message is being sent to - * - * @return bool - */ - public function recipient($address) - { - return $this->sendCommand( - 'RCPT TO', - 'RCPT TO:<' . $address . '>', - [250, 251] - ); - } - - /** - * Send an SMTP RSET command. - * Abort any transaction that is currently in progress. - * Implements RFC 821: RSET <CRLF>. - * - * @return bool True on success - */ - public function reset() - { - return $this->sendCommand('RSET', 'RSET', 250); - } - - /** - * Send a command to an SMTP server and check its return code. - * - * @param string $command The command name - not sent to the server - * @param string $commandstring The actual command to send - * @param int|array $expect One or more expected integer success codes - * - * @return bool True on success - */ - protected function sendCommand($command, $commandstring, $expect) - { - if (!$this->connected()) { - $this->setError("Called $command without being connected"); - - return false; - } - //Reject line breaks in all commands - if (strpos($commandstring, "\n") !== false or strpos($commandstring, "\r") !== false) { - $this->setError("Command '$command' contained line breaks"); - - return false; - } - $this->client_send($commandstring . static::LE, $command); - - $this->last_reply = $this->get_lines(); - // Fetch SMTP code and possible error code explanation - $matches = []; - if (preg_match('/^([0-9]{3})[ -](?:([0-9]\\.[0-9]\\.[0-9]) )?/', $this->last_reply, $matches)) { - $code = $matches[1]; - $code_ex = (count($matches) > 2 ? $matches[2] : null); - // Cut off error code from each response line - $detail = preg_replace( - "/{$code}[ -]" . - ($code_ex ? str_replace('.', '\\.', $code_ex) . ' ' : '') . '/m', - '', - $this->last_reply - ); - } else { - // Fall back to simple parsing if regex fails - $code = substr($this->last_reply, 0, 3); - $code_ex = null; - $detail = substr($this->last_reply, 4); - } - - $this->edebug('SERVER -> CLIENT: ' . $this->last_reply, self::DEBUG_SERVER); - - if (!in_array($code, (array) $expect)) { - $this->setError( - "$command command failed", - $detail, - $code, - $code_ex - ); - $this->edebug( - 'SMTP ERROR: ' . $this->error['error'] . ': ' . $this->last_reply, - self::DEBUG_CLIENT - ); - - return false; - } - - $this->setError(''); - - return true; - } - - /** - * Send an SMTP SAML command. - * Starts a mail transaction from the email address specified in $from. - * Returns true if successful or false otherwise. If True - * the mail transaction is started and then one or more recipient - * commands may be called followed by a data command. This command - * will send the message to the users terminal if they are logged - * in and send them an email. - * Implements RFC 821: SAML <SP> FROM:<reverse-path> <CRLF>. - * - * @param string $from The address the message is from - * - * @return bool - */ - public function sendAndMail($from) - { - return $this->sendCommand('SAML', "SAML FROM:$from", 250); - } - - /** - * Send an SMTP VRFY command. - * - * @param string $name The name to verify - * - * @return bool - */ - public function verify($name) - { - return $this->sendCommand('VRFY', "VRFY $name", [250, 251]); - } - - /** - * Send an SMTP NOOP command. - * Used to keep keep-alives alive, doesn't actually do anything. - * - * @return bool - */ - public function noop() - { - return $this->sendCommand('NOOP', 'NOOP', 250); - } - - /** - * Send an SMTP TURN command. - * This is an optional command for SMTP that this class does not support. - * This method is here to make the RFC821 Definition complete for this class - * and _may_ be implemented in future. - * Implements from RFC 821: TURN <CRLF>. - * - * @return bool - */ - public function turn() - { - $this->setError('The SMTP TURN command is not implemented'); - $this->edebug('SMTP NOTICE: ' . $this->error['error'], self::DEBUG_CLIENT); - - return false; - } - - /** - * Send raw data to the server. - * - * @param string $data The data to send - * @param string $command Optionally, the command this is part of, used only for controlling debug output - * - * @return int|bool The number of bytes sent to the server or false on error - */ - public function client_send($data, $command = '') - { - //If SMTP transcripts are left enabled, or debug output is posted online - //it can leak credentials, so hide credentials in all but lowest level - if (self::DEBUG_LOWLEVEL > $this->do_debug and - in_array($command, ['User & Password', 'Username', 'Password'], true)) { - $this->edebug('CLIENT -> SERVER: <credentials hidden>', self::DEBUG_CLIENT); - } else { - $this->edebug('CLIENT -> SERVER: ' . $data, self::DEBUG_CLIENT); - } - set_error_handler([$this, 'errorHandler']); - $result = fwrite($this->smtp_conn, $data); - restore_error_handler(); - - return $result; - } - - /** - * Get the latest error. - * - * @return array - */ - public function getError() - { - return $this->error; - } - - /** - * Get SMTP extensions available on the server. - * - * @return array|null - */ - public function getServerExtList() - { - return $this->server_caps; - } - - /** - * Get metadata about the SMTP server from its HELO/EHLO response. - * The method works in three ways, dependent on argument value and current state: - * 1. HELO/EHLO has not been sent - returns null and populates $this->error. - * 2. HELO has been sent - - * $name == 'HELO': returns server name - * $name == 'EHLO': returns boolean false - * $name == any other string: returns null and populates $this->error - * 3. EHLO has been sent - - * $name == 'HELO'|'EHLO': returns the server name - * $name == any other string: if extension $name exists, returns True - * or its options (e.g. AUTH mechanisms supported). Otherwise returns False. - * - * @param string $name Name of SMTP extension or 'HELO'|'EHLO' - * - * @return mixed - */ - public function getServerExt($name) - { - if (!$this->server_caps) { - $this->setError('No HELO/EHLO was sent'); - - return; - } - - if (!array_key_exists($name, $this->server_caps)) { - if ('HELO' == $name) { - return $this->server_caps['EHLO']; - } - if ('EHLO' == $name || array_key_exists('EHLO', $this->server_caps)) { - return false; - } - $this->setError('HELO handshake was used; No information about server extensions available'); - - return; - } - - return $this->server_caps[$name]; - } - - /** - * Get the last reply from the server. - * - * @return string - */ - public function getLastReply() - { - return $this->last_reply; - } - - /** - * Read the SMTP server's response. - * Either before eof or socket timeout occurs on the operation. - * With SMTP we can tell if we have more lines to read if the - * 4th character is '-' symbol. If it is a space then we don't - * need to read anything else. - * - * @return string - */ - protected function get_lines() - { - // If the connection is bad, give up straight away - if (!is_resource($this->smtp_conn)) { - return ''; - } - $data = ''; - $endtime = 0; - stream_set_timeout($this->smtp_conn, $this->Timeout); - if ($this->Timelimit > 0) { - $endtime = time() + $this->Timelimit; - } - $selR = [$this->smtp_conn]; - $selW = null; - while (is_resource($this->smtp_conn) and !feof($this->smtp_conn)) { - //Must pass vars in here as params are by reference - if (!stream_select($selR, $selW, $selW, $this->Timelimit)) { - $this->edebug( - 'SMTP -> get_lines(): timed-out (' . $this->Timeout . ' sec)', - self::DEBUG_LOWLEVEL - ); - break; - } - //Deliberate noise suppression - errors are handled afterwards - $str = @fgets($this->smtp_conn, 515); - $this->edebug('SMTP INBOUND: "' . trim($str) . '"', self::DEBUG_LOWLEVEL); - $data .= $str; - // If response is only 3 chars (not valid, but RFC5321 S4.2 says it must be handled), - // or 4th character is a space, we are done reading, break the loop, - // string array access is a micro-optimisation over strlen - if (!isset($str[3]) or (isset($str[3]) and $str[3] == ' ')) { - break; - } - // Timed-out? Log and break - $info = stream_get_meta_data($this->smtp_conn); - if ($info['timed_out']) { - $this->edebug( - 'SMTP -> get_lines(): timed-out (' . $this->Timeout . ' sec)', - self::DEBUG_LOWLEVEL - ); - break; - } - // Now check if reads took too long - if ($endtime and time() > $endtime) { - $this->edebug( - 'SMTP -> get_lines(): timelimit reached (' . - $this->Timelimit . ' sec)', - self::DEBUG_LOWLEVEL - ); - break; - } - } - - return $data; - } - - /** - * Enable or disable VERP address generation. - * - * @param bool $enabled - */ - public function setVerp($enabled = false) - { - $this->do_verp = $enabled; - } - - /** - * Get VERP address generation mode. - * - * @return bool - */ - public function getVerp() - { - return $this->do_verp; - } - - /** - * Set error messages and codes. - * - * @param string $message The error message - * @param string $detail Further detail on the error - * @param string $smtp_code An associated SMTP error code - * @param string $smtp_code_ex Extended SMTP code - */ - protected function setError($message, $detail = '', $smtp_code = '', $smtp_code_ex = '') - { - $this->error = [ - 'error' => $message, - 'detail' => $detail, - 'smtp_code' => $smtp_code, - 'smtp_code_ex' => $smtp_code_ex, - ]; - } - - /** - * Set debug output method. - * - * @param string|callable $method The name of the mechanism to use for debugging output, or a callable to handle it - */ - public function setDebugOutput($method = 'echo') - { - $this->Debugoutput = $method; - } - - /** - * Get debug output method. - * - * @return string - */ - public function getDebugOutput() - { - return $this->Debugoutput; - } - - /** - * Set debug output level. - * - * @param int $level - */ - public function setDebugLevel($level = 0) - { - $this->do_debug = $level; - } - - /** - * Get debug output level. - * - * @return int - */ - public function getDebugLevel() - { - return $this->do_debug; - } - - /** - * Set SMTP timeout. - * - * @param int $timeout The timeout duration in seconds - */ - public function setTimeout($timeout = 0) - { - $this->Timeout = $timeout; - } - - /** - * Get SMTP timeout. - * - * @return int - */ - public function getTimeout() - { - return $this->Timeout; - } - - /** - * Reports an error number and string. - * - * @param int $errno The error number returned by PHP - * @param string $errmsg The error message returned by PHP - * @param string $errfile The file the error occurred in - * @param int $errline The line number the error occurred on - */ - protected function errorHandler($errno, $errmsg, $errfile = '', $errline = 0) - { - $notice = 'Connection failed.'; - $this->setError( - $notice, - $errmsg, - (string) $errno - ); - $this->edebug( - "$notice Error #$errno: $errmsg [$errfile line $errline]", - self::DEBUG_CONNECTION - ); - } - - /** - * Extract and return the ID of the last SMTP transaction based on - * a list of patterns provided in SMTP::$smtp_transaction_id_patterns. - * Relies on the host providing the ID in response to a DATA command. - * If no reply has been received yet, it will return null. - * If no pattern was matched, it will return false. - * - * @return bool|null|string - */ - protected function recordLastTransactionID() - { - $reply = $this->getLastReply(); - - if (empty($reply)) { - $this->last_smtp_transaction_id = null; - } else { - $this->last_smtp_transaction_id = false; - foreach ($this->smtp_transaction_id_patterns as $smtp_transaction_id_pattern) { - if (preg_match($smtp_transaction_id_pattern, $reply, $matches)) { - $this->last_smtp_transaction_id = trim($matches[1]); - break; - } - } - } - - return $this->last_smtp_transaction_id; - } - - /** - * Get the queue/transaction ID of the last SMTP transaction - * If no reply has been received yet, it will return null. - * If no pattern was matched, it will return false. - * - * @return bool|null|string - * - * @see recordLastTransactionID() - */ - public function getLastTransactionID() - { - return $this->last_smtp_transaction_id; - } -} diff --git a/src/vitis/vas/rest/class/aws_lib/AWS_Notification/AWS_SMS.class.inc b/src/vitis/vas/rest/class/aws_lib/AWS_Notification/AWS_SMS.class.inc deleted file mode 100755 index f1c13885..00000000 --- a/src/vitis/vas/rest/class/aws_lib/AWS_Notification/AWS_SMS.class.inc +++ /dev/null @@ -1,56 +0,0 @@ -<?php - -require_once __DIR__ . '/AWS_notification.class.inc'; -require_once("vmlib/logUtil.inc"); - -/** - * \file AWS_SMS.php - * \brief Class to send SMS by the Veremes's service - * - * \author Anthony Borghi <anthony.borghi@veremes.com> - */ - -Class AWS_SMS extends AWS_notification{ - - const AWS_API_SMS_TYPE = "SMS"; - - //$slogFileName = $properties['log_dir'] . "/notifications/sms.log"; - - /** - * construct - * @param {string} $sAwsAccessKeyId Access key ID. - * @param {string} $sAwsSecretAccessKey Secret access key. - * @param {string} $sDeploymentName Name of the deployment for this API. - */ - function __construct ($sAwsAccessKeyId, $sAwsSecretAccessKey, $sDeploymentName, $sAppIdentifier) { - parent::__construct($sAwsAccessKeyId, $sAwsSecretAccessKey, $sDeploymentName, $sAppIdentifier); - // stockage du noeud principal de déploiement - $this->sType = self::AWS_API_SMS_TYPE; - // définition de la structure de donnée pour ce type de notification - $this->aRequiredFields = array("message", "destination"); - $this->aOptionalFields = array("sender"); - } - - - function sendSMS ($aValues){ - $bError = $this->defineNotification ($aValues); - - if (!$bError){ - //error_log("send SMS to " . $this->aRequestParams["notificationParams"]["destination"]); - $mReturn = $this->sendRequestToSendNotification(); - - if($this->aLastCurlRequestInfo["http_code"] != 200){ - $this->bError = true; - writeToErrorLog("can't send SMS to " . $this->aRequestParams["notificationParams"]["destination"] . ". The service return this message : " . $mReturn); - } else { - writeToLog("send SMS to " . $this->aRequestParams["notificationParams"]["destination"], $this->slogFileName); - } - - //error_log(print_r($this->aLastCurlRequestInfo, true)); - } else { - writeToErrorLog("can't send SMS (missing parameters)"); - } - } -} - -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/aws_lib/AWS_Notification/AWS_notification.class.inc b/src/vitis/vas/rest/class/aws_lib/AWS_Notification/AWS_notification.class.inc deleted file mode 100755 index 004e9aaa..00000000 --- a/src/vitis/vas/rest/class/aws_lib/AWS_Notification/AWS_notification.class.inc +++ /dev/null @@ -1,87 +0,0 @@ -<?php - -require_once __DIR__ . '/../AmazonApiGateway.class.inc'; - -/** - * \file AWS_notification.php - * \brief Class to send notifications by the Veremes's service - * - * \author Anthony Borghi <anthony.borghi@veremes.com> - */ - -Class AWS_notification extends AmazonApiGateway{ - - public $sType; // Type de notification - public $aRequiredFields = array(); // Liste des champs requis pour la notification en cours - public $aOptionalFields = array(); // Liste des champs optionnels pour la notification en cours - public $oAWSGateway; // Objet de référence sur l'API gateway - public $sDeploymentName; // Main node of API Deployment - public $aRequestParams = array(); // Parameter to send the notification - public $sAppIdentifier = null; // Parameter to indentify the app - - public $bError = false; - - // Liste de constante en lien avec l'API gateway du service - const AWS_API_REGION = 'eu-west-1'; - const AWS_API_ID = '6u2e49upog'; // surement inutile si on utilise Route 53 - const AWS_API_SEND_NOTIFICATION_STAGE = '/addnotification'; - const AWS_API_SEND_NOTIFICATION_METHOD = 'POST'; - - /** - * construct - * @param {string} $sAwsAccessKeyId Access key ID. - * @param {string} $sAwsSecretAccessKey Secret access key. - * @param {string} $sDeploymentName Name of the deployment for this API. - */ - function __construct ($sAwsAccessKeyId, $sAwsSecretAccessKey, $sDeploymentName, $sAppIdentifier) { - parent::__construct($sAwsAccessKeyId, $sAwsSecretAccessKey, self::AWS_API_REGION, self::AWS_API_ID, $sDeploymentName . self::AWS_API_SEND_NOTIFICATION_STAGE); - // stockage du noeud principal de déploiement - $this->sDeploymentName = $sDeploymentName; - $this->sAppIdentifier = $sAppIdentifier; - } - - function defineNotification ($aValues){ - - $aRequiredFieldsFilled = array(); - $aParams = array(); - - foreach ($aValues as $sKey => $mValue) { - if (in_array($sKey, $this->aRequiredFields)){ - $aParams[$sKey] = $mValue; - array_push($aRequiredFieldsFilled, $sKey); - } else if (in_array($sKey, $this->aOptionalFields)){ - $aParams[$sKey] = $mValue; - } - } - - $this->aRequestParams["notificationParams"] = $aParams;// json_encode($aParams); - - $this->bError = (count($aRequiredFieldsFilled) !== count($this->aRequiredFields)); - - return $this->bError; - } - - - function sendRequestToSendNotification (){ - - if(!empty($this->sAppIdentifier)){ - $this->aRequestParams["app_id"] = $this->sAppIdentifier; - } - - $this->aRequestParams["notificationType"] = $this->sType; - - $sJsonParams = json_encode($this->aRequestParams); - //$iParamsLength = strlen($sJsonParams); - - $sUrl = "https://" . $this->sHost . "/" . $this->sStageName; - //$sFullUrl = self::AWS_API_SEND_NOTIFICATION_METHOD . ' ' . $sUrl . ' HTTP/1.1'; - - $aAddedHeaders = array('content-type: application/json'); - - $aHeaders = $this->generateGatewayRequestHeaders(self::AWS_API_SEND_NOTIFICATION_METHOD, $sUrl, $aAddedHeaders, $sJsonParams); - - return $this->curlRequest($sUrl, self::AWS_API_SEND_NOTIFICATION_METHOD, $sJsonParams, $aHeaders); - } -} - -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/aws_lib/AmazonAWS.class.inc b/src/vitis/vas/rest/class/aws_lib/AmazonAWS.class.inc deleted file mode 100644 index 223a0534..00000000 --- a/src/vitis/vas/rest/class/aws_lib/AmazonAWS.class.inc +++ /dev/null @@ -1,485 +0,0 @@ -<?php -require_once("vmlib/logUtil.inc"); - -/** - * \file AmazonAWS.php - * \brief Main class to use AWS services (keyGen, CrulRequest, ...) - * - * \author Frederic Carretero <frederic.carretero@veremes.com> - */ - -Class AmazonAWS { - const HASHING_ALGORITHM = 'sha256'; - public $sAwsRegion; - public $aLastCurlRequestInfo; - public $sHost; - public $sLogFilePath; // Chemin optionnel vers le fichier de log pour Amazon S3. - private $sAwsAccessKeyId; - private $sAwsSecretAccessKey; - private $sHashingAlgorithmString; - - /** - * construct - * @param {string} $sAwsAccessKeyId Access key ID. - * @param {string} $sAwsSecretAccessKey Secret access key. - * @param {string} $sAwsRegion Region. - */ - function __construct ($sAwsAccessKeyId, $sAwsSecretAccessKey, $sAwsRegion) { - $this->sAwsAccessKeyId = $sAwsAccessKeyId; - $this->sAwsSecretAccessKey = $sAwsSecretAccessKey; - $this->sAwsRegion = $sAwsRegion; - $this->sHashingAlgorithmString = 'AWS4-HMAC-' . strtoupper(self::HASHING_ALGORITHM); - } - - /** - * Get value of inaccessible property. - * @param {string} $sPropertyName Name of the property. - * @return Paramter's value - */ - function __get($sPropertyName) { - if (isset($this->$sPropertyName)) - return $this->$sPropertyName; - } - - /** - * generate an header for AWS request - * @param {string} $sMainRequestString Requête principale: 'GET https://s3.amazonaws.com/azerty/?Action=ListUsers&Version=2010-05-08 HTTP/1.1'. - * @param {string} $sHost hostname du serveur de destination. - * @param {string} $sService Service à contacter (Constante dans les fichiers enfants). - * @param {Array} $aHeaders Liste de headers à ajouter. - * @param {string} $sRequestPayload Chaine de référence pour le calcul de la signature (dans le cas du POST passer les paramètres de la requête, S3 'UNSIGNED-PAYLOAD', sinon laisser chaine vide). - * @param {boolean} $bAddAmzContentHeader Ajoute le header x-amz-content à la liste des headers signés. - * @param {string|object} $sTimestamp objet timestamp à utiliser (le mot clef 'Now' permet à la fonction d'intancier un objet sur le timestamp courant). A n'utiliser que pour des tests - * @param {boolean} $bFromTestCase Active les débuggage de la signature (log). - * @return array request header for AWS or false if error - */ - function generateAwsSignedHeaders ($sMainRequestString, $sHost, $sService, $aHeaders = array(), $sRequestPayload = 'UNSIGNED-PAYLOAD', $bAddAmzContentHeader = false, $sTimestamp = "Now", $bFromTestCase = false){ - - $aMainRequest = explode(" ", $sMainRequestString); - - if (count($aMainRequest) < 2){ - writeToErrorLog('sMainRequestString has to be as this pattern : GET https://s3.amazonaws.com/azerty/?Action=ListUsers&Version=2010-05-08 HTTP/1.1 and yours is ' . $sMainRequestString); - return false; - } - - if (count($aMainRequest) > 3){ - // on sauvegarde avant de trafiquer la requete - $aTempMainRequest = $aMainRequest; - $aMainRequest = array(); - $aMainRequest[] = $aTempMainRequest[0]; - // éliminer - $sTempUrl = ""; - - for($i = 1; $i <= (count($aTempMainRequest) - 2); $i++){ - $sTempUrl .= $aTempMainRequest[$i]; - - if($i != (count($aTempMainRequest) - 2)){ - $sTempUrl .= " "; - } - } - - $aMainRequest[] = $sTempUrl; - - $aMainRequest[] = end($aTempMainRequest); - } - - if ($sTimestamp == "Now"){ - $sTimestamp = time(); - } - - // Entêtes obligatoires. - $sXAmzDate = gmdate('Ymd\THis\Z', $sTimestamp); - $sDate = gmdate('Ymd', $sTimestamp); - - $sHashedPayload = $this->createHashedPayload($sRequestPayload);; - - array_push($aHeaders, 'x-amz-date: ' . $sXAmzDate); - array_push($aHeaders, 'host: ' . $sHost); - - if($bAddAmzContentHeader){ - array_push($aHeaders, 'x-amz-content-' . self::HASHING_ALGORITHM . ': ' . $sHashedPayload); - } - - $sSignedHeaders = $this->prepareQuerySignedHeaders($aHeaders); - - // 1. Création d'une demande canonique pour Signature V4. - $sCanonicalRequest = $this->mainRequestArrayToCanonicalString($aMainRequest, $sHost, $aHeaders, $sHashedPayload, $sSignedHeaders); - - if($bFromTestCase){ - writeToDebugLog("creq : \n" . $sCanonicalRequest); - } - - // 2. Création d'une chaîne à signer pour Signature V4. - $sStringToSign = $this->createStringToSignv2($sDate, $sXAmzDate, $sCanonicalRequest, $sService); - - if($bFromTestCase){ - writeToDebugLog("sts : \n" . $sStringToSign); - } - - // 3. Calcul de la signature pour AWS Signature V4. - $sSigningKey = $this->createSigningKey($sService, $sDate); - $sSignature = $this->calculateSignature($sStringToSign, $sSigningKey); - - // 4. Création de l'entête "Authorization" pour la requête. - $sCredentialScope = $this->createCredentialScope($sDate, $sService); - $sAuthorizationHeader = $this->generateAuthorizationHeader($this->sHashingAlgorithmString, $sCredentialScope, $sSignedHeaders, $sSignature); - - if($bFromTestCase){ - writeToDebugLog("authz : \n" . $sAuthorizationHeader); - } - - array_push($aHeaders, 'Authorization: ' . $sAuthorizationHeader); - - return $aHeaders; - } - - /** - * generate an canonical request for AWS request - * @param {array} $aMainRequest Main request String with this pattern: 'GET https://s3.amazonaws.com/azerty/?Action=ListUsers&Version=2010-05-08 HTTP/1.1' exploded on spaces. - * @param {string} $sHost HostName to parse url - * @param {array} $aHeaders sorted array of all the headers of this request - * @param {string} $sHashedPayload hash of the payload request - * @return array request header for AWS or false if error - */ - function mainRequestArrayToCanonicalString($aMainRequest, $sHost, $aHeaders, $sHashedPayload, $sSignedHeaders){ - $sHTTPRequestMethod = $aMainRequest[0]; - - $aFullUrl = explode("?", $aMainRequest[1]); - - $sCanonicalQueryString = ""; - if(count($aFullUrl) > 1){ - $sCanonicalQueryString = $this->prepareQueryString($aFullUrl[1]); - } - - $sCanonicalUri = $this->prepareQueryUri($aFullUrl[0], $sHost); - $sCanonicalHeaders = $this->prepareQueryHeaders($aHeaders); - $sCanonicalSignedHeaders = $sSignedHeaders; - - $sReturn = $sHTTPRequestMethod . chr(10) . - $sCanonicalUri . chr(10) . - $sCanonicalQueryString . chr(10) . - $sCanonicalHeaders . chr(10) . - $sCanonicalSignedHeaders . chr(10) . - $sHashedPayload; - - return $sReturn; - } - - /** - * Curl request - * @param {string} $sUrl Url of the Curl request. - * @param {string} $sType Type of the Curl request (GET, POST). - * @param {array} $aData Data of the Curl request. - * @param {array} $aHeaders Headers of the Curl request. - * @return Request result - */ - // - function curlRequest($sUrl, $sType, $aData = array(), $aHeaders = array(), $bMultipartFormData = false) { - // - $this->aLastCurlRequestInfo = ''; - // - $ch = curl_init(); - $sType = strtoupper($sType); - // Force la méthode de requête utilisée (GET, POST...). - curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $sType); - // Url à utiliser. - if (($sType == 'GET' || $sType == 'DELETE') && !empty($aData)) - $sUrl .= '?' . http_build_query($aData); - curl_setopt($ch, CURLOPT_URL, $sUrl); - // Retour sous forme de texte. - curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); - // Requête POST. - if ($sType == 'POST') { - curl_setopt($ch, CURLOPT_POST, true); - // Chaîne de requête en encodage URL. - if (is_array($aData) && !$bMultipartFormData) - $aData = http_build_query($aData); - // Données de la requête. - curl_setopt($ch, CURLOPT_POSTFIELDS, $aData); - // - curl_setopt($ch, CURLOPT_SAFE_UPLOAD, true); - // Entête pour la requête en POST. - //$aHeaders[] = 'Content-Type: application/x-www-form-urlencoded'; - } - // Entête pour la requête - //$aHeaders[] = 'Accept: application/json'; - //if (!empty($this->sToken)) - //$aHeaders[] = 'Authorization: Bearer ' . $this->sToken; // Token obligatoire pour éxécuter la requête. - // Durée max. de la requête. - //curl_setopt($ch, CURLOPT_TIMEOUT, 120); - // Exécute la session CURL. - // Log. - /* - $handle = fopen("curl_log.txt", "a"); - fwrite($handle, PHP_EOL . '-----------------------' . PHP_EOL); - curl_setopt($ch, CURLOPT_VERBOSE, true); - curl_setopt($ch, CURLOPT_STDERR , $handle); - */ - // ajout des en-tête - curl_setopt($ch, CURLOPT_HTTPHEADER, $aHeaders); - curl_setopt($ch, CURLINFO_HEADER_OUT, true); - //curl_setopt($ch, CURLOPT_ENCODING, ""); - //curl_setopt($ch, CURLOPT_MAXREDIRS, 10); - curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); - // Curl error: SSL certificate problem: unable to get local issuer certificate - // Curl error n°60 - curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, false); - // - $output = curl_exec($ch); - // Erreur de la requête CURL. - if(curl_errno($ch)) { - writeToErrorLog('Curl error: ' . curl_error($ch)); - writeToErrorLog('Curl error n°' . curl_errno($ch)); - } - // Informations de la requête. - $aCurlInfo = curl_getinfo($ch); - $this->aLastCurlRequestInfo = $aCurlInfo; - //file_put_contents('C:/svn/gtf_cloud/gtf.engines/log/response.log', print_r($aCurlInfo, true)); - //writeToErrorLog(print_r(curl_getinfo($ch), true)); - - // Ferme la session CURL. - curl_close($ch); - // - //fclose($handle); - // - return $output; - } - - /** - * Creating a credential scope. - * @param {string} $sDate Date (YYYYMMDD). - * @param {string} $sApiComponentService Api component service. - * @return Credential scope. - */ - function createCredentialScope($sDate, $sApiComponentService) { - return $sDate . "/" . $this->sAwsRegion . '/' . $sApiComponentService . '/aws4_request'; - } - - /** - * Creating a string to sign. - * @param {string} $sDate Date (YYYYMMDD). - * @param {string} $sTimestamp Unix timestamp. - * @param {string} $sCanonicalRequest Canonical request. - * @param {string} $sApiComponentService Api component service. - * @return String to sign. - */ - function createStringToSign($sDate, $sTimestamp, $sCanonicalRequest, $sApiComponentService) { - $sRequestDateTime = $sDate . 'T' . gmdate('His', $sTimestamp) . 'Z'; - $sCredentialScope = $this->createCredentialScope($sDate, $sApiComponentService); - $sHashedCanonicalRequest = hash(self::HASHING_ALGORITHM, $sCanonicalRequest, false); - $sStringToSign = $this->sHashingAlgorithmString . chr(10) . - $sRequestDateTime . chr(10) . - $sCredentialScope . chr(10) . - $sHashedCanonicalRequest; - return $sStringToSign; - } - - /** - * Creating a string to sign. - * @param {string} $sDate Date (YYYYMMDD). - * @param {string} $sTimestamp Unix timestamp. - * @param {string} $sCanonicalRequest Canonical request. - * @param {string} $sApiComponentService Api component service. - * @return String to sign. - */ - function createStringToSignv2($sDate, $sXAmzDate, $sCanonicalRequest, $sApiComponentService) { - $sCredentialScope = $this->createCredentialScope($sDate, $sApiComponentService); - $sHashedCanonicalRequest = hash(self::HASHING_ALGORITHM, $sCanonicalRequest, false); - $sStringToSign = $this->sHashingAlgorithmString . chr(10) . - $sXAmzDate . chr(10) . - $sCredentialScope . chr(10) . - $sHashedCanonicalRequest; - return $sStringToSign; - } - - /** - * Creating a hashed payload. - * @param {string} $sPayload CurrentPayload. - * @return String hashed Payload. - */ - function createHashedPayload($sPayload){ - if($sPayload == "UNSIGNED-PAYLOAD"){ - return $sPayload; - }else{ - return hash(self::HASHING_ALGORITHM, $sPayload, false); - } - } - - /** - * Prepare a query string for signature calculation . - * @param {string} $sQueryString queryString to prepare. - * @return QueryString prepared - */ - function prepareQueryString ($sQueryString){ - $aUri = explode("?", $sQueryString); - $sParameters = $aUri[count($aUri) - 1]; - $aParameters = explode("&", $sParameters); - - $sReturn = ""; - - //order array before treatement F < a Case sensitive - sort($aParameters); - - for ($i = 0; $i < count($aParameters); $i++){ - $aParameter = explode("=",$aParameters[$i]); - if(count($aParameter) === 2){ - $sReturn .= rawurlencode($aParameter[0]); - $sReturn .= "="; - $sReturn .= rawurlencode($aParameter[1]); - if ($i < count($aParameters) - 1){ - $sReturn .= "&"; - } - } - } - return $sReturn; - } - - /** - * Prepare a Uri for signature calculation . - * @param {string} $sUriWithoutQuery queryURI to prepare. (https://s3.amazon.aws.com/toto/tata) - * @param {string} $sHost Hostname to extract the path after domain name - * @return QueryString prepared - */ - function prepareQueryUri ($sUriWithoutQuery, $sHost){ - - $sUriWithoutQuery = preg_replace('/^https?:\/\/' . $sHost . '/i', '', $sUriWithoutQuery); - - $aUrl = explode("/", $sUriWithoutQuery); - - $aUrl = array_values(array_filter($aUrl, function($value) {return ($value !== '');})); - - $i = 0; - $aUri = array(); - - while ($i < count($aUrl)){ - if ($aUrl[$i] !== '.'){ - if($aUrl[$i] !== '..'){ - array_push($aUri, $aUrl[$i]); - } else { - array_splice($aUri, -1); - } - } - $i++; - } - - $sReturn = "/" . str_replace('%2F', '/', rawurlencode(implode("/", $aUri))); - - if (substr($sUriWithoutQuery, -1) == '/' && count($aUrl) > 1){ - $sReturn .= "/"; - } - - return $sReturn; - } - - /** - * Prepare headers for signature calculation . - * @param {array} $aHeaders array of the headers for the request (array of string) - * @return QueryString prepared - */ - function prepareQueryHeaders ($aHeaders){ - $aMergedHeader = array(); - - $sReturn = ""; - - // dédoublonage - for ($i = 0; $i < count($aHeaders); $i++){ - $aHeader = explode(":", $aHeaders[$i]); - if (count($aHeader) === 2){ - $sReplacer = ' '; - if (strpos(trim($aHeader[1]), "\n") > -1) { - $sReplacer = ','; - } - $aMergedHeader[strtolower($aHeader[0])][] = preg_replace('/\s{1,}/m', $sReplacer, trim($aHeader[1])); - } - } - - ksort($aMergedHeader, SORT_STRING | SORT_FLAG_CASE); - - // calcul des header pour la requete canonique - foreach ($aMergedHeader as $sKey => $aValue) { - $sReturn .= $sKey; - $sReturn .= ":"; - $sReturn .= implode(',', $aValue); - $sReturn .= chr(10); - } - - return $sReturn; - } - - /** - * Prepare signed headers for signature calculation . - * @param {array} $aHeaders array of the headers for the request (array of string) - * @return QueryString prepared - */ - function prepareQuerySignedHeaders ($aHeaders){ - $aMergedHeader = array(); - $sReturn = ""; - - // dédoublonage - for ($i = 0; $i < count($aHeaders); $i++){ - $aHeader = explode(":", $aHeaders[$i]); - if (count($aHeader) === 2){ - $aMergedHeader[strtolower($aHeader[0])][] = trim($aHeader[1]); - } - } - - ksort($aMergedHeader, SORT_STRING | SORT_FLAG_CASE); - - // aggrégat des en-t^tes signées - foreach ($aMergedHeader as $sKey => $aValue) { - $sReturn .= $sKey; - $sReturn .= ";"; - } - - // on supprime le dernier ; - $sReturn = substr($sReturn, 0, -1); - - return $sReturn; - } - - /** - * Creating a signing Key. - * @param {string} $sApiComponentService Component service for API execution. - * @param {string} $sDate Date (YYYYMMDD). - * @return Signing key. - */ - function createSigningKey($sApiComponentService, $sDate) { - return hash_hmac(self::HASHING_ALGORITHM, 'aws4_request', hash_hmac(self::HASHING_ALGORITHM, $sApiComponentService, hash_hmac(self::HASHING_ALGORITHM, $this->sAwsRegion, hash_hmac(self::HASHING_ALGORITHM, $sDate, 'AWS4' . $this->sAwsSecretAccessKey, true), true), true), true); - } - - /** - * Calculating a Signature (Version 4 algorithm). - * @param {string} $sStringToSign String to sign. - * @param {string} $sSigningKey Signing key. - * @return Signature. - */ - function calculateSignature($sStringToSign, $sSigningKey) { - return hash_hmac(self::HASHING_ALGORITHM, $sStringToSign, $sSigningKey); - } - - /** - * Generating an authorization header. - * @param {string} $sAlgorithm String of the hashing algorithm. - * @param {string} $sCredentialScope Credential scope. - * @param {string} $sSignedHeaders Request header names. - * @param {string} $sSignature Calculated signature. - * @return Headers for request. - */ - function generateAuthorizationHeader($sAlgorithm, $sCredentialScope, $sSignedHeaders, $sSignature) { - return $sAlgorithm . ' Credential=' . $this->sAwsAccessKeyId . '/' . $sCredentialScope . ', SignedHeaders=' . $sSignedHeaders . ', Signature=' . $sSignature; - } - - /** - * Write a message to the error log file. - * @param {string} $sMessage Message to write to the log file. - */ - function writeToErrorLog($sMessage) { - $aDebugBacktrace = debug_backtrace(); - $sLogMessage = '|ERROR|' . $aDebugBacktrace[1]['class'] . '::' . $aDebugBacktrace[1]['function'] . '| ' . $sMessage; - if (empty($this->sLogFilePath)) - writeToErrorLog($sLogMessage); - else - writeToLog($sLogMessage, $this->sLogFilePath); - } -} -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/aws_lib/AmazonApiGateway.class.inc b/src/vitis/vas/rest/class/aws_lib/AmazonApiGateway.class.inc deleted file mode 100755 index 3ba40545..00000000 --- a/src/vitis/vas/rest/class/aws_lib/AmazonApiGateway.class.inc +++ /dev/null @@ -1,124 +0,0 @@ -<?php -require_once __DIR__ . '/AmazonAWS.class.inc'; - -/** - * \file AmazonApiGateway.php - * \brief Class to use API Gateway FME cloud - * - * \author Frederic Carretero <frederic.carretero@veremes.com> - */ - -Class AmazonApiGateway extends AmazonAWS { - const API_COMPONENT_SERVICE = 'execute-api'; - public $sRestApiId; // Identifiant de l'API. - public $sStageName; // Nom de l'étape d'un déploiement de l'API. - - /** - * construct - * @param {string} $sAwsAccessKeyId Access key ID. - * @param {string} $sAwsSecretAccessKey Secret access key. - * @param {string} $sAwsRegion Region. - * @param {string} $sRestApiId API identifier. - * @param {string} $sStageName Stage name of an API deployment. - */ - function __construct ($sAwsAccessKeyId, $sAwsSecretAccessKey, $sAwsRegion, $sRestApiId, $sStageName) { - // Paramètres obligatoires de la classe mère AmazonAWS. - parent::__construct($sAwsAccessKeyId, $sAwsSecretAccessKey, $sAwsRegion); - // Paramètres pour l'url racine de l'API. - $this->sRestApiId = $sRestApiId; - $this->sStageName = $sStageName; - //if($sAwsRegion == 'us-east-1') - //$this->sHost = trim('' . self::API_COMPONENT_SERVICE . '.amazonaws.com'); - //else - $this->sHost = trim($sRestApiId . '.' . self::API_COMPONENT_SERVICE . '.' . $sAwsRegion . '.amazonaws.com'); - } - - /** - * Generating all the headers for the request. Deprecated. - * @return Headers for request. - */ - function generateRequestHeaders() { - $sTimestamp = time(); - // Entêtes obligatoires. - $sXAmzDate = gmdate('Ymd\THis\Z', $sTimestamp); - $sDate = gmdate('Ymd', $sTimestamp); - // Charge utile vide hachée. - $sRequestPayload = ''; - - // 1. Création d'une demande canonique pour Signature V4. - $sHttpRequestMethod = 'GET'; - $sCanonicalUri = str_replace('%2F', '/', rawurlencode('/' . $this->sStageName)); - $sCanonicalQueryString = ''; - $sCanonicalHeaders = 'host:' . $this->sHost . chr(10) . - 'x-amz-date:' . $sXAmzDate . chr(10); - $sSignedHeaders = 'host;x-amz-date'; - $sHashedPayload = hash(self::HASHING_ALGORITHM, $sRequestPayload, false); - $sCanonicalRequest = $sHttpRequestMethod . chr(10) . - $sCanonicalUri . chr(10) . - $sCanonicalQueryString . chr(10) . - $sCanonicalHeaders . chr(10) . - $sSignedHeaders . chr(10) . - $sHashedPayload; - - // 2. Création d'une chaîne à signer pour Signature V4. - $sStringToSign = $this->createStringToSign($sDate, $sTimestamp, $sCanonicalRequest, self::API_COMPONENT_SERVICE); - - // 3. Calcul de la signature pour AWS Signature V4. - $sSigningKey = $this->createSigningKey(self::API_COMPONENT_SERVICE, $sDate); - $sSignature = $this->calculateSignature($sStringToSign, $sSigningKey); - - // 4. Création de l'entête "Authorization" pour la requête. - $sCredentialScope = $this->createCredentialScope($sDate, self::API_COMPONENT_SERVICE); - $sAuthorizationHeader = $this->generateAuthorizationHeader($this->sHashingAlgorithmString, $sCredentialScope, $sSignedHeaders, $sSignature); - - // Entêtes pour la requete. - $aHeaders = array( - 'Authorization: ' . $sAuthorizationHeader, - 'X-Amz-Date: ' . $sXAmzDate - ); - /* - echo PHP_EOL . 'Canonical request:' . PHP_EOL; - print_r($sCanonicalRequest); - echo PHP_EOL . PHP_EOL . 'String To Sign:' . PHP_EOL; - print_r($sStringToSign); - */ - return $aHeaders; - } - - function generateGatewayRequestHeaders($sMethod, $sUrl, $aAddedHeaders, $mParams, $bValuesAsFormData = false) { - - $sParams = ''; - - //stringify params if it's an array of depth = 1 else value = array - if(!empty($mParams) && !$bValuesAsFormData){ - if(is_array($mParams)){ - foreach ($mParams as $sKey => $sValue) { - $sParams .= urlencode($sKey); - $sParams .= "="; - $sParams .= urlencode($sValue); - $sParams .= '&'; - } - $sParams = substr($sParams, 0, -1); - $aAddedHeaders[] = 'Content-Type: application/x-www-form-urlencoded'; - } else { - $sParams = $mParams; - } - } - - $sUrlParameter = "/"; - - if(strpos($sUrl, "/") === 1){ - $sUrlParameter = ""; - } - - // build sFullUrl - if(strpos($sUrl, $this->sHost) === -1){ - $sUrl = 'https://' . $this->sHost . $sUrlParameter . $sUrl; - } - - $sFullUrl = $sMethod . ' ' . $sUrl . ' HTTP/1.1'; - - return $this->generateAwsSignedHeaders($sFullUrl, $this->sHost, self::API_COMPONENT_SERVICE, $aAddedHeaders, $sParams); - } -} -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/aws_lib/AmazonS3.class.inc b/src/vitis/vas/rest/class/aws_lib/AmazonS3.class.inc deleted file mode 100644 index 32c7ed76..00000000 --- a/src/vitis/vas/rest/class/aws_lib/AmazonS3.class.inc +++ /dev/null @@ -1,375 +0,0 @@ -<?php -require_once __DIR__ . '/AmazonAWS.class.inc'; - -/** - * \file AmazonS3.php - * \brief Class to upload and get file in a bucket S3 - * - * \author Frederic Carretero <frederic.carretero@veremes.com> - * \author Anthony Borghi <anthony.borghi@veremes.com> - */ - -Class AmazonS3 extends AmazonAWS { - const API_COMPONENT_SERVICE = 's3'; - - /** - * construct - * @param {string} $sAwsAccessKeyId Access key ID. - * @param {string} $sAwsSecretAccessKey Secret access key. - * @param {string} $sAwsRegion Region. - */ - function __construct ($sAwsAccessKeyId, $sAwsSecretAccessKey, $sAwsRegion) { - // Paramètres obligatoires de la classe mère AmazonAWS. - parent::__construct($sAwsAccessKeyId, $sAwsSecretAccessKey, $sAwsRegion); - /* - if($sAwsRegion == 'us-east-1') - $this->sHost = trim('s3.amazonaws.com'); - else - $this->sHost = trim('s3-' . $sAwsRegion . '.amazonaws.com'); - */ - // Url racine de l'API. - $this->sHost = trim(self::API_COMPONENT_SERVICE . '-' . $sAwsRegion . '.amazonaws.com'); - } - - /** - * Generating all the headers for a GET request. deprecated - * @param {string} $sBucket A container for objects stored in Amazon S3. - * @param {string} $sKey The unique identifier for an object within a bucket. - * @return Headers for request. - */ - function generateRequestHeaders($sBucket, $sKey, $sQueryParameter = '', $sRequestPayload = 'UNSIGNED-PAYLOAD') { - // - $sServiceEndpoint = $sBucket . '.' . $this->sHost; - $query_string = ""; - $sTimestamp = time(); - // Entêtes obligatoires. - $sXAmzDate = gmdate('Ymd\THis\Z', $sTimestamp); - $sDate = gmdate('Ymd', $sTimestamp); - //$sRequestPayload = '$sRequestPayload '; - - // 1. Création d'une demande canonique pour Signature V4. - $sHttpRequestMethod = 'GET'; - $sCanonicalUri = str_replace('%2F', '/', rawurlencode('/' . $sKey)); - $sCanonicalQueryString = $this->prepareQueryString($sQueryParameter); - $sCanonicalHeaders = 'host:' . $sServiceEndpoint . chr(10) . - 'x-amz-content-' . self::HASHING_ALGORITHM . ':' . $sRequestPayload . chr(10) . - 'x-amz-date:' . $sXAmzDate . chr(10); - $sSignedHeaders = 'host;x-amz-content-' . self::HASHING_ALGORITHM . ';x-amz-date'; - $sHashedPayload = $this->createHashedPayload($sRequestPayload); - //$sHashedPayload = $sRequestPayload; - $sCanonicalRequest = $sHttpRequestMethod . chr(10) . - $sCanonicalUri . chr(10) . - $sCanonicalQueryString . chr(10) . - $sCanonicalHeaders . chr(10) . - $sSignedHeaders . chr(10) . - $sHashedPayload; - - // 2. Création d'une chaîne à signer pour Signature V4. - $sStringToSign = $this->createStringToSign($sDate, $sTimestamp, $sCanonicalRequest, self::API_COMPONENT_SERVICE); - - // 3. Calcul de la signature pour AWS Signature V4. - $sSigningKey = $this->createSigningKey(self::API_COMPONENT_SERVICE, $sDate); - $sSignature = $this->calculateSignature($sStringToSign, $sSigningKey); - - // 4. Création de l'entête "Authorization" pour la requête. - $sCredentialScope = $this->createCredentialScope($sDate, self::API_COMPONENT_SERVICE); - $sAuthorizationHeader = $this->generateAuthorizationHeader($this->sHashingAlgorithmString, $sCredentialScope, $sSignedHeaders, $sSignature); - - // Entêtes pour la requete. - $aHeaders = array( - 'host: ' . $sServiceEndpoint, - 'x-amz-content-' . self::HASHING_ALGORITHM . ': ' . $sHashedPayload, - 'x-amz-date: ' . $sXAmzDate, - 'Authorization: ' . $sAuthorizationHeader - ); - - return $aHeaders; - } - - function generateS3requestHeaders($sMethod, $sUrl, $sBucket, $aHeaders = array(), $sRequestPayload = 'UNSIGNED-PAYLOAD'){ - // build bucket hostname - $sBucketHost = $sBucket . "." . $this->sHost; - - $sUrlParameter = "/"; - - if(strpos($sUrl, "/") === 1){ - $sUrlParameter = ""; - } - - // build sFullUrl - if(strpos($sUrl, $sBucketHost) === -1){ - $sUrl = 'https://' . $sBucketHost . $sUrlParameter . $sUrl; - } - - $sFullUrl = $sMethod . ' ' . $sUrl . ' HTTP/1.1'; - return $this->generateAwsSignedHeaders($sFullUrl, $sBucketHost, self::API_COMPONENT_SERVICE, $aHeaders, $sRequestPayload, true, 'Now', true); - } - - /** - * Generating all the data for a POST request. - * @param {string} $sBucket A container for objects stored in Amazon S3. - * @param {string} $sKey The unique identifier for an object within a bucket. - * @return Headers for request. - */ - function generatePostData($sBucket, $sKey, $sAcl = 'public-read') { - $sTimestamp = time(); - $sXAmzDate = gmdate('Ymd\THis\Z', $sTimestamp); - $sDate = gmdate('Ymd', $sTimestamp); - //$sAcl = 'public-read'; - $sCredential = $this->sAwsAccessKeyId . '/' . $sDate . '/' . $this->sAwsRegion . '/' . self::API_COMPONENT_SERVICE . '/aws4_request'; - // 1. Création d'une chaîne à signer pour Signature V4 - $aPolicy = array( - 'expiration' => gmdate('Y-m-d\TH:i:s.000\Z', $sTimestamp + 86400), - 'conditions' => array( - array('acl' => $sAcl), - array('bucket' => $sBucket), - array('starts-with', '$Content-Type', ''), - array('starts-with', '$key', ''), - array('x-amz-algorithm' => $this->sHashingAlgorithmString), - array('x-amz-credential' => $sCredential), - array('x-amz-date' => $sXAmzDate) - ) - ); - $sStringToSign = base64_encode(json_encode($aPolicy)); - - // 2. Calcul de la signature pour AWS Signature V4. - $sSigningKey = hash_hmac(self::HASHING_ALGORITHM, 'aws4_request', hash_hmac(self::HASHING_ALGORITHM, self::API_COMPONENT_SERVICE, hash_hmac(self::HASHING_ALGORITHM, $this->sAwsRegion, hash_hmac(self::HASHING_ALGORITHM, $sDate, 'AWS4' . $this->sAwsSecretAccessKey, true), true), true), true); - $sSignature = hash_hmac(self::HASHING_ALGORITHM, $sStringToSign, $sSigningKey); - - // 3. Données (post). - $aPostData = array( - 'key' => $sKey, - 'acl' => $sAcl, - 'Content-Type' => '', - 'X-Amz-Credential' => $sCredential, - 'X-Amz-Algorithm' => $this->sHashingAlgorithmString, - 'X-Amz-Date' => $sXAmzDate, - 'Policy' => $sStringToSign, - 'X-Amz-Signature' => $sSignature - ); - return $aPostData; - } - - /** - * Downloads a file. - * @param {string} $sBucket Name of a container for objects. - * @param {string} $sKey Name of a unique identifier for an object within a bucket. - * @param {string} $sFilePath Path of the file to save. - * @return File content - */ - function downloadFile($sBucket, $sKey, $sFilePath = null) { - // Url vers le fichier. - $sUrl = 'https://' . $sBucket . '.' . $this->sHost . '/' . $sKey; - $sMethod = 'GET'; - // Génération des entêtes pour la requete. - $aHeaders = $this->generateS3requestHeaders($sMethod, $sUrl, $sBucket); - - $aHeaders[] = 'Accept: application/octet-stream'; - // Transfert cURL. - $sRequestResult = $this->curlRequest($sUrl, $sMethod, null, $aHeaders); - // - if ($this->aLastCurlRequestInfo['http_code'] != 200) { - $this->writeToErrorLog($this->formatS3ErrorMessage($sRequestResult)); - return false; - } - else { - if (!empty($sFilePath)) - file_put_contents($sFilePath, $sRequestResult); - else - return $sRequestResult; - } - } - - /** - * Upload a file. - * @param {string} $sBucket Name of a container for objects. - * @param {string} $sKey Name of a unique identifier for an object within a bucket. - * @param {string} $sFilePath Path of the file to save. - * @return File content - */ - function uploadFile($sBucket, $sKey, $sFilePath) { - if (file_exists($sFilePath)) { - $sFileName = pathinfo($sFilePath, PATHINFO_BASENAME); - // Url vers le fichier. - $sUrl = 'https://' . $sBucket . '.' . $this->sHost; - // Génération des entêtes pour la requete. - $aPostData = $this->generatePostData($sBucket, $sKey); - $aPostData['Content-Type'] = mime_content_type($sFilePath); - $aPostData['file'] = new CurlFile(realpath($sFilePath), $aPostData['Content-Type'], $sFileName); - $aHeaders = array( - 'Content-Type: multipart/form-data', - ); - $sRequestResult = $this->curlRequest($sUrl, 'post', $aPostData, $aHeaders, true); - if ($this->aLastCurlRequestInfo['http_code'] != 204) { - $this->writeToErrorLog($this->formatS3ErrorMessage($sRequestResult)); - return false; - } - } - else - return false; - } - - /** - * ScanDir in a bucket - * @param {string} $sBucket Name of a container for objects. - * @param {string} $sPrefix Path of the folder to scan - * @param {boolean} $bWithFileInfos boolean to add fileInfo with filename - * @return Array associative array describing directory scanned - */ - function scanDir($sBucket, $sPrefix, $bWithFileInfos = false){ - $oFiles = false; - $sQueryString = '?list-type=2&prefix=' . $sPrefix; - //URL to send request - $sUrl = 'https://' . $sBucket . '.' . $this->sHost . "/" . $sQueryString; - $sMethod = 'GET'; - - // Génération des entêtes pour la requete. - $aHeaders = $this->generateS3requestHeaders($sMethod, $sUrl, $sBucket, array('Content-Type: application/x-www-form-urlencoded'), ''); - // Transfert cURL. - $sRequestResult = $this->curlRequest($sUrl, $sMethod, null, $aHeaders); - if ($this->aLastCurlRequestInfo['http_code'] != 200) { - $this->writeToErrorLog("ERROR: ScanDir can't scan this prefix or this bucket"); - $this->writeToErrorLog($this->formatS3ErrorMessage($sRequestResult)); - return false; - } - else { - $oXMLContent= json_decode(json_encode(simplexml_load_string($sRequestResult)), true); - $oFiles = $this->awsObjectListXmlToTree($oXMLContent, $bWithFileInfos); - } - - return $oFiles; - } - - /** - * ScanDir in a bucket - * @param {object} $oXMLObject Result of the list object request AWS - * @param {boolean} $bWithFileInfos boolean to add fileInfo with filename - * @return Array associative array describing directory scanned - */ - function awsObjectListXmlToTree ($oXMLObject, $bWithFileInfos){ - - $aSave = array(); - - $sPrefix = (count($oXMLObject["Prefix"]) === 0) ? "" : $oXMLObject["Prefix"]; - - if(substr($sPrefix, -1) !== "/"){ - $sPrefix .= "/"; - } - - $oFiles = array( - "bucket" => $oXMLObject["Name"], - "sPath"=> $sPrefix, - "aContent" => array() - ); - - if($oXMLObject["KeyCount"] == 1){ - $sFinalKey = $oXMLObject["Contents"]["Key"]; - if($sPrefix !== "/"){ - $sFinalKey = str_replace($sPrefix, "", $sFinalKey); - } - $aPath = explode("/", $sFinalKey); - $sObjectName = $aPath[0]; - - $oFile = $sObjectName; - - if($bWithFileInfos){ - $oFile = array( - "name"=> $sObjectName, - "isDirectory"=> (count($aPath) > 1)? 1 : 0, - "size" => $oXMLObject["Contents"]["Size"], - "lastModification" => $oXMLObject["Contents"]["LastModified"], - "storageType" => $oXMLObject["Contents"]["StorageClass"] - ); - } - - array_push($oFiles["aContent"], $oFile); - array_push($aSave, $sObjectName); - }else{ - for($i = 0; $i < count($oXMLObject["Contents"]); $i++){ - $sFinalKey = $oXMLObject["Contents"][$i]["Key"]; - if($sPrefix !== "/"){ - $sFinalKey = str_replace($sPrefix, "", $sFinalKey); - } - $aPath = explode("/", $sFinalKey); - $sObjectName = $aPath[0]; - - $oFile = $sObjectName; - // check si existe déja - if(!in_array($sObjectName, $aSave) && $sObjectName !== ""){ - if($bWithFileInfos){ - $oFile = array( - "name"=> $sObjectName, - "isDirectory"=> (count($aPath) > 1)? 1 : 0, - "size" => $oXMLObject["Contents"][$i]["Size"], - "lastModification" => $oXMLObject["Contents"][$i]["LastModified"], - "storageType" => $oXMLObject["Contents"][$i]["StorageClass"] - ); - } - - array_push($oFiles["aContent"], $oFile); - array_push($aSave, $sObjectName); - } - } - } - return $oFiles; - } - - /** - * Delete a file. - * @param {string} $sBucket Name of the container for remove an objects. - * @param {string} $sKey Object's identifier to delete it. - * @return boolean true if removed false else - */ - function deleteFile($sBucket, $sKey){ - $bReturn = false; - //URL to send request - $sUrl = 'https://' . $sBucket . '.' . $this->sHost . "/" . $sKey; - $sMethod = 'DELETE'; - - // Génération des entêtes pour la requete. - $aHeaders = $this->generateS3requestHeaders($sMethod, $sUrl, $sBucket, array(''), ''); - - // Transfert cURL. - $sRequestResult = $this->curlRequest($sUrl, $sMethod, null, $aHeaders); - - if ($this->aLastCurlRequestInfo['http_code'] != 200) { - $this->writeToErrorLog("ERROR: it's impossible to delete this key in this bucket"); - $this->writeToErrorLog($this->formatS3ErrorMessage($sRequestResult)); - } else - $bReturn = true; - - return $bReturn; - } - - /** - * Convert an error message returned by s3 (xml to object). - * @param {string} $sXmlErrorMessage Error message returned by s3 (xml format). - * @return object S3 Error - */ - function getS3ErrorObject($sXmlErrorMessage) { - $oSimpleXmlElement = simplexml_load_string($sXmlErrorMessage); - if (is_object($oSimpleXmlElement)) { - $oErrorMessage = new stdClass(); - foreach ($oSimpleXmlElement as $sProperty => $oValue) { - $oErrorMessage->$sProperty = $oValue->__toString(); - } - return $oErrorMessage; - } - else - return false; - } - - /** - * Format an error message returned by s3. - * @param {string} $sXmlErrorMessage Error message returned by s3 (xml format). - * @return string Error message - */ - function formatS3ErrorMessage($sXmlErrorMessage) { - $oErrorMessage = $this->getS3ErrorObject($sXmlErrorMessage); - if ($oErrorMessage !== false) - return ($oErrorMessage->Code . ' : ' . $oErrorMessage->Message); - else - return $sXmlErrorMessage; - } -} -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/treeview/LdapTree.php b/src/vitis/vas/rest/class/treeview/LdapTree.php deleted file mode 100755 index 035579d9..00000000 --- a/src/vitis/vas/rest/class/treeview/LdapTree.php +++ /dev/null @@ -1,46 +0,0 @@ -<?php -/* -require_once("../../properties.inc"); -require_once("vmlib/phpUtil.inc"); -require_once("vmlib/logUtil.inc"); -*/ -// a class to show OU LDAP based aciTree - -class LdapTree extends Tree { - private $oLdap = null; - public function __construct(Ldap $oLdap) { - $this->Ldap = $oLdap; - } - - public function branch($sParentId = null) { - $aBranch = array(); - $sLdapConn = $this->Ldap->connectLdap(); - if($sLdapConn){ - $aOUList = $this->Ldap->getOU($sLdapConn, $sParentId); - // R�cup�ration du nom de dossier - foreach ($aOUList as $sOU) { - if(substr($sOU, 0, 3)!="DC=") - { - $aOU = explode(",",$sOU); - $aBranch[$sOU] = "<a href=\"javascript: document.getElementById('stat_import_ad').style.display='none'; loadDirectoryUsers ('".$sOU."', document.getElementById('sLdap').value); \">".$aOU[0]."</a>"; - } - else - $aBranch[$sOU] = $sOU; - } - $this->Ldap->closeLdap($sLdapConn); - return $aBranch; - } - } - - /* - * $itemId will be the path to the file/folder. - */ - public function itemProps($itemId) { - return array_merge(parent::itemProps($itemId), array( - 'isFolder' => true, - 'icon' => 'folder', - 'random' => mt_rand(0, 99) // just a random property - )); - return parent::itemProps($itemId); - } -} \ No newline at end of file diff --git a/src/vitis/vas/rest/class/treeview/Tree.php b/src/vitis/vas/rest/class/treeview/Tree.php deleted file mode 100755 index 6e15c25d..00000000 --- a/src/vitis/vas/rest/class/treeview/Tree.php +++ /dev/null @@ -1,60 +0,0 @@ -<?php - -// the base class to return data in JSON for aciTree -// as you can see, keep it simple it's the best way to do things :D -// note: you'll need PHP >= 5.2 to run this - -abstract class Tree { - - /** - * Get tree branch as KEY => ITEM. - * @param string $parentId - if NULL then it's the root - * @return array - */ - abstract public function branch($parentId = null); - - /** - * Get item properties (all default properties must be defined). - * @param string $itemId - * @return array - */ - public function itemProps($itemId) { - return array( - 'isFolder' => null, // NULL = maybe a folder, TRUE - is a folder, FALSE - it's not a folder - 'open' => false, // should open folder? - 'icon' => null // icon CSS class name (if any) can be ARRAY [name, background X, background Y] (in this order) - ); - } - - private function _json($parentId, Array &$json, $children) { - $branch = $this->branch($parentId); - foreach ($branch as $id => $item) { - $props = $this->itemProps($id); - $items = array(); - if ($children) { - $this->_json($id, $items, $children); - if (count($items) == 0) { - $props['isFolder'] = false; - } - } - $json[] = array( - 'id' => $id, - 'item' => $item, - 'props' => $props, - 'items' => $items - ); - } - } - - /** - * Output tree JSON (array of id/item/props/items with props.isFolder depending if it's a TREE folder or not). - * @param string $parentId - * @param bool $children - include children? - */ - public function json($parentId, $children = false) { - $json = array(); - $this->_json($parentId, $json, $children); - return $json; - } - -} diff --git a/src/vitis/vas/rest/class/treeview/aciTree.php b/src/vitis/vas/rest/class/treeview/aciTree.php deleted file mode 100755 index 1c45eddc..00000000 --- a/src/vitis/vas/rest/class/treeview/aciTree.php +++ /dev/null @@ -1,56 +0,0 @@ -<?php -require_once("../../properties.inc"); -//require_once("vmlib/phpUtil.inc"); -//require_once("vmlib/logUtil.inc"); - -// get the tree JSON data for the file system listing -$path = dirname(__FILE__); - -require_once("Tree.php"); -require_once("FsTree.php"); -require_once("LdapTree.php"); -require_once("../Ldap.class.inc"); - -// we limit the access to "$path/tree" -if($_GET[sLdap]!=""){ - $fsTree = new LdapTree(new Ldap($_GET['sLdap'])); -} -else - $fsTree = new FsTree(new Fs($_GET['sLogFile'])); - -// what branch was requested? -$branch = isset($_GET['branch']) ? $_GET['branch'] : null; - -// special case for 1k test from the demo (skip the 'sleep' thing and return faster) -if ((strpos($branch, 'a_new_File_ID') !== false) || (strpos($branch, 'a_new_Folder_ID') !== false)) { - // burn your CPU not the server with the 1k entries ... ;)) - if (preg_match('@[0-9]+$@', $branch, $match) == 1) { - if ((int) $match[0] > 20) { - die('[]'); - } - } - sleep(1); - die('[]'); -} - -if (strpos($branch, '..') !== false) { - // path should not have a [..] inside ;-) - $branch = 'undefined'; -} - -// a small delay so we can see the loading animation -// (comment it for faster return) -// sleep(1); - -// no cache so we can see the loading animation :) -header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); -header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); -header('Cache-Control: no-store, no-cache, must-revalidate'); -header('Cache-Control: post-check=0, pre-check=0', false); -header('Pragma: no-cache'); - -// get the branch (1 level) -// $fsTree->json($branch); - -// this will get the entire tree (comment above and uncomment this) -$fsTree->json($branch, true); diff --git a/src/vitis/vas/rest/class/vitis_lib/Connection.class.inc b/src/vitis/vas/rest/class/vitis_lib/Connection.class.inc deleted file mode 100755 index fa801dc5..00000000 --- a/src/vitis/vas/rest/class/vitis_lib/Connection.class.inc +++ /dev/null @@ -1,292 +0,0 @@ -<?php - -require_once(__DIR__ . "/../vmlib/Vm.class.inc"); -require_once(__DIR__ . "/../vmlib/dbUtil.inc"); -require_once(__DIR__ . "/../vmlib/logUtil.inc"); -require_once(__DIR__ . "/../vmlib/error.inc"); -require_once(__DIR__ . "/../vmlib/cryptUtil.inc"); -require_once(__DIR__ . "/../vitis_lib/VitisError.class.inc"); - -/** - * \file Connection.class.inc - * \class Connection - * - * \author Yoann Perollet <yoann.perollet@veremes.com>. - * - * \brief This file contains the class Connection - * - * This class defines methods to connect to the database, get groups and privilges of the connected user. - * - * - */ -class Connection { - - /** - * bd object (the connection itself) - */ - public $oBd; - - /** - * parameters sent to the class - */ - public $aValues; - - /** - * error object if the connection encounters an error - */ - public $oError; - - /** - * properties - */ - public $aProperties; - - /** - * list of the user groups - */ - public $sesGroup; - - /** - * list of the user privileges - */ - public $aPrivileges = Array(); - public $sFolderLib = "vitis_lib"; - - /** - * user date settings - */ - public $sFormatDate; - public $sTimeZone; - - /** - * - * @param type $aValues paramters to the object - * @param type $aProperties properties - */ - function __construct($aValues, $aProperties) { - $this->aProperties = $aProperties; - $this->aValues = $aValues; - session_id($aValues['token']); - if (session_status() == PHP_SESSION_NONE) - session_start(); - $bIsconnected = true; - // Variable de session vide et token privée : erreur. - if (empty($_SESSION) && $aValues['token'] != $this->aProperties['public_token']) { - $this->oError = new VitisError(16, 'invalid token'); - $bIsconnected = false; - } - else if ($aValues['token'] == $this->aProperties['public_token']) { - $_SESSION["ses_Login"] = $this->aProperties['public_login']; - $ciphertext = des($this->aProperties['public_login'], $this->aProperties['public_password'], 1, 0); - $_SESSION["ses_Password"] = stringToHex($ciphertext); - if (empty($this->aValues['duration'])) - $this->aValues['duration'] = $this->aProperties['cookie_lifetime']; - $_SESSION["ses_Date"] = date('Y-m-d H:i:s', time() + ($this->aValues['duration'] * 60)); - } - if ($bIsconnected) { - $this->connect(); - } - - if (empty($this->oError)) { - // Paramètres de l'utilisateur (fuseau horaire, format des dates). - if (!empty($_SESSION['ses_user_id'])) { - $this->getUserDateInformations(); - } - } - } - - function connect() { - $bIsValidDate = false; - //verify validity date - if (isset($_SESSION['ses_Date'])) { - $now = date('Y-m-d H:i:s'); - $now = new DateTime($now); - $now = $now->format('YmdHis'); - $next = $_SESSION['ses_Date']; - $next = new DateTime($next); - $next = $next->format('YmdHis'); - if ($now < $next) - $bIsValidDate = true; - else if ($this->aValues['token'] == $this->aProperties['public_token']) { - // Régénère un token public qui a expiré. - if (empty($this->aValues['duration'])) - $this->aValues['duration'] = 10; - $_SESSION["ses_Date"] = date('Y-m-d H:i:s', time() + ($this->aValues['duration'] * 60)); - $this->aValues['validity_date'] = $_SESSION["ses_Date"]; - $bIsValidDate = true; - } - } else { - $this->oError = new VitisError(15, "Token validity outpassed"); - } - //if valid date - if ($bIsValidDate == true) { - //conenction to the database with the token - if (isset($properties["language"])) - $lang = $properties["language"]; - else - $lang = null; - loadLang('vmlib', $lang, 'vmlib/'); - if (!empty($this->aValues['module']) && isset($this->aProperties['database_' . $this->aValues['module']])) { - $sDataBase = $this->aProperties['database_' . $this->aValues['module']]; - } else { - $sDataBase = $this->aProperties['database']; - } - if (!empty($this->aValues['module']) && isset($this->aProperties['server_' . $this->aValues['module']])) { - $sServer = $this->aProperties['server_' . $this->aValues['module']]; - } else { - $sServer = $this->aProperties['server']; - } - if (!empty($this->aValues['module']) && isset($this->aProperties['port_' . $this->aValues['module']])) { - $iPort = $this->aProperties['port_' . $this->aValues['module']]; - } else { - $iPort = $this->aProperties['port']; - } - if (!empty($this->aValues['module']) && isset($this->aProperties['sgbd_' . $this->aValues['module']])) { - $sSgbd = $this->aProperties['sgbd_' . $this->aValues['module']]; - } else { - $sSgbd = $this->aProperties['sgbd']; - } - if (isset($this->aValues['sEncoding'])) - $sEncoding = $this->aValues['sEncoding']; - else - $sEncoding = null; - $this->oBd = new Vm($_SESSION["ses_Login"], trim(des(rtrim(utf8_decode($_SESSION["ses_Login"])), hexToString(rtrim($_SESSION["ses_Password"])), 0, 0, null)), $sDataBase, $sServer, $iPort, $sSgbd, $sEncoding); - if ($this->oBd->erreurRencontree) { - writeToErrorLog(ERROR_CONNECTION_PROBLEM); - writeToErrorLog($this->oBd->getBDMessage()); - } - - if ($this->oBd->erreurRencontree) { - $this->oError = new VitisError(1, $this->oBd->sMessage); - } else { - $this->aValues['login'] = $_SESSION["ses_Login"]; - $this->aValues['validity_date'] = $_SESSION["ses_Date"]; - //get the groups of the user - if (isset($this->aValues['getGroup']) && !$this->aValues['getGroup'] == false) { - $this->sesGroup = getUserGroups($_SESSION["ses_Login"], $this->oBd, $_SESSION["ses_Password"], $this->aProperties["mixed_rights_management"], $this->aProperties["schema_framework"]); - } - - // Get the privileges of the user - $this->getUserPrivileges(); - // Update the user last connection - $this->updateLastConnection(); - } - } else { - $this->oError = new VitisError(15, "Token validity outpassed"); - } - } - - /** - * function wich get user privileges - */ - function getUserPrivileges() { - $sSql = "SELECT * FROM pg_user s LEFT OUTER JOIN pg_group g on (s.usesysid = any(g.grolist) ) where usename = '" . $_SESSION["ses_Login"] . "'"; - $oResult = $this->oBd->execute($sSql); - if (empty($this->oBd->enErreur) && $this->oBd->nombreLigne($oResult) > 0) { - while ($aPrivilege = $this->oBd->ligneSuivante($oResult)) { - array_push($this->aPrivileges, $aPrivilege['groname']); - } - } - } - - /** - * Get the rights of a user on a given table - * @param string $sSchema - * @param string $sTable - * @return array array of rights ex: ["SELECT", "TRUNCATE", "UPDATE"] - */ - function getTableRights($sSchema, $sTable) { - - if (!isset($sSchema) || empty($sSchema)) { - return []; - } - if (!isset($sTable) || empty($sTable)) { - return []; - } - // Version 1 - // $aProperties = $this->aProperties; - // $aPrivileges = $this->aPrivileges; - // - // // Ajoute PUBLIC dans les privilèges - // array_push($aPrivileges, 'PUBLIC'); - // - // // connexion avec u_vitis - // $oSchedulerBd = new BD('u_vitis', '', $aProperties["database"], $aProperties["server"], $aProperties["port"], $aProperties["sgbd"], $aProperties["page_encoding"]); - // - // $sSql = "SELECT * FROM information_schema.role_table_grants WHERE table_schema = '" . $sSchema . "' AND table_name = '" . $sTable . "'"; - // $oResult = $oSchedulerBd->execute($sSql); - // - // $aRights = array(); - // - // // Récupère les droits en fonction des privilèges - // if (!$oSchedulerBd->enErreur()) { - // if ($oSchedulerBd->nombreLigne($oResult) > 0) { - // while ($aLigne = $oSchedulerBd->ligneSuivante($oResult)) { - // if (in_array($aLigne['grantee'], $aPrivileges)) { - // if (!in_array($aLigne['privilege_type'], $aRights)) { - // array_push($aRights, $aLigne['privilege_type']); - // } - // } - // } - // } - // } - // Version 2 (Armand 02/09/2016) - $aSqlParams = array( - 'sSchema' => array('value' => $sSchema, 'type' => 'column_name'), - 'sTable' => array('value' => $sTable, 'type' => 'column_name') - ); - $sSql = "SELECT - has_table_privilege('\"[sSchema]\".\"[sTable]\"','insert') AS \"INSERT\", - has_table_privilege('\"[sSchema]\".\"[sTable]\"','select') AS \"SELECT\", - has_table_privilege('\"[sSchema]\".\"[sTable]\"','update') AS \"UPDATE\", - has_table_privilege('\"[sSchema]\".\"[sTable]\"','delete') AS \"DELETE\", - has_table_privilege('\"[sSchema]\".\"[sTable]\"','truncate') AS \"TRUNCATE\", - has_table_privilege('\"[sSchema]\".\"[sTable]\"','references') AS \"REFERENCES\", - has_table_privilege('\"[sSchema]\".\"[sTable]\"','trigger') AS \"TRIGGER\""; - - $oResult = $this->oBd->executeWithParams($sSql, $aSqlParams); - - $aRights = array(); - - if (!$this->oBd->enErreur()) { - if ($this->oBd->nombreLigne($oResult) > 0) { - while ($aLigne = $this->oBd->ligneSuivante($oResult)) { - foreach ($aLigne as $key => $value) { - if ($value === true) { - array_push($aRights, $key); - } - } - } - } - } - return $aRights; - } - - /** - * Update the last connexion column - */ - function updateLastConnection() { - $sSql = "update [sSchemaFramework].v_user set last_connection = [date] where login = [login]"; - $aParams = array(); - $aParams['sSchemaFramework'] = array('value' => $this->aProperties['schema_framework'], 'type' => 'schema_name'); - $aParams['login'] = array('value' => $_SESSION["ses_Login"], 'type' => 'string'); - $aParams['date'] = array('value' => gmdate('Y-m-d H:i:s'), 'type' => 'string'); - $oPDOresult = $this->oBd->executeWithParams($sSql, $aParams, false); - } - - /** - * get user date parameters (time zone, date format) - */ - function getUserDateInformations() { - $sSql = "SELECT timezone_id, formatdate_id FROM [sSchemaFramework].v_user WHERE user_id = [user_id]"; - $aParams = array(); - $aParams['sSchemaFramework'] = array('value' => $this->aProperties['schema_framework'], 'type' => 'schema_name'); - $aParams['user_id'] = array('value' => $_SESSION['ses_user_id'], 'type' => 'string'); - $oPDOresult = $this->oBd->executeWithParams($sSql, $aParams); - if (empty($this->oBd->enErreur) && $this->oBd->nombreLigne($oPDOresult) > 0) { - $aDateParameters = $this->oBd->ligneSuivante($oPDOresult); - $this->sFormatDate = $aDateParameters['formatdate_id']; - $this->sTimeZone = $aDateParameters['timezone_id']; - } - } -} diff --git a/src/vitis/vas/rest/class/vitis_lib/DbClass.class.inc b/src/vitis/vas/rest/class/vitis_lib/DbClass.class.inc deleted file mode 100755 index 7c253c8b..00000000 --- a/src/vitis/vas/rest/class/vitis_lib/DbClass.class.inc +++ /dev/null @@ -1,158 +0,0 @@ -<?php - -require_once (__DIR__ . "/XmlAbstract.class.inc"); -require_once(__DIR__ . "/../vmlib/Vm.class.inc"); -require_once(__DIR__ . "/../vmlib/dbUtil.inc"); -require_once(__DIR__ . "/../vmlib/logUtil.inc"); -require_once(__DIR__ . "/../vmlib/error.inc"); - -class DbClass extends XmlAbstract { - - //Champ clé de la table - var $sPkField; - //Valeur du champ clé de la table - var $iPkValue; - // Tableau de Properties - var $aProperties; - var $sTable; - //Chemin du fichier de ressources contenant les requêtes SQL - var $sRessourcesFile; - //Séquence utilisé pour l'obtention d'un nouvel identifiant - var $sSequence = "s_gtf.seq_order"; - //Variable stockant les messages d'erreur des requêtes - var $sMessage; - // Connexion à la base de données - var $oBd; - // est vrai si l'objet correspondant n'existe pas dans la base ou en cas d'erreur d'initialisation - var $bEnErreur; - // code d'erreur. different de 0 si bEnErreur=True - var $iErrorCode = 0; - - function setFields($aValues) { - foreach ($aValues as $sCle => $sValeur) { - $this->aFields[$sCle] = $sValeur; - } - } - - /* - * Méthode de classe : Insert - * Cette méthode permet d'insérer un nouvel enregistrement dans la table du shéma passé en pararmètre - */ - - function insert() { - $iId = $this->oBd->insert($this->aProperties['schema_gtf'], $this->sTable, $this->aFields, $this->sSequence, $this->sPkField, $bGetSql = false); - if ($iId != "") { - writeToDebugLog("La demande " . $iId . " a bien été insérée dans la base."); - $this->sMessage = "La demande " . $iId . " a bien été insérée dans la base."; - return $iId; - } else { - writeToErrorLog(ERROR_0002 . $this->oBd->getBDMessage()); - $this->sMessage = "La création de la demande a échouée."; - return -1; - } - } - - /* - * Méthode de classe : Update - * Cette méthode permet de mettre à jour un enregistrement dans la table du shéma passé en pararmètre - */ - - function update() { - if (!$this->oBd->update($this->aProperties['schema_gtf'], $this->sTable, $this->aFields, $this->sPkField, $this->iPkValue, $sIdType = "")) { - writeToDebugLog("La demande " . $this->iPkValue . " a bien été mise à jour dans la base."); - $this->sMessage = "La demande " . $this->iPkValue . " a bien été mise à jour dans la base."; - //Rajouté par Laurent - return $this->aFields["order_id"]; - } else { - writeToErrorLog(str_replace('[order_id]', $this->iPkValue, ERROR_0003) . $this->oBd->getBDMessage()); - $this->sMessage = "La mise à jour de la demande " . $this->iPkValue . " a échouée. -- " . $this->oBd->getBDMessage(); - //Rajouté par Laurent - return -1; - } - return $this->sMessage; - } - - /* - * Méthode de classe : Delete - * Cette méthode permet de supprimer un enregistrement dans la table du shéma passé en pararmètre - */ - - function delete() { - if ($iDemandeId == "") - $iDemandeId = $this->iPkValue; - - if (!$this->oBd->delete($this->aProperties['schema_gtf'], $this->sTable, $this->sPkField, $iDemandeId, $sIdType = "")) { - writeToDebugLog("La demande " . $iDemandeId . " a bien été supprimée de la base."); - $this->sMessage = "La demande " . $iDemandeId . " a bien été supprimée de la base."; - return $iDemandeId; - } else { - writeToErrorLog(str_replace('[order_id]', $iDemandeId, ERROR_0004) . $this->oBd->getBDMessage()); - $this->sMessage = "La demande " . $iDemandeId . " n'a pas pu être supprimée de la base."; - return -1; - } - } - - function setPkValue($iId) { - $this->iPkValue = $iId; - } - - /* - * Méthode de classe : getSourceEncoding - * Cette méthode permet de retourner l'encodage de la base de données - */ - - function getSourceEncoding() { - return $this->oBd->getSourceEncoding(); - } - - function isPostGISInstalled(){ - -// // Version 1 -// $sSql = "SELECT PostGIS_version()"; -// -// $oResult = $this->oConnection->oBd->execute($sSql); -// if (!$this->oConnection->oBd->enErreur() && $this->oConnection->oBd->nombreLigne($oResult) > 0) { -// return true; -// }else{ -// return false; -// } - // Version 2 - $isPostGISInstalled = false; - $sSql = "select name from pg_available_extensions where installed_version != ''"; - $oResult = $this->oConnection->oBd->execute($sSql); - if (!$this->oConnection->oBd->enErreur() && $this->oConnection->oBd->nombreLigne($oResult) > 0) { - while ($aLigne = $this->oConnection->oBd->ligneSuivante($oResult)) { - if($aLigne['name'] === 'postgis'){ - $isPostGISInstalled = true; - } - } - } - return $isPostGISInstalled; - } - - /** - * Return the geom columns infos from a table - * @param string $sSchema - * @param string $sTable - * @return array - */ - function getTableGeomColumnsInfos($sSchema, $sTable) { - - if(!$this->isPostGISInstalled()){ - return array(); - } - - $aGeomColumnsInfos = array(); - $sSql = "SELECT f_geometry_column, coord_dimension, srid, type from geometry_columns WHERE f_table_schema='" . $sSchema . "' AND f_table_name='" . $sTable . "'"; - - $oResult = $this->oConnection->oBd->execute($sSql); - if (!$this->oConnection->oBd->enErreur() && $this->oConnection->oBd->nombreLigne($oResult) > 0) { - while ($aObject = $this->oConnection->oBd->ligneSuivante($oResult)) { - array_push($aGeomColumnsInfos, $aObject); - } - } - return $aGeomColumnsInfos; - } -} - -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/vitis_lib/Form.class.inc b/src/vitis/vas/rest/class/vitis_lib/Form.class.inc deleted file mode 100755 index d971183d..00000000 --- a/src/vitis/vas/rest/class/vitis_lib/Form.class.inc +++ /dev/null @@ -1,151 +0,0 @@ -<?php - -/** - * \class Form - * \brief Form Class - * - * Class about form operations - * - * \author Armand Bahi <armand.bahi@veremes.com> - */ -class Form { - - /** - * construct - * @param type $properties properties - * @param type $oConnection connection object - */ - function __construct($properties, $oConnection) { - $this->aProperties = $properties; - $this->oConnection = $oConnection; - } - - /** - * Get the table columns description array - * @param string $sSchema - * @param string $sTable - * @return array - */ - function getTableColumns($sSchema, $sTable) { - - // Effectue une requête pour avoir les colonnes de la table - $sSql = "SELECT column_name, is_nullable, data_type, is_updatable "; - $sSql .= "FROM information_schema.columns "; - $sSql .= "WHERE table_schema = '" . $sSchema . "' AND table_name = '" . $sTable . "'"; - - $aColumns = array(); - - // Crée le formulaire - $oResult = $this->oConnection->oBd->execute($sSql); - if ($this->oConnection->oBd->enErreur()) { - $aXmlRacineAttribute['status'] = 0; - $oError = new VitisError(2, $this->oConnection->oBd->getBDMessage()); - } else { - if (!$this->oConnection->oBd->enErreur()) { - while ($aLigne = $this->oConnection->oBd->ligneSuivante($oResult)) { - array_push($aColumns, $aLigne); - } - } - } - return $aColumns; - } - - /** - * Generate the form rows by the table columns description array - * @param type $aColumns - * @param type $aUnusedColumnNames names of the columns witch you dont want to use - * @param type $aUnupdatableColumnNames names of the columns witch you dont want to bu updatable - * @return array - */ - function generateRowsByTableColumns($aColumns, $aUnusedColumnNames = array(), $aUnupdatableColumnNames = array(), $aLabel = array()) { - - $aRows = array(); - $aTypes = array(); - $aTypes["character varying"] = "text"; - $aTypes["integer"] = "integer"; - - foreach ($aColumns as $aLigne) { - - // Re-crée la ligne - $aField = array(); - $aField['fields'] = array(); - $aField['fields'][0] = array(); - - if (in_array($aLigne['column_name'], $aUnupdatableColumnNames)) { - - $aField['fields'][0]['type'] = "label"; - } else if (in_array($aLigne['column_name'], $aUnusedColumnNames)) { - - continue; - } else if (isset($aTypes[$aLigne['data_type']])) { - - $aField['fields'][0]['type'] = $aTypes[$aLigne['data_type']]; - } else if ($aLigne['data_type'] === "tinyint" || $aLigne['data_type'] === "bigint" || $aLigne['data_type'] === "smallint" || $aLigne['data_type'] === "numeric") { - - $aField['fields'][0]['type'] = "text"; - $aField['fields'][0]['pattern'] = "[-+]?(\d*[.])?\d+"; - } else if ($aLigne['data_type'] === "boolean") { - - $aField['fields'][0]['type'] = "radio"; - $aField['fields'][0]['options'] = array(); - $aField['fields'][0]['options']['choices'] = array(); - $aField['fields'][0]['options']['choices'][0]['label'] = "oui"; - $aField['fields'][0]['options']['choices'][0]['value'] = true; - $aField['fields'][0]['options']['choices'][1]['label'] = "non"; - $aField['fields'][0]['options']['choices'][1]['value'] = false; - } else { - - $aField['fields'][0]['type'] = "text"; - } - - $aField['fields'][0]['name'] = $aLigne['column_name']; - if (array_key_exists($aLigne['column_name'], $aLabel)) { - $aField['fields'][0]['label'] = $aLabel[$aLigne['column_name']]; - } else { - $aField['fields'][0]['label'] = $aLigne['column_name']; - } - - $aField['fields'][0]['disabled'] = !$aLigne['is_updatable']; - $aField['fields'][0]['required'] = !$aLigne['is_nullable']; - $aField['fields'][0]['nb_cols'] = 12; - - array_push($aRows, $aField); - } - - return $aRows; - } - - /** - * Generate the Form - * @param string $aRows - * @param string $sFormName - * @param string $sFormTitle - * @return array - */ - function generateFormByRows($aRows, $sFormTitle = "Generated Form", $sFormName = "generated") { - - // Crée les modes diplay/update/insert - $aForm = array(); - $aForm['display'] = array(); - $aForm['display']['name'] = $sFormName . '-form'; - $aForm['display']['title'] = $sFormTitle; - $aForm['display']['input_size'] = "xxs"; - $aForm['display']['nb_cols'] = 12; - $aForm['display']['javascript'] = false; - $aForm['display']['rows'] = $aRows; - $aForm['search'] = $aForm['display']; - $aForm['search']['rows'] = []; - $aForm['insert'] = $aForm['display']; - $aForm['update'] = $aForm['display']; - - // Met les champs du mode insert en mode label - for ($index = 0; $index < count($aForm['display']['rows']); $index++) { - $aForm['display']['rows'][$index]['fields'][0]['type'] = 'label'; - } - - return $aForm; - } - -} - -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/vitis_lib/VitisError.class.inc b/src/vitis/vas/rest/class/vitis_lib/VitisError.class.inc deleted file mode 100644 index 1c52cfaa..00000000 --- a/src/vitis/vas/rest/class/vitis_lib/VitisError.class.inc +++ /dev/null @@ -1,73 +0,0 @@ -<?php - -require_once(__DIR__."/DbClass.class.inc"); - -class VitisError extends DbClass { - - function __construct($iErrorId, $sErrorMessage="", $sMessage = ''){ - $this->aFields['errorCode']=$iErrorId; - switch ($iErrorId){ - case 1 : - $this->aFields['errorType']="Low-level error on database"; - break; - case 2 : - $this->aFields['errorType']="Missing parameter(s)"; - break; - case 3 : - $this->aFields['errorType']="Order not found"; - break; - case 4 : - $this->aFields['errorType']="Empty parameter(s)"; - break; - case 5 : - $this->aFields['errorType']="Empty service"; - break; - case 6 : - $this->aFields['errorType']="Unknown operation"; - break; - case 7 : - $this->aFields['errorType']="Invalid output format"; - break; - case 8 : - $this->aFields['errorType']="Error upload"; - break; - case 9 : - $this->aFields['errorType']="Error creating folder"; - break; - case 10 : - $this->aFields['errorType']="The application requested is not responding. Use UTF-8 to generate an XML result."; - break; - case 11 : - $this->aFields['errorType']="Connection to the database forbidden"; - break; - case 12 : - $this->aFields['errorType']="Rights problem"; - break; - case 13 : - $this->aFields['errorType']="Workspace not found"; - break; - case 14 : - $this->aFields['errorType']="Missing operation"; - break; - case 15 : - $this->aFields['errorType']="Expired token"; - break; - case 16 : - $this->aFields['errorType']="Invalid token"; - break; - case 18 : - $this->aFields['errorType']="Missing privileges"; - case 17 : - $this->aFields['errorType']="The request returned an error"; - break; - case 19 : - $this->aFields['errorType']="The database is unreachable"; - break; - } - $this->aFields['errorMessage']=$sErrorMessage; //Message renvoyé par la base de donnée - // Message d'erreur additionnel. - if (!empty($sMessage)) - $this->aFields['message'] = $sMessage; - } -} -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/vitis_lib/XmlAbstract.class.inc b/src/vitis/vas/rest/class/vitis_lib/XmlAbstract.class.inc deleted file mode 100755 index eec22c87..00000000 --- a/src/vitis/vas/rest/class/vitis_lib/XmlAbstract.class.inc +++ /dev/null @@ -1,256 +0,0 @@ -<?php - -/** - * \file XmlAbstract.class.inc - * \brief XmlAbstract.class.inc \n \n Ce fichier contient la classe php XmlAbstract. - * - * Cette classe est une classe abstraite qui peut être appelé par les autres classes par héritage afin de construire un fichier XML. - * - * \author Nicolas Chazeau - */ - -/** - * \class XmlAbstract - * \brief XmlAbstract Class \n \n XmlAbstract est une classe PHP. - * - * Cette classe permet de retourner un objet de sélection dans un fichier XML. - * - * \author Olivier Gayte <olivier.gayte@veremes.com> - * \author Nicolas Chazeau - */ -class XmlAbstract { - /* - * Tableau associatif contenant les attributs de l'objet. - */ - - var $aFields = array(); - /* - * Tableau d'objets - */ - var $aObjects = array(); - - /** - * Cette méthode permet d'afficher l'objet de sélection sous la forme d'un tableau HTML. - * \return Retourne plusieurs chaînes de caractères ou une chaine de caractères vide si le tableau est vide. - */ - function asTable() { - if ($this->isEmpty()) { - $sResult = ""; - } else { - $sResult = "<table border=3 rules=all>\n"; - foreach ($this->aExportFields as $sAttribut => $sValue) { - $sResult .= "<td>" . $sAttribut . "</td>\n"; - } - $sResult .= "\t<tr>\n"; - foreach ($this->aExportFields as $sAttribut => $sValue) { - $sResult .= "<td>" . $sValue . "</td>\n"; - } - $sResult .= "</table>\n"; - } - return $sResult; - } - - /** - * Cette méthode permet de déterminer si le tableau $this->aFields est vide ou non. - * \return Retourne false si $this->aFields est non vide. - */ - function isEmpty() { - return empty($this->aFields); - } - - /** - * Cette méthode permet de créer un tableau identique au tableau $this->aFields. - * \return Retourne un tableau. - */ - function getExportFields() { - return $this->aFields; - } - - /** - * Cette méthode permet de générer un document XML sous la forme d'une chaîne de caractères encodé en UTF-8 - * \param $sXSLUrl Nom du fichier de style XSL utilisé. - * \param $sXmlRacine Nom de l'élément racine du fichier XML. - * \param $sEncodageXML Encodage. UTF-8 par défaut. - * \param $sSourceEncoding Encodage de la base de données : ISO-8859-1 par défaut. - * \return Retourne un objet DomDocument. - */ - function asXML($sXSLUrl, $sXmlRacine, $sEncodageXML = 'UTF-8', $bAttributAsElement = False, $aXmlRacineAttribute = Array(), $sSourceEncoding = "ISO-8859-1") { - $oDomDocument = new DOMDocument('1.0', $sEncodageXML); - if (!Empty($sXSLUrl)) { - $oDomDocument->appendChild($oDomDocument->createProcessingInstruction('xml-stylesheet', 'href="' . $sXSLUrl . '" type="text/xsl"')); - } - $oObject = $oDomDocument->appendChild(new DOMElement($sXmlRacine)); - foreach ($aXmlRacineAttribute as $sXmlAttribute => $sValue) { - $oObject->setAttribute($sXmlAttribute, $this->sourceEncoding_targetEncoding($sSourceEncoding, $sEncodageXML, $sValue)); - } - $oObject->appendChild($this->asDOMElement($oDomDocument, $bAttributAsElement, $sSourceEncoding, $sEncodageXML)); - return $oDomDocument->saveXML(); - } - - /** - * Cette méthode permet de générer un document JSON sous la forme d'une chaîne de caractères encodé en UTF-8 - * \param $sXSLUrl Nom du fichier de style XSL utilisé. - * \param $sXmlRacine Nom de l'élément racine du fichier XML. - * \param $sEncodageXML Encodage. UTF-8 par défaut. - * \param $sSourceEncoding Encodage de la base de données : ISO-8859-1 par défaut. - * \return Retourne un objet DomDocument. - */ - function asJSON($sXSLUrl, $sXmlRacine, $sEncodageXML = 'UTF-8', $bAttributAsElement = False, $aXmlRacineAttribute = Array(), $sSourceEncoding = "ISO-8859-1",$sEncodageJSONXML) { - $oObject = $this->getObjects($this, $sEncodageJSONXML); - foreach ($aXmlRacineAttribute as $sXmlAttribute => $sValue) { - $oObject->$sXmlAttribute = $sValue; - } - $data = json_encode($oObject); - return ($data); - } - - function getJSON() { - $aObjClass = array(); - foreach ($aObjClass->aObjects as $oObj) { - if (get_class($oObj) == $sClasse) { - array_push($aObjClass, $oObj); - } - } - return $aObjClass; - } - - function asHTML($aExportFields) { - //Base case: an empty array produces no list - if (empty($aExportFields)) - return ''; - - //Recursive Step: make a list with child lists - $output = '<ul>'; - if (is_array($aExportFields) == false) { - $output .= '<li>' . $aExportFields . '</li>'; - } else { - foreach ($aExportFields as $key => $subArray) { - $output .= '<li>' . $key . $this->asHTML($subArray) . '</li>'; - } - } - - $output .= '</ul>'; - - return $output; - } - - /** - * Cette méthode permet de générer un document XML ou JSON sous la forme d'une chaîne de caractères encodé en UTF-8 - * \param $sXSLUrl Nom du fichier de style XSL utilisé. - * \param $sXmlRacine Nom de l'élément racine du fichier XML. - * \param $sEncodageXML Encodage. UTF-8 par défaut. - * \param $sSourceEncoding Encodage de la base de données : ISO-8859-1 par défaut. - * \param $sEncodageJSONXML Encodage XML par défaut, JSON sur demande - * \return Retourne un objet DomDocument. - */ - function asDocument($sXSLUrl, $sXmlRacine, $sEncodageXML = 'UTF-8', $bAttributAsElement = False, $aXmlRacineAttribute = Array(), $sSourceEncoding = "UTF-8", $sEncodageJSONXML = "xml") { - if (strpos($sEncodageJSONXML, "xml") != false) - return $this->asXML($sXSLUrl, $sXmlRacine, $sEncodageXML, $bAttributAsElement, $aXmlRacineAttribute, $sSourceEncoding); - else if (strpos($sEncodageJSONXML, "json") != false) - return $this->asJSON($sXSLUrl, $sXmlRacine, $sEncodageXML, $bAttributAsElement, $aXmlRacineAttribute, $sSourceEncoding, $sEncodageJSONXML); - else if (strpos($sEncodageJSONXML, "html") != false) { - $aExportFields = $this->getExportFields(); - return $this->asHTML($aExportFields); - } - } - - /** - * Cette méthode permet de générer un document XML sous la forme d'un fichier téléchargeable. - * \param $sXSLUrl Nom du Fichier de style XSL utilisé. - * \param $sFileName Nom du fichier XML à générer. - * \param $sXmlRacine Nom de l'élément racine du fichier XML. - * \param $sEncodageXML Encodage. UTF-8 par défaut. - * \param $sSourceEncoding Encodage de la base de données : ISO-8859-1 par défaut. - */ - function asXMLFile($sXSLUrl, $sFileName, $sXmlRacine = "Mj", $sEncodageXML = 'UTF-8', $sSourceEncoding = "ISO-8859-1") { - $sXML = $this->asXML($sXSLUrl, $sXmlRacine, $sEncodageXML, False, Array(), $sSourceEncoding); - return file_put_contents($sFileName, $sXML); - } - - /** - * Cette méthode permet de créer un élément DomElement. - * \param $oDomDocument : DOMDocument pere - * \param $sSourceEncoding Encodage de la base de données : ISO-8859-1 par défaut. - * \param $sEncodageXML Encodage. UTF-8 par défaut. - * \return Retourne un objet DomElement. - */ - function asDOMElement($oDomDocument, $bAttributAsElement = False, $sSourceEncoding = "ISO-8859-1", $sEncodageXML = 'UTF-8') { - $oDomElement = $oDomDocument->appendChild(new DOMElement(get_class($this))); - $aExportFields = $this->getExportFields(); - //si aExportFields n'est pas vide - if ($aExportFields != "" && count($aExportFields) > 0) { - foreach ($aExportFields as $sAttribut => $sValue) { - if (is_array($sValue)) { - - } else { - if ($bAttributAsElement) { - //nouveau fils , attribut : $sAttribut, valeur : sValue UTF-8 - $oDomElement->appendChild(new DOMElement($sAttribut, $this->sourceEncoding_targetEncoding($sSourceEncoding, $sEncodageXML, $sValue))); - } else { - //nouvel attribut , attribut : $sAttribut, valeur : sValue UTF-8 - $oDomElement->setAttribute($sAttribut, $this->sourceEncoding_targetEncoding($sSourceEncoding, $sEncodageXML, $sValue)); - } - } - } - //si le Fields est vide - } elseif (!$this->isEmpty()) { - foreach ($aExportFields as $sAttribut => $sValue) { - //nouvel attribut , attribut : $sAttribut, valeur : sValue UTF-8 - $oDomElement->setAttribute($sAttribut, $this->sourceEncoding_targetEncoding($sSourceEncoding, $sEncodageXML, $sValue)); - } - } - foreach ($this->aObjects as $s => $oMj) { - if (get_class($oMj) != "") { - $oDomElement->appendChild($oMj->asDOMElement($oDomDocument, $bAttributAsElement, $sSourceEncoding, $sEncodageXML)); - } - } - return $oDomElement; - } - - /** - * Cette méthode renvoie un tableau contenant les objets de la classe $sClasse composant l'objet. - * \return Retourne un tableau. - */ - function getObjects($sClasse, $jsonFormat) { - $aObjClass = new stdClass(); - if (strpos($jsonFormat, "x-vm-json") != false) { - $sClassName = "data"; - $aObjClass->$sClassName = array(); - } else { - $sClassName = strtolower(get_class($sClasse)); - } - if (!empty($sClasse->aObjects)) { - $aObjClass->$sClassName = array(); - foreach ($sClasse->aObjects as $oObj) { - array_push($aObjClass->$sClassName, $this->getObjects($oObj, $jsonFormat)); - } - } - if (!empty($sClasse->aFields)) { - foreach ($sClasse->aFields as $key => $value) { - $aObjClass->$key = $value; - } - } - if (empty($aObjClass->$sClassName) && isset($aObjClass->$sClassName)){ - unset($aObjClass->$sClassName); - } - return $aObjClass; - } - - /** - * Cette méthode permet d'encoder une chaine dans un encodage prédéfini "sTargetEncoding". - * \param $sSourceEncoding Encodage de la donnée source - * \param $sTargetEncoding Encodage dans lequel la donnée source source être encodée - * \param $sString Chaine à encoder - * \return Retourne un objet DomElement. - */ - function sourceEncoding_targetEncoding($sSourceEncoding, $sTargetEncoding, $sString) { - if ($sSourceEncoding != $sTargetEncoding) { - return iconv($sSourceEncoding, $sTargetEncoding, $sString); - } else { - return $sString; - } - } - -} - -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/vmlib/BD.class.inc b/src/vitis/vas/rest/class/vmlib/BD.class.inc deleted file mode 100644 index 54e90c84..00000000 --- a/src/vitis/vas/rest/class/vmlib/BD.class.inc +++ /dev/null @@ -1,1873 +0,0 @@ -<?php - -/** - * \file BD.class.inc - * \brief BD.class.inc \n \n Ce fichier contient la classe php BD. - * - * Elle est basée sur un classe élaborée par Philippe Rigaux qui permet d'utiliser les fonctions natives de php pour l'exploitation du SGBD - * MySQL en français. Toutes les manipulations les plus courantes de MySQL sont implémentées dans cette classe. - * Elle a été reprise pour pouvoir fonctionner aussi bien avec une base MySQL que PostgreSQL. - * - * Les sessions php permettent de conserver les données nécessaires pour générer un objet BD récurrent. - * - * \author Philippe Rigaux <rigaux@lamsade.dauphine.fr>. - * \author Olivier Gayte <olivier.gayte@veremes.com>. - * \author Fabien Marty <fabien.marty@veremes.com>. - * \author Armand Bahi <armand.bahi@veremes.com>. - */ -/** - * \class BD - * \brief BD Class \n \n Cette classe totalement générique permet de manipuler des données - * contenues dans une base MySQL, Oracle ou PostgreSQL. - * - * Elle est basée sur un classe élaborée par Philippe Rigaux qui permet d'utiliser les fonctions natives de php pour l'exploitation du SGBD - * MySQL en français. Toutes les manipulations les plus courantes de MySQL sont implémentées dans cette classe. - * Elle a été reprise pour pouvoir fonctionner aussi bien avec une base MySQL que PostgreSQL. - * - * Les sessions php permettent de conserver les données nécessaires pour générer un objet BD récurrent. - * - * \author Philippe Rigaux <rigaux@lamsade.dauphine.fr>. - * \author Olivier Gayte <olivier.gayte@veremes.com>. - * \author Fabien Marty <fabien.marty@veremes.com>. - * \author Armand Bahi <armand.bahi@veremes.com>. - */ -require_once ("logUtil.inc"); -require_once ("stringUtil.inc"); -require_once ("phpUtil.inc"); - -class BD { - - /** - * Dossier contenant le fichier lib. - */ - var $sFolderLib = "vmlib"; - - /** - * Objet connexion en cours. - */ - var $connexion; - - /** - * Booléen, permet de savoir si une erreur à été rencontrée. - */ - var $erreurRencontree = 0; - - /** - * Identifiant de l'utilisateur. - */ - var $login; - - /** - * Mot de passe de l'utilisateur. - */ - var $mdp; - - /** - * Nom de la base de données utilisée. - */ - var $base; - - /** - * Nom ou IP du serveur utilisé. - */ - var $serveur; - - /** - * Port de connexion. - */ - var $port; - - /** - * Message à afficher. - */ - var $sMessage = ""; - - /** - * Message à afficher dans les logs. - */ - var $sMessageLog = ""; - - /** - * Commande DSN de connexion. - */ - var $sDsn; - - /** - * Casse des attributs renvoyées par la fonction LigneSuite ("min", "maj" ou ""). - */ - var $sAttributeCase = ""; //"min", "maj" - /** - * nom du SGBD dans la syntaxe du dsn ("mysql", "pgsql", "oci") - */ - var $sgbd; - - /** - * langue de l'application par défaut fr - */ - var $lang; - - /** - * Connexion à la base - * \param $login Identifiant de l'utilisateur. - * \param $motDePasse Mot de passe de l'utilisateur. - * \param $base Nom de la base de données utilisée. - * \param $serveur Nom ou IP du serveur utilisé. - * \param $port Port de connexion utilisé : 5432 pour postgresql - * \param $sgbd SGBD utilisé : "pgsql" - "mysql" - "oci" (Oracle) - */ - function __construct($login, $motDePasse, $base, $serveur, $port, $sgbd, $sPageEncoding = "ISO-8859-1", $lang = "fr") { - $this->login = $login; - $this->mdp = $motDePasse; - $this->base = $base; - $this->serveur = $serveur; - $this->sgbd = $sgbd; - $this->port = $port; - $this->sPageEncoding = $sPageEncoding; - $this->lang = $lang; - loadLang($this->sFolderLib, $this->lang); - if ($this->sgbd != "") { - try { - $this->connectSGBD(); - } catch (PDOException $e) { - /** - * En cas d'utilisation de l'AD, le mot de passe doit respecter - * certaines règles de codage, le code situé ci-dessous - * correspond à ce type de cas - */ - // $this->mdp = utf8_decode($motDePasse); - $this->mdp = iconv("UTF-8", "CP1252", $motDePasse); - try { - $this->connectSGBD(); - } catch (PDOException $e) { - $this->erreurRencontree = 1; - writeToErrorLog($this->stringMessageEncode(ERROR_ACCESS_SERVER . $this->base . ", " . $this->serveur . " , " . $this->login . " , ip: " . $_SERVER['REMOTE_ADDR'] . " ** " . $e->getMessage())); - $this->setStringMessage(ERROR_CONNECT_SERVER); - $this->setStringMessage($e->getMessage()); - } - } - } else { - $this->erreurRencontree = 1; - $this->setStringMessage(ERROR_SGBD_UNDEFINED); - writeToErrorLog($this->stringMessageEncode(ERROR_SGBD_UNDEFINED)); - } - } - - // ---- Partie privée : les méthodes - - /** - * Connexion à PDO - */ - function connectSGBD() { - switch ($this->sgbd) { - case "sqlite": - $this->connexion = new PDO($this->sgbd . ':' . $this->serveur . '/' . $this->base); - break; - case "mysql" : - $this->sDsn = $this->sgbd . ':host=' . $this->serveur . ';dbname=' . $this->base; - $this->connexion = new PDO($this->sDsn, $this->login, $this->mdp); - break; - case "pgsql" : - $this->connexion = new PDO($this->sgbd . ':host=\'' . $this->serveur . '\' port=' . $this->port . ' dbname=\'' . $this->base . '\'', $this->login, $this->mdp); - $oPDOresult = $this->connexion->query("SET CLIENT_ENCODING TO '" . $this->sPageEncoding . "'"); - break; - case "oci" : - if ($this->serveur != "") { - // $this->sDsn= $this->sgbd.':dbname=//'.$this->serveur.':'.$this->port.'/'.$this->base.';charset='.$this->sPageEncoding; - $this->sDsn = $this->sgbd . ':dbname=//' . $this->serveur . ':' . $this->port . '/' . $this->base . ';charset=' . $this->sPageEncoding; - } else { - //Pour oracle, la variable $this->sPageEncoding est "AL32UTF8" et non "UTF8" - $this->sDsn = $this->sgbd . ':dbname=' . $this->base . ';charset=' . $this->sPageEncoding; - } - - $this->connexion = new PDO($this->sDsn, $this->login, $this->mdp); - break; - default: - $this->erreurRencontree = 1; - $this->setStringMessage(ERROR_INCORRECT_SGBD); - writeToErrorLog($this->stringMessageEncode(ERROR_INCORRECT_SGBD)); - break; - } - } - - /** - * Méthodes getSourceEncoding - * \return Cette méthode permet de retourner l'encodage de la base de données selon le type de BD. - */ - function getSourceEncoding() { - if ($this->sgbd != "") { - try { - switch ($this->sgbd) { - case "sqlite": - // Requête qui va permettre de récupérer l'encodage de la base - break; - case "pgsql" : - $sSql = "SELECT datname,encoding FROM pg_database where datname=[sDataBase]"; - $oPDOresult = $this->executeWithParams($sSql, array('sDataBase' => array('type' => 'string', 'value' => $this->base))); - $this->aSourceEncoding = $this->ligneSuivante($oPDOresult); - switch ($this->aSourceEncoding["encoding"]) { - case 6: - $sSourceEncoding = "UTF-8"; - break; - case 8: - $sSourceEncoding = "ISO-8859-1"; - break; - case 24: - $sSourceEncoding = "WIN1252"; - break; - default: - $sSourceEncoding = "ISO-8859-1"; - break; - } - break; - case "oci" : - $sSql = "select * from NLS_DATABASE_PARAMETERS where parameter='NLS_CHARACTERSET'"; -// $sSql = str_replace('sDataBase', $this->base, $sSql); - $oPDOresult = $this->executeWithParams($sSql, array()); - $this->aSourceEncoding = $this->ligneSuivante($oPDOresult); - switch ($this->aSourceEncoding["NLS_CHARACTERSET"]) { - /* case 6: - $sSourceEncoding="UTF-8"; - break; - case 8: - $sSourceEncoding="ISO-8859-1"; - break; */ - case "WE8MSWIN1252": - $sSourceEncoding = "WIN1252"; - break; - default: - $sSourceEncoding = "WIN1252"; - break; - } - - break; - default: - $this->erreurRencontree = 1; - $this->setStringMessage(ERROR_INCORRECT_SGBD); - writeToErrorLog($this->stringMessageEncode(ERROR_INCORRECT_SGBD)); - break; - } - } catch (PDOException $e) { - $this->erreurRencontree = 1; - writeToErrorLog($this->stringMessageEncode(ERROR_ACCESS_SERVER . $this->base . ", " . $this->serveur . " , " . $this->login . " ** " . $e->getMessage())); - $this->setStringMessage(ERROR_CONNECT_SERVER); - $this->setStringMessage($e->getMessage()); - } - } else { - $this->erreurRencontree = 1; - $this->setStringMessage(ERROR_SGBD_UNDEFINED); - writeToErrorLog($this->stringMessageEncode(ERROR_SGBD_UNDEFINED)); - } - return $sSourceEncoding; - } - - /** - * Méthodes pour afficher le message en HTML. - * \param $message Message à afficher. - * \private - */ - function setBDMessage($message) { - $this->sMessage .= $message . "<br>"; - } - - /** - * Méthodes pour afficher le message écrit en log en HTML. - * \param $message Message à afficher. - * \private - */ - function setBDMessageLog($message) { - $this->sMessageLog .= $message . "<br>"; - } - - /** - * Méthodes pour afficher le message en HTML encodé en UTF-8. - * ATTENTION : A utiliser seulement pour des chaines écrites à la main. Ne pas utiliser pour des chaines ou il y a concaténation entre "chaine écrite à la main" et chaine venant de la Base de données - * \param $message Message à afficher. - * \private - */ - function setStringMessage($message) { - $this->sMessage .= iconv("ISO-8859-1", $this->sPageEncoding, $message) . "<br>"; - } - - /** - * Méthodes qui permet d'encoder une chaine en UTF-8 pour que celle-ci soit correctement écrite dans les fichier de log. - * \param $sMessageEncode Message à afficher. - * \return La chaine à écrire dans le fichier de log. - */ - function stringMessageEncode($sMessageEncode) { - $sMessageEncode = iconv("ISO-8859-1", $this->sPageEncoding, $sMessageEncode); - return $sMessageEncode; - } - - /** - * \private - * \return Le message à afficher. - */ - function getBDMessage() { - if ($this->sMessage != "") - $sResult = USER_LABEL . $this->login . ERROR_LABEL . $this->sMessage; - else - $sResult = ""; - return $sResult; - } - - /** - * \private - * \return Le message à afficher. - */ - function getBDMessageLog() { - if ($this->sMessageLog != "") - $sResult = USER_LABEL . $this->login . ERROR_LABEL . $this->sMessageLog; - else - $sResult = ""; - return $sResult; - } - - /** - * Supprime le message à afficher. - * \private - */ - function cleanMessage() { - $this->sMessage = ""; - } - - // ---- Partie publique ------------------------- - - /** - * DEPRECATED - * Méthode indiquant la liste des tables contenues dans la base de données. - * \return Le jeu d'enregistrement de la liste des tables. - */ - function listeDesTables() { - $sSql = "SHOW TABLES FROM " . $this->base; - $oPDOresult = $this->execute($sSql); - return $oPDOresult; - } - - /** - * Méthode d'exécution d'une requête. - * Si la requête SQL est variable en fonction d'un ou plusieurs paramètres - * il faut ABSOLUMENT utiliser executeWithParams au lieu de execute - * afin d'éviter les injections SQL - * \param $sRequete Requête à exécuter. - * \return Le jeu d'enregistrement généré par l'exécution. - */ - function execute($sRequete) { - writeToDebugLog($sRequete); - if (is_null($this->connexion)) { - $this->erreurRencontree = 1; - $this->setBDMessage(ERROR_REQUEST_ERROR); - writeToErrorLog(html_entity_decode(ERROR_REQUEST_IMPOSSIBLE . $sRequete)); - writeToSqlErrorLog($sRequete); - return false; - } - $oPDOresult = $this->connexion->query($sRequete); - if ($this->connexion->errorCode() === "00000") { - $this->erreurRencontree = 0; - if (strtolower(substr($sRequete, 0, 6)) != "select") { - writeToSqlLog($sRequete); - } - return $oPDOresult; - } else { - $aPDOError = $this->connexion->errorInfo(); - $this->erreurRencontree = 1; - $this->setBDMessage(ERROR_REQUEST_ERROR); - writeToErrorLog(html_entity_decode(ERROR_REQUEST_IMPOSSIBLE . $sRequete . "." . RETURN_BD_LABEL . "'" . $aPDOError[2] . "'")); - $this->setBDMessageLog(html_entity_decode(ERROR_REQUEST_IMPOSSIBLE . $sRequete . "." . RETURN_BD_LABEL . "'" . $aPDOError[2] . "'")); - writeToSqlErrorLog($sRequete); - return false; - } - } - - /** - * Méthode sure d'exécution d'une requête avec paramètres. - * Si la requête SQL est variable en fonction d'un ou plusieurs paramètres - * il faut ABSOLUMENT utiliser executeWithParams au lieu de execute - * afin d'éviter les injections SQL - * \param $sRequete Requête à exécuter. - * \param $aParams Paramètres à ajouter dans la requête. - * \param $bLogSQL true si on veut logger les requêtes autre que SELECT dans sql.log - * \return Le jeu d'enregistrement généré par l'exécution. - */ - function executeWithParams($sRequete, $aParams, $bLogSQL = true) { - - $this->connexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING); - - // Supprime les paramètres non présents dans la requête - foreach ($aParams as $key => $value) { - if (strpos($sRequete, $key) === false) { - unset($aParams[$key]); - } - } - - $aSqlParams = array(); - $aParamsCpy = $aParams; - $sRequeteToLog2 = $sRequete . ' | ' . json_encode($aParams, true); - - // Pré-traitement des paramètres - foreach ($aParamsCpy as $key => $value) { - switch ($aParamsCpy[$key]['type']) { - case 'group': - $aGroupValues = explode('|', $aParamsCpy[$key]['value']); - $sInFilter = ''; - for ($i = 0; $i < count($aGroupValues); $i++) { - $aGroupValues[$i] = trim($aGroupValues[$i]); - if (strlen($sInFilter) > 0) { - $sInFilter .= ', '; - } - $sValueKey = 'value_' . vitisUniqId(); - $aParams[$sValueKey] = array('value' => $aGroupValues[$i], 'type' => 'string'); - $sInFilter .= '[' . $sValueKey . ']'; - } - unset($aParams[$key]); - $sRequete = str_replace('[' . $key . ']', $sInFilter, $sRequete); - break; - default: - break; - } - } - - $sRequeteToLog1 = $sRequete; - - // Traitement des paramètres - foreach ($aParams as $key => $value) { - - // Requête à logger - switch ($aParams[$key]['type']) { - case 'integer': - case 'column_name': - case 'schema_name': - case 'table_name': - $sRequeteToLog1 = str_replace('[' . $key . ']', $aParams[$key]['value'], $sRequeteToLog1); - break; - default: - $sRequeteToLog1 = str_replace('[' . $key . ']', "'" . $aParams[$key]['value'] . "'", $sRequeteToLog1); - break; - } - - // Requête à executer - switch ($aParams[$key]['type']) { - case 'integer': - case 'number': - case 'string': - case 'boolean': - // Valeur de type booléen et vide. - if ($aParams[$key]['type'] == 'boolean' && $aParams[$key]['value'] == '') - $aParams[$key]['value'] = null; - // Configuration du pramètre à utiliser lors de l'execution - $aSqlParams[':' . $key] = $aParams[$key]['value']; - $sRequete = str_replace('[' . $key . ']', ':' . $key, $sRequete); - break; - // Configuration du pramètre à utiliser lors de l'execution - $aSqlParams[':' . $key] = $aParams[$key]['value']; - $sRequete = str_replace('[' . $key . ']', ':' . $key, $sRequete); - break; - case 'geometry': - case 'quoted_string': - // Protège contre les quotes - $aParams[$key]['value'] = $this->protegeChaine($aParams[$key]['value']); - // Remplacement dans la reaqête - $sRequete = str_replace('[' . $key . ']', $aParams[$key]['value'], $sRequete); - break; - case 'column_name': - case 'schema_name': - case 'table_name': - // Vérification de la syntaxe pour qu'elle corresponde à une colonne, table, schema - if (preg_match('/^[\p{L}\p{N}@$#_]{0,127}$/', $aParams[$key]['value'])) { - // Remplacement dans la reaqête - $sRequete = str_replace('[' . $key . ']', $aParams[$key]['value'], $sRequete); - } else { - writeToSqlErrorLog($sRequeteToLog2 . ' | ' . $sRequeteToLog1 . ' | ' . $aParams[$key]['value'] . ' not match with column_name, schema_name, table_name'); - } - break; - case 'double_quote': - $aParams[$key]['value'] = '"' . $this->protegeSpecialChar($aParams[$key]['value']) . '"'; - $sRequete = str_replace('[' . $key . ']', $aParams[$key]['value'], $sRequete); - break; - default: - break; - } - } - - $oPDOresult = $this->connexion->prepare($sRequete); - if ($oPDOresult) { - foreach ($aParams as $key => $value) { - $bBindOk = true; - switch ($aParams[$key]['type']) { - case 'integer': - $bBindOk = $oPDOresult->bindValue(':' . $key, $aParams[$key]['value'], PDO::PARAM_INT); - break; - case 'number': - // Vérifications - if (is_string($aParams[$key]['value'])) { - // Valeur vide ? - if (strlen(trim($aParams[$key]['value'])) == 0) { - $aParams[$key]['value'] = null; - } - // Valeur non numérique ? - elseif (!is_numeric($aParams[$key]['value'])) { - writeToErrorLog('Error when trying to insert a textual value into a numeric attribute' . json_encode($aParams[$key], true)); - writeToSqlErrorLog($sRequeteToLog2 . ' | ' . $sRequeteToLog1); - $this->setBDMessage(ERROR_REQUEST_ERROR); - $this->erreurRencontree = 1; - return false; - } - // Valeur numérique entre côtes - else { - $aParams[$key]['value'] = floatval($aParams[$key]['value']); - } - } - $bBindOk = $oPDOresult->bindValue(':' . $key, $aParams[$key]['value']); - break; - case 'string': - $bBindOk = $oPDOresult->bindValue(':' . $key, $aParams[$key]['value'], PDO::PARAM_STR); - break; - case 'boolean': - $bBindOk = $oPDOresult->bindValue(':' . $key, $aParams[$key]['value'], PDO::PARAM_BOOL); - break; - default: - break; - } - if (!$bBindOk) { - writeToErrorLog('Error when binding ' . print_r($aParams[$key], true)); - $this->setBDMessage(ERROR_REQUEST_ERROR); - writeToErrorLog(print_r($this->connexion->errorInfo(), true)); - return false; - } - } - - $oPDOresult->execute(); - if ($bLogSQL) { - writeToDebugLog($sRequeteToLog2 . ' | ' . $sRequeteToLog1); - } - - if ($oPDOresult->errorCode() === "00000") { - $this->erreurRencontree = 0; - if (strtolower(substr($sRequete, 0, 6)) != "select" && $bLogSQL) { - writeToSqlLog($sRequeteToLog1); - } - return $oPDOresult; - } else { - $aPDOError = $oPDOresult->errorInfo(); - $this->erreurRencontree = 1; - $this->setBDMessage(ERROR_REQUEST_ERROR); - writeToErrorLog(html_entity_decode(ERROR_REQUEST_IMPOSSIBLE . $sRequete . "." . RETURN_BD_LABEL . "'" . $aPDOError[2] . "'")); - writeToSqlErrorLog($sRequeteToLog2 . ' | ' . $sRequeteToLog1); - return false; - } - } - } - - /** - * Execute un bloc de multiples requêtes SQL - * @param string $sSql - * @return Le jeu d'enregistrement généré par l'exécution. - */ - function executeBlock($sSql) { - - $this->connexion->setAttribute(PDO::ATTR_EMULATE_PREPARES, 1); - $this->connexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); - try { - $oPDOresult = $this->connexion->prepare($sSql); - if ($oPDOresult) { - $oPDOresult->execute(); - writeToDebugLog($sSql); - if ($this->connexion->errorCode() === "00000") { - $this->erreurRencontree = 0; - writeToSqlLog($sSql); - return $oPDOresult; - } else { - $aPDOError = $this->connexion->errorInfo(); - $this->erreurRencontree = 1; - $this->setBDMessage(ERROR_REQUEST_ERROR); - $this->setBDMessageLog(html_entity_decode(ERROR_REQUEST_IMPOSSIBLE . $sRequete . "." . RETURN_BD_LABEL . "'" . $aPDOError[2] . "'")); - writeToErrorLog(html_entity_decode(ERROR_REQUEST_IMPOSSIBLE . $sSql . "." . RETURN_BD_LABEL . "'" . $aPDOError[2] . "'")); - writeToSqlErrorLog($sSql); - return false; - } - } - } catch (PDOException $e) { - $sPDOErrorMessage = $e->getMessage(); - $this->erreurRencontree = 1; - $this->setBDMessage(ERROR_REQUEST_ERROR); - writeToErrorLog(html_entity_decode(ERROR_REQUEST_IMPOSSIBLE . $sSql . "." . RETURN_BD_LABEL . "'" . $sPDOErrorMessage . "'")); - writeToSqlErrorLog($sSql); - die(); - return false; - } - } - - /** - * Méthode permettant de démarrer une transaction. - */ - function demarreTransaction() { - $this->connexion->beginTransaction(); - } - - /** - * Méthode permettant de terminer une transaction. - */ - function termineTransaction() { - $this->connexion->commit(); - } - - /** - * Méthode permettant d'annuler une transaction. - */ - function annuleTransaction() { - $this->connexion->rollBack(); - } - - /** - * Méthode de suppression d'un objet PDO::Statement (nécessaire pour l'exécution - * de requêtes successives). - * \return Null. - */ - function fermeResultat() { - return null; - } - - /** - * Accès à la ligne suivante, sous forme d'objet - * \param $oPDOresult Jeu d'enregistrement résultant de l'éxécution d'une requête. - * \return La ligne suivante dans le jeu d'enregistrement. - */ - function objetSuivant($oPDOresult) { - return $oPDOresult->fetch(PDO::FETCH_OBJ); - } - - /** - * Accès à la ligne suivante, sous forme de tableau associatif - * \param $oPDOresult Jeu d'enregistrement résultant de l'éxécution d'une requête. - * \return La ligne suivante dans le jeu d'enregistrement. - */ - function ligneSuivante($oPDOresult) { - return $oPDOresult->fetch(PDO::FETCH_ASSOC); - } - - /** - * Accès au résultat sous forme de tableau associatif - * \param $oPDOresult Jeu d'enregistrement résultant de l'éxécution d'une requête. - * \return un tableau contenant les enregistrements sous forme de tableau associatif (champs=>valeur). - */ - function getResultTableAssoc($oPDOresult) { - return $oPDOresult->fetchAll(PDO::FETCH_ASSOC); - } - - /** - * Accès à la ligne suivante, sous forme de tableau indicé - * \param $oDBresultat Jeu d'enregistrement. - * \return La ligne suivante dans le jeu d'enregistrement. - */ - function tableauSuivant($oPDOresult) { - return $oPDOresult->fetch(PDO::FETCH_NUM); - } - - /** - * Méthode indiquant si une erreur a été rencontrée - * \return L'erreur rencontrée. - */ - function enErreur() { - return $this->erreurRencontree; - } - - /** - * DEPRECATED - * Méthode donnant l'id de la dernière ligne insérée. - * \return L'id de la dernière ligne insérée. - */ - function idDerniereLigne() { - return mysql_insert_id(); - } - - /** - * Méthode permettant de protéger les caractéres spéciaux d'une chaine de caractère - * dans une requête. - * \param $chaine Chaine de caractère à protéger. - */ - function protegeChaine($chaine) { - return $this->connexion->quote($chaine); - } - - /** - * Merthode permettant de remplacer les caractères critiques. - * Ces caractères sont les guillemets simples ('), guillemets doubles ("), antislash (\) et NULLE (le caractère NULL). - * @param string $chaine - * @return string - */ - function protegeSpecialChar($chaine) { - return addslashes($chaine); - } - - /** - * Méthode indiquant le nombre d'attributs dans le résultat. - * \param $res Jeu d'enregistrement résultant de l'éxécution d'une requête. - * \return Le nombre d'attributs dans le résultat. - */ - function getFieldsNumber($oPDOresult) { - return $oPDOresult->columnCount(); - } - - /** - * Méthode donnant le nom d'un attribut. - * \param $oPDOresult Jeu d'enregistrement résultant de l'éxécution d'une requête. - * \param $iFieldCount Nombre d'attributs. - * \param $iPosition Position de l'attribut. - * \return Le nom d'un attribut. - */ - function getFieldName($oPDOresult, $iFieldCount, $iPosition, $sTable) { - // Test sur la position - if ($iPosition < 0 or $iPosition >= $iFieldCount) { - $this->setStringMessage(ATTRIBUT_POSITION_BD_LABEL); - return UNKNOWN_BD_LABEL; - } else { - if ($this->sgbd == 'oci') { -// $resultat = $this->execute('SELECT * FROM COLS WHERE name = \'' . strtoupper($sTable) . '\''); - $resultat = $this->executeWithParams('SELECT * FROM COLS WHERE name = \'[sTable]\'', array('sTable' => array('type' => 'column_name', 'value' => $sTable))); - for ($i = 0; $aLigne = $this->ligneSuivante($resultat); $i++) { - if ($i == $iPosition) { - return $aLigne['COLUMN_NAME']; - } - } - } else { - $aMeta = $oPDOresult->getColumnMeta($iPosition); - return $aMeta['name']; - //if ($this->sgbd=='pgsql') - //else return $aMeta['name']; - } - } - } - - /** - * Méthode indiquant le nombre de lignes dans le résultat. Utilisez PHP> 5.1 - * \param $oPDOresult Jeu d'enregistrement résultant de l'éxécution d'une requête. - * \return Le nombre de lignes dans le résultat. - */ - function nombreLigne($oPDOresult) { - return $oPDOresult->rowCount(); - } - - /** - * Méthode de déconnexion. - */ - function quitter() { - $this->connexion->null; - } - - /** - * Méthode permettant de récupérer le type d'une attribut. - * \param $oPDOresult Jeu d'enregistrement résultant de l'éxécution d'une requête. - * \param $iNumFields Nombres d'attributs. - * \param $sFieldName Nom de l'attribut. - * \return Le type d'une attribut (-1 si l'attribut passé en paramètre n'est pas trouvé, 'VAR_STRING' texte, 'DATE' date, ... ). - */ - function getType($oPDOresult, $iNumFields, $sFieldName, $sTable) { - $sType = -1; - if ($this->sgbd == 'oci') { -// $resultat = $this->execute('SELECT * FROM COLS WHERE name = \'' . strtoupper($sTable) . '\''); - $resultat = $this->executeWithParams('SELECT * FROM COLS WHERE name = \'[sTable]\'', array('sTable' => array('type' => 'column_name', 'value' => $sTable))); - for ($i = 0; $aLigne = $this->ligneSuivante($resultat); $i++) { - if ($aLigne['COLUMN_NAME'] == $sFieldName) { - return $aLigne['DATA_TYPE']; - } - } - } else { - for ($i = 0; $i < $iNumFields; $i++) { - $aMeta = $oPDOresult->getColumnMeta($i); - if ($aMeta['name'] == $sFieldName) - $sType = $aMeta['native_type']; - } - } - // si le champ n'a pas été trouvé, il s'agit d'une erreur - return $sType; - } - - /** - * DEPRECATED - * Méthode permettant de construire une clause WHERE SQL à partir d'une liste de valeur passées en requête. - * La table cible est spécifiée en paramètre de la méthode. - * \param $sSchema Schema de la base de données - * \param $sTable Table dans laquelle on recherche. - * \param $aValues Valeurs contenues dans la requête. - * \param $bListQuery Liste des champs filtrés. - * \param $bUpper Modification de la casse. Facultatif, false par défaut. - * \param $bClause Type de clause : AND ou OR. Facultatif, AND par défaut. - * \return La clause WHERE de la requête SQL de recherche. - */ - function getWhereClause($sSchema, $sTable, $aValues, $bListQuery, $bLower = false, $sClause = "AND") { - // LIKE gère tous les types de champs. - switch ($this->sgbd) { - case 'mysql' : - $sProtectField = '`'; - $sSql = $this->AddLimite(0, 1, "SELECT * FROM " . $sTable); - break; - case 'pgsql' : - $sTable = $sSchema . "." . $sTable; - $sProtectField = '"'; - $sSql = $this->AddLimite(0, 1, "SELECT * FROM " . $sTable); - break; - case 'oci' : - $sProtectField = ''; - $sSql = $this->AddLimite(0, 1, "SELECT " . $sTable . ".* FROM " . $sTable); - break; - } - $resultat = $this->execute($sSql); - - $iNumFields = $this->getFieldsNumber($resultat); - for ($i = 0; $i < $iNumFields; $i++) { - $aField["name"][$i] = $this->getFieldName($resultat, $iNumFields, $i, $sTable); - $aField["type"][$i] = $this->getType($resultat, $iNumFields, $aField["name"][$i], $sTable); - } - $sWhereClause = ""; - $sQueryList = ""; - foreach ($aValues as $sKey => $sValue) { - $i = 0; - - while ($aField["name"][$i]) { - if ($aField["name"][$i] == $sKey && $sValue != "") { - $sChamp = $sKey; - $sKey = addDelimitedAttribute("", $sKey, "", $sProtectField); - switch ($aField["type"][$i]) { - case (ereg("LONG|int4|int|NUMBER|float4|float8", $aField["type"][$i]) > 0) : - $sCondition = "="; - if (isset($aValues["condition_" . $sChamp])) { - if ($aValues["condition_" . $sChamp] != "") { - $sCondition = $aValues["condition_" . $sChamp]; - ($sWhereClause == "") ? $sWhereClause .= " WHERE " : $sWhereClause .= " " . $sClause . " "; - $sWhereClause .= $sTable . "." . $sKey . " " . $sCondition . " " . $sValue . " "; - if ($bListQuery) - $sQueryList .= $sChamp . " " . $sCondition . " " . $sValue . " & "; - } - }else { - ($sWhereClause == "") ? $sWhereClause .= " WHERE " : $sWhereClause .= " " . $sClause . " "; - $sWhereClause .= $sTable . "." . $sKey . "::varchar LIKE '" . $sValue . "' "; - if ($bListQuery) - $sQueryList .= $sChamp . " " . $sCondition . " " . $sValue . " & "; - } - if (isset($aValues["condition_interval_sup_" . $sChamp]) && $aValues["condition_interval_sup_" . $sChamp] != "") { - $sCondition = $aValues["condition_interval_sup_" . $sChamp]; - if ($aValues["interval_sup_" . $sChamp] != "") { - ($sWhereClause == "") ? $sWhereClause .= " WHERE " : $sWhereClause .= " " . $sClause . " "; - $sWhereClause .= $sTable . "." . $sKey . " " . $sCondition . " " . $aValues["interval_sup_" . $sChamp] . " "; - if ($bListQuery) - $sQueryList .= $sChamp . " " . $sCondition . " " . $aValues["interval_sup_" . $sChamp] . " & "; - } - } - break; - case 'bool' : - if ($sValue == '1') - $sValue = 'TRUE'; - if ($sValue == '0') - $sValue = 'FALSE'; - if ($sWhereClause == "") - $sWhereClause .= " WHERE " . $sTable . "." . $sKey . " = " . $sValue . " "; - else - $sWhereClause .= " " . $sClause . " " . $sTable . "." . $sKey . " = " . $sValue . " "; - if ($bListQuery) - $sQueryList .= $sKey . "=" . $sValue . " & "; - break; - //case "datetime" || "timestamp" : - - case (ereg("DATE|date|timestamp", $aField["type"][$i]) > 0) : - $sCondition = "="; - $DateUneFr = $aValues[$sChamp]; - $DateDeuxFr = $aValues["interval_sup_" . $sChamp]; - $sValue = substr($this->formatForSql($aValues[$sChamp], $aField["type"][$i]), 1, -1); - $aValues["interval_sup_" . $sChamp] = substr($this->formatForSql($aValues["interval_sup_" . $sChamp], $aField["type"][$i]), 1, -1); - if (isset($aValues["condition_" . $sChamp])) { - if ($aValues["condition_" . $sChamp] != "") { - $sCondition = $aValues["condition_" . $sChamp]; - ($sWhereClause == "") ? $sWhereClause .= " WHERE " : $sWhereClause .= " " . $sClause . " "; - $sWhereClause .= $sTable . "." . $sKey . " " . $sCondition . " '" . $sValue . "' "; - if ($bListQuery) - $sQueryList .= $sChamp . " " . $sCondition . " '" . $DateUneFr . "' & "; - } - } else { - //if($this->sgbd === "oci") $sFunction = "TO_CHAR(".$sTable.".".$sKey.", 'DD/MM/YYYY')"; - ($sWhereClause == "") ? $sWhereClause .= " WHERE " : $sWhereClause .= " " . $sClause . " "; - $sWhereClause .= $sTable . "." . $sKey . "::varchar LIKE '%" . $sValue . "%' "; - if ($bListQuery) - $sQueryList .= $sChamp . " " . $sCondition . " " . $DateUneFr . " & "; - } - if (isset($aValues["condition_interval_sup_" . $sChamp]) && $aValues["condition_interval_sup_" . $sChamp] != "") { - $sCondition = $aValues["condition_interval_sup_" . $sChamp]; - if ($aValues["interval_sup_" . $sChamp] != "") { - ($sWhereClause == "") ? $sWhereClause .= " WHERE " : $sWhereClause .= " " . $sClause . " "; - $sWhereClause .= $sTable . "." . $sKey . " " . $sCondition . " '" . $aValues["interval_sup_" . $sChamp] . "' "; - if ($bListQuery) - $sQueryList .= $sChamp . " " . $sCondition . " '" . $DateDeuxFr . "' & "; - } - } - break; - default : - $sValue = str_replace("'", "''", $sValue); - if ($bLower) { - $sValue = strtolower($sValue); - if ($sWhereClause == "") - $sWhereClause .= " WHERE lower(" . $sTable . "." . $sKey . ") LIKE '%" . $sValue . "%' "; - else - $sWhereClause .= " " . $sClause . " lower(" . $sTable . "." . $sKey . ") LIKE '%" . $sValue . "%' "; - }else { - if ($sWhereClause == "") - $sWhereClause .= " WHERE " . $sTable . "." . $sKey . " LIKE '%" . $sValue . "%' "; - else - $sWhereClause .= " " . $sClause . " " . $sTable . "." . $sKey . " LIKE '%" . $sValue . "%' "; - } - if ($bListQuery) - $sQueryList .= $sKey . "='" . $sValue . "' & "; - break; - } - } - $i++; - } - } - $resultat = $this->fermeResultat(); - if ($sQueryList != "") - $sQueryList = substr($sQueryList, 0, -3); - return array("WhereClause" => $sWhereClause, "QueryList" => $sQueryList); - } - - /** - * Méthode permettant d'ajouter des enregistrements. - * \param $sSchema Schema de la base de données - * \param $sTable Table dans laquelle on ajoute. - * \param $aValues Valeurs à ajouter. - * \param $sSequence Nom de la séquence à utiliser. - * \param $iIdField Nom de l'attribut identifiant. - * \param $bGetSql Booléen : doit on renvoyer le code sql ou exécuter la requête? Vaut 'false' par défaut. - * \return L'id de la dernière ligne insérée. - */ - function insert($sSchema, $sTable, $aValues, $sSequence, $iIdField, $bGetSql = false) { - - $aSQLParams = array( - 'sSchema' => array('type' => 'column_name', 'value' => $sSchema), - 'sTable' => array('type' => 'column_name', 'value' => $sTable) - ); - - // Insére les éléments du tableau $aValues dans $sTable et renvoie l'identifiant de l'enregistrement correspondant (en fait le dernier) - switch ($this->sgbd) { -// case 'mysql' : -// $sSql = "INSERT INTO `$sTable` ("; -// $sSqlList = $this->AddLimite(0, 0, "SELECT * FROM " . $sTable); -// $sProtectField = "`"; -// break; - case 'pgsql' : - $sSql = 'INSERT INTO "[sSchema]"."[sTable]" ('; -// $sSqlList = $this->AddLimite(0, 0, 'SELECT * FROM ' . $sSchema . '.' . $sTable); - - $aSqlList = $this->AddLimiteWithParams(0, 0, 'SELECT * FROM "[sSchema]"."[sTable]"'); - $sSqlList = $aSqlList['sql']; - $aSQLListParams = array_merge($aSQLParams, $aSqlList['params']); - - $sProtectField = '"'; - // Utilisation de la sequence pour récupérer un identifiant - if ($sSequence) { -// $oPDOresult = $this->execute('SELECT nextval(\'' . $sSequence . '\')'); - $oPDOresult = $this->executeWithParams('SELECT nextval([sSequence])', array('sSequence' => array('type' => 'string', 'value' => $sSequence))); - if ($oPDOresult !== false) - $aIdValue = $this->ligneSuivante($oPDOresult); - $iIdValue = $aIdValue['nextval']; - $aValues[$iIdField] = $iIdValue; - $oPDOresult = $this->fermeResultat(); - } - break; -// case 'oci' : -// $sSql = 'INSERT INTO ' . $sTable . '('; -// $sSqlList = 'SELECT ' . $sTable . '.* FROM ' . $sTable . ' WHERE ROWNUM <=1 AND ROWNUM >=0'; -// $sProtectField = '"'; -// // Utilisation de la sequence pour récupérer un identifiant -// if ($sSequence) { -// $oPDOresult = $this->execute('SELECT ' . $sSequence . '.nextval FROM dual'); -// if ($oPDOresult !== false) -// $aIdValue = $this->ligneSuivante($oPDOresult); -// $iIdValue = $aIdValue['NEXTVAL']; -// $aValues[$iIdField] = $iIdValue; -// $oPDOresult->closeCursor(); -// } -// break; - } - $sFields = ""; - $sValues = ""; - -// $resultat = $this->execute($sSqlList); - $resultat = $this->executeWithParams($sSqlList, $aSQLListParams); - $iNumFields = $this->getFieldsNumber($resultat); - - foreach ($aValues as $sField => $sValue) { - if ($iIdField == $sField) - $iIdValue = $sValue; - if (substr_count($sField, '.') == 1) - $sField = substr($sField, strlen($sTable) + 1); - $sType = $this->getType($resultat, $iNumFields, $sField, $sTable); - if ($sType != -1) { - - $sFields = addDelimitedAttribute($sFields, $sField, ",", $sProtectField); - $aFormatedField = $this->formatForSqlWithParams($sValue, $sField, $sType, $sSchema, $sTable); - $sValues = addDelimitedString($sValues, $aFormatedField['field'], ","); - - switch ($this->parseType($sType)) { - case 'int': - $aSQLParams[$aFormatedField['fieldKey']] = array('type' => 'number', 'value' => $aFormatedField['value']); - break; - case 'float': - case 'decimal': - $aSQLParams[$aFormatedField['fieldKey']] = array('type' => 'number', 'value' => $aFormatedField['value']); - break; - case 'bool': - $aSQLParams[$aFormatedField['fieldKey']] = array('type' => 'boolean', 'value' => $aFormatedField['value']); - break; - case 'geometry': - $aSQLParams[$aFormatedField['fieldKey']] = array('type' => 'geometry', 'value' => $aFormatedField['value']); - break; - default: - $aSQLParams[$aFormatedField['fieldKey']] = array('type' => 'string', 'value' => $aFormatedField['value']); - break; - } - } - } - - if (empty($iIdValue)) { - $sSql = $sSql . $sFields . ") VALUES (" . $sValues . ") RETURNING \"" . $iIdField . "\""; - } else { - $sSql = $sSql . $sFields . ") VALUES (" . $sValues . ")"; - } - - $resultat = $this->fermeResultat(); - if ($bGetSql) { - return $sSql; - } else { - - $iResult = $this->executeWithParams($sSql, $aSQLParams); - if ($iResult === false) { - return $iResult; - } - - // Valeur retour au cas où $iIdValue soit vide - if (empty($iIdValue)) { - $iIdValue = $iResult->fetchColumn(); - } - if ($iResult !== false) { - $iResult = $this->fermeResultat(); - } - - if ($this->sgbd == 'mysql') - $iIdValue = $this->connexion->lastInsertId(); - return $iIdValue; - } - } - - /** - * DEPRECATED - * Méthode permettant d'ajouter des enregistrements par le biais de la commande SQL 'COPY'. - * Methode implémentée pour PostgreSQL. - * \param $sSchema Schema de la base de données - * \param $sTable Table dans laquelle on ajoute. - * \param $aValues Valeurs à ajouter. - * \param $sSequence Nom de la séquence à utiliser. - * \param $sIdField Nom de l'attribut identifiant. - */ - function copy($sSchema, $sTable, $aValues, $sSequence, $sIdField) { - //$iIdValue = $aIdValue['nextval']; - $sSqlField = $this->AddLimite(0, 0, "SELECT * FROM " . $sSchema . "." . $sTable); - $iFieldResult = $this->execute($sSqlField); - $iNumField = $this->getFieldsNumber($iFieldResult); - - $sCopy = ""; - $aType = array(); - foreach ($aValues as $i => $aRow) { - if ($i == 0) { - $sCopy .= "COPY " . $sSchema . "." . $sTable . " ("; - foreach ($aRow as $sField => $sValue) { - if (substr_count($sField, '.') == 1) - $sField = substr($sField, strlen($sTable) + 1); - $aType[$sField] = $this->getType($iFieldResult, $iNumField, $sField, $sTable); - $sFields = addDelimitedAttribute($sFields, $sField, ",", "\""); - } - $sCopy .= $sFields . ") FROM stdin;\n"; - } - $iSeqResult = $this->execute("SELECT nextval('" . $sSequence . "')"); - if ($iSeqResult !== false) - $aIdValue = $this->ligneSuivante($iSeqResult); - $iSeqResult = $this->fermeResultat(); - foreach ($aRow as $sField => $sValue) { - if ($sIdField === $sField) - $sValue = $aIdValue["nextval"]; - if ($sValue === "null") - $sValue = "\\N"; - $sValues = addDelimitedString($sValues, $sValue, "\t"); - } - $sCopy .= $sValues . "\n"; - } - $sCopy .= "\\."; - $iNumField = $this->fermeResultat(); - - $iResult = $this->execute($sCopy); - if ($iResult !== false) { - $iResult = $this->fermeResultat(); - return true; - } else { - return false; - } - } - - /** - * Méthode permettant de mettre à jour des enregistrements. - * \param $sSchema Schema de la base de données - * \param $sTable Table dans laquelle on met à jour. - * \param $aValues Valeurs à mettre à jour. - * \param $sAttribute Attribut de la clause "WHERE". - * \param $sId Valeur de l'attribut. - * \param $sIdType Type de l'attribut. - */ - function update($sSchema, $sTable, $aValues, $sAttribute, $sId, $sIdType = "") { - - $aSQLParams = array( - 'sSchema' => array('type' => 'column_name', 'value' => $sSchema), - 'sTable' => array('type' => 'column_name', 'value' => $sTable) - ); - - // Modifie la table $sTable à partir du contenu du tableau $aValues - // Le nom des éléments de $aValues doit être le même que les nom de champs - // Le type de chaque champ est pris en compte de manière dynamque - switch ($this->sgbd) { -// case 'mysql' : -// $sSql = "UPDATE `$sTable` set "; -// $sSqlList = $this->AddLimite(0, 0, "SELECT * FROM " . $sTable); -// $sProtectField = "`"; -// break; - case 'pgsql' : - $sSql = 'UPDATE "' . $sSchema . '"."' . $sTable . '" set '; -// $sSqlList = $this->AddLimite(0, 0, 'SELECT * FROM ' . $sSchema . '.' . $sTable); - $aSqlList = $this->AddLimiteWithParams(0, 0, 'SELECT * FROM "[sSchema]"."[sTable]"'); - $sSqlList = $aSqlList['sql']; - $aSQLListParams = array_merge($aSQLParams, $aSqlList['params']); - $sProtectField = '"'; - break; -// case 'oci' : -// $sSql = 'UPDATE ' . $sTable . ' set '; -// $sSqlList = $this->AddLimite(0, 1, 'SELECT * FROM ' . $sTable); -// $sProtectField = ''; -// break; - } - $sPaires = ""; - $sFields = ""; - $sValues = ""; - - $resultat = $this->executeWithParams($sSqlList, $aSQLListParams); - $iNumFields = $this->getFieldsNumber($resultat); - - foreach ($aValues as $sField => $sValue) { - if (substr_count($sField, '.') == 1) - $sField = substr($sField, strlen($sTable) + 1); - $sType = $this->getType($resultat, $iNumFields, $sField, $sTable); - - if ($sType != -1) { - - $aFormatedField = $this->formatForSqlWithParams($sValue, $sField, $sType, $sSchema, $sTable); - $sPaire = addDelimitedAttribute("", $sField, "", $sProtectField) . '=' . $aFormatedField['field']; - $sPaires = addDelimitedString($sPaires, $sPaire, ", "); - - switch ($this->parseType($sType)) { - case 'int': - $aSQLParams[$aFormatedField['fieldKey']] = array('type' => 'number', 'value' => $aFormatedField['value']); - break; - case 'float': - case 'decimal': - $aSQLParams[$aFormatedField['fieldKey']] = array('type' => 'number', 'value' => $aFormatedField['value']); - break; - case 'bool': - $aSQLParams[$aFormatedField['fieldKey']] = array('type' => 'boolean', 'value' => $aFormatedField['value']); - break; - case 'geometry': - $aSQLParams[$aFormatedField['fieldKey']] = array('type' => 'geometry', 'value' => $aFormatedField['value']); - break; - default: - $aSQLParams[$aFormatedField['fieldKey']] = array('type' => 'string', 'value' => $aFormatedField['value']); - break; - } - } - } - - if ($sPaires != "") { - $sSql = $sSql . $sPaires; - if ($sAttribute != "") { - - if (!is_array($sId)) { - $aWhereClause = $this->AddWhereClauseWithParams($sAttribute, $sId, 'string'); - $aSQLParams = array_merge($aSQLParams, $aWhereClause['params']); - $sSql = $sSql . $aWhereClause['sql']; - } else { - $sId = implode(",", $sId); - $aInClause = $this->AddInClauseWithParams($sSchema, $sAttribute, $sId); - $aSQLParams = array_merge($aSQLParams, $aInClause['params']); - $sSql = $sSql . ' WHERE ' . $aInClause['sql']; - } - } - $resultat = $this->fermeResultat(); - $iResult = $this->executeWithParams($sSql, $aSQLParams); - - if ($iResult !== false) { - $iResult = $this->fermeResultat(); - } - } - } - - /** - * Récupère un type de colonne Postgres (int8, varchar(255) etc..) et renvoie le type simple (int, varchar, float) - * @param string $str - * @return string - */ - function parseType($str) { - - $sType = ''; - $arr = str_split($str); - $pattern = '/^[a-z]/'; - - for ($i = 0; $i < count($arr); $i++) { - if (!preg_match($pattern, $arr[$i])) { - break; - } else { - $sType .= $arr[$i]; - } - } - - return $sType; - } - - /** - * Méthode permettant de supprimer des enregistrements de la table passée en paramètre conformément à la clause spécifiée. - * \param $sSchema Schema de la base de données - * \param $sTable Table dans laquelle on supprime. - * \param $sAttribute Attribut de la clause "WHERE". - * \param $sId Valeur de l'attribut. - * \param $sIdType Types de l'attribut. - */ - function delete($sSchema, $sTable, $sAttribute, $sId, $sIdType = "") { - - $aSQLParams = array( - 'sSchema' => array('type' => 'column_name', 'value' => $sSchema), - 'sTable' => array('type' => 'column_name', 'value' => $sTable) - ); - - switch ($this->sgbd) { -// case 'mysql' : -// $sSql = "DELETE FROM `$sTable` WHERE " . $sAttribute; -// break; - case 'pgsql' : - - $aAttributs = explode('.', $sAttribute); - - // Si le schema est ou pas défini dans sAttribute - if (count($aAttributs) === 1) { - $sColumnKey = 'column_' . vitisUniqId(); - $sSql = 'DELETE FROM "[sSchema]"."[sTable]" WHERE "[' . $sColumnKey . ']"'; - $aSQLParams[$sColumnKey] = array('type' => 'column_name', 'value' => $aAttributs[0]); - } else if (count($aAttributs) === 2) { - $sSchemaKey = 'schema_' . vitisUniqId(); - $sColumnKey = 'column_' . vitisUniqId(); - $sSql = 'DELETE FROM "[sSchema]"."[sTable]" WHERE "[' . $sSchemaKey . ']"."[' . $sColumnKey . ']"'; - $aSQLParams[$sSchemaKey] = array('type' => 'column_name', 'value' => $aAttributs[0]); - $aSQLParams[$sColumnKey] = array('type' => 'column_name', 'value' => $aAttributs[1]); - } - - break; -// case 'oci' : -// $sSql = "DELETE FROM $sTable WHERE " . $sAttribute; -// break; - } - $sSql .= ' IN ([sIds])'; - $aSQLParams['sIds'] = array('type' => 'group', 'value' => $sId); - $iResult = $this->executeWithParams($sSql, $aSQLParams); - if ($iResult !== false) { - $iResult = $this->fermeResultat(); - } - } - - /** - * DEPRECATED - * Méthode permettant d'ajouter des enregistrements dans une table liée. - * \param $sTableName Table dans laquelle on ajoute. - * \param $sAttributePK Attribut PK. - * \param $sPKValue Valeur de l'attribut PK. - * \param $aAttributeList Tableau contenant les attributs et leurs valeurs. - * \param $sSequence Séquence. - * \param $sSchema Schéma. - */ - function insertLinkedTable($sTableName, $sAttributePK, $sPKValue, $aAttributeList, $sSequence, $sSchema) { - switch ($this->sgbd) { - case 'mysql' : - //méthode non implémenté pour mysql - break; - case 'pgsql' : - break; - case 'oci' : - $sSql = "SELECT " . $sAttributeFK . " FROM " . $sTableName . " WHERE " . $sAttributePK . "=" . $sPKValue; - $sSqlDel = "DELETE FROM " . $sTableName . " WHERE " . $sAttributePK . "=" . $sPKValue . " AND " . $sAttributeFK . "='"; - break; - } - - $aValues = Array(); - foreach ($aAttributeList as $aValue) { - $aValues[$aValue[0]] = $aValue[1]; - } - $this->insert($sSchema, $sTableName, $aValues, $sSequence, $sAttributePK); - } - - /** - * DEPRECATED - * Méthode permettant d'ajouter des enregistrements sans ajout de nouvel Id dans une table liée. - * \param $sSchema Schéma. - * \param $sTable Table dans laquelle on ajoute. - * \param $aAttributeFK Tableau contenant les attributs. - * \param $aValueList Tableau contenant les valeurs. - */ - function insertWithoutIdLinkedTable($sSchema, $sTable, $aAttributeList, $aValueList) { - //Méthode implémenté uniquement pour postgresql - if ($sSchema != "") { - $sTable = $sSchema . "." . $sTable; - } - foreach ($aValueList as $iKey => $sValue) { - if (gettype($sValue) == "string") { - $aValueList[$iKey] = "'" . $sValue . "'"; - } - } - $sSql = "INSERT INTO " . $sTable . ' ("' . implode('","', $aAttributeList) . '") VALUES (' . implode(',', $aValueList) . ')'; - $this->execute($sSql); - } - - /** - * DEPRECATED - * Méthode permettant de mettre à jour des enregistrements dans une table liée. - * \param $sTableName Table dans laquelle on met un enregistrement à jour. - * \param $sAttributePK Attribut PK. - * \param $sAttributeFK Attribut FK. - * \param $sFKList Liste des valeurs de l'attribut FK. - * \param $sPKValue Valeur de l'attribut PK. - */ - function updateLinkedTable($sTableName, $sAttributePK, $sAttributeFK, $sFKList, $sPKValue) { - switch ($this->sgbd) { - case 'mysql' : - //méthode non implémenté pour mysql - break; - case 'pgsql' : - $sSql = "UPDATE " . $sTableName . " SET " . $sAttributePK . "=" . $sPKValue . " WHERE " . $sAttributeFK . "="; - break; - case 'oci' : - //méthode non implémenté pour oci - break; - } - $aFKList = explode("@", $sFKList); - //Met à jour les enregistrements de $aFKList - foreach ($aFKList as $sFKValue) { - writeToDebugLog($sSql . $sFKValue); - writeToSqlLog($sSql); - $this->connexion->query($sSql . $sFKValue); - } - } - - /** - * DEPRECATED - * Méthode permettant de générer une clause SQL simple de type "LIMIT" selon le sgbd. - * \param $iMinRowValue Valeur minimale du limit. - * \param $iRowPage Nombre d'enregistrements sélectionnés. - */ - function AddLimite($iMinRowValue, $iRowPage, $sSql) { - switch ($this->sgbd) { - case 'mysql' : - $sSql .= " LIMIT " . $iMinRowValue . "," . $iRowPage; - break; - case 'pgsql' : - $sSql .= " LIMIT " . $iRowPage . " OFFSET " . $iMinRowValue; - break; - case 'oci' : - $iRowPage = $iRowPage + $iMinRowValue; - $sSql1 = "SELECT * FROM ( SELECT * FROM (" . $sSql . ") WHERE ROWNUM <= " . $iRowPage . ") MINUS ( SELECT * FROM (" . $sSql . ") WHERE ROWNUM <= " . $iMinRowValue . ")"; - if (substr_count($sSql, "ORDER BY") >= 1) { - $sSql = "SELECT * FROM ( " . $sSql1 . ")" . stristr($sSql, "ORDER BY"); - } else { - $sSql = $sSql1; - } - break; - } - return $sSql; - } - - /** - * Méthode permettant de générer une clause SQL simple de type "LIMIT" selon le sgbd. - * \param $iMinRowValue Valeur minimale du limit. - * \param $iRowPage Nombre d'enregistrements sélectionnés. - */ - function AddLimiteWithParams($iMinRowValue, $iRowPage, $sSql) { - switch ($this->sgbd) { -// case 'mysql' : -// $sSql .= " LIMIT " . $iMinRowValue . "," . $iRowPage; -// break; - case 'pgsql' : - $sSql .= " LIMIT [iRowPage] OFFSET [iMinRowValue]"; - $aSQLParams = array( - 'iRowPage' => array('type' => 'string', 'value' => $iRowPage), - 'iMinRowValue' => array('type' => 'string', 'value' => $iMinRowValue) - ); - break; -// case 'oci' : -// $iRowPage = $iRowPage + $iMinRowValue; -// $sSql1 = "SELECT * FROM ( SELECT * FROM (" . $sSql . ") WHERE ROWNUM <= " . $iRowPage . ") MINUS ( SELECT * FROM (" . $sSql . ") WHERE ROWNUM <= " . $iMinRowValue . ")"; -// if (substr_count($sSql, "ORDER BY") >= 1) { -// $sSql = "SELECT * FROM ( " . $sSql1 . ")" . stristr($sSql, "ORDER BY"); -// } else { -// $sSql = $sSql1; -// } -// break; - } - return array( - 'sql' => $sSql, - 'params' => $aSQLParams - ); - } - - /** - * DEPRECATED - * Méthode permettant de générer une clause SQL simple de type "ORDER BY" selon le sgbd. - * \param $sAttribute Attribut. - * \param $sOrder Ordre dans lequel doivent étre triées les données "ASC" ou "DESC". - */ - function AddOrder($sAttibute, $sOrder) { - if (is_null($sOrder)) - $sOrder = 'ASC'; - switch ($this->sgbd) { - case 'mysql' : - $sSql = " ORDER BY '" . $sAttibute . "' " . $sOrder; - break; - case 'pgsql' : - $sSql = ' ORDER BY "' . $sAttibute . '" ' . $sOrder; - break; - case 'oci' : - $sSql = ' ORDER BY "' . $sAttibute . '" ' . $sOrder; - break; - } - return $sSql; - } - - /** - * DEPRECATED - * Méthode permettant de générer une clause SQL simple de type "WHERE" selon le sgbd. - * \param $sAttribute Attribut. - * \param $sId Valeur de l'attribut. - * \param $sType Type de l'attribut. - */ - function AddWhereClause($sAttribute, $sId, $sType = "") { - switch ($this->sgbd) { - case 'mysql' : - $sSql = " WHERE " . $sAttribute . "=" . $sId; - break; - case 'pgsql' : - if (substr_count($sAttribute, '.') != 1) { - $sAttribute = '"' . $sAttribute . '"'; - } - if ($sType == "text") - $sId = "'" . $sId . "'"; - $sSql = ' WHERE ' . $sAttribute . '= ' . $sId; - break; - case 'oci' : - $sId = "'" . $sId . "'"; - $sSql = ' WHERE ' . $sAttribute . '= ' . $sId; - break; - } - return $sSql; - } - - /** - * Selon executeWithParams - * Méthode permettant de générer une clause SQL simple de type "WHERE" selon le sgbd. - * \param $sAttribute Attribut. - * \param $sId Valeur de l'attribut. - * \param $sType Type de l'attribut. - */ - function AddWhereClauseWithParams($sAttribute, $sId, $sType = "string") { - switch ($this->sgbd) { -// case 'mysql' : -// $sSql = " WHERE " . $sAttribute . "=" . $sId; -// break; - case 'pgsql' : - - $aAttributs = explode('.', $sAttribute); - - // Si le schema est ou pas défini dans sAttribute - if (count($aAttributs) === 1) { - - $sColumnKey = 'column_' . vitisUniqId(); - $sValueKey = 'value_' . vitisUniqId(); - - $sSql = ' WHERE "[' . $sColumnKey . ']" = [' . $sValueKey . ']'; - $aSQLParams = array( - $sColumnKey => array('type' => 'column_name', 'value' => $aAttributs[0]), - $sValueKey => array('type' => $sType, 'value' => $sId) - ); - } else if (count($aAttributs) === 2) { - - $sSchemaKey = 'schema_' . vitisUniqId(); - $sColumnKey = 'column_' . vitisUniqId(); - $sValueKey = 'value_' . vitisUniqId(); - - $sSql = ' WHERE "[' . $sSchemaKey . ']"."[' . $sColumnKey . ']" = [' . $sValueKey . ']'; - $aSQLParams = array( - $sSchemaKey => array('type' => 'column_name', 'value' => $aAttributs[0]), - $sColumnKey => array('type' => 'column_name', 'value' => $aAttributs[1]), - $sValueKey => array('type' => $sType, 'value' => $sId) - ); - } - - break; -// case 'oci' : -// $sId = "'" . $sId . "'"; -// $sSql = ' WHERE ' . $sAttribute . '= ' . $sId; -// break; - } - return array( - 'sql' => $sSql, - 'params' => $aSQLParams - ); - } - - /** - * DEPRECATED - * Méthode permettant de générer une clause SQL simple de type "AND" selon le sgbd. - * \param $sSchema Schema de la base de données - * \param $sAttribute Attribut. - * \param $sId Valeur de l'attribut. - */ - function AddAndClause($sSchema, $sAttribute, $sId, $sType = "") { - switch ($this->sgbd) { - case 'mysql' : - $sSql = " AND " . $sAttribute . "=" . $sId; - break; - case 'pgsql' : - if (substr_count($sAttribute, '.') != 1) { - $sAttribute = '"' . $sAttribute . '"'; - } else { - if (substr_count($sAttribute, '."') != 1) { - $sAttribute = str_replace('.', '."', $sAttribute . '"'); - } - if (strcmp($sSchema, "") != 0) { - $sAttribute = $sSchema . '.' . $sAttribute; - } - } - $sId = "'" . $sId . "'"; - $sSql = ' AND ' . $sAttribute . '= ' . $sId; - break; - case 'oci' : - if ($sType == "text") - $sId = "'" . $sId . "'"; - $sSql = " AND " . $sAttribute . "=" . $sId; - break; - } - return $sSql; - } - - /** - * DEPRECATED - * Méthode permettant de générer une clause SQL simple de type "IN" selon le sgbd. - * \param $sSchema Schema de la base de données - * \param $sAttribute Attribut. - * \param $sId Valeurs de l'attribut. - */ - function AddInClause($sSchema, $sAttribute, $sId) { - switch ($this->sgbd) { - case 'mysql' : - // Vide - break; - case 'pgsql' : - if (substr_count($sAttribute, '.') != 1) { - $sAttribute = '"' . $sAttribute . '"'; - } else { - $sSchema = "\"" . $sSchema . "\""; - $sAttribute = $sSchema . ".\"" . str_replace(".", "\".\"", $sAttribute) . "\""; - } - break; - case 'oci' : - // Vide - break; - } - $sSql = $sAttribute . " IN (" . $sId . ")"; - return $sSql; - } - - /** - * Selon executeWithParams - * Méthode permettant de générer une clause SQL simple de type "IN" selon le sgbd. - * \param $sSchema Schema de la base de données - * \param $sAttribute Attribut. - * \param $sId Valeurs de l'attribut. - */ - function AddInClauseWithParams($sSchema, $sAttribute, $sId) { - switch ($this->sgbd) { -// case 'mysql' : -// // Vide -// break; - case 'pgsql' : - - $aAttributs = explode('.', $sAttribute); - - // Si le schema est ou pas défini dans sAttribute - if (count($aAttributs) === 1) { - - $sColumnKey = 'column_' . vitisUniqId(); - $sValueKey = 'value_' . vitisUniqId(); - - $sSql = '"[' . $sColumnKey . ']" IN ([' . $sValueKey . '])'; - $aSQLParams = array( - $sColumnKey => array('type' => 'column_name', 'value' => $aAttributs[0]), - $sValueKey => array('type' => 'group', 'value' => $sId) - ); - } else if (count($aAttributs) === 2) { - - $sSchemaKey = 'schema_' . vitisUniqId(); - $sColumnKey = 'column_' . vitisUniqId(); - $sValueKey = 'value_' . vitisUniqId(); - - $sSql = '"[' . $sSchemaKey . ']"."[' . $sColumnKey . ']" IN ([' . $sValueKey . '])'; - $aSQLParams = array( - $sSchemaKey => array('type' => 'column_name', 'value' => $aAttributs[0]), - $sColumnKey => array('type' => 'column_name', 'value' => $aAttributs[1]), - $sValueKey => array('type' => 'group', 'value' => $sId) - ); - } - break; -// case 'oci' : -// // Vide -// break; - } - return array( - 'sql' => $sSql, - 'params' => $aSQLParams - ); - } - - /** - * DEPRECATED - * Méthode qui renvoie une chaine formatée pour pouvoir étre utilisé dans un requête insert, update ou select. - * \param $sValue Chaine qui va doit être formatée. - * \param $sType Type de l'attribut. - * \param $sSchema Schema contenant la table dont est issu le champ à traiter (vide par défaut). - * \param $sTable Table dont est issu le champ à traiter (vide par défaut). - */ - function formatForSql($sValue, $sType, $sSchema = "", $sTable = "") { - - // Gestion du type spatiale - switch ($this->sgbd) { - case "pgsql" : - if (($sType === "geometry") && ($sValue !== "")) { - $iTableDimension = $this->getTableDimension($sTable, $sSchema); - $sForce3DDebut = ""; - $sForce3DFin = ""; - if ($iTableDimension == 3) { - $sForce3DDebut = "st_force_3d("; - $sForce3DFin = ")"; - } - $sOriginTable = $this->ifTableIsAView($sTable, $sSchema); - if ($sOriginTable != $sTable) { - $sTable = $sOriginTable; - $sOriginSchema = $this->getTableSchema($sTable); - if ($sOriginSchema != $sSchema) - $sSchema = $sOriginSchema; - } - // Si il s'agit de format EWKT, alors on connait la projection de la géométrie. On peut alors procéder à une reprojection automatique des données - if ($this->isEWKTFormat($sValue)) { - $sValue = $sForce3DDebut . "ST_transform(ST_GeomFromEWKT('" . $sValue . "'), " . $this->getTableSRID($sTable, $sSchema) . ")" . $sForce3DFin; - } else { - $sValue = $sForce3DDebut . "st_geometryFromText('" . $sValue . "'," . $this->getTableSRID($sTable, $sSchema) . ") " . $sForce3DFin; - } - } else { - $sValue = str_replace("'", "''", $sValue); - //$sValue = str_replace("\\", "\\\\", $sValue); - //$sValue = str_replace("\\\\\\''", "\\\\\\\\\\\\'", $sValue); - } - - break; - } - // Gestion des types alphanumériques - if ($sValue === "") { - $sValue = "null"; - } else { - switch ($sType) { - case ($sType == "BLOB" || $sType == "bool"): - if ($sValue == "") - $sValue = 0; - case ($sType == "bpchar" || $sType == "DATE" || $sType == "varchar" || $sType == "VARCHAR2" || $sType == "VAR_STRING" || $sType == "text" || $sType == "timestamp"): - if ((empty($sValue) && $sValue != 0) || $sValue == "") { - $sValue = "null"; - } else { - $sValue = "'" . $sValue . "'"; - } - break; - case ($sType == "date" || $sType == "DATETIME" || $sType == "timestamptz"): - $sValue = "'" . implode("-", array_reverse(explode("/", $sValue))) . "'"; - break; - default: - if ($sValue == "") - $sValue = "null"; - break; - } - } - // Cas particulier : le booléen 'faux' dans PostgreSQL - if ($sType == "bool" && $this->sgbd == "pgsql" && $sValue == "null") - $sValue = "false"; - return $sValue; - } - - /** - * Méthode qui renvoie une chaine formatée pour pouvoir étre utilisé dans un requête insert, update ou select. - * \param $sValue Chaine qui va doit être formatée. - * \param $sType Type de l'attribut. - * \param $sSchema Schema contenant la table dont est issu le champ à traiter (vide par défaut). - * \param $sTable Table dont est issu le champ à traiter (vide par défaut). - */ - function formatForSqlWithParams($sValue, $sField, $sType, $sSchema = "", $sTable = "") { - - $sFieldKey = $sField . '_' . vitisUniqId(); - - switch ($this->sgbd) { - case "pgsql" : - if (($sType === "geometry") && ($sValue !== "")) { - $iColumnDimension = $this->getColumnDimension($sSchema, $sTable, $sField); - $sForce3DDebut = ""; - $sForce3DFin = ""; - // Projection - $sSRID = $this->getColumnSRID($sSchema, $sTable, $sField); - if ($sSRID == "0") { - $sSRID = "2154"; - } - // Dimention - if ($iColumnDimension == 3) { - $sForce3DDebut = "st_force_3d("; - $sForce3DFin = ")"; - } - $sOriginTable = $this->ifTableIsAView($sTable, $sSchema); - if ($sOriginTable != $sTable) { - $sTable = $sOriginTable; - $sOriginSchema = $this->getTableSchema($sTable); - if ($sOriginSchema != $sSchema) - $sSchema = $sOriginSchema; - } - // Si il s'agit de format EWKT, alors on connait la projection de la géométrie. On peut alors procéder à une reprojection automatique des données - if ($this->isEWKTFormat($sValue)) { - $sField = $sForce3DDebut . "ST_Transform(ST_GeomFromEWKT([" . $sFieldKey . "]), " . $sSRID . ")" . $sForce3DFin; - } else { - $sField = $sForce3DDebut . "ST_GeometryFromText([" . $sFieldKey . "]," . $sSRID . ") " . $sForce3DFin; - } - } else { - $sField = '[' . $sFieldKey . ']'; - } - break; - } - - return array( - 'field' => $sField, - 'fieldKey' => $sFieldKey, - 'value' => $sValue - ); - } - - /** - * DEPRECATED - * Méthode permettant de construire une clause WHERE SQL é partir d'une liste de valeur passées en requête et avec une jointure sur une autre table. - * La table cible est spécifiée en paramètre de la méthode. - * \param $sSchema Schema de la base de données - * \param $sTable Table dans laquelle on recherche. - * \param $aValues Valeurs contenues dans la requête. - * \param $bListQuery. - * \param $sTable_sql - * \param $pKey - * \param $isWhereExist - * \return La clause WHERE de la requête SQL de recherche. - */ - function getWhereAndClause($sSchema, $sTable, $aValues, $bListQuery, $sTable_sql, $pKey, $isWhereExist = false) { - // LIKE gère tous les types de champs. - switch ($this->sgbd) { - case 'mysql' : - $sProtectField = '`'; - $sSql = $this->AddLimite(0, 1, "SELECT * FROM " . $sTable); - break; - case 'pgsql' : - $sTable = $sSchema . "." . $sTable; - $sProtectField = '"'; - $sSql = $this->AddLimite(0, 1, "SELECT * FROM " . $sTable); - break; - case 'oci' : - $sProtectField = ''; - $sSql = $this->AddLimite(0, 1, "SELECT " . $sTable . ".* FROM " . $sTable); - break; - } - $resultat = $this->execute($sSql); - - $iNumFields = $this->getFieldsNumber($resultat); - for ($i = 0; $i < $iNumFields; $i++) { - $aField["name"][$i] = $this->getFieldName($resultat, $iNumFields, $i, $sTable); - $aField["type"][$i] = $this->getType($resultat, $iNumFields, $aField["name"][$i], $sTable); - } - $sWhereClause = ""; - $sQueryList = ""; - foreach ($aValues as $sKey => $sValue) { - $i = 0; - - while ($aField["name"][$i]) { - //echo $aField["name"][$i]." ".$aField["type"][$i]."<BR>"; - if ($aField["name"][$i] == $sKey && $sValue != "") { - $sKey = addDelimitedAttribute("", $sKey, "", $sProtectField); - switch ($aField["type"][$i]) { - case (ereg("LONG|int4|NUMBER", $aField["type"][$i]) > 0) : - if ($sWhereClause == "" & !$isWhereExist) - $sWhereClause .= " WHERE " . $sTable . "." . $sKey . "::varchar LIKE '" . $sValue . "' "; - else - $sWhereClause .= " AND " . $sTable . "." . $sKey . "::varchar LIKE '" . $sValue . "' "; - if ($bListQuery) - $sQueryList .= $sKey . "=" . $sValue . " & "; - break; - case 'bool' : - if ($sValue == '1') - $sValue = 'TRUE'; - if ($sValue == '0') - $sValue = 'FALSE'; - if ($sWhereClause == "" & !$isWhereExist) - $sWhereClause .= " WHERE " . $sTable . "." . $sKey . " = " . $sValue . " "; - else - $sWhereClause .= " AND " . $sTable . "." . $sKey . " = " . $sValue . " "; - if ($bListQuery) - $sQueryList .= $sKey . "=" . $sValue . " & "; - break; - //case "datetime" || "timestamp" : - case (ereg("DATE|date", $aField["type"][$i]) > 0) : - $sValue = substr($this->formatForSql($sValue, $aField["type"][$i]), 1, -1); - if ($this->sgbd === "oci") - $sFunction = "TO_CHAR(" . $sTable . "." . $sKey . ", 'DD/MM/YYYY')"; - default : - if (!empty($sFunction)) { - if ($sWhereClause == "" & !$isWhereExist) - $sWhereClause .= " WHERE " . $sFunction . " LIKE '%" . $sValue . "%' "; - else - $sWhereClause .= " AND " . $sFunction . " LIKE '%" . $sValue . "%' "; - }else { - if ($sWhereClause == "" & !$isWhereExist) - $sWhereClause .= " WHERE " . $sTable . "." . $sKey . " LIKE '%" . $sValue . "%' "; - else - $sWhereClause .= " AND " . $sTable . "." . $sKey . " LIKE '%" . $sValue . "%' "; - } - if ($bListQuery) - $sQueryList .= $sKey . "='" . $sValue . "' & "; - break; - } - $sWhereClause .= " AND " . $sTable . "." . $pKey . " = " . $sTable_sql . "." . $pKey; - } - - $i++; - } - } - $resultat = $this->fermeResultat(); - if ($sQueryList != "") - $sQueryList = substr($sQueryList, 0, -3); - return array("WhereClause" => $sWhereClause, "QueryList" => $sQueryList); - } - -// Fin de la classe -} - -?> diff --git a/src/vitis/vas/rest/class/vmlib/BdDataAccess.inc b/src/vitis/vas/rest/class/vmlib/BdDataAccess.inc deleted file mode 100755 index c719389b..00000000 --- a/src/vitis/vas/rest/class/vmlib/BdDataAccess.inc +++ /dev/null @@ -1,20 +0,0 @@ -<?php - -/* - * - * BdDataAccess.inc : - * - */ - -switch ($properties["sgbd"]) { - case "mysql" : - require_once("vmlib/MysqlDataAccess.class.inc"); - break; - case "pgsql" : - require_once(__DIR__ . "/PgsqlDataAccess.class.inc"); - break; - case "oci" : - //require_once("vmlib/OciDataAccess.class.inc"); - break; -} -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/vmlib/Email.class.inc b/src/vitis/vas/rest/class/vmlib/Email.class.inc deleted file mode 100755 index 509b6069..00000000 --- a/src/vitis/vas/rest/class/vmlib/Email.class.inc +++ /dev/null @@ -1,328 +0,0 @@ -<?php - -require_once ("vmlib/logUtil.inc"); -//require_once ("PEAR/Mail.php"); -//require_once ("PEAR/Mail/mime.php"); -require_once ("vmlib/EmailTemplate.class.inc"); - -require_once 'vmlib/error.inc'; - -use PHPMailer\PHPMailer\PHPMailer; -use PHPMailer\PHPMailer\Exception; - -require_once 'PHPMailer/src/Exception.php'; -require_once 'PHPMailer/src/PHPMailer.php'; -require_once 'PHPMailer/src/SMTP.php'; - -class Email { - - protected $to; - protected $cc; - protected $cci; - protected $subject; - protected $body; - protected $bUseHTML; - protected $aAttachments; - protected $mimeVersion = '1.0'; - protected $contentType = 'text/html; charset=utf-8'; - protected $from; - protected $replyTo; - protected $xMailer; - protected $date; - protected $aObjects; - protected $aProperties; - protected $oBd; - public $oEmailTemplate; - public $aValues; - protected $logFileName; - - /* * **************************************************** - - * **************************************************** */ - /** - *@construct - *@param $oBd Database access object - *@param $iEmailTemplateId ID of the template - *@param $aProperties Properties of the application - *@param aObjects Object that initialyze the sending - *@todo Si vous utilisez cette classe avec chargement par mailStruct : $oBd = null, $iEmailTemaplteId = null, $aObjects = null - */ - function __construct($oBd, $iEmailTemplateId, $aProperties, $aObjects) { - //error_log("contructor start"); - $this->oBd = $oBd; - $this->aProperties = $aProperties; - $this->aObjects = $aObjects; - $this->xMailer = array('PHP/' => phpversion()); - //$this->from = $this->aProperties['nickname_sender'] . '<' . $this->aProperties['mail_sender'] . '>'; - //$this->replyTo = '<>'; - //$this->date = date("D, j M Y H:i:s "); - $this->aValues = array(); - $this->bUseHTML = true; - //error_log("before if"); - if(isset($this->aProperties['mail_log_file'])){ - //error_log("if1.1"); - $this->logFileName = $this->aProperties['mail_log_file']; - } else if (!isset($this->aProperties['mail_log_file']) && isset($this->aProperties['error_log_file'])){ - //error_log("if1.2"); - $this->logFileName = $this->aProperties['error_log_file']; - } else { - //error_log("if1.3"); - $this->logFileName = $properties['log_dir'] . "/mail.log"; - } - //error_log("before if 2"); - if (!empty($iEmailTemplateId)) { - //error_log("if2"); - $this->loadFromMailTemplate($iEmailTemplateId); - } - //error_log("contructor end"); - } - - /* * **************************************************** - Envoi un email. - /Retour : message - * **************************************************** */ - - /* function send() { - $sErrorMessage = ''; - $crlf = ""; // \n - // - $oMime = new Mail_mime(array('eol' => $crlf)); - // Pièce jointe ? - if (is_array($this->aAttachments) && !empty($this->aAttachments)) { - foreach ($this->aAttachments as $sAttachment) { - if (file_exists($sAttachment)) - $oMime->addAttachment($sAttachment, 'application/octet-stream'); - } - } - // - $oMime->setHTMLBody('<html><body>' . $this->body . '</body></html>'); - $aMimeParams = array( - 'text_encoding' => '7bit', - 'text_charset' => 'UTF-8', - 'html_charset' => 'UTF-8', - 'head_charset' => 'UTF-8' - ); - $sBody = $oMime->get($aMimeParams); - // - $aHeaders = array( - 'From' => $this->from, - 'Date' => $this->date, - 'To' => $this->to, - 'Subject' => $this->subject, - 'cc' => $this->cc, - ); - $aHeaders = $oMime->headers($aHeaders); - // - $oMail = new Mail(); - $aSmtp = $oMail->factory('smtp', array( - 'host' => $this->aProperties["smtp_host"], - 'port' => $this->aProperties["smtp_port"], - 'auth' => $this->aProperties["smtp_authentification"], - 'username' => $this->aProperties["smtp_login"], - 'password' => $this->aProperties["smtp_password"])); - // - if ($this->to != '') { - $sDestinataire = $this->to; - if (!empty($this->cc)) - $sDestinataire .= ',' . $this->cc; - if (!empty($this->cci)) - $sDestinataire .= ',' . $this->cci; - $sMail = $aSmtp->send($sDestinataire, $aHeaders, $sBody); - if (PEAR::isError($sMail)) { - writeToErrorLog(ERROR_0023 . $this->to . '.'); - writeToErrorLog("Error message : " . $sMail->getMessage() . "."); - writeToLog("Failed sending email to the following address : " . $this->to . ' et ' . $this->cc, $this->aProperties['mail_log_file']); - writeToLog("Error message : " . $sMail->getMessage() . '.', $this->aProperties['mail_log_file']); - $sErrorMessage = $sMail->getMessage(); - } else - writeToLog("|INFORM|PHP| An email has been sent to the following address : $sDestinataire", $this->aProperties['mail_log_file']); - } - // - return $sErrorMessage; - } */ - - /** - *Load an email from an external structure. - *@param $aMailstruct Structure of the email. - * $aMailstruct = [ - * 'to' => (string) comma separated, - * 'cc' => (string) comma separated, - * 'cci' => (string) comma separated, - * 'subject' => (string) - * 'body' => (string) - * 'aAttachments' => (array) <path|string> - * 'bUseHTML' => (boolean) if not explicit is true - * ] - * - */ - function loadFromExernalDataStruct($aMailstruct) { - //error_log(print_r("start", true)); - //$this->to = $aMailstruct["to"]; - //$this->cc = $aMailstruct["cc"]; - //$this->cci = $aMailstruct["cci"]; - $this->subject = $aMailstruct["subject"]; - $this->body = $aMailstruct["body"]; - $this->aAttachments = $aMailstruct["aAttachments"]; - - if(isset($aMailstruct["bUseHTML"])){ - $this->bUseHTML = $aMailstruct["bUseHTML"]; - } - - $aMailstruct["to"] = str_replace(chr(13), ',', $aMailstruct["to"]); - $aMailstruct["cc"] = str_replace(chr(13), ',', $aMailstruct["cc"]); - $aMailstruct["cci"] = str_replace(chr(13), ',', $aMailstruct["cci"]); - $this->to = str_replace(';', ',', $aMailstruct["to"]); - $this->cc = str_replace(';', ',', $aMailstruct["cc"]); - $this->cci = str_replace(';', ',', $aMailstruct["cci"]); - //error_log(print_r("end", true)); - } - - /** - *Load an email from a template gtf. - *@param $iTemplateId Id of the template - */ - function loadFromMailTemplate($iTemplateId) { - require_once("gtf_lib/gtf_object/Order.class.inc"); - $this->oEmailTemplate = new EmailTemplateLib($this->oBd, $iTemplateId, $this->aProperties, $this->aObjects); - if (!empty($this->oEmailTemplate->name)) { - if (!empty($this->aObjects)) { - // Si édition simple : génère le code de l'email - if (!$this->oEmailTemplate->use_advanced) - $this->oEmailTemplate->code = $this->oEmailTemplate->generateCode(); - // - eval($this->oEmailTemplate->code); - } - $this->to = str_replace(chr(13), ',', $this->to); - $this->cc = str_replace(chr(13), ',', $this->cc); - $this->cci = str_replace(chr(13), ',', $this->cci); - $this->to = str_replace(';', ',', $this->to); - $this->cc = str_replace(';', ',', $this->cc); - $this->cci = str_replace(';', ',', $this->cci); - } - } - - /** - * Send an email. - * @return $sErrorMessage Le message d'erreur - */ - function send() { - $mail = new PHPMailer(null); // create instance with try catch - $sErrorMessage = null; - - $mail->isSMTP(); // Set mailer to use SMTP - //$mail->SMTPDebug = 3; // debugger level (3 all with connection) - $mail->Debugoutput = function($str, $level) { - error_log("debug level $level; message: $str"); - }; - $mail->Host = $this->aProperties["smtp_host"]; // Specify main and backup SMTP servers - $mail->Port = $this->aProperties["smtp_port"]; // TCP port to connect to - $mail->SMTPAuth = $this->aProperties["smtp_authentification"]; // Enable SMTP authentication - // if authentication add parameter to connect SMTP - if ($this->aProperties["smtp_authentification"] === true) { - $mail->AuthType = 'LOGIN'; - $mail->Username = $this->aProperties["smtp_login"]; // SMTP username - $mail->Password = $this->aProperties["smtp_password"]; // SMTP password - $mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted (deprecated) - } - //error_log("defintion mail"); - $mail->SetFrom($this->aProperties['mail_sender'], $this->aProperties['nickname_sender']); - //error_log("sender"); - //error_log(print_r($this->to, true)); - // add recipients - $aTo = array($this->to); - //error_log("br1"); - if(strpos($this->to, ",") !== false){ - //error_log("br2"); - $aTo = explode(",", $this->to); - } - //error_log(print_r($aTo, true)); - if (is_array($aTo) && !empty($aTo)) { - foreach ($aTo as $sTo) { - $mail->AddAddress($sTo); - } - } - //error_log("to"); - // add copy recipient - $aCC = array($this->cc); - if(strpos($this->cc, ",") !== false){ - $aCC = explode(",", $this->cc); - } - if (is_array($aCC) && !empty($aCC)) { - foreach ($aCC as $sCC) { - $mail->AddCC($sCC); - } - } - //error_log("cc"); - // add CCI recipient - $aCCI = array($this->cci); - if(strpos($this->cci, ",") === false){ - $aCCI = explode(",", $this->cci); - } - if (is_array($aCCI) && !empty($aCCI)) { - foreach ($aCCI as $sCCI) { - $mail->AddBCC($sCCI); - } - } - //error_log("cci"); - $mail->AddReplyTo($this->aProperties["mail_sender"], $this->aProperties["nickname_sender"]); - - $mail->IsHTML($this->bUseHTML); // Set email format to HTML - $mail->CharSet = 'UTF-8'; - - $mail->Subject = $this->subject; - //error_log("subject"); - if($this->bUseHTML){ - $this->body = '<html><body>' . $this->body . '</body></html>'; - } - - $mail->Body = /* utf8_decode */($this->body); - //error_log("body"); - // Pièce jointe ? - if (is_array($this->aAttachments) && !empty($this->aAttachments)) { - foreach ($this->aAttachments as $sAttachment) { - if (file_exists($sAttachment)) { - //$mail->addAttachment($path, $name, $encoding = 'base64', $type = 'application/octet-stream'); - $mail->addAttachment($sAttachment); - } - } - } - //error_log("pj"); - // Depuis PHP 5.6 -> vérification du certificat SSL. - if (!$this->aProperties['proxy_check_ssl']) { - $mail->SMTPOptions = array( - 'ssl' => array( - 'verify_peer' => false, - 'verify_peer_name' => false, - 'allow_self_signed' => true - ) - ); - } - //error_log("send"); - // - if (!$mail->send()) { - writeToErrorLog(ERROR_0023 . $this->to . '.'); - writeToErrorLog("Error message : " . $mail->ErrorInfo); - writeToLog("|WARN|PHP|Failed sending email to the following address : " . $this->to . ' and copy to : ' . $this->cc, $this->logFileName); - $sErrorMessage = $mail->ErrorInfo; - } else { - writeToLog("|INFORM|PHP| An email has been sent to the following address : " . $this->to . ' and copy to : ' . $this->cc, $this->logFileName); - - if ($this->aProperties['SaveSentMail'] === true) { - require_once("gtf_lib/Imap.php"); - $imap = new Imap($this->aProperties['imapBotSender_host'], $this->aProperties['imapBotSender_port'], $this->aProperties['imapBotSender_login'], $this->aProperties['imapBotSender_pwd'], $this->aProperties['imapBotSender_encrypt']); - - if ($imap->isConnected() === false) { - writeToLog("|WARN|PHP| can't connect to the IMAP at hostname : " . $this->aProperties['imapBotSender_host'], $this->logFileName); - } else { - $imap->selectFolder("Sent"); - $imap->saveMessageInSent($mail->getSentMIMEMessage(), ""); - } - } - } - - return $sErrorMessage; - } - -} - -?> diff --git a/src/vitis/vas/rest/class/vmlib/EmailTemplate.class.inc b/src/vitis/vas/rest/class/vmlib/EmailTemplate.class.inc deleted file mode 100755 index 3665bf0b..00000000 --- a/src/vitis/vas/rest/class/vmlib/EmailTemplate.class.inc +++ /dev/null @@ -1,107 +0,0 @@ -<?php - -require_once("vmlib/logUtil.inc"); -require_once 'vmlib/error.inc'; - -class EmailTemplateLib { - - public $id; - public $name; - public $to; - public $cc; - public $cci; - public $subject; - public $body; - public $code; - public $use_advanced; - public $oBd; - public $context; - public $aObjects; - public $aAttachments; - public $aProperties; - - /* * **************************************************** - Récupère les paramètres du modèle de mail - \$oBd : objet PDO - \$iEmailTemplateId : id du modèle de mail - * **************************************************** */ - - function __construct($oBd, $iEmailTemplateId, $aProperties, $aObjects) { - require("EmailTemplate.class.sql.inc"); - $this->aProperties = $aProperties; - $this->aObjects = $aObjects; - // Récupère les données du modèle de mail - $sSql = $aSql[$oBd->sgbd]['getMailModel']; - $sSql = str_replace('[iEmailTemplateId]', $iEmailTemplateId, $sSql); - $sSql = str_replace('[sSchemaGtf]', $aProperties['schema_gtf'], $sSql); - $oResult = $oBd->execute($sSql); - if ($oBd->erreurRencontree) - $sErrorMsg = $oBd->getBDMessage(); - else { - if ($oBd->nombreLigne($oResult) > 0) { - $oRow = $oBd->objetSuivant($oResult); - $this->id = $oRow->email_template_id; - $this->name = $oRow->name; - $this->to = $oRow->to; - $this->cc = $oRow->cc; - $this->cci = $oRow->cci; - $this->subject = $oRow->subject; - $this->body = $oRow->body; - $this->code = $oRow->code; - $this->use_advanced = $oRow->use_advanced; - $this->oBd = $oBd; - $this->context = $oRow->rt_emailcontext_id; - } else - $sErrorMsg = str_replace('[iEmailTemplateId]', $iEmailTemplateId, ERROR_0024); - } - if (isset($sErrorMsg)) - writeToErrorLog($sErrorMsg); - } - - /* * ***************************************************** - Génère le code php correspondant à l'édition simple. - /Return : Code php (string) - * ***************************************************** */ - - function generateCode($bUseAdvanced = false) { - $sMailModelCode = ''; - if (!$bUseAdvanced) { - // Edition simple (récupère la valeur des balises) - require 'vmlib/context/' . $this->context . '.inc'; - } else { - // Edition avancée (récupère la syntaxe du code des balises) - $sMailContextCode = file_get_contents('vmlib/context/' . $this->context . '.inc', true); - preg_match_all('/=.+;/', $sMailContextCode, $aTagCode); - foreach ($aTagCode[0] as $iIndex => $sTagCode) { - $sTagCode = trim(substr($sTagCode, 1, strlen($sTagCode) - 2)); - if (preg_match('/^[^\'"]/', $sTagCode) === 1) - $sMailContextCode = str_replace($sTagCode, "'" . str_replace("'", "\'", $sTagCode) . "'", $sMailContextCode); - } - $sMailContextCode = preg_replace("/'{2,}/", "'", $sMailContextCode); - $sMailContextCode = str_replace(array('<?php', '?>'), '', $sMailContextCode); - eval($sMailContextCode); - } - // Remplace toutes les balises par les valeurs du fichier de contexte. - if (!empty($properties)) { - foreach ($properties as $sIndex => $aValues) - $aContextTag[$sIndex] = $aValues['value']; - $aEmailParameter = array('to', 'cc', 'cci', 'subject', 'body'); - foreach ($aEmailParameter as $sEmailParameter) { - $sEmailParameterValue = str_replace("'", "\'", $this->$sEmailParameter); - foreach ($aContextTag as $sTag => $sValue) { - if ($bUseAdvanced) { - if (substr($sValue, 0, 1) == '$') - $sValue = "' . $sValue . '"; - $sEmailParameterValue = str_replace("[$sTag]", $sValue, $sEmailParameterValue); - } else - $sEmailParameterValue = str_replace("[$sTag]", str_replace("'", "\'", $sValue), $sEmailParameterValue); - } - $sMailModelCode .= '$this->' . $sEmailParameter . ' = \'' . $sEmailParameterValue . '\';' . PHP_EOL; - } - } - return $sMailModelCode; - } - -} - -?> diff --git a/src/vitis/vas/rest/class/vmlib/EmailTemplate.class.sql.inc b/src/vitis/vas/rest/class/vmlib/EmailTemplate.class.sql.inc deleted file mode 100755 index daf314cd..00000000 --- a/src/vitis/vas/rest/class/vmlib/EmailTemplate.class.sql.inc +++ /dev/null @@ -1,4 +0,0 @@ -<?php - -$aSql['pgsql']['getMailModel'] = "SELECT * FROM [sSchemaGtf].email_template WHERE email_template_id = '[iEmailTemplateId]'"; -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/vmlib/Ldap.class.inc b/src/vitis/vas/rest/class/vmlib/Ldap.class.inc deleted file mode 100755 index 71af0999..00000000 --- a/src/vitis/vas/rest/class/vmlib/Ldap.class.inc +++ /dev/null @@ -1,276 +0,0 @@ -<?php - -/** - * \file Ldap.class.inc - * \brief Ldap.class.inc \n \n Ce fichier contient la classe php Ldap. - * - * Cette classe permet de cr�er une connexion � l'annuaire Ldap et contient plusieurs m�thodes (recherche, gestion du message d'erreur). - * - * \author Fabien Marty <fabien.marty@veremes.com> - * \author Nicolas Chazeau <nicolas.chazeau@veremes.com> - */ - -/** - * \class Ldap - * \brief Ldap Class \n \n Ldap est une classe PHP qui permet de cr�er une connexion � l'annuaire Ldap . - * - * Cette classe permet de cr�er une connexion � l'annuaire Ldap et contient plusieurs m�thodes (recherche, gestion du message d'erreur). - * - * \author Fabien Marty <fabien.marty@veremes.com> - * \author Nicolas Chazeau <nicolas.chazeau@veremes.com> - */ -class Ldap { - /* - * Variable globale stockant le nom de dossier lib. - */ - - var $sFolderLib = "vmlib"; - - /** - * Objet connexion en cours au serveur. - */ - var $oConnexion; - - /** - * Message � afficher. - */ - var $sMessage = ""; - - /** - * Bool�en, permet de savoir si une erreur � �t� rencontr�e. - */ - var $bErreurRencontree = false; - - /** - * Identifiant de l'utilisateur. - */ - var $sLogin; - var $lang; - - /** - * \param $sLogin Identifiant de l'utilisateur. - * \param $sMotDePasse Mot de passe de l'utilisateur. - * \param $sDomaine Nom de domaine. - * \param $sServeur Nom ou IP du serveur utilis�. - */ - function __construct($sLogin, $sMotDePasse, $sDomaine, $sServeur, $sPageEncoding = "ISO-8859-1", $lang = "fr") { - $this->lang = $lang; - loadLang($this->sFolderLib, $this->lang); - $this->sLogin = $sLogin; - - // connecxion au serveur ldap - $this->oConnexion = ldap_connect($sServeur); - ldap_set_option($this->oConnexion, LDAP_OPT_PROTOCOL_VERSION, 3); - if ($this->oConnexion) { - @$oLdapbind = ldap_bind($this->oConnexion, $sDomaine . "\\" . $sLogin, $sMotDePasse); - if (!$oLdapbind) { - //Test utilisateur Active Directory - $sErrorMessage = ERROR_USER_NOT_FOUND_LDAP; - $sErrorMessage = $this->setEncodeLdapMessage($sErrorMessage); - $sErrorMessage = str_replace("[LOGIN]", $this->sLogin, $sErrorMessage); - $this->setLdapMessage($sErrorMessage); - $this->bErreurRencontree = true; - } - } else { - //Test connection Active Directory - $sErrorMessage = ERROR_CONNECT_LDAP; - $this->bErreurRencontree = true; - $this->setLdapMessage($sErrorMessage); - } - } - - /** - * M�thodes permettant d'encoder la chaine ISO-8859-1 vers l'encodage du client ($this->sPageEncoding). - * \param $sMessage Message � encoder. - * \private - */ - function setEncodeLdapMessage($sMessage) { - $sEncodeLdapMessage = iconv("ISO-8859-1", $this->sPageEncoding, $sMessage) . "<br>"; - return $sEncodeLdapMessage; - } - - /** - * M�thodes pour valoriser le message � afficher. - * \param $sMessage Message � afficher. - * \private - */ - function setLdapMessage($sMessage) { - $this->sMessage .= $sMessage . "<br>"; - } - - /** - * Retourne le messsage � afficher en HTML. - * \private - * \return Le message � afficher. - */ - function getLdapMessage() { - if ($this->sMessage != "") - $sResult = USER_LABEL . $this->sLogin . "<br>" . ERROR_LABEL . $this->sMessage; - else - $sResult = ""; - return $sResult; - } - - /** - * D�connexion. - */ - function quitter() { - ldap_close($this->oConnexion); - } - - /* - * Recherche sur l'ensemble des niveaux. - * \param $sBase_dn La base DN pour le dossier. - * \param $sFilter Filtre - * \param $aAttributes Un tableau d'attributs requis, e.g. array("mail", "sn", "cn"). - * \param $iAttrsOnly Doit �tre d�fini � 1 si seuls les types des attributs sont demand�s. S'il est d�fini � 0, les types et les valeurs des attributs sont r�cup�r�s, ce qui correspond au comportement par d�faut. - * \return l'objet r�sultat de la recherche. - */ - - function search($sBaseDn, $sFilter, $aAttributes, $iAttrsOnly = 0) { - return ldap_search($this->oConnexion, $sBaseDn, $sFilter, $aAttributes, $iAttrsOnly); - } - - /* - * Recherche par niveau. - * \param $sBaseDn La base DN pour le dossier. - * \param $sFilter Filtre - * \param $aAttributes Un tableau d'attributs requis, e.g. array("mail", "sn", "cn"). - * \param $iAttrsOnly Doit �tre d�fini � 1 si seuls les types des attributs sont demand�s. S'il est d�fini � 0, les types et les valeurs des attributs sont r�cup�r�s, ce qui correspond au comportement par d�faut. - * \return l'objet r�sultat de la recherche. - */ - - function searchByLevel($sBaseDn, $sFilter, $aAttributes, $iAttrsOnly = 0) { - if ($aAttributes == array() or $aAttributes == "") { - return @ldap_list($this->oConnexion, $sBaseDn, $sFilter); - } else { - return @ldap_list($this->oConnexion, $sBaseDn, $sFilter, $aAttributes, $iAttrsOnly); - } - } - - /* - * M�thode de lecture d'un objet r�sultat d'une recherche pass� en param�tre. - * \param $oSearch R�sultat de la recherche - * \return - */ - - function getResult($oSearch) { - return ldap_get_entries($this->oConnexion, $oSearch); - } - - /* - * M�thode permettant de compter le nombre d'entr�e d'un objet r�sultat d'une recherche pass� en param�tre. - * \param $oSearch R�sultat de la recherche - * \return un entier - */ - - function countResult($oSearch) { - return ldap_count_entries($this->oConnexion, $oSearch); - } - - /* - * M�thode permettant de r�cup�rer les groupe d'un utilisateur Ldap. - * \param $ldap_serveur Adresse IP du serveur - * \param $ldap_baseRecherche Base de recherche dans l'Active Directory - * \param $ldap_userConnexion Utilisateur de l'Active Directory - * \param $ldap_passwordConnexion Mot de passe de l'utilisateur de l'Active Directory - * \param $ldap_user Utilisateur de l'Active Directory - * \param $ldap_attributUtilisateur Attribut LDAP portant le nom de l'utilisateur - * \param $ldap_attributGroupe Attribut LDAP portant le nom du groupe - * \return la fin de la clause where - */ - - // FONCTION UTILISEE POUR GTF (projet EDGAR) - - /* - function whereUserGroup($ldap_serveur,$ldap_baseRecherche,$ldap_userConnexion,$ldap_passwordConnexion,$ldap_user,$ldap_attributUtilisateur,$ldap_attributGroupe, $sUserPrefixe="", $sUserSuffixe="", $oBd="", $sldap_allUserGroup="") { - define('LDAP_HOST',$ldap_serveur); // Serveur AD - define('LDAP_DN',$ldap_baseRecherche);// DN de base pour la recherche - - //Connexion au serveur LDAP - $ldap = ldap_connect(LDAP_HOST) or die(ERROR_CONNECT_LDAP); - - if ($ldap) { - if ($oBd!=""){ - $sBaseEncoding=$oBd->getSourceEncoding(); - //Le login ainsi que le mot de passe est encod� dans l'encodage de l'AD du client (encodage en ISO-8859-1) pour permettre de r�cup�rer les groupes de l'utilisateur dans l'AD - $ldap_userConnexion=iconv($sBaseEncoding,"ISO-8859-1",$ldap_userConnexion); - $ldap_passwordConnexion=iconv($sBaseEncoding,"ISO-8859-1",$ldap_passwordConnexion); - $ldap_user=iconv($sBaseEncoding,"ISO-8859-1",$ldap_user); - } - - //Connexion au serveur LDAP - $ldapbind = ldap_bind($ldap, $sUserPrefixe.$ldap_userConnexion.$sUserSuffixe, $ldap_passwordConnexion); - if ($ldapbind) { - // Une fois connect�, on v�rifie si l'ensemble des utilisateurs de l'AD sont associ� � un ou plusieurs groupes - //(ex : tous les utilisateurs de l'AD sont associ� au groupe "Domaine User"... comme au cg67) - $sWhereAllUserGroup=""; - if ($sldap_allUserGroup!=""){ - $aldap_allUserGroup=explode("|",$sldap_allUserGroup); - $j==0; - foreach ($aldap_allUserGroup as $sAllUserGroup) { - if ($j==0){ - $sWhereAllUserGroup="groupe.groupe=SimpleQuote".$sAllUserGroup."SimpleQuote"; - }else{ - $sWhereAllUserGroup.=" or groupe.groupe=SimpleQuote".$sAllUserGroup."SimpleQuote"; - } - $j++; - } - } - - //$ldap_attributUtilisateur est le nom de l'attribut LDAP portant le nom de l'utilisateur - $filter = "(".$ldap_attributUtilisateur."=".$ldap_user.")"; - //$ldap_attributGroupe est le nom de l'attribut LDAP portant le nom du groupe (il y en a plusieurs, un par groupe) - $attrs = array($ldap_attributGroupe); - $result = ldap_search($ldap, LDAP_DN, $filter, $attrs); - $entries = ldap_get_entries($ldap, $result); - - //Le nom de l'�l�ment du groupe est en minuscule dans le tableau "entries" g�n�r� - $ldap_attributGroupe=strtolower($ldap_attributGroupe); - $i=0; - $bEntreForeach=false; - $sWhereUserGroup=""; - foreach ($entries[0][$ldap_attributGroupe] as $sMemberOf) { - $asMemberOf=explode(",",$sMemberOf); - $asMemberOfGroupe=explode("=",$asMemberOf[0]); - $sGroupe=$asMemberOfGroupe[1]; - - //Quand il est �gal � 0 $asMemberOfGroupe[1] est vide car le 1er �l�ment du tableau "$entries[0]["memberof"]" correspond au norbre de r�sultat trouv�. - if ($i==1){ - if ($sWhereAllUserGroup!=""){ - $sWhereUserGroup="and (".$sWhereAllUserGroup." or groupe.groupe=SimpleQuote".$sGroupe."SimpleQuote"; - }else{ - $sWhereUserGroup="and (groupe.groupe=SimpleQuote".$sGroupe."SimpleQuote"; - } - - }else{ - $sWhereUserGroup.=" or groupe.groupe=SimpleQuote".$sGroupe."SimpleQuote"; - } - $bEntreForeach=true; - $i++; - } - if ($bEntreForeach==true){ - $sWhereUserGroup.=")"; - }else{ - if ($sWhereAllUserGroup!=""){ - $sWhereUserGroup="and (".$sWhereAllUserGroup.")"; - } - } - if ($sWhereUserGroup!=""){ - $sWhereUserGroup = str_replace("'", "''", $sWhereUserGroup); - $sWhereUserGroup = str_replace("SimpleQuote", "'", $sWhereUserGroup); - $sWhereUserGroup = $this->setEncodeLdapMessage($sWhereUserGroup); - $sWhereUserGroup = str_replace("<br>", "", $sWhereUserGroup); - } - } else { - writeToErrorLog(ERROR_LDAP_FAILED); - } - }else { - writeToErrorLog(ERROR_LDAP_FAILED); - } - return $sWhereUserGroup; - } - */ -} - -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/vmlib/PgsqlDataAccess.class.inc b/src/vitis/vas/rest/class/vmlib/PgsqlDataAccess.class.inc deleted file mode 100755 index c166072d..00000000 --- a/src/vitis/vas/rest/class/vmlib/PgsqlDataAccess.class.inc +++ /dev/null @@ -1,497 +0,0 @@ -<?php - -/** - * \file PgsqlDataAccess.class.inc - * \brief PgsqlDataAccess.class.inc \n \n Ce fichier contient la classe php PgsqlDataAccess - * - * Cette classe permet la gestion des utilisateurs PostgreSQL. - * - * Elle permet de créer un utilisateur un niveau du noyau PostgreSQL, mais aussi - * d'attribuer différents niveaux de droits à cet utilisateur sur une base de données distincte : - * - * \li Utilisateur simple (sélection). - * \li Administrateur (sélection, mise à jour, suppression) - * - * Avec cette classe, la gestion des utilisateurs se fait toujours au niveau du noyau PostgreSQL. - * - * \author Frédéric Mauro - * \author Fabien Marty <fabien.marty@veremes.com> - */ - -/** - * \class PgsqlDataAccess - * \brief PgsqlDataAccess Class \n \n PgsqlDataAccess est une classe PHP qui permet de récuperer des Meta données du noyau PostgreSQL. - * - * Cette classe permet la gestion des utilisateurs PostgreSQL. - * - * Elle permet de créer un utilisateur un niveau du noyau PostgreSQL, mais aussi - * d'attribuer différents niveaux de droits à cet utilisateur sur une base de données distincte : - * - * \li Utilisateur simple (sélection). - * \li Administrateur (sélection, mise à jour, suppression) - * - * Avec cette classe, la gestion des utilisateurs se fait toujours au niveau du noyau PostgreSQL. - * - * \author Frédéric Mauro - * \author Fabien Marty <fabien.marty@veremes.com> - */ -class PgsqlDataAccess { - - /** - * Objet connexion à la base de données PostgreSQL. - */ - var $oBd; - - /** - * Base de données métier. - */ - var $sDatabase; - - /** - * Serveur courant. - */ - var $sServer; - - /** - * Nom des groupes d'utilisateur - */ - var $sRoleUser; - var $sRoleAdmin; - - /** - * \param $oBd Base de données noyau PostgreSQL. - * \param $sDatabase Base de données métier. - * \param $sServer IP ou Nom du serveur PostgreSQL. - * \param $sRoleUser Nom du rôle pour les droits d'utilisateur. - * \param $sRoleAdmin Nom du rôle pour les droits d'administration. - * \param $sSchema Nom du schéma ou sont stockées les tables. - */ - function __construct($oBd, $sDatabase, $sServer, $sRoleUser = "veremap_pro_user", $sRoleAdmin = "veremap_pro_admin", $sSchema = "veremap_pro") { - $this->oBd = $oBd; - $this->sDatabase = $sDatabase; - $this->sServer = $sServer; - $this->sRoleUser = $sRoleUser; - $this->sRoleAdmin = $sRoleAdmin; - $this->sSchema = $sSchema; - } - - /** - * Cette méthode recherche quel est le statut PostgreSQL de l'utilisateur à gérer. - * \param $sLogin Identifiant de l'utilisateur à gérer. - * \return Le statut de l'utilisateur à gérer. - */ - function getStatus($sLogin) { - $oBd = $this->oBd; - $sDatabase = $this->sDatabase; - $sSql = "SELECT * FROM pg_user s LEFT OUTER JOIN pg_group g on (s.usesysid = any(g.grolist) ) WHERE usename='" . $sLogin . "' and groname IN ('" . $this->sRoleUser . "', '" . $this->sRoleAdmin . "')"; - $iRecordset = $oBd->execute($sSql); - $aResultat = $iRecordset->fetchAll(PDO::FETCH_ASSOC); - if ($aResultat == array()) - return "unknown"; - $sStatut = ""; - foreach ($aResultat as $aLigne) { - if ($aLigne['usesuper'] == true || $aLigne['groname'] == $this->sRoleAdmin) - return "database_admin"; - else - if ($aLigne['groname'] == $this->sRoleUser) - $sStatut = "database_user"; - else - if ($sStatut == "") - $sStatut = "sgbd_only"; - } - return $sStatut; - } - - /** - * Cette méthode tente de créer un utilisateur PostgreSQL. - * \param $sLogin Identifiant de l'utilisateur à créer. - * \param $sPassword Mot de passe de l'utilisateur à créer. - * \return Un message d'erreur s'il y a lieu. - */ - function createSgbdUser($sLogin, $sPassword) { - $oBd = $this->oBd; - $sDatabase = $this->sDatabase; - $sServer = $this->sServer; - $sErrorMessage = ""; - $sSql = "select * from pg_user where usename = [LOGIN]"; - $aParams = array(); - $aParams['LOGIN'] = array('value' => utf8_encode($sLogin), 'type' => 'quoted_string'); - $resultat = $oBd->executeWithParams($sSql, $aParams); - if ($oBd->erreurRencontree) { - $sErrorMessage = $oBd->getBDMessage(); - } else { - if (!$aLigne = $oBd->ligneSuivante($resultat)) { - $sSql = "CREATE USER [LOGIN] PASSWORD [PASSWORD] IN ROLE " . $this->sRoleUser; - $aParams = array(); - if (mb_detect_encoding($sLogin) != 'UTF-8') - $sLogin = utf8_encode($sLogin); - $aParams['LOGIN'] = array('value' => $sLogin, 'type' => 'double_quote'); - $aParams['PASSWORD'] = array('value' => 'md5' . md5($sPassword . $sLogin), 'type' => 'quoted_string'); - $oBd->executeWithParams($sSql, $aParams); - if ($oBd->erreurRencontree) { - $sErrorMessage = $oBd->getBDMessage(); - } else { - $sSql = " GRANT vitis_user TO \"" . $sLogin . "\";"; - $oBd->execute($sSql); - if ($oBd->erreurRencontree) - $sErrorMessage = $oBd->getBDMessage(); - } - } - } - return $sErrorMessage; - } - - /** - * Cette méthode tente de créer un utilisateur PostgreSQL. - * \param $sLogin Identifiant de l'utilisateur à créer. - * \param $sPassword Mot de passe de l'utilisateur à créer. - * \return Un message d'erreur s'il y a lieu. - */ - function createSgbdUserNoPassword($sLogin) { - $oBd = $this->oBd; - $sDatabase = $this->sDatabase; - $sServer = $this->sServer; - $sErrorMessage = ""; - $sSql = "select * from pg_user where usename = '" . $sLogin . "'"; - $resultat = $oBd->execute($sSql); - if ($aLigne = $oBd->ligneSuivante($resultat)) { - $sErrorMessage = $this->createDatabaseUser($sLogin); - } else { - $sSql = "CREATE USER \"" . $sLogin . "\" PASSWORD NULL IN ROLE " . $this->sRoleUser; - $oBd->execute($sSql); - if ($oBd->erreurRencontree) - $sErrorMessage = $oBd->getBDMessage(); - } - return $sErrorMessage; - } - - /** - /** - * Cette méthode tente de mettre à jour un utilisateur PostgreSQL comme utilisateur d'une nouvelle Db. - * \param $sLogin Identifiant de l'utilisateur à modifier. - * \return Un message d'erreur s'il y a lieu. - */ - function createDatabaseUser($sLogin) { - $oBd = $this->oBd; - $sDatabase = $this->sDatabase; - $sServer = $this->sServer; - $sErrorMessage = ""; - $sSql = 'GRANT ' . $this->sRoleUser . ' TO "' . $sLogin . '"'; - $oBd->execute($sSql); - if ($oBd->erreurRencontree) - $sErrorMessage = $oBd->getBDMessage(); - return $sErrorMessage; - } - - /** - * Cette méthode tente de mettre à jour le mot de passe d'un utilisateur PostgreSQL. - * \param $sLogin Identifiant de l'utilisateur à modifier. - * \param $sPasword Nouveau mot de passe de l'utilisateur. - * \return Un message d'erreur s'il y a lieu. - */ - function updateUserPassword($sLogin, $sPassword) { - $oBd = $this->oBd; - $sServer = $this->sServer; - $sErrorMessage = ""; - $sSql = "ALTER Role [LOGIN] PASSWORD [PASSWORD]"; - $aParams = array(); - if (mb_detect_encoding($sLogin) != 'UTF-8') - $sLogin = utf8_encode($sLogin); - $aParams['LOGIN'] = array('value' => $sLogin, 'type' => 'double_quote'); - $aParams['PASSWORD'] = array('value' => 'md5' . md5($sPassword . utf8_encode($sLogin)), 'type' => 'quoted_string'); - $oBd->executeWithParams($sSql, $aParams); - if ($oBd->erreurRencontree) - $sErrorMessage = $oBd->getBDMessage(); - return $sErrorMessage; - } - - /** - * Cette méthode tente de supprimer un utilisateur PostgreSQL comme utilisateur d'une Db en particulier. - * \param $sLogin Identifiant de l'utilisateur à supprimer. - * \return Un message d'erreur s'il y a lieu. - */ - function deleteDatabaseUser($sLogin) { - $oBd = $this->oBd; - $sDatabase = $this->sDatabase; - $sServer = $this->sServer; - $sErrorMessage = ""; - $sSql = 'REVOKE ' . $this->sRoleUser . ' FROM "' . $sLogin . '"'; - $oBd->execute($sSql); - if ($oBd->erreurRencontree) - $sErrorMessage = $oBd->getBDMessage(); - return $sErrorMessage; - } - - /** - * Cette méthode tente de mettre à jour un utilisateur PostgreSQL comme administrateur d'une nouvelle Db. - * \param $sLogin Identifiant de l'utilisateur à modifier. - * \return Un message d'erreur s'il y a lieu. - */ - function createDatabaseAdmin($sLogin) { - $oBd = $this->oBd; - $sDatabase = $this->sDatabase; - $sServer = $this->sServer; - $siLoginOrUserId = intval($sLogin); - // Deprecated Juillet 2012 - // Si siLoginOrUserId renvoi 0 c'est que la valeur passée en entré est une chaine et non un entier (Compatibilité avec Veremap) - if (is_int($siLoginOrUserId) and $siLoginOrUserId <> 0) { - $sSql = 'SELECT "LOGIN" FROM ' . $this->sSchema . '."user" WHERE "USER_ID"=' . $sLogin . ''; - $resultat = $oBd->execute($sSql); - if ($oBd->erreurRencontree) { - $sErrorMessage = $oBd->getBDMessage(); - } else { - $oUser = $oBd->objetSuivant($resultat); - $sLogin = $oUser->LOGIN; - } - } - $sErrorMessage = ""; - $sSql = 'GRANT ' . $this->sRoleAdmin . ' TO "' . $sLogin . '"'; - $oBd->execute($sSql); - if ($oBd->erreurRencontree) { - $sErrorMessage .= $oBd->getBDMessage(); - } else { - $sSql = 'ALTER ROLE "' . $sLogin . '" SUPERUSER CREATEROLE'; - $oBd->execute($sSql); - if ($oBd->erreurRencontree) - $sErrorMessage .= $oBd->getBDMessage(); - } - return $sErrorMessage; - } - - /** - * Même fonction que la précédente mais pour gtf_v2 - */ - function createDatabaseAdminV2($sLogin) { - $oBd = $this->oBd; - $sDatabase = $this->sDatabase; - $sServer = $this->sServer; - $siLoginOrUserId = intval($sLogin); - // Deprecated Juillet 2012 - // Si siLoginOrUserId renvoi 0 c'est que la valeur passée en entré est une chaine et non un entier (Compatibilité avec Veremap) - if (is_int($siLoginOrUserId) and $siLoginOrUserId <> 0) { - $sSql = 'SELECT "login" FROM ' . $this->sSchema . '."user" WHERE "user_id"=' . $sLogin . ''; - $resultat = $oBd->execute($sSql); - if ($oBd->erreurRencontree) { - $sErrorMessage = $oBd->getBDMessage(); - } else { - $oUser = $oBd->objetSuivant($resultat); - $sLogin = $oUser->login; - } - } - $sErrorMessage = ""; - $sSql = 'GRANT ' . $this->sRoleAdmin . ' TO "' . $sLogin . '"'; - $oBd->execute($sSql); - if ($oBd->erreurRencontree) { - $sErrorMessage .= $oBd->getBDMessage(); - } else { - $sSql = 'ALTER ROLE "' . $sLogin . '" CREATEROLE'; - $oBd->execute($sSql); - if ($oBd->erreurRencontree) - $sErrorMessage .= $oBd->getBDMessage(); - } - return $sErrorMessage; - } - - /** - * Cette méthode tente de supprimer un utilisateur PostgreSQL comme administrateur d'une Db en particulier, - * l'utilisateur redevient simple utilisateur de la base. - * \param $sLogin Identifiant de l'utilisateur à supprimer. - * \return Un message d'erreur s'il y a lieu. - */ - function deleteDatabaseAdmin($sLogin) { - $oBd = $this->oBd; - $sDatabase = $this->sDatabase; - $sServer = $this->sServer; - $siLoginOrUserId = intval($sLogin); - // Deprecated Juillet 2012 - // Si siLoginOrUserId renvoi 0 c'est que la valeur passée en entré est une chaine et non un entier (Compatibilité avec Veremap) - if (is_int($siLoginOrUserId) and $siLoginOrUserId <> 0) { - $sSql = 'SELECT "LOGIN" FROM ' . $this->sSchema . '."user" WHERE "USER_ID"=' . $sLogin . ''; - $resultat = $oBd->execute($sSql); - if ($oBd->erreurRencontree) { - $sErrorMessage = $oBd->getBDMessage(); - } else { - $oUser = $oBd->objetSuivant($resultat); - $sLogin = $oUser->LOGIN; - } - } - $sErrorMessage = ""; - $sSql = 'REVOKE ' . $this->sRoleAdmin . ' FROM "' . $sLogin . '"'; - $oBd->execute($sSql); - if ($oBd->erreurRencontree) { - $sErrorMessage .= "<br>" . $oBd->getBDMessage(); - } else { - $sSql = 'ALTER ROLE "' . $sLogin . '" NOSUPERUSER NOCREATEROLE'; - $oBd->execute($sSql); - if ($oBd->erreurRencontree) - $sErrorMessage .= "<br>" . $oBd->getBDMessage(); - } - return $sErrorMessage; - } - - /** - * Même fonction que la précédente mais pour gtf_v2 - */ - function deleteDatabaseAdminV2($sLogin) { - $oBd = $this->oBd; - $sDatabase = $this->sDatabase; - $sServer = $this->sServer; - $siLoginOrUserId = intval($sLogin); - // Deprecated Juillet 2012 - // Si siLoginOrUserId renvoi 0 c'est que la valeur passée en entré est une chaine et non un entier (Compatibilité avec Veremap) - if (is_int($siLoginOrUserId) and $siLoginOrUserId <> 0) { - $sSql = 'SELECT "login" FROM ' . $this->sSchema . '."user" WHERE "user_id"=' . $sLogin . ''; - $resultat = $oBd->execute($sSql); - if ($oBd->erreurRencontree) { - $sErrorMessage = $oBd->getBDMessage(); - } else { - $oUser = $oBd->objetSuivant($resultat); - $sLogin = $oUser->login; - } - } - $sErrorMessage = ""; - $sSql = 'REVOKE ' . $this->sRoleAdmin . ' FROM "' . $sLogin . '"'; - $oBd->execute($sSql); - if ($oBd->erreurRencontree) { - $sErrorMessage .= "<br>" . $oBd->getBDMessage(); - } - return $sErrorMessage; - } - - /** - * Cette méthode permet de déterminer si l'utilisateur se connectant à l'interface d'administration en à le droit. - * \param $sSessLogin Identifiant de l'utilisateur en cours de connexion. - * \return Vrai si l'utilisateur est administrateur. - */ - function isDatabaseAdmin($sSessLogin) { - $oBd = $this->oBd; - $sDatabase = $this->sDatabase; - $sSql = "SELECT groname FROM pg_user RIGHT JOIN pg_group ON pg_user.usesysid = ANY(grolist) WHERE usename = '" . $sSessLogin . "'"; - $iRecordset = $oBd->execute($sSql); - $bAdmin = false; - while ($aLigne = $oBd->ligneSuivante($iRecordset)) - if ($aLigne["groname"] == $this->sRoleAdmin) - $bAdmin = true; - $iRecordset = $oBd->fermeResultat(); - if ($bAdmin) - return $bAdmin; - else { - $sSql = "SELECT * FROM pg_roles WHERE rolname='" . $sSessLogin . "' AND (rolsuper = true)"; - $iRecordset = $oBd->execute($sSql); - if ($aLigne = $oBd->ligneSuivante($iRecordset)) { - $iRecordset = $oBd->fermeResultat(); - return true; - } else { - $iRecordset = $oBd->fermeResultat(); - return false; - } - } - } - - /** - * Cette méthode permet de déterminer si l'utilisateur est un utilisateur de la base. - * \param $sSessLogin Identifiant de l'utilisateur en cours de connexion. - * \return Vrai si l'utilisateur est utilisateur. - */ - function isDatabaseUser($sSessLogin) { - $oBd = $this->oBd; - $sDatabase = $this->sDatabase; - $sSql = "SELECT groname FROM pg_user RIGHT JOIN pg_group ON pg_user.usesysid = ANY(grolist) WHERE usename = '" . $sSessLogin . "'"; - $iRecordset = $oBd->execute($sSql); - $bUser = false; - while ($aLigne = $oBd->ligneSuivante($iRecordset)) - if ($aLigne["groname"] == $this->sRoleUser) - $bUser = true; - $iRecordset = $oBd->fermeResultat(); - return $bUser; - } - - function getUserModules($sSessLogin, $modules) { - $oBd = $this->oBd; - $sDatabase = $this->sDatabase; - $modules = "'" . str_replace(',', "','", $modules) . "'"; - $sSql = "SELECT distinct module_id FROM pg_user RIGHT JOIN pg_group ON pg_user.usesysid = ANY(grolist) inner join " . $this->sSchema . ".vm_mode_rolname ON groname = vm_mode_rolname.rolname left join " . $this->sSchema . ".vm_mode ON vm_mode_rolname.mode_id = vm_mode.mode_id WHERE usename = '" . $sSessLogin . "' and module_id IN (" . $modules . ")"; - - $iRecordset = $oBd->execute($sSql); - while ($aLigne = $oBd->ligneSuivante($iRecordset)) { - - $aModules[] = $aLigne['module_id']; - } - $iRecordset = $oBd->fermeResultat(); - return $aModules; - } - - function getUserModes($sSessLogin) { - $oBd = $this->oBd; - $sDatabase = $this->sDatabase; - $sSql = "SELECT distinct mode_id, \"index\" FROM pg_user RIGHT JOIN pg_group ON pg_user.usesysid = ANY(grolist) inner join " . $this->sSchema . ".vm_mode_rolname ON groname = vm_mode_rolname.rolname WHERE usename = '" . $sSessLogin . "' order by \"index\""; - - $iRecordset = $oBd->execute($sSql); - while ($aLigne = $oBd->ligneSuivante($iRecordset)) { - - $aMode[] = $aLigne["mode_id"]; - } - $iRecordset = $oBd->fermeResultat(); - return $aMode; - } - - function getUserModesFramework($sSessLogin, $modules) { - $oBd = $this->oBd; - $sDatabase = $this->sDatabase; - $modules = "'" . str_replace(',', "','", $modules) . "'"; - $sSql = "SELECT distinct module_id, vm_mode.mode_id, \"index\" FROM pg_user RIGHT JOIN pg_group ON pg_user.usesysid = ANY(grolist) inner join " . $this->sSchema . ".vm_mode_rolname ON groname = vm_mode_rolname.rolname left join " . $this->sSchema . ".vm_mode ON vm_mode_rolname.mode_id = vm_mode.mode_id WHERE usename = '" . $sSessLogin . "' and module_id IN (" . $modules . ") order by \"index\""; - - $iRecordset = $oBd->execute($sSql); - while ($aLigne = $oBd->ligneSuivante($iRecordset)) { - - $aMode[] = $aLigne; - } - $iRecordset = $oBd->fermeResultat(); - return $aMode; - } - - function getModeTabsFramework($aMode, $lang = 'fr') { - $sModeId = $aMode['mode_id']; - $oBd = $this->oBd; - $sDatabase = $this->sDatabase; - $sSql = "SELECT vm_translation.translation as label, event FROM " . $this->sSchema . ".vm_tab LEFT JOIN " . $this->sSchema . ".vm_translation ON vm_tab.label_id = vm_translation.translation_id where mode_id='" . $sModeId . "' and vm_translation.lang='" . $lang . "' order by \"index\""; - $iRecordset = $oBd->execute($sSql); - while ($aLigne = $oBd->ligneSuivante($iRecordset)) { - $aTab['module_id'] = $aMode['module_id']; - $aTab['tab'][] = $aLigne; - } - $iRecordset = $oBd->fermeResultat(); - - return $aTab; - } - - function getModeTabs($sMode, $lang = 'fr') { - $oBd = $this->oBd; - $sDatabase = $this->sDatabase; - $sSql = "SELECT vm_translation.translation as label, event FROM " . $this->sSchema . ".vm_tab LEFT JOIN " . $this->sSchema . ".vm_translation ON vm_tab.label_id = vm_translation.translation_id where mode_id='" . $sMode . "' and vm_translation.lang='" . $lang . "' order by \"index\""; - - $iRecordset = $oBd->execute($sSql); - while ($aLigne = $oBd->ligneSuivante($iRecordset)) { - $aTab[] = $aLigne; - } - $iRecordset = $oBd->fermeResultat(); - return $aTab; - } - - function DeleteDatabaseRole($sSessLogin) { - $oBd = $this->oBd; - $sDatabase = $this->sDatabase; - $sSql = "SELECT * FROM pg_user s LEFT OUTER JOIN pg_group g on (s.usesysid = any(g.grolist) ) WHERE usename='" . $sSessLogin . "'"; - $iRecordset = $oBd->execute($sSql); - $sMessage = ""; - if ($aLigne = $oBd->ligneSuivante($iRecordset)) { - $sSql = "DROP ROLE IF EXISTS \"" . $sSessLogin . "\""; - $oPDOresult = $oBd->execute($sSql); - $sMessage = $oBd->getBDMessage(); - } - return $sMessage; - } - -} - -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/vmlib/PostgisUtil.class.inc b/src/vitis/vas/rest/class/vmlib/PostgisUtil.class.inc deleted file mode 100755 index 0fe5122e..00000000 --- a/src/vitis/vas/rest/class/vmlib/PostgisUtil.class.inc +++ /dev/null @@ -1,61 +0,0 @@ -<?php - -require_once ("dbUtil.inc"); -require_once ("Vm.class.inc"); -require_once ("logUtil.inc"); - -class PostgisUtil { - /* - * Variable globale stockant le nom de dossier lib. - */ - - var $sFolderLib = "vmlib"; - var $oBd; - var $lang; - - function __construct($oConnection, $lang = "fr") { - $this->lang = $lang; - loadLang($this->sFolderLib, $this->lang); - $this->oBd = $oConnection; - } - - // construit un buffer de $sSize m de rayon - function getBuffer($sWkt, $sSize) { - $sSql = "SELECT st_astext(public.st_buffer(st_geomfromtext('sWkt'),sSize)) as geombuffer"; - $sSql = str_replace('sWkt', $sWkt, $sSql); - $sSql = str_replace('sSize', $sSize, $sSql); - - $oResultat = $this->oBd->execute($sSql); - if (!$this->oBd->erreurRencontree) { - $oGeomBuffer = $this->oBd->objetSuivant($oResultat); - $sGeomBuffer = $oGeomBuffer->geombuffer; - $oResultat = $this->oBd->fermeResultat(); - } else { - // traitement de l'erreur - writeToErrorLog(ERROR_REQUEST_IMPOSSIBLE . $sSql); - $oResultat = $this->oBd->fermeResultat(); - } - return $sGeomBuffer; - } - - // calcule la distance entre deux points. - function getDistance($sWkt, $sWkt2) { - $sSql = "SELECT st_distance('debut','fin') as distance"; - $sSql = str_replace('debut', $sWkt, $sSql); - $sSql = str_replace('fin', $sWkt2, $sSql); - $oResultat = $this->oBd->execute($sSql); - if (!$this->oBd->erreurRencontree) { - $oDistance = $this->oBd->objetSuivant($oResultat); - $sDistance = $oDistance->distance; - $oResultat = $this->oBd->fermeResultat(); - } else { - // traitement de l'erreur - writeToErrorLog(ERROR_REQUEST_IMPOSSIBLE . $sSql); - $oResultat = $this->oBd->fermeResultat(); - } - return $sDistance; - } - -} - -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/vmlib/Vm.class.inc b/src/vitis/vas/rest/class/vmlib/Vm.class.inc deleted file mode 100755 index 60d51d3e..00000000 --- a/src/vitis/vas/rest/class/vmlib/Vm.class.inc +++ /dev/null @@ -1,891 +0,0 @@ -<?php - -/** - * \file Vm.class.inc - * \brief Vm.class.inc \n \n Ce fichier contient la classe php Vm. - * - * - * \author Olivier Gayte <olivier.gayte@veremes.com>. - * \author Fabien Marty <fabien.marty@veremes.com>. - * \author Armand Bahi <armand.bahi@veremes.com>. - */ -/** - * \class Vm - * \brief Vm Class \n \n - */ -require_once (__DIR__ . "/BD.class.inc"); - -class Vm extends BD { - ## ============================================ ## - ## METHODES D'INTERROGATION DU CONTENU VM_TABLE ## - ## ============================================ ## - - /** - * M�thode qui renvoie un tableau associatif contenant des informations sur la table syst�me pass�e en param�tre. - * \param $sTable Nom de la table syst�me. - * \param $sSchema Nom du sch�ma � utiliser ('veremap_pro' par d�faut). - * \return Un tableau associatif. - */ - function getVM_TableInfo($sTable, $sSchema = "veremap_pro") { - include('vmlib/Vm.class.sql.inc'); - $sSql = $aSql[$this->sgbd]['getVM_TableInfo']; - $aTag = array("[sSchema]", "[sTable]"); - $aReplacer = array($sSchema, $sTable); - $sSql = str_replace($aTag, $aReplacer, $sSql); - $resultat = $this->execute($sSql); - if ($resultat !== false) { - if (!$aValues = $this->ligneSuivante($resultat)) - $aValues = array(); - $resultat = $this->fermeResultat(); - return $aValues; - } - } - - /** - * M�thode qui renvoie un tableau associatif contenant des informations sur la table syst�me pass�e en param�tre. - * \param $sTable Nom de la table syst�me. - * \param $sSchema Nom du sch�ma � utiliser ('veremap_pro' par d�faut). - * \param $lang langue de l'application ('fr' par d�faut). - * \return Un tableau associatif. - */ - function getVM_TableInfoTrad($sTable, $sSchema = "veremap_pro", $lang = "fr") { - include('vmlib/Vm.class.sql.inc'); - $sSql = $aSql[$this->sgbd]['getVM_TableInfoTrad']; - $aTag = array("[sSchema]", "[sTable]", "[sLang]"); - $aReplacer = array($sSchema, $sTable, $lang); - $sSql = str_replace($aTag, $aReplacer, $sSql); - $resultat = $this->execute($sSql); - if ($resultat !== false) { - if (!$aValues = $this->ligneSuivante($resultat)) - $aValues = array(); - $resultat = $this->fermeResultat(); - return $aValues; - } - } - - /** - * M�thode qui renvoie un tableau associatif contenant des informations sur la table syst�me pass�e en param�tre. - * \param $sTable Nom de la table syst�me. - * \param $sSchema Nom du sch�ma � utiliser ('veremap_pro' par d�faut). - * \param $lang langue de l'application ('fr' par d�faut). - * \return Un tableau associatif. - */ - function getVM_TableInfoTradFramework($sTable, $sSchema = "veremap_pro", $lang = "fr") { - include('vmlib/Vm.class.sql.inc'); - $sSql = $aSql[$this->sgbd]['getVM_TableInfoTradFramework']; - $aTag = array("[sSchema]", "[sTable]", "[sLang]"); - $aReplacer = array($sSchema, $sTable, $lang); - $sSql = str_replace($aTag, $aReplacer, $sSql); - $resultat = $this->execute($sSql); - if ($resultat !== false) { - if (!$aValues = $this->ligneSuivante($resultat)) - $aValues = array(); - $resultat = $this->fermeResultat(); - return $aValues; - } - } - - /** - * M�thode qui renvoie un tableau associatif contenant des informations sur la couche syst�me pass�e en param�tre. - * \param $sLayer Nom de la couche syst�me. - * \param $sSchema Nom du sch�ma � utiliser ('veremap_pro' par d�faut). - * \return Un tableau associatif. - */ - function getVM_LayerInfo($sLayer, $sSchema = "veremap_pro") { - include('vmlib/Vm.class.sql.inc'); - $sSql = $aSql[$this->sgbd]['getVM_LayerInfo']; - $aTag = array("[sSchema]", "[sLayer]"); - $aReplacer = array($sSchema, $sLayer); - $sSql = str_replace($aTag, $aReplacer, $sSql); - $resultat = $this->execute($sSql); - if ($resultat !== false) { - if (!$aValues = $this->ligneSuivante($resultat)) - $aValues = array(); - $resultat = $this->fermeResultat(); - return $aValues; - } - } - - ## ============================================================ ## - ## METHODES D'INTERROGATION DES DROITS SUR LES COUCHES ## - ## ============================================================ ## - - /** - * M�thode qui renvoie un tableau associatif contenant les droits sur la couche pour un groupe pass�e en param�tre. - * \param $sLayer Nom de la couche syst�me. - * \param $iGroupId Groupe de l'utilisateur. - * \return Un tableau associatif. - */ - function getVM_LayerRightInfo($sLayer, $iGroupId, $sSchema = 'veremap_pro') { - include('vmlib/Vm.class.sql.inc'); - $aValues = Array("UPDATE" => false, "DELETE" => false, "INSERT" => false, "EXTRACT" => false, "UPLOAD" => false); - $sSql = $aSql[$this->sgbd]['getVM_LayerRightInfo']; - $sSql = str_replace('[sSchema]', $sSchema, $sSql); - $sSql = str_replace(array("[sLayerName]", "[iGroupId]"), array($sLayer, $iGroupId), $sSql); - $oResultat = $this->execute($sSql); - // DEPRECATED 2011_01 - if ($this->erreurRencontree) { - $sSql = $aSql[$this->sgbd]['getVM_LayerRightInfo_0']; - $sSql = str_replace('[sSchema]', $sSchema, $sSql); - $sSql = str_replace(array("[sLayerName]", "[iGroupId]"), array($sLayer, $iGroupId), $sSql); - $oResultat = $this->execute($sSql); - } - // - if ($oResultat !== false) { - $aValues = $this->ligneSuivante($oResultat); - } - $resultat = $this->fermeResultat(); - return $aValues; - } - - ## ===================================================== ## - ## METHODES AUTOUR DE LA STRUCTURE DE LA BASE DE DONNEES ## - ## ===================================================== ## - - /** - * M�thode permettant de tester si une table est une vue. - * Si c'est le cas, cette m�thode permet de rapatrier le nom de la table contenant la colonne g�om�trique utilis�e dans la vue. - * \param $sTable Nom de la table � tester. - * \param $sSchema Nom du sch�ma contenant la table � tester (vide par d�faut). - * \return Le nom de la table d'origine de la g�om�trie. - */ - function ifTableIsAView($sTable, $sSchema = "") { - $bReturn = false; - include("vmlib/Vm.class.sql.inc"); - $sSql = $aSql[$this->sgbd]['ifTableIsAView']; - - switch ($this->sgbd) { - case "pgsql" : - $aTag = array("[sSchema]", "[sTable]"); - $aReplacer = array($sSchema, $sTable); - $sSql = str_replace($aTag, $aReplacer, $sSql); - break; - } - $sOriginTable = $sTable; - $iResult = $this->execute($sSql); - - if ($aValues = $this->ligneSuivante($iResult)) { - $iPos = strpos($aValues["definition"], ".geom_cad"); - if ($iPos === false) { - $sGeometrieColumn = ".geom"; - $iPos = strpos($aValues["definition"], $sGeometrieColumn); - } else { - $sGeometrieColumn = ".geom_cad"; - } - $schaineAnalyse = substr($aValues["definition"], 0, $iPos + strlen($sGeometrieColumn)); - $iPosVirgule = strpos($schaineAnalyse, ","); - if ($iPosVirgule == "") { - $aTableauVirg = explode(" ", $schaineAnalyse); - $iNbrValTabVirg = count($aTableauVirg); - $sValeur2 = $aTableauVirg[$iNbrValTabVirg - 1]; - $iPosChaineAnalyse2 = strpos($sValeur2, $sGeometrieColumn); - $sOriginTable = trim(substr($sValeur2, 0, $iPosChaineAnalyse2)); - } else { - $sOriginTable = trim(substr(strrchr(substr($aValues["definition"], 0, $iPos), ","), 1)); - } - $iPosParenthese = strpos($sOriginTable, "("); - if ($iPosParenthese != "") { - $aTableauPar = explode("(", $sOriginTable); - $iNbrValTab = count($aTableauPar); - $sOriginTable = trim($aTableauPar[$iNbrValTab - 1]); - } - } - $iResult = $this->fermeResultat(); - return $sOriginTable; - } - - /** - * M�thode permettant de r�cup�rer le nom du sch�ma contenant la table pass�e en param�tre. - * \param $sTable Nom de la table � tester. - * \return Le nom du sch�ma. - */ - function getTableSchema($sTable) { - $bReturn = false; - include("vmlib/Vm.class.sql.inc"); - $sSql = $aSql[$this->sgbd]['getTableSchema']; - switch ($this->sgbd) { - case "pgsql" : - $sSql = str_replace("[sTable]", $sTable, $sSql); - break; - } - $sSchema = ""; - $iResult = $this->execute($sSql); - if ($aValues = $this->ligneSuivante($iResult)) { - $sSchema = $aValues["nspname"]; - } - $iResult = $this->fermeResultat(); - return $sSchema; - } - - /** - * M�thode permettant de cloner un enregistrement en tenant compte de la liste des cl�s uniques - * sp�cifi�es dans la vm_table et en leur associant la valeur 'null' lors de l'insertion. - * \param $sSchema Schema de la base de donn�es - * \param $sTable Table dans laquelle on ajoute. - * \param $aValues Valeurs � ajouter. - * \param $sSequence Nom de la s�quence � utiliser. - * \param $iIdField Nom de l'attribut identifiant. - * \param $sUkList Liste des cl�s uniques dans la table s�par�es par un '|'. - * \return L'id de la derni�re ligne ins�r�e. - */ - function cloneObj($sSchema, $sTable, $aValues, $sSequence, $iIdField, $sUkList) { - $aUk = explode("|", $sUkList); - foreach ($aUk as $sUk) - foreach ($aValues as $sKey => $sValue) - if ($sKey === $sUk) - $aValues[$sKey] = ""; - - return $this->insert($sSchema, $sTable, $aValues, $sSequence, $iIdField); - } - - ## ============================================ ## - ## METHODES DE MANIPULATION DES OBJETS SPATIAUX ## - ## ============================================ ## - - /** - * M�thode permettant de tester si une g�om�trie est au format EWKT - * \param $sGeom G�om�trie - * \return Bool�en. - */ - function isEWKTFormat($sGeom) { - if (strtoupper(substr($sGeom, 0, 5)) === 'SRID=') - return true; - else - return false; - } - - /** - * M�thode permettant de tester si une table contient une colonne supportant le stockage de donn�es spatiales. - * \param $sTable Nom de la table � tester. - * \param $sSchema Nom du sch�ma contenant la table � tester (vide par d�faut). - * \return Bool�en. - */ - function isTableSpatial($sTable, $sSchema = "") { - $bReturn = false; - include("vmlib/Vm.class.sql.inc"); - $sSql = $aSql[$this->sgbd]['isTableSpatial']; - switch ($this->sgbd) { - case "pgsql" : - $aTag = array("[sSchema]", "[sTable]"); - $aReplacer = array($sSchema, $sTable); - $sSql = str_replace($aTag, $aReplacer, $sSql); - break; - } - - $iResult = $this->execute($sSql); - if ($this->nombreLigne($iResult) != 0) - $bReturn = true; - $iResult = $this->fermeResultat(); - return $bReturn; - } - - /** - * M�thode permettant de r�cup�rer le 'SRID' d'une table contenant des donn�es spatiales. - * \private - * \param $sTable Nom de la table. - * \param $sSchema Nom du sch�ma contenant la table (vide par d�faut). - * \return Code SRID (nombre entier, 4 ou 5 chiffres) retourne 0 si aucun SRID d�fini. - */ - function getTableSRID($sTable, $sSchema = "") { - $iSrid = 0; - include("vmlib/Vm.class.sql.inc"); - $sSql = $aSql[$this->sgbd]['getTableSrid']; - switch ($this->sgbd) { - case "pgsql" : - $aTag = array("[sSchema]", "[sTable]"); - $aReplacer = array($sSchema, $sTable); - $sSql = str_replace($aTag, $aReplacer, $sSql); - break; - } - $iResult = $this->execute($sSql); - if ($aValue = $this->ligneSuivante($iResult)) - $iSrid = $aValue['srid']; - $iResult = $this->fermeResultat(); - return $iSrid; - } - - /** - * Get a column projection - * @param string $sSchema - * @param string $sTable - * @param string $sColumn - * @return string - */ - function getColumnSRID($sSchema, $sTable, $sColumn) { - $sColumnProj = null; - $sSchemaKey = 'schema_' . vitisUniqId(); - $sTableKey = 'table_' . vitisUniqId(); - $sColumnKey = 'column_' . vitisUniqId(); - - $aParams = array(); - $aParams[$sSchemaKey] = array('value' => $sSchema, 'type' => 'column_name'); - $aParams[$sTableKey] = array('value' => $sTable, 'type' => 'column_name'); - $aParams[$sColumnKey] = array('value' => $sColumn, 'type' => 'column_name'); - $sSQLSRID = 'SELECT st_srid("[' . $sColumnKey . ']") as column_srid FROM "[' . $sSchemaKey . ']"."[' . $sTableKey . ']" WHERE "[' . $sColumnKey . ']" is not null AND st_srid("[' . $sColumnKey . ']") != 0 LIMIT 1'; - - $oResult = $this->executeWithParams($sSQLSRID, $aParams); - if ($this->enErreur()) { - writeToErrorLog($this->getBDMessage()); - } else { - if (!isset($this->enErreur)) { - $this->enErreur = false; - } - if (!$this->enErreur && $this->nombreLigne($oResult) > 0) { - $aData = array(); - while ($aObject = $this->ligneSuivante($oResult)) { - foreach ($aObject as $sParamKey => $sParamValue) { - if ($sParamKey === 'column_srid') { - $sColumnProj = $sParamValue; - } - } - } - } - } - - // Nouvelle tentative avec une requête différente - if ($sColumnProj === null || $sColumnProj == "0") { - // ne fonctionne pas dans tous les cas pour les vues - $sSQLSRID = "SELECT Find_SRID('[" . $sSchemaKey . "]', '[" . $sTableKey . "]', '[" . $sColumnKey . "]') as column_srid"; - - $oResult = $this->executeWithParams($sSQLSRID, $aParams); - if ($this->enErreur()) { - writeToErrorLog($this->getBDMessage()); - } else { - if (!isset($this->enErreur)) { - $this->enErreur = false; - } - if (!$this->enErreur && $this->nombreLigne($oResult) > 0) { - $aData = array(); - while ($aObject = $this->ligneSuivante($oResult)) { - foreach ($aObject as $sParamKey => $sParamValue) { - if ($sParamKey === 'column_srid') { - $sColumnProj = $sParamValue; - } - } - } - } - } - } - - // Nouvelle tentative avec une requête différente - if ($sColumnProj === null || $sColumnProj == "0") { - $sColumnProj = $this->getTableSRID($sTable, $sSchema); - } - - return $sColumnProj; - } - - /** - * M�thode permettant de r�cup�rer le type de g�om�trie d'une table contenant des donn�es spatiales. - * \private - * \param $sTable Nom de la table. - * \param $sSchema Nom du sch�ma contenant la table (vide par d�faut). - * \return Type de g�om�trie support�e retourne GEOMETRY si aucun type de g�om�trie d�fini. - */ - function getTableGeometryType($sTable, $sSchema = "") { - $sGeometryType = "GEOMETRY"; - include("vmlib/Vm.class.sql.inc"); - $sSql = $aSql[$this->sgbd]['getTableGeometryType']; - switch ($this->sgbd) { - case "pgsql" : - $aTag = array("[sSchema]", "[sTable]"); - $aReplacer = array($sSchema, $sTable); - $sSql = str_replace($aTag, $aReplacer, $sSql); - break; - } - $iResult = $this->execute($sSql); - if ($aValue = $this->ligneSuivante($iResult)) - $sGeometryType = $aValue['type']; - $iResult = $this->fermeResultat(); - return $sGeometryType; - } - - /** - * M�thode permettant de r�cup�rer la dimension d'une table contenant des donn�es spatiales (2 pour 2D, 3 pour 3D...). - * \private - * \param $sTable Nom de la table. - * \param $sSchema Nom du sch�ma contenant la table (vide par d�faut). - * \return Un entier correspondant au nombre de dimension d'une table. - */ - function getTableDimension($sTable, $sSchema = "") { - $iDims = "2"; - include("vmlib/Vm.class.sql.inc"); - $sSql = $aSql[$this->sgbd]['getTableDimension']; - switch ($this->sgbd) { - case "pgsql" : - $aTag = array("[sSchema]", "[sTable]"); - $aReplacer = array($sSchema, $sTable); - $sSql = str_replace($aTag, $aReplacer, $sSql); - break; - } - $iResult = $this->execute($sSql); - if ($aValue = $this->ligneSuivante($iResult)) - $iDims = $aValue['coord_dimension']; - $iResult = $this->fermeResultat(); - return $iDims; - } - - /** - * M�thode permettant de r�cup�rer la dimension d'une colonne contenant des donn�es spatiales (2 pour 2D, 3 pour 3D...). - * \private - * \param $sSchema Nom du sch�ma contenant la table. - * \param $sTable Nom de la table. - * \param $sColumn Nom de la colonne. - * \return Un entier correspondant au nombre de dimension d'une table. - */ - function getColumnDimension($sSchema, $sTable, $sColumn) { - $iDims = "2"; - include("vmlib/Vm.class.sql.inc"); - $sSql = $aSql[$this->sgbd]['getColumnDimension']; - switch ($this->sgbd) { - case "pgsql" : - $aTag = array("[sSchema]", "[sTable]", "[sColumn]"); - $aReplacer = array($sSchema, $sTable, $sColumn); - $sSql = str_replace($aTag, $aReplacer, $sSql); - break; - } - $iResult = $this->execute($sSql); - if ($aValue = $this->ligneSuivante($iResult)) - $iDims = $aValue['coord_dimension']; - $iResult = $this->fermeResultat(); - return $iDims; - } - - /** - * M�thode permettant de renvoyer la g�om�trie (sous la forme d'une cha�ne WKT) en cours d'�dtion - * apr�s ajout des d'un nouveau vertex dont les coordonn�es ont �t� interpol�es selon les coordonn�es - * du point saisie par l'utilisateur dans l'interface graphique. - * \param $sTable Nom de la table dans laquelle se trouve la g�om�trie en cours d'�dition. - * \param $sSchema Sch�ma contenant la 'vm_table' � exploiter. - * \param $sX Coordonn�es X du point cliqu�. - * \param $sY Coordonn�es Y du point cliqu�. - * \param $sWKT Cha�ne WKT constitutive de la g�om�trie en cours d'�dition. - * \param $dTolerance Tol�rance de distance entre le nouveau vertex et la g�om�trie en cours d'�dition. - * \return La cha�ne WKT mise � jour. - */ - function geomAddVertex($sTable, $sSchema = "", $sX, $sY, $sWKT, $dTolerance) { - include("vmlib/Vm.class.sql.inc"); - $sSql = $aSql[$this->sgbd]['geomAddVertex']; - - $aTableInfo = $this->getVM_TableInfo($sTable, $sSchema); - $sTable = $this->ifTableIsAView($sTable, $aTableInfo["SCHEMA_NAME"]); - if ($sTable != $aTableInfo["TABLE_NAME"]) { - $sSchema = $this->getTableSchema($sTable); - $iSRID = $this->getTableSRID($sTable, $sSchema); - } else { - $iSRID = $this->getTableSRID($sTable, $aTableInfo["SCHEMA_NAME"]); - } - $sVertexCoords = $sX . " " . $sY; - - // Cas des polygones - $bPolygon = false; - if (substr_count($sWKT, "POLYGON") === 1) - $bPolygon = true; - - if ($bPolygon) - $sWKT = str_replace(array("POLYGON((", "))"), array("LINESTRING(", ")"), $sWKT); - // ---- - - $dCurrentDistance = $this->getVertexDistance($sWKT, $iSRID, $sVertexCoords); - if ($dTolerance >= $dCurrentDistance) { - switch ($this->sgbd) { - case "pgsql" : - $aTag = array("[sWKT]", "[sVertexCoords]", "[iSRID]"); - $aReplacer = array($sWKT, $sVertexCoords, $iSRID); - $sSql = str_replace($aTag, $aReplacer, $sSql); - break; - } - - $iResult = $this->execute($sSql); - if ($iResult !== false) { - $aValues = $this->ligneSuivante($iResult); - $sWKT = $aValues["wkt"]; - } - $iResult = $this->fermeResultat(); - } - - if ($bPolygon) - $sWKT = str_replace(array("LINESTRING(", ")"), array("POLYGON((", "))"), $sWKT); - - return $sWKT; - } - - /** - * M�thode permettant de renvoyer deux g�om�tries (sous la forme de deux cha�nes WKT) - * apr�s d�coupe de la g�om�trie d'origine (selon la localisation d'un vertex de d�coupe...). - * \param $sTable Nom de la table dans laquelle se trouve la g�om�trie en cours d'�dition. - * \param $sSchema Sch�ma contenant la 'vm_table' � exploiter. - * \param $sX Coordonn�es X du point cliqu�. - * \param $sY Coordonn�es Y du point cliqu�. - * \param $sWKT Cha�ne WKT constitutive de la g�om�trie en cours d'�dition. - * \param $dTolerance Tol�rance de distance entre le nouveau vertex et la g�om�trie en cours d'�dition. - * \return La cha�ne WKT mise � jour. - */ - function geomCutLine($sTable, $sSchema = "", $sX, $sY, $sWKT, $dTolerance) { - include("vmlib/Vm.class.sql.inc"); - $sSql = $aSql[$this->sgbd]['geomCutLine']; - - $aTableInfo = $this->getVM_TableInfo($sTable, $sSchema); - $sTable = $this->ifTableIsAView($sTable, $aTableInfo["SCHEMA_NAME"]); - if ($sTable != $aTableInfo["TABLE_NAME"]) { - $sSchema = $this->getTableSchema($sTable); - $iSRID = $this->getTableSRID($sTable, $sSchema); - } else { - $iSRID = $this->getTableSRID($sTable, $aTableInfo["SCHEMA_NAME"]); - } - - $sVertexCoords = $sX . " " . $sY; - - $dCurrentDistance = $this->getVertexDistance($sWKT, $iSRID, $sVertexCoords); - if ($dTolerance >= $dCurrentDistance) { - switch ($this->sgbd) { - case "pgsql" : - $aTag = array("[sWKT]", "[sVertexCoords]", "[iSRID]"); - $aReplacer = array($sWKT, $sVertexCoords, $iSRID); - $sSql = str_replace($aTag, $aReplacer, $sSql); - break; - } - - $iResult = $this->execute($sSql); - ($iResult !== false) ? - $aValues = $this->ligneSuivante($iResult) : - $aValues = array(); - $iResult = $this->fermeResultat(); - } - - return $aValues; - } - - /** - * M�thode permettant d'assurer l'accrochage de la g�om�trie en cours d'�dition s'il y a lieu. - * \param $sIdValue Valeur de l'identifiant associ� � la g�om�trie (vide lors d'un ajout). - * \param $sWKT Cha�ne WKT constitutive de la g�om�trie en cours d'�dition. - * \param $aTableInfo Informations provenant de la vm_table pour la table en cours d'�dition. - * \param $sExtendLine Param�tre valoris� uniquement pour le prolongement des lignes (vaut "start" ou "end" dans ce cas, vide sinon). - * \return La cha�ne WKT mise � jour. - */ - function geomBinding($sIdValue, $sWKT, $aTableInfo, $sExtendLine = "") { - include("vmlib/Vm.class.sql.inc"); - $sWhereClause = ""; - if ($sIdValue != "") - $sWhereClause = $aTableInfo["ID_FIELD"] . " != " . $sIdValue . " AND"; - $sOriginTable = $this->ifTableIsAView($aTableInfo["TABLE_NAME"], $aTableInfo["SCHEMA_NAME"]); - if ($sOriginTable != $aTableInfo["TABLE_NAME"]) - $sSchema = $this->getTableSchema($sOriginTable); - else - $sSchema = $aTableInfo["SCHEMA_NAME"]; - $iSRID = $this->getTableSRID($sOriginTable, $sSchema); - $sGeomType = $this->getTableGeometryType($sOriginTable, $sSchema); - if ($sGeomType == "GEOMETRY" || $sGeomType == "ST_Geometry") - $sGeomType = substr($sWKT, 0, 10); - if ($sGeomType == "LINESTRING" || $sGeomType == "ST_LineString") { - $sSqlStart = $aSql[$this->sgbd]['geomBinding_1']; - $sSqlEnd = $aSql[$this->sgbd]['geomBinding_2']; - switch ($this->sgbd) { - case "pgsql" : - $aTag = array("[sWKT]", "[iSRID]", "[sSchema]", "[sTable]", "[sWhereClause]", "[dTolerance]"); - $aReplacer = array($sWKT, $iSRID, $aTableInfo["SCHEMA_NAME"], $aTableInfo["TABLE_NAME"], $sWhereClause, round($aTableInfo["BIND_TOLERANCE"], 2)); - $sSqlStart = str_replace($aTag, $aReplacer, $sSqlStart); - $sSqlEnd = str_replace($aTag, $aReplacer, $sSqlEnd); - break; - } - $bStart = $bEnd = true; - switch ($sExtendLine) { - case "start" : - $bEnd = false; - break; - case "end" : - $bStart = false; - break; - } - - if ($bStart) { - $iResult = $this->execute($sSqlStart); - if ($iResult !== false) { - if ($aValues = $this->ligneSuivante($iResult)) { - if ($aValues["distance"] <= $aTableInfo["BIND_TOLERANCE"]) { - $iVertexIndex = 0; - $aValues = array($sWKT, $iSRID, $aValues["wkt"], $iVertexIndex); - $sWKT = $this->geomBinding_private($aSql[$this->sgbd]['geomBinding_3'], $aValues); - } - } - } - $iResult = $this->fermeResultat(); - } - - if ($bEnd) { - $iResult = $this->execute($sSqlEnd); - if ($iResult !== false) { - if ($aValues = $this->ligneSuivante($iResult)) { - if ($aValues["distance"] <= $aTableInfo["BIND_TOLERANCE"]) { - $iVertexIndex = ($aValues["nb_vertex"] - 1); - $aValues = array($sWKT, $iSRID, $aValues["wkt"], $iVertexIndex); - $sWKT = $this->geomBinding_private($aSql[$this->sgbd]['geomBinding_3'], $aValues); - } - } - } - $iResult = $this->fermeResultat(); - } - } - - return $sWKT; - } - - /** - * M�thode priv�e permettant de finaliser l'accorchage des g�om�tries. - * \param $sSqlTemplate Requ�te SQL mod�le. - * \param $aValues Tableau contenant les valeurs � associer � la requ�te mod�le. - * \private - * \return La g�om�trie accroch�e selon un num�ro d'index de vertex. - */ - function geomBinding_private($sSqlTemplate, $aValues) { - switch ($this->sgbd) { - case "pgsql" : - $sWKT = $aValues[0]; - $aTag = array("[sWKT]", "[iSRID]", "[sVertexWKT]", "[iVertexIndex]"); - $aReplacer = array($aValues[0], $aValues[1], $aValues[2], $aValues[3]); - $sSql = str_replace($aTag, $aReplacer, $sSqlTemplate); - break; - } - - $iResult = $this->execute($sSql); - if ($iResult !== false) { - $aValues = $this->ligneSuivante($iResult); - $sWKT = $aValues["wkt"]; - } - $iResult = $this->fermeResultat(); - - return $sWKT; - } - - /** - * Cette m�thode permet de r�cup�rer la distance (exprim�e en unit� terrain) entre un vertex (correspondant aux - * coordonn�es du point cliqu� sur la carte) 'utilisateur' et la g�om�trie en cours d'�dition. - * \private - * \param $sWKT Cha�ne WKT constitutive de la g�om�trie en cours d'�dition. - * \param $iSRID Code SRID du syst�me de projection de la g�om�trie en cours d'�dition. - * \param $sWKT Cha�ne WKT constitutive de la g�om�trie en cours d'�dition. - * \return La distance du nouveau vertex. - */ - function getVertexDistance($sWKT, $iSRID, $sVertexCoords) { - include("vmlib/Vm.class.sql.inc"); - $sSql = $aSql[$this->sgbd]['getVertexDistance']; - - switch ($this->sgbd) { - case "pgsql" : - $aTag = array("[sWKT]", "[iSRID]", "[sVertexCoords]"); - $aReplacer = array($sWKT, $iSRID, $sVertexCoords); - $sSql = str_replace($aTag, $aReplacer, $sSql); - break; - } - - $iResult = $this->execute($sSql); - - $dDistance = 0; - if ($iResult !== false) { - $aValues = $this->ligneSuivante($iResult); - $dDistance = $aValues["distance"]; - } - - $iResult = $this->fermeResultat(); - - return $dDistance; - } - - ## ===================================== ## - ## METHODES DE STRUCTURATION DE TABLEAUX ## - ## ===================================== ## - - /** - * M�thode qui renvoie une cha�ne de caract�re de type html pr�sentant sous forme de tableau le contenu du resultset. - * \param $resultset Le jeu d'enregistrement r�sultant de l'�x�cution d'une requ�te. - * \param $sMessageSiVide Message affich� dans le tableau si le resultset est vide - * \param $sCssLabel Style css � appliquer au noms d'attributs - 1�re ligne du tableau - * \param $sCssValue Style css � appliquer aux valeurs - lignes suivantes - * \return Une cha�ne de caract�res . - */ - function resultset2Table($resultset, $sMessageSiVide = "", $sCssLabel, $sCssValue = "") { - if ($sMessageSiVide == "") { - $sMessageSiVide = NOT_RECORD_FOUND_VM; - } - $sResult = "<center><table border='1'>"; - if ($aValues = $this->tableauSuivant($resultset)) { - // s'il y a un r�sultat on construit la premi�re ligne du tableau - $iFieldCount = $this->getFieldsNumber($resultset); - - $sLigne = "<tr CLASS='$sCssLabel'>"; - for ($i = 0; $i < $iFieldCount; $i++) - $sLigne .= "<td>" . $this->getFieldName($resultset, $i) . "</td>"; - $sLigne .= "</tr>"; - - // Deuxi�me ligne avec les valeurs - $sLigne .= "<tr CLASS='$sCssValue'>"; - for ($i = 0; $i < $iFieldCount; $i++) - $sLigne .= "<td>" . $aValues{$i} . "</td>"; - $sLigne .= "</tr>"; - $sResult .= $sLigne; - - // lignes suivantes - while ($aValues = $this->tableauSuivant($resultset)) { - $sLigne = "<tr CLASS='$sCssValue'>"; - for ($i = 0; $i < $iFieldCount; $i++) - $sLigne .= "<td>" . $aValues{$i} . "</td>"; - $sLigne .= "</tr>"; - $sResult .= $sLigne; - } - } else { - $sLigne = "<tr><td>$sMessageSiVide</td></tr>"; - $sResult .= $sLigne; - } - $sResult .= "</table></center>"; - return $sResult; - } - - /** - * Méthode qui renvoie une cha�ne de caract�re de type html pr�sentant sous forme de tableau editable. - * Ce tableau a les caract�ristiques suivantes : - * Nom de champ clickable (pour d�finir l'ordre de pr�sentation) - * La premi�re colonne permet de se mettre en mode �dition - * La seconde colonne permet de supprimer l'enregistrement - * La troisi�me colonne permet d'afficher l'enregistrement - * \param $resultset Le jeu d'enregistrement r�sultant de l'�x�cution d'une requ�te. - * \param $sMessageSiVide Message affich� dans le tableau si le resultset est vide - * \param $sCssLabel Style css � appliquer au noms d'attributs - 1�re ligne du tableau - * \param $sCssValue Style css � appliquer aux valeurs - lignes suivantes - * \param $sIdField : nom du champ identifiant de la table pr�sent�e - * \return Une cha�ne de caract�res . - */ - function resultset2EditTable($resultset, $sMessageSiVide = "", $sCssLabel, $sCssValue = "", $sCssValue2 = "", $sIdField, $aRights = array(), $aTableParams = array()) { - if ($sMessageSiVide == "") { - $sMessageSiVide = NOT_RECORD_FOUND_VM; - } - // Tableau de param�trage de la m�thode - if ($aTableParams != array()) { - extract($aTableParams); - } else { - $IMAGE = false; - $CENTER = true; - $SPACING = 1; - $PADDING = 5; - $EMPTY_HEAD_CELLS = true; - $IMAGE_PATH = "../images/"; - $GEOM = false; - } - - // Red�claration des variables (pour plus de lisibilit�) - $bImage = $IMAGE; - $sImagePath = $IMAGE_PATH; - if (isset($LAYER)) - $sLayerName = $LAYER; - $bGeom = $GEOM; - - if ($CENTER) - $aCenter = array("tag" => "<center>", "endtag" => "</center>"); - else - $aCenter = array("tag" => "", "endtag" => ""); - - if ($EMPTY_HEAD_CELLS) - $sEmptyCellCss = " class='emptyCell'"; - else - $sEmptyCellCss = ""; - - $sResult = ""; - $bDisplay = true; - $bGeom ? ($iColspan = 2) : ($iColspan = 1); - - if ($aRights == array()) { - $bEdit = true; - $bDelete = true; - $bCheckBox = true; - $iColspan = $iColspan + 3; - } else { - if ($aRights["UPDATE"] == true) { - $bEdit = true; - $iColspan++; - } else { - $bEdit = false; - } - if ($aRights["DELETE"] == true) { - $bDelete = true; - $bCheckBox = true; - $iColspan = $iColspan + 2; - } else { - $bDelete = false; - $bCheckBox = false; - } - } - - $iIdField = 4; - $bPremiereLigne = true; - $iJ = 0; - $iN = 0; - - //ligneSuivante � la place tableauSuivant - while ($aValues = $this->ligneSuivante($resultset)) { - $iJ++; - $iN++; - $sLigne = ""; - if ($bPremiereLigne) { - $sResult = $aCenter["tag"] . "<table border='0' cellpadding='" . $PADDING . "' cellspacing='" . $SPACING . "'><form name='listForm'>"; - $iFieldCount = $this->getFieldsNumber($resultset); - $iColspan = $iColspan + $iFieldCount; - $sLigne = "<tr class='$sCssLabel'>"; - if ($bEdit) - $sLigne .= "<td" . $sEmptyCellCss . "> </td>"; - if ($bDisplay) - $sLigne .= "<td" . $sEmptyCellCss . "> </td>"; - if ($bGeom) - $sLigne .= "<td" . $sEmptyCellCss . "> </td>"; - if ($bDelete) - $sLigne .= "<td" . $sEmptyCellCss . "> </td>"; - if ($bCheckBox) - $sLigne .= "<td" . $sEmptyCellCss . "> </td>"; - $i = 0; - foreach ($aValues as $valueName => $value) { - if ($valueName != 'LIMIT_NUM_ROW') { - $i++; - $sField = $valueName; - $sLigne .= '<td><a class="tabLink" href="javascript:parent.orderby(\'' . $sField . '\');">' . $sField . '</a></td>'; - } - } - $sLigne .= "</tr>"; - if ($bImage) - $sLigne .= "<tr><td colspan='" . $iColspan . "' width='100%' class='interligne'> </td></tr>"; - $bPremiereLigne = false; - } - if (($iN % 2) == 0) - $sLigne .= "<tr CLASS='$sCssValue2'>"; - else - $sLigne .= "<tr CLASS='$sCssValue'>"; - - $IdValue = $aValues{$sIdField}; - if ($bEdit) - $sLigne .= '<td><a href="javascript:parent.edit(\'' . $IdValue . '\');"><img src="' . $sImagePath . 'button_edit.png" alt="Modifier" title="Modifier" border="0" /></a></td>'; - if ($bDisplay) - $sLigne .= '<td><a href="javascript:parent.display(\'' . $IdValue . '\');"><img src="' . $sImagePath . 'button_display.png" alt="Voir" title="Voir" border="0" /></a></td>'; - if ($bGeom) - $sLigne .= '<td><a href="javascript:parent.zoom(\'' . $sLayerName . '\', \'' . $IdValue . '\');"><img src="' . $sImagePath . 'button_zoom.png" alt="Zoomer" title="Zoomer" border="0" /></a></td>'; - if ($bDelete) - $sLigne .= '<td><a href="javascript:parent.deleteRecord(\'' . $IdValue . '\');" onclick="return confirm(' . WARNING_DELETE_VM_01 . $IdValue . WARNING_DELETE_VM_02 . '\')"><img src="' . $sImagePath . 'button_delete.png" alt="Supprimer" title="Supprimer" border="0" /></a></td>'; - if ($bCheckBox) - $sLigne .= '<td><input type="checkbox" name="' . $IdValue . '" value="" id="checkbox_' . $iJ . '" /></td>'; - - foreach ($aValues as $valueName => $value) - if ($valueName != 'LIMIT_NUM_ROW') - $sLigne .= "<td>" . $value . "</td>"; - //for ($i=0;$i<$iFieldCount;$i++) $sLigne .= "<td>".$aValues{$i}."</td>"; - $sLigne .= "</tr>"; - if ($bImage) - $sLigne .= "<tr><td colspan='" . $iColspan . "' width='100%' class='interligne'> </td></tr>"; - $sResult .= $sLigne; - } - if ($sResult == "") - $sResult = $aCenter["tag"] . "<table border='1' cellpadding='" . $PADDING . "' cellspacing='" . $SPACING . "'><form name='listForm'><tr CLASS='$sCssValue'><td>$sMessageSiVide</td></tr>"; - $sResult .= "</form></table>" . $aCenter["endtag"]; - return $sResult; - } - -// Fin de la classe -} - -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/vmlib/Vm.class.sql.inc b/src/vitis/vas/rest/class/vmlib/Vm.class.sql.inc deleted file mode 100755 index 2154255e..00000000 --- a/src/vitis/vas/rest/class/vmlib/Vm.class.sql.inc +++ /dev/null @@ -1,30 +0,0 @@ -<?php - -//Requ�te de la classe Vm pour mysql -$aSql['mysql']['getVM_TableInfo'] = "SELECT * FROM vm_table WHERE name = '[sTable]'"; - -//Requ�te de la classe Vm pour pgsql -$aSql['pgsql']['getVM_TableInfo'] = "SELECT * FROM [sSchema].vm_table WHERE \"TABLE_NAME\" = '[sTable]'"; -$aSql['pgsql']['getVM_TableInfoTradFramework'] = "SELECT \"name\", \"id_field\", \"id_field_type\", \"id_field_label\", \"sql_list\", \"form_class\", \"sql_form\", translation_title.\"translation\" as \"TITRE_LISTE\", translation_form.\"translation\" as \"form_title\", \"id_field_sequence\", \"schema_name\", \"sorted_by\", \"sorted_dir\", \"edit_column\" , \"show_column\", \"module\", \"work_class\", \"business_id\" FROM [sSchema].vm_table INNER JOIN [sSchema].vm_translation as translation_title ON translation_title.translation_id = vm_table.\"title_list_label_id\" INNER JOIN [sSchema].vm_translation as translation_form ON translation_form.translation_id = vm_table.\"title_form_label_id\" and translation_form.lang=translation_title.lang WHERE \"name\" = '[sTable]' AND translation_title.lang = '[sLang]'"; -$aSql['pgsql']['getVM_TableInfoTrad'] = "SELECT \"name\", \"id_field\", \"id_field_type\", \"id_field_label\", \"sql_list\", \"form_class\", \"sql_form\", translation_title.\"translation\" as \"TITRE_LISTE\", translation_form.\"translation\" as \"form_title\", \"id_field_sequence\", \"schema_name\", \"sorted_by\", \"sorted_dir\", \"edit_column\" , \"show_column\", \"business_id\" FROM [sSchema].vm_table INNER JOIN [sSchema].vm_translation as translation_title ON translation_title.translation_id = vm_table.\"title_list_label_id\" INNER JOIN [sSchema].vm_translation as translation_form ON translation_form.translation_id = vm_table.\"title_form_label_id\" and translation_form.lang=translation_title.lang WHERE \"name\" = '[sTable]' AND translation_title.lang = '[sLang]'"; -$aSql['pgsql']['getVM_LayerInfo'] = "SELECT * FROM [sSchema].vm_table WHERE \"LAYER_NAME\" = '[sLayer]'"; -$aSql['pgsql']['getVM_LayerRightInfo'] = "SELECT \"UPDATE\", \"DELETE\", \"INSERT\", \"UPLOAD\", \"EXTRACT\" FROM [sSchema].group_rights LEFT JOIN [sSchema].layer ON group_rights.\"LAYER_ID\" = layer.\"LAYER_ID\" WHERE \"LAYER_NAME\" ='[sLayerName]' AND \"GROUP_ID\" IN ([iGroupId])"; -// getVM_LayerRightInfo_0 DEPRECATED 2011_01 -$aSql['pgsql']['getVM_LayerRightInfo_0'] = "SELECT \"UPDATE\", \"UPDATE\" AS \"INSERT\", \"UPDATE\" AS \"DELETE\", \"UPLOAD\", \"EXTRACT\" FROM [sSchema].group_rights LEFT JOIN [sSchema].layer ON group_rights.\"LAYER_ID\" = layer.\"LAYER_ID\" WHERE \"LAYER_NAME\" ='[sLayerName]' AND \"GROUP_ID\" IN ([iGroupId])"; -$aSql['pgsql']['isTableSpatial'] = "SELECT attname, relname, typname, nspname FROM pg_attribute, pg_class, pg_type, pg_namespace WHERE pg_attribute.attrelid = pg_class.oid AND pg_class.relnamespace = pg_namespace.oid AND pg_attribute.atttypid = pg_type.oid AND nspname = '[sSchema]' AND relname = '[sTable]' AND typname = 'geometry' ORDER BY attname ASC"; -$aSql['pgsql']['ifTableIsAView'] = "SELECT definition FROM pg_views WHERE schemaname = '[sSchema]' AND viewname = '[sTable]'"; -$aSql['pgsql']['getTableSchema'] = "SELECT nspname FROM pg_class, pg_namespace WHERE pg_class.relnamespace = pg_namespace.oid AND relname = '[sTable]'"; -$aSql['pgsql']['getTableSrid'] = "SELECT COALESCE(NULLIF(postgis_typmod_srid(pg_attribute.atttypmod), 0), postgis_constraint_srid(pg_namespace.nspname::text, pg_class.relname::text, pg_attribute.attname::text), 0) AS srid FROM pg_class, pg_attribute, pg_type, pg_namespace WHERE pg_type.typname = 'geometry'::name AND pg_attribute.attisdropped = false AND pg_attribute.atttypid = pg_type.oid AND pg_attribute.attrelid = pg_class.oid AND pg_class.relnamespace = pg_namespace.oid AND (pg_class.relkind = 'r'::\"char\" OR pg_class.relkind = 'v'::\"char\") AND NOT pg_is_other_temp_schema(pg_class.relnamespace) AND pg_namespace.nspname = '[sSchema]'::name AND pg_class.relname = '[sTable]'::name;"; -$aSql['pgsql']['getTableGeometryType'] = "SELECT replace(replace(COALESCE(NULLIF(upper(postgis_typmod_type(pg_attribute.atttypmod)), 'GEOMETRY'::text), postgis_constraint_type(pg_namespace.nspname::text, pg_class.relname::text, pg_attribute.attname::text)::text, 'GEOMETRY'::text), 'ZM'::text, ''::text), 'Z'::text, ''::text)::character varying(30) AS type FROM pg_class, pg_attribute, pg_type, pg_namespace WHERE pg_type.typname = 'geometry'::name AND pg_attribute.attisdropped = false AND pg_attribute.atttypid = pg_type.oid AND pg_attribute.attrelid = pg_class.oid AND pg_class.relnamespace = pg_namespace.oid AND (pg_class.relkind = 'r'::\"char\" OR pg_class.relkind = 'v'::\"char\") AND NOT pg_is_other_temp_schema(pg_class.relnamespace) AND pg_namespace.nspname = '[sSchema]'::name AND pg_class.relname = '[sTable]'::name;"; -$aSql['pgsql']['getTableDimension'] = "SELECT COALESCE(NULLIF(postgis_typmod_dims(pg_attribute.atttypmod), 2), postgis_constraint_dims(pg_namespace.nspname::text, pg_class.relname::text, pg_attribute.attname::text), 2) AS coord_dimension FROM pg_class, pg_attribute, pg_type, pg_namespace WHERE pg_type.typname = 'geometry'::name AND pg_attribute.attisdropped = false AND pg_attribute.atttypid = pg_type.oid AND pg_attribute.attrelid = pg_class.oid AND pg_class.relnamespace = pg_namespace.oid AND (pg_class.relkind = 'r'::\"char\" OR pg_class.relkind = 'v'::\"char\") AND NOT pg_is_other_temp_schema(pg_class.relnamespace) AND pg_namespace.nspname = '[sSchema]'::name AND pg_class.relname = '[sTable]'::name;"; -$aSql['pgsql']['getColumnDimension'] = "SELECT COALESCE(NULLIF(postgis_typmod_dims(pg_attribute.atttypmod), 2), postgis_constraint_dims(pg_namespace.nspname::text, pg_class.relname::text, pg_attribute.attname::text), 2) AS coord_dimension FROM pg_class, pg_attribute, pg_type, pg_namespace WHERE pg_type.typname = 'geometry'::name AND pg_attribute.attisdropped = false AND pg_attribute.atttypid = pg_type.oid AND pg_attribute.attrelid = pg_class.oid AND pg_class.relnamespace = pg_namespace.oid AND (pg_class.relkind = 'r'::\"char\" OR pg_class.relkind = 'v'::\"char\") AND NOT pg_is_other_temp_schema(pg_class.relnamespace) AND pg_namespace.nspname = '[sSchema]'::name AND pg_class.relname = '[sTable]'::name AND pg_attribute.attname = '[sColumn]'::name;"; -$aSql['pgsql']['getVertexDistance'] = "SELECT st_distance(st_geometryFromText('[sWKT]', [iSRID]), st_geometryFromText('POINT([sVertexCoords])', [iSRID])) as distance"; -$aSql['pgsql']['geomAddVertex'] = "SELECT st_asText(st_addPoint(st_geometryFromText('[sWKT]', [iSRID]), st_line_interpolate_point(st_geometryFromText('[sWKT]', [iSRID]), st_line_locate_point(st_geometryFromText('[sWKT]', [iSRID]), st_geometryFromText('POINT([sVertexCoords])', [iSRID]))), vm_get_new_vertex_position(st_geometryFromText('[sWKT]', [iSRID]) ,st_line_interpolate_point(st_geometryFromText('[sWKT]', [iSRID]), st_line_locate_point(st_geometryFromText('[sWKT]', [iSRID]), st_geometryFromText('POINT([sVertexCoords])', [iSRID])))))) as wkt"; -$aSql['pgsql']['geomBinding_1'] = "SELECT st_asText(vm_get_nearest_vertex(geom, st_startPoint(st_geometryFromText('[sWKT]', [iSRID])))) as wkt, st_distance(vm_get_nearest_vertex(geom, st_startPoint(st_geometryFromText('[sWKT]', [iSRID]))), st_startPoint(st_geometryFromText('[sWKT]', [iSRID]))) as distance FROM [sSchema].[sTable] WHERE [sWhereClause] st_intersects(geom, st_buffer(st_geometryFromText('[sWKT]', [iSRID]), [dTolerance])) = true ORDER BY distance ASC"; -$aSql['pgsql']['geomBinding_2'] = "SELECT st_asText(vm_get_nearest_vertex(geom, st_endPoint(st_geometryFromText('[sWKT]', [iSRID])))) as wkt, st_distance(vm_get_nearest_vertex(geom, st_endPoint(st_geometryFromText('[sWKT]', [iSRID]))), st_endPoint(st_geometryFromText('[sWKT]', [iSRID]))) as distance, st_npoints(st_geometryFromText('[sWKT]', [iSRID])) as nb_vertex FROM [sSchema].[sTable] WHERE [sWhereClause] st_intersects(geom, st_buffer(st_geometryFromText('[sWKT]', [iSRID]), [dTolerance])) = true ORDER BY distance ASC"; -$aSql['pgsql']['geomBinding_3'] = "SELECT st_asText(vm_move_vertex_from_geom(st_geometryFromText('[sWKT]', [iSRID]), st_geometryFromText('[sVertexWKT]', [iSRID]), [iVertexIndex])) as wkt"; -$aSql['pgsql']['geomCutLine'] = "SELECT st_asText(st_line_substring(st_geometryFromText('[sWKT]', [iSRID]), 0, st_line_locate_point(st_geometryFromText('[sWKT]', [iSRID]), st_geometryFromText('POINT([sVertexCoords])', [iSRID])))) as wkt_start, st_asText(st_line_substring(st_geometryFromText('[sWKT]', [iSRID]), st_line_locate_point(st_geometryFromText('[sWKT]', [iSRID]), st_geometryFromText('POINT([sVertexCoords])', [iSRID])), 1)) as wkt_end"; - -//Requ�te de la classe Vm pour oci -$aSql['oci']['getVM_TableInfo'] = "SELECT * FROM vm_table WHERE name = '[sTable]'"; -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/vmlib/class.websocket_client.php b/src/vitis/vas/rest/class/vmlib/class.websocket_client.php deleted file mode 100755 index ad5acc66..00000000 --- a/src/vitis/vas/rest/class/vmlib/class.websocket_client.php +++ /dev/null @@ -1,296 +0,0 @@ -<?php - -//ini_set('display_errors', 1); -//error_reporting(E_ALL); - -/** - * Very basic websocket client. - * Supporting draft hybi-10. - * - * @author Simon Samtleben <web@lemmingzshadow.net> - * @author Armand Bahi <armand.bahi@veremes.com> - * @version 2011-10-18 - */ -class WebsocketClient { - - private $_host; - private $_port; - private $_path; - private $_origin; - private $_Socket = null; - private $_connected = false; - - public function __construct() { - - } - - public function __destruct() { - $this->disconnect(); - } - - public function isConnected() { - return $this->_connected; - } - - public function sendData($data, $type = 'text', $masked = true) { - if ($this->_connected === false) { - trigger_error("Not connected", E_USER_WARNING); - return false; - } - if (!is_string($data)) { - trigger_error("Not a string data was given.", E_USER_WARNING); - return false; - } - if (strlen($data) == 0) { - return false; - } - $res = @fwrite($this->_Socket, $this->_hybi10Encode($data, $type, $masked)); - if ($res === 0 || $res === false) { - return false; - } - $buffer = ' '; - while ($buffer !== '') { - $buffer = fread($this->_Socket, 512); // drop? - } - - return true; - } - - public function connect($host, $port, $path, $origin = 'foo.lh') { - $this->_host = $host; - $this->_port = $port; - $this->_path = $path; - $this->_origin = $origin; - - $key = base64_encode($this->_generateRandomString(16, false, true)); - $header = "GET " . $path . " HTTP/1.1\r\n"; - $header .= "Host: " . $host . ":" . $port . "\r\n"; - $header .= "Upgrade: websocket\r\n"; - $header .= "Connection: Upgrade\r\n"; - $header .= "Sec-WebSocket-Key: " . $key . "\r\n"; - if ($origin !== false) { - $header .= "Sec-WebSocket-Origin: " . $origin . "\r\n"; - } - $header .= "Sec-WebSocket-Version: 13\r\n"; - - $this->_Socket = fsockopen($host, $port, $errno, $errstr, 2); - socket_set_timeout($this->_Socket, 0, 10000); - $response = @fread($this->_Socket, 1500); - - @fwrite($this->_Socket, $header); - $response = @fread($this->_Socket, 1500); - preg_match('#Sec-WebSocket-Accept:\s(.*)$#mU', $response, $matches); - - if ($matches) { - $keyAccept = trim($matches[1]); - $expectedResonse = base64_encode(pack('H*', sha1($key . '258EAFA5-E914-47DA-95CA-C5AB0DC85B11'))); - $this->_connected = ($keyAccept === $expectedResonse) ? true : false; - } - - return $this->_connected; - } - - public function checkConnection() { - $this->_connected = false; - - // send ping: - $data = 'ping?'; - @fwrite($this->_Socket, $this->_hybi10Encode($data, 'ping', true)); - $response = @fread($this->_Socket, 300); - if (empty($response)) { - return false; - } - $response = $this->_hybi10Decode($response); - if (!is_array($response)) { - return false; - } - if (!isset($response['type']) || $response['type'] !== 'pong') { - return false; - } - $this->_connected = true; - return true; - } - - public function disconnect() { - $this->_connected = false; - is_resource($this->_Socket) and fclose($this->_Socket); - } - - public function reconnect() { - sleep(10); - $this->_connected = false; - fclose($this->_Socket); - $this->connect($this->_host, $this->_port, $this->_path, $this->_origin); - } - - private function _generateRandomString($length = 10, $addSpaces = true, $addNumbers = true) { - $characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"§$%&/()=[]{}'; - $useChars = array(); - // select some random chars: - for ($i = 0; $i < $length; $i++) { - $useChars[] = $characters[mt_rand(0, strlen($characters) - 1)]; - } - // add spaces and numbers: - if ($addSpaces === true) { - array_push($useChars, ' ', ' ', ' ', ' ', ' ', ' '); - } - if ($addNumbers === true) { - array_push($useChars, rand(0, 9), rand(0, 9), rand(0, 9)); - } - shuffle($useChars); - $randomString = trim(implode('', $useChars)); - $randomString = substr($randomString, 0, $length); - return $randomString; - } - - private function _hybi10Encode($payload, $type = 'text', $masked = true) { - $frameHead = array(); - $frame = ''; - $payloadLength = strlen($payload); - - switch ($type) { - case 'text': - // first byte indicates FIN, Text-Frame (10000001): - $frameHead[0] = 129; - break; - - case 'close': - // first byte indicates FIN, Close Frame(10001000): - $frameHead[0] = 136; - break; - - case 'ping': - // first byte indicates FIN, Ping frame (10001001): - $frameHead[0] = 137; - break; - - case 'pong': - // first byte indicates FIN, Pong frame (10001010): - $frameHead[0] = 138; - break; - } - - // set mask and payload length (using 1, 3 or 9 bytes) - if ($payloadLength > 65535) { - $payloadLengthBin = str_split(sprintf('%064b', $payloadLength), 8); - $frameHead[1] = ($masked === true) ? 255 : 127; - for ($i = 0; $i < 8; $i++) { - $frameHead[$i + 2] = bindec($payloadLengthBin[$i]); - } - // most significant bit MUST be 0 (close connection if frame too big) - if ($frameHead[2] > 127) { - $this->close(1004); - return false; - } - } elseif ($payloadLength > 125) { - $payloadLengthBin = str_split(sprintf('%016b', $payloadLength), 8); - $frameHead[1] = ($masked === true) ? 254 : 126; - $frameHead[2] = bindec($payloadLengthBin[0]); - $frameHead[3] = bindec($payloadLengthBin[1]); - } else { - $frameHead[1] = ($masked === true) ? $payloadLength + 128 : $payloadLength; - } - - // convert frame-head to string: - foreach (array_keys($frameHead) as $i) { - $frameHead[$i] = chr($frameHead[$i]); - } - if ($masked === true) { - // generate a random mask: - $mask = array(); - for ($i = 0; $i < 4; $i++) { - $mask[$i] = chr(rand(0, 255)); - } - - $frameHead = array_merge($frameHead, $mask); - } - $frame = implode('', $frameHead); - - // append payload to frame: - $framePayload = array(); - for ($i = 0; $i < $payloadLength; $i++) { - $frame .= ($masked === true) ? $payload[$i] ^ $mask[$i % 4] : $payload[$i]; - } - - return $frame; - } - - private function _hybi10Decode($data) { - $payloadLength = ''; - $mask = ''; - $unmaskedPayload = ''; - $decodedData = array(); - - // estimate frame type: - $firstByteBinary = sprintf('%08b', ord($data[0])); - $secondByteBinary = sprintf('%08b', ord($data[1])); - $opcode = bindec(substr($firstByteBinary, 4, 4)); - $isMasked = ($secondByteBinary[0] == '1') ? true : false; - $payloadLength = ord($data[1]) & 127; - - switch ($opcode) { - // text frame: - case 1: - $decodedData['type'] = 'text'; - break; - - case 2: - $decodedData['type'] = 'binary'; - break; - - // connection close frame: - case 8: - $decodedData['type'] = 'close'; - break; - - // ping frame: - case 9: - $decodedData['type'] = 'ping'; - break; - - // pong frame: - case 10: - $decodedData['type'] = 'pong'; - break; - - default: - return false; - break; - } - - if ($payloadLength === 126) { - $mask = substr($data, 4, 4); - $payloadOffset = 8; - $dataLength = bindec(sprintf('%08b', ord($data[2])) . sprintf('%08b', ord($data[3]))) + $payloadOffset; - } elseif ($payloadLength === 127) { - $mask = substr($data, 10, 4); - $payloadOffset = 14; - $tmp = ''; - for ($i = 0; $i < 8; $i++) { - $tmp .= sprintf('%08b', ord($data[$i + 2])); - } - $dataLength = bindec($tmp) + $payloadOffset; - unset($tmp); - } else { - $mask = substr($data, 2, 4); - $payloadOffset = 6; - $dataLength = $payloadLength + $payloadOffset; - } - - if ($isMasked === true) { - for ($i = $payloadOffset; $i < $dataLength; $i++) { - $j = $i - $payloadOffset; - if (isset($data[$i])) { - $unmaskedPayload .= $data[$i] ^ $mask[$j % 4]; - } - } - $decodedData['payload'] = $unmaskedPayload; - } else { - $payloadOffset = $payloadOffset - 4; - $decodedData['payload'] = substr($data, $payloadOffset); - } - - return $decodedData; - } - -} diff --git a/src/vitis/vas/rest/class/vmlib/coffeescript/class.jstocoffee.php b/src/vitis/vas/rest/class/vmlib/coffeescript/class.jstocoffee.php deleted file mode 100755 index f1341a0d..00000000 --- a/src/vitis/vas/rest/class/vmlib/coffeescript/class.jstocoffee.php +++ /dev/null @@ -1,136 +0,0 @@ -<?php -/** - * Dynamically convert coffeescript to javascript. - * - * @author Simon Samtleben <web@lemmingzshadow.net> - */ -include_once 'coffeescript.php'; - -class JsToCoffee -{ - const CACHING = true; - const CACHING_TYPE = 'file'; // @todo support for memcache - - private $_cacheDir = ''; - private $_coffeeDir = array(); - - public function makeJavascript($coffeeFile) - { - if(false === ($coffeeFile = $this->_getCoffeefilePath($coffeeFile))) - { - return false; - } - - return $this->_getJs($coffeeFile); - } - - private function _getJs($coffeeFile) - { - // get file from cache if possible: - if(self::CACHING === true) - { - $coffeeHash = sha1_file($coffeeFile); - if(file_exists($this->_cacheDir . $coffeeHash)) - { - return file_get_contents($this->_cacheDir . $coffeeHash); - } - } - - // file not cached or cache disabled -> covert, cache, return: - $coffee = file_get_contents($coffeeFile); - try - { - $js = CoffeeScript\compile($coffee); - if(self::CACHING === true) - { - $this->_cacheJs($js, $coffeeFile, $coffeeHash); - } - return $js; - } - catch (Exception $e) - { - var_dump($e); - } - - return false; - } - - private function _cacheJs($js, $coffeeFile, $coffeeHash) - { - // save to cache: - file_put_contents($this->_cacheDir . $coffeeHash, $js); - - // register in cache-content and delete possible old version: - if(!file_exists($this->_cacheDir . 'cache_content')) - { - $cacheConent = array(); - file_put_contents($this->_cacheDir . 'cache_content', serialize($cacheConent)); - } - $temp = file_get_contents($this->_cacheDir . 'cache_content'); - $cacheConent = unserialize($temp); - unset($temp); - - if(isset($cacheConent[$coffeeFile])) - { - unlink($this->_cacheDir . $cacheConent[$coffeeFile]); - unset($cacheConent[$coffeeFile]); - } - $cacheConent[$coffeeFile] = $coffeeHash; - file_put_contents($this->_cacheDir . 'cache_content', serialize($cacheConent)); - unset($cacheConent); - } - - private function _getCoffeefilePath($coffeeFile) - { - $coffeeFile = preg_replace('#[^a-z0-9\.]#', '', $coffeeFile); - foreach($this->_coffeeDir as $coffeeDir) - { - if(file_exists($coffeeDir . $coffeeFile)) - { - return $coffeeDir . $coffeeFile; - } - } - return false; - } - - - /** - * Sets cache folder. - * - * @param string $path Path to cache folder. - * @return bool True if cache path could be set. - */ - public function setCacheDir($path) - { - if(file_exists($path) && is_dir($path)) - { - if(substr($path, 0, -1) !== '/') - { - $path = $path . '/'; - } - $this->_cacheDir = $path; - return true; - } - return false; - } - - /** - * Adds a path with is searched for coffeescripts. - * - * @param string $path Path containing coffeescript. - * @return bool True if path was added. - */ - public function setAllowedCoffeeDir($path) - { - if(file_exists($path) && is_dir($path)) - { - if(substr($path, 0, -1) !== '/') - { - $path = $path . '/'; - } - $this->_coffeeDir[] = $path; - return true; - } - return false; - } -} \ No newline at end of file diff --git a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/errors.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/errors.php deleted file mode 100755 index 437657b4..00000000 --- a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/errors.php +++ /dev/null @@ -1,15 +0,0 @@ -<?php - -namespace CoffeeScript; - -class Error extends \Exception -{ - function __construct($message) - { - $this->message = $message; - } -} - -class SyntaxError extends Error {} - -?> diff --git a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/helpers.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/helpers.php deleted file mode 100755 index eb6f9574..00000000 --- a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/helpers.php +++ /dev/null @@ -1,236 +0,0 @@ -<?php - -namespace CoffeeScript; - -function compact(array $array) -{ - $compacted = array(); - - foreach ($array as $k => $v) - { - if ($v) - { - $compacted[] = $v; - } - } - - return $compacted; -} - -function del( & $obj, $key) -{ - $val = NULL; - - if (isset($obj[$key])) - { - $val = $obj[$key]; - unset($obj[$key]); - } - - return $val; -} - -function extend($obj, $properties) -{ - foreach ($properties as $k => $v) - { - $obj->{$k} = $v; - } - - return $obj; -} - -function flatten(array $array) -{ - $flattened = array(); - - foreach ($array as $k => $v) - { - if (is_array($v)) - { - $flattened = array_merge($flattened, flatten($v)); - } - else - { - $flattened[] = $v; - } - } - - return $flattened; -} - -function & last( & $array, $back = 0) -{ - static $NULL; - $i = count($array) - $back - 1; - - if (isset($array[$i])) - { - return $array[$i]; - } - else - { - // Make sure $NULL is really NULL. - $NULL = NULL; - - return $NULL; - } -} - -/** - * In Jison, token tags can be represented simply using strings, whereas with - * ParserGenerator (a port of Lemon) we're stuck using numeric constants for - * everything. - * - * This function maps those string representations to their numeric constants, - * making it easier to port directly from the CoffeeScript source. - */ -function t($name) -{ - static $map = array( - '.' => 'ACCESSOR', - '[' => 'ARRAY_START', - ']' => 'ARRAY_END', - '@' => 'AT_SIGN', - '=>' => 'BOUND_FUNC', - ':' => 'COLON', - ',' => 'COMMA', - '--' => 'DECREMENT', - '=' => 'EQUALS', - '?' => 'EXISTENTIAL', - '?.' => 'EXISTENTIAL_ACCESSOR', - '->' => 'FUNC', - '++' => 'INCREMENT', - '&' => 'LOGIC', - '&&' => 'LOGIC', - '||' => 'LOGIC', - '-' => 'MINUS', - '{' => 'OBJECT_START', - '}' => 'OBJECT_END', - '(' => 'PAREN_START', - ')' => 'PAREN_END', - '+' => 'PLUS', - '::' => 'PROTOTYPE', - '...' => 'RANGE_EXCLUSIVE', - '..' => 'RANGE_INCLUSIVE', - ); - - if (func_num_args() > 1) - { - $name = func_get_args(); - } - - if (is_array($name) || (func_num_args() > 1 && $name = func_get_args())) - { - $tags = array(); - - foreach ($name as $v) - { - $tags[] = t($v); - } - - return $tags; - } - - $name = 'CoffeeScript\Parser::YY_'.(isset($map[$name]) ? $map[$name] : $name); - - // Don't return the original name if there's no matching constant, in some - // cases intermediate token types are created and the value returned by this - // function still needs to be unique. - return defined($name) ? constant($name) : $name; -} - -/** - * Change a CoffeeScript PHP token tag to it's equivalent canonical form (the - * form used in the JavaScript version). - * - * This function is used for testing purposes only. - */ -function t_canonical($token) -{ - static $map = array( - 'ACCESSOR' => '.', - - // These are separate from INDEX_START and INDEX_END. - 'ARRAY_START' => '[', - 'ARRAY_END' => ']', - - 'AT_SIGN' => '@', - 'BOUND_FUNC' => '=>', - 'COLON' => ':', - 'COMMA' => ',', - 'DECREMENT' => '--', - 'EQUALS' => '=', - 'EXISTENTIAL' => '?', - 'EXISTENTIAL_ACCESSOR' => '?.', - 'FUNC' => '->', - 'INCREMENT' => '++', - 'MINUS' => '-', - 'OBJECT_START' => '{', - 'OBJECT_END' => '}', - - // These are separate from CALL_START and CALL_END. - 'PAREN_START' => '(', - 'PAREN_END' => ')', - - 'PLUS' => '+', - 'PROTOTYPE' => '::', - 'RANGE_EXCLUSIVE' => '...', - 'RANGE_INCLUSIVE' => '..' - ); - - if (is_array($token)) - { - if (is_array($token[0])) - { - for ($i = 0; $i < count($token); $i++) - { - $token[$i] = t_canonical($token[$i]); - } - } - else - { - // Single token. - $token[0] = t_canonical($token[0]); - $token[1] = ''.$token[1]; - } - - return $token; - } - else if (is_numeric($token)) - { - $token = substr(Parser::tokenName($token), 3); - } - else if (is_string($token)) - { - // The token type isn't known to the parser, so t() returned a unique - // string to use instead. - $token = substr($token, strlen('CoffeeScript\Parser::YY_')); - } - - return isset($map[$token]) ? $map[$token] : $token; -} - -class Value -{ - function __construct($v) - { - $this->v = $v; - } - - function __toString() - { - return $this->v; - } -} - -/** - * Wrap a primitive with an object, so that properties can be attached to it - * like in JavaScript. - */ -function wrap($v) -{ - return new Value($v); -} - -?> diff --git a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/lexer.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/lexer.php deleted file mode 100755 index 17411c29..00000000 --- a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/lexer.php +++ /dev/null @@ -1,1108 +0,0 @@ -<?php - -namespace CoffeeScript; - -require_once 'errors.php'; -require_once 'helpers.php'; -require_once 'nodes.php'; -require_once 'rewriter.php'; - -/** - * CoffeeScript lexer. For the most part it's directly from the original - * source code, though there are some relatively minor differences in how it - * works with the parser (since we're using Lemon). - */ -class Lexer -{ - static $COFFEE_ALIASES = array( - 'and' => '&&', - 'or' => '||', - 'is' => '==', - 'isnt' => '!=', - 'not' => '!', - 'yes' => 'true', - 'no' => 'false', - 'on' => 'true', - 'off' => 'false' - ); - - static $COFFEE_KEYWORDS = array( - 'by', - 'loop', - 'of', - 'then', - 'undefined', - 'unless', - 'until', - 'when' - ); - - // exports.RESERVED. - static $COFFEE_RESERVED = array(); - - static $JS_KEYWORDS = array( - 'break', - 'catch', - 'class', - 'continue', - 'debugger', - 'delete', - 'do', - 'else', - 'extends', - 'false', - 'finally', - 'for', - 'if', - 'in', - 'instanceof', - 'new', - 'null', - 'this', - 'throw', - 'typeof', - 'return', - 'switch', - 'super', - 'true', - 'try', - 'while', - ); - - // RESERVED. - static $JS_RESERVED = array( - '__bind', - '__extends', - '__hasProp', - '__indexOf', - '__slice', - 'case', - 'const', - 'default', - 'enum', - 'export', - 'function', - 'import', - 'let', - 'native', - 'var', - 'void', - 'with', - ); - - static $JS_FORBIDDEN = array(); - - static $ASSIGNED = '/^\s*@?([$A-Za-z_][$\w\x7f-\x{ffff}]*|[\'"].*[\'"])[^\n\S]*?[:=][^:=>]/u'; - static $CODE = '/^[-=]>/'; - static $COMMENT = '/^###([^#][\s\S]*?)(?:###[^\n\S]*|(?:###)?$)|^(?:\s*#(?!##[^#]).*)+/'; - static $HEREDOC = '/^("""|\'\'\')([\s\S]*?)(?:\n[^\n\S]*)?\1/'; - static $HEREDOC_INDENT = '/\n+([^\n\S]*)/'; - static $HEREDOC_ILLEGAL = '%\*/%'; - static $HEREGEX = '%^/{3}([\s\S]+?)/{3}([imgy]{0,4})(?!\w)%'; - static $HEREGEX_OMIT = '/\s+(?:#.*)?/'; - static $IDENTIFIER = '/^([$A-Za-z_\x7f-\x{ffff}][$\w\x7f-\x{ffff}]*)([^\n\S]*:(?!:))?/u'; - static $JSTOKEN = '/^`[^\\\\`]*(?:\\\\.[^\\\\`]*)*`/'; - static $LINE_CONTINUER = '/^\s*(?:,|\??\.(?![.\d])|::)/'; - static $MULTI_DENT = '/^(?:\n[^\n\S]*)+/'; - static $MULTILINER = '/\n/'; - static $NO_NEWLINE = '#^(?:[-+*&|/%=<>!.\\\\][<>=&|]*|and|or|is(?:nt)?|n(?:ot|ew)|delete|typeof|instanceof)$#'; - static $NUMBER = '/^0x[\da-f]+|^(?:\d+(\.\d+)?|\.\d+)(?:e[+-]?\d+)?/i'; - static $OPERATOR = '#^(?:[-=]>|[-+*/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>])\2=?|\?\.|\.{2,3})#'; - static $REGEX = '%^/(?![\s=])[^[/\n\\\\]*(?:(?:\\\\[\s\S]|\[[^\]\n\\\\]*(?:\\\\[\s\S][^\]\n\\\\]*)*\])[^[/\n\\\\]*)*/[imgy]{0,4}(?!\w)%'; - static $SIMPLESTR = '/^\'[^\\\\\']*(?:\\\\.[^\\\\\']*)*\'/'; - static $TRAILING_SPACES = '/\s+$/'; - static $WHITESPACE = '/^[^\n\S]+/'; - - static $BOOL = array('TRUE', 'FALSE', 'NULL', 'UNDEFINED'); - static $CALLABLE = array('IDENTIFIER', 'STRING', 'REGEX', ')', ']', '}', '?', '::', '@', 'THIS', 'SUPER'); - static $COMPARE = array('==', '!=', '<', '>', '<=', '>='); - static $COMPOUND_ASSIGN = array('-=', '+=', '/=', '*=', '%=', '||=', '&&=', '?=', '<<=', '>>=', '>>>=', '&=', '^=', '|=' ); - static $INDEXABLE = array('NUMBER', 'BOOL'); - static $LINE_BREAK = array('INDENT', 'OUTDENT', 'TERMINATOR'); - static $LOGIC = array('&&', '||', '&', '|', '^'); - static $MATH = array('*', '/', '%'); - static $NOT_REGEX = array('NUMBER', 'REGEX', 'BOOL', '++', '--', ']'); - static $NOT_SPACED_REGEX = array(')', '}', 'THIS', 'IDENTIFIER', 'STRING'); - static $RELATION = array('IN', 'OF', 'INSTANCEOF'); - static $SHIFT = array('<<', '>>', '>>>'); - static $UNARY = array('!', '~', 'NEW', 'TYPEOF', 'DELETE', 'DO'); - - function __construct($code, $options) - { - if (preg_match(self::$WHITESPACE, $code)) - { - $code = "\n{$code}"; - } - - $code = preg_replace(self::$TRAILING_SPACES, '', str_replace("\r", '', $code)); - - $options = array_merge(array( - 'indent' => 0, - 'index' => 0, - 'line' => 0, - 'rewrite' => TRUE - ), - $options); - - $this->code = $code; - $this->chunk = $code; - $this->indent = 0; - $this->indents = array(); - $this->indebt = 0; - $this->index = $options['index']; - $this->length = strlen($this->code); - $this->line = $options['line']; - $this->outdebt = 0; - $this->options = $options; - $this->tokens = array(); - } - - function assignment_error() - { - throw new SyntaxError('Reserved word "'.$this->value().'" on line '.($this->line + 1).' can\'t be assigned'); - } - - function balanced_string($str, $end) - { - $stack = array($end); - $prev = NULL; - - for ($i = 1; $i < strlen($str); $i++) - { - switch ($letter = $str{$i}) - { - case '\\': - $i++; - continue 2; - - case $end: - array_pop($stack); - - if ( ! count($stack)) - { - return substr($str, 0, $i + 1); - } - - $end = $stack[count($stack) - 1]; - continue 2; - } - - if ($end === '}' && ($letter === '"' || $letter === '\'')) - { - $stack[] = $end = $letter; - } - else if ($end === '}' && $letter === '{') - { - $stack[] = $end = '}'; - } - else if ($end === '"' && $prev === '#' && $letter === '{') - { - $stack[] = $end = '}'; - } - - $prev = $letter; - } - - throw new Error('missing '.array_pop($stack).' starting on line '.($this->line + 1)); - } - - function close_indentation() - { - $this->outdent_token($this->indent); - } - - function comment_token() - { - if ( ! preg_match(self::$COMMENT, $this->chunk, $match)) - { - return 0; - } - - $comment = $match[0]; - - if (isset($match[1]) && ($here = $match[1])) - { - $this->token('HERECOMMENT', $this->sanitize_heredoc($here, array( - 'herecomment' => TRUE, - 'indent' => str_pad('', $this->indent) - ))); - - $this->token('TERMINATOR', "\n"); - } - - $this->line += substr_count($comment, "\n"); - - return strlen($comment); - } - - function escape_lines($str, $heredoc = NULL) - { - return preg_replace(self::$MULTILINER, $heredoc ? '\\n' : '', $str); - } - - function heredoc_token() - { - if ( ! preg_match(self::$HEREDOC, $this->chunk, $match)) - { - return 0; - } - - $heredoc = $match[0]; - $quote = $heredoc{0}; - $doc = $this->sanitize_heredoc($match[2], array('quote' => $quote, 'indent' => NULL)); - - if ($quote === '"' && strpos($doc, '#{') !== FALSE) - { - $this->interpolate_string($doc, array('heredoc' => TRUE)); - } - else - { - $this->token('STRING', $this->make_string($doc, $quote, TRUE)); - } - - $this->line += substr_count($heredoc, "\n"); - - return strlen($heredoc); - } - - function heregex_token($match) - { - list($heregex, $body, $flags) = $match; - - if (strpos($body, '#{') === FALSE) - { - $re = preg_replace(self::$HEREGEX_OMIT, '', $body); - $re = preg_replace('/\//', '\\/', $re); - - $this->token('REGEX', '/'.($re ? $re : '(?:)').'/'.$flags); - - return strlen($heregex); - } - - $this->token('IDENTIFIER', 'RegExp'); - $this->tokens[] = array(t('CALL_START'), '('); - - $tokens = array(); - - foreach ($this->interpolate_string($body, array('regex' => TRUE)) as $token) - { - list($tag, $value) = $token; - - if ($tag === 'TOKENS') - { - $tokens = array_merge($tokens, (array) $value); - } - else - { - if ( ! ($value = preg_replace(self::$HEREGEX_OMIT, '', $value))) - { - continue; - } - - $value = preg_replace('/\\\\/', '\\\\\\\\', $value); - $tokens[] = array(t('STRING'), $this->make_string($value, '"', TRUE)); - } - - $tokens[] = array(t('+'), '+'); - } - - array_pop($tokens); - - if ( ! (isset($tokens[0]) && $tokens[0][0] === 'STRING')) - { - array_push($this->tokens, array(t('STRING'), '""'), array(t('+'), '+')); - } - - $this->tokens = array_merge($this->tokens, $tokens); - - if ($flags) - { - array_push($this->tokens, array(t(','), ','), array(t('STRING'), "\"{$flags}\"")); - } - - $this->token(')', ')'); - - return strlen($heregex); - } - - function identifier_error($word) - { - throw new SyntaxError('Reserved word "'.$word.'" on line '.($this->line + 1)); - } - - function identifier_token() - { - if ( ! preg_match(self::$IDENTIFIER, $this->chunk, $match)) - { - return 0; - } - - list($input, $id) = $match; - - $colon = isset($match[2]) ? $match[2] : NULL; - - if ($id === 'own' && $this->tag() === t('FOR')) - { - $this->token('OWN', $id); - - return strlen($id); - } - - $forced_identifier = $colon || ($prev = last($this->tokens)) && - (in_array($prev[0], t('.', '?.', '::')) || - ( ! (isset($prev['spaced']) && $prev['spaced']) && $prev[0] === t('@'))); - - $tag = 'IDENTIFIER'; - - if (in_array($id, self::$JS_KEYWORDS) || ! $forced_identifier && in_array($id, self::$COFFEE_KEYWORDS)) - { - $tag = strtoupper($id); - - if ($tag === 'WHEN' && in_array($this->tag(), t(self::$LINE_BREAK))) - { - $tag = 'LEADING_WHEN'; - } - else if ($tag === 'FOR') - { - $this->seen_for = TRUE; - } - else if ($tag === 'UNLESS') - { - $tag = 'IF'; - } - else if (in_array($tag, self::$UNARY)) - { - $tag = 'UNARY'; - } - else if (in_array($tag, self::$RELATION)) - { - if ($tag !== 'INSTANCEOF' && (isset($this->seen_for) && $this->seen_for)) - { - $tag = 'FOR'.$tag; - $this->seen_for = FALSE; - } - else - { - $tag = 'RELATION'; - - if ($this->value() === '!') - { - array_pop($this->tokens); - $id = '!'. $id; - } - } - } - } - - $reserved = FALSE; - - if (in_array($id, self::$JS_FORBIDDEN, TRUE)) - { - if ($forced_identifier) - { - // TODO: Doing this seems to work just fine. Sometime in the future I - // will take out the nastiness of attaching properties to the token - // rather than directly to the value like below. - $id = wrap($id); - $id->reserved = $reserved = TRUE; - - $tag = 'IDENTIFIER'; - } - else if (in_array($id, self::$JS_RESERVED, TRUE)) - { - $this->identifier_error($id); - } - } - - if ( ! $forced_identifier) - { - if (isset(self::$COFFEE_ALIASES[$id])) - { - $id = self::$COFFEE_ALIASES[$id]; - } - - $map = array( - 'UNARY' => array('!'), - 'COMPARE' => array('==', '!='), - 'LOGIC' => array('&&', '||'), - 'BOOL' => array('true', 'false', 'null', 'undefined'), - 'STATEMENT' => array('break', 'continue', 'debugger') - ); - - foreach ($map as $k => $v) - { - if (in_array($id, $v)) - { - $tag = $k; - break; - } - } - } - - $this->token($tag, $id, array('reserved' => $reserved)); - - if ($colon) - { - $this->token(':', ':'); - } - - return strlen($input); - } - - /** - * Initialize some static variables (called at the end of this file). - */ - static function init() - { - self::$COFFEE_KEYWORDS = array_merge(self::$COFFEE_KEYWORDS, array_keys(self::$COFFEE_ALIASES)); - self::$COFFEE_RESERVED = array_merge(array_merge(self::$JS_RESERVED, self::$JS_KEYWORDS), self::$COFFEE_KEYWORDS); - self::$JS_FORBIDDEN = array_merge(self::$JS_KEYWORDS, self::$JS_RESERVED); - self::$INDEXABLE = array_merge(self::$CALLABLE, self::$INDEXABLE); - self::$NOT_SPACED_REGEX = array_merge(self::$NOT_REGEX, self::$NOT_SPACED_REGEX); - } - - function interpolate_string($str, array $options = array()) // #{0} - { - $options = array_merge(array( - 'heredoc' => '', - 'regex' => NULL - ), - $options); - - $tokens = array(); - $pi = 0; - $i = -1; - - while ( isset($str{++$i}) ) - { - $letter = $str{$i}; - - if ($letter === '\\') - { - $i++; - continue; - } - - if ( ! ($letter === '#' && $str{$i + 1} === '{' && - ($expr = $this->balanced_string(substr($str, $i + 1), '}'))) ) - { - continue; - } - - if ($pi < $i) - { - $tokens[] = array('NEOSTRING', substr($str, $pi, $i - $pi)); - } - - $inner = substr($expr, 1, -1); - - if (strlen($inner)) - { - $lexer = new Lexer($inner, array( - 'line' => $this->line, - 'rewrite' => FALSE, - )); - - $nested = $lexer->tokenize(); - - array_pop($nested); - - if (isset($nested[0]) && $nested[0][0] === t('TERMINATOR')) - { - array_shift($nested); - } - - if ( ($length = count($nested)) ) - { - if ($length > 1) - { - array_unshift($nested, array(t('('), '(')); - $nested[] = array(t(')'), ')'); - } - - $tokens[] = array('TOKENS', $nested); - } - } - - $i += strlen($expr); - $pi = $i + 1; - } - - if ($i > $pi && $pi < strlen($str)) - { - $tokens[] = array('NEOSTRING', substr($str, $pi)); - } - - if ($options['regex']) - { - return $tokens; - } - - if ( ! count($tokens)) - { - return $this->token('STRING', '""'); - } - - if ( ! ($tokens[0][0] === 'NEOSTRING')) - { - array_unshift($tokens, array('', '')); - } - - if ( ($interpolated = count($tokens) > 1) ) - { - $this->token('(', '('); - } - - for ($i = 0; $i < count($tokens); $i++) - { - list($tag, $value) = $tokens[$i]; - - if ($i) - { - $this->token('+', '+'); - } - - if ($tag === 'TOKENS') - { - $this->tokens = array_merge($this->tokens, $value); - } - else - { - $this->token('STRING', $this->make_string($value, '"', $options['heredoc'])); - } - } - - if ($interpolated) - { - $this->token(')', ')'); - } - - return $tokens; - } - - function js_token() - { - if ( ! ($this->chunk{0} === '`' && preg_match(self::$JSTOKEN, $this->chunk, $match))) - { - return 0; - } - - $this->token('JS', substr($script = $match[0], 1, -1)); - - return strlen($script); - } - - function line_token() - { - if ( ! preg_match(self::$MULTI_DENT, $this->chunk, $match)) - { - return 0; - } - - $indent = $match[0]; - $this->line += substr_count($indent, "\n"); - - // $prev = & last($this->tokens, 1); - $size = strlen($indent) - 1 - strrpos($indent, "\n"); - - $no_newlines = $this->unfinished(); - - if (($size - $this->indebt) === $this->indent) - { - if ($no_newlines) - { - $this->suppress_newlines(); - } - else - { - $this->newline_token(); - } - - return strlen($indent); - } - - if ($size > $this->indent) - { - if ($no_newlines) - { - $this->indebt = $size - $this->indent; - $this->suppress_newlines(); - - return strlen($indent); - } - - $diff = $size - $this->indent + $this->outdebt; - - $this->token('INDENT', $diff); - $this->indents[] = $diff; - $this->outdebt = $this->indebt = 0; - } - else - { - $this->indebt = 0; - $this->outdent_token($this->indent - $size, $no_newlines); - } - - $this->indent = $size; - - return strlen($indent); - } - - function literal_token() - { - if (preg_match(self::$OPERATOR, $this->chunk, $match)) - { - list($value) = $match; - - if (preg_match(self::$CODE, $value)) - { - $this->tag_parameters(); - } - } - else - { - $value = $this->chunk{0}; - } - - $tag = $value; - $prev = & last($this->tokens); - - if ($value === '=' && $prev) - { - if (isset($prev['reserved']) && $prev['reserved'] && in_array($prev[1], t(self::$JS_FORBIDDEN))) - { - $this->assignment_error(); - } - - if (in_array($prev[1], array('||', '&&'))) - { - $prev[0] = t('COMPOUND_ASSIGN'); - $prev[1] .= '='; - - return 1; // strlen($value); - } - } - - $map = array( - 'TERMINATOR' => array(';'), - 'MATH' => self::$MATH, - 'COMPARE' => self::$COMPARE, - 'COMPOUND_ASSIGN' => self::$COMPOUND_ASSIGN, - 'UNARY' => self::$UNARY, - 'SHIFT' => self::$SHIFT - ); - - $mapped = FALSE; - - foreach ($map as $k => $v) - { - if (in_array($value, $v)) - { - $tag = $k; - $mapped = TRUE; - - break; - } - } - - if ( ! $mapped) - { - if (in_array($value, self::$LOGIC) || $value === '?' && ($prev && isset($prev['spaced']) && $prev['spaced'])) - { - $tag = 'LOGIC'; - } - else if ($prev && ! (isset($prev['spaced']) && $prev['spaced'])) - { - if ($value === '(' && in_array($prev[0], t(self::$CALLABLE))) - { - if ($prev[0] === t('?')) - { - $prev[0] = t('FUNC_EXIST'); - } - - $tag = 'CALL_START'; - } - else if ($value === '[' && in_array($prev[0], t(self::$INDEXABLE))) - { - $tag = 'INDEX_START'; - - if ($prev[0] === t('?')) - { - $prev[0] = t('INDEX_SOAK'); - } - else if ($prev[0] === t('::')) - { - $prev[0] = t('INDEX_PROTO'); - } - } - } - } - - $this->token($tag, $value); - - return strlen($value); - } - - function make_string($body, $quote, $heredoc = NULL) - { - if ( ! $body) - { - return $quote.$quote; - } - - $body = preg_replace_callback('/\\\\([\s\S])/', function($match) use ($quote) - { - $contents = $match[1]; - - if (in_array($contents, array("\n", $quote))) - { - return $contents; - } - - return $match[0]; - }, - $body); - - $body = preg_replace('/'.$quote.'/', '\\\\$0', $body); - - return $quote.$this->escape_lines($body, $heredoc).$quote; - } - - function newline_token() - { - if ($this->tag() !== t('TERMINATOR')) - { - $this->token('TERMINATOR', "\n"); - } - } - - function number_token() - { - if ( ! preg_match(self::$NUMBER, $this->chunk, $match)) - { - return 0; - } - - $this->token('NUMBER', $number = $match[0]); - - return strlen($number); - } - - function outdent_token($move_out, $no_newlines = FALSE, $close = NULL) - { - while ($move_out > 0) - { - $len = count($this->indents) - 1; - - if ( ! isset($this->indents[$len])) - { - $move_out = 0; - } - else if ($this->indents[$len] === $this->outdebt) - { - $move_out -= $this->outdebt; - $this->outdebt = 0; - } - else if ($this->indents[$len] < $this->outdebt) - { - $this->outdebt -= $this->indents[$len]; - $move_out -= $this->indents[$len]; - } - else - { - $dent = array_pop($this->indents) - $this->outdebt; - $move_out -= $dent; - $this->outdebt = 0; - $this->token('OUTDENT', $dent); - } - } - - if (isset($dent) && $dent) - { - $this->outdebt -= $move_out; - } - - if ( ! ($this->tag() === t('TERMINATOR') || $no_newlines)) - { - $this->token('TERMINATOR', "\n"); - } - - return $this; - } - - function regex_token() - { - if ($this->chunk{0} !== '/') - { - return 0; - } - - if (preg_match(self::$HEREGEX, $this->chunk, $match)) - { - $length = $this->heregex_token($match); - - // This seems to be broken in the JavaScript compiler... - // $this->line += substr_count($match[0], "\n"); - - return $length; - } - - $prev = last($this->tokens); - - if ($prev) - { - if (in_array($prev[0], t((isset($prev['spaced']) && $prev['spaced']) ? - self::$NOT_REGEX : self::$NOT_SPACED_REGEX))) - { - return 0; - } - } - - if ( ! preg_match(self::$REGEX, $this->chunk, $match)) - { - return 0; - } - - $regex = $match[0]; - - $this->token('REGEX', $regex === '//' ? '/(?:)/' : $regex); - - return strlen($regex); - } - - function sanitize_heredoc($doc, array $options) - { - $herecomment = isset($options['herecomment']) ? $options['herecomment'] : NULL; - $indent = isset($options['indent']) ? $options['indent'] : NULL; - - if ($herecomment) - { - if (preg_match(self::$HEREDOC_ILLEGAL, $doc)) - { - throw new Error('block comment cannot contain \"*/\", starting on line '.($line + 1)); - } - - if (strpos($doc, "\n") == 0) // No match or 0 - { - return $doc; - } - } - else - { - $offset = 0; - - while (preg_match(self::$HEREDOC_INDENT, $doc, $match, PREG_OFFSET_CAPTURE, $offset)) - { - $attempt = $match[1][0]; - $offset = strlen($match[0][0]) + $match[0][1]; - - if ( is_null($indent) || (strlen($indent) > strlen($attempt) && strlen($attempt) > 0)) - { - $indent = $attempt; - } - } - } - - if ($indent) - { - $doc = preg_replace('/\n'.$indent.'/', "\n", $doc); - } - - if ( ! $herecomment) - { - $doc = preg_replace('/^\n/', '', $doc); - } - - return $doc; - } - - function string_token() - { - switch ($this->chunk{0}) - { - case "'": - if ( ! preg_match(self::$SIMPLESTR, $this->chunk, $match)) - { - return 0; - } - - $this->token('STRING', preg_replace(self::$MULTILINER, "\\\n", $string = $match[0])); - break; - - case '"': - if ( ! ($string = $this->balanced_string($this->chunk, '"'))) - { - return 0; - } - - if (strpos($string, '#{', 1) > 0) - { - $this->interpolate_string(substr($string, 1, -1)); - } - else - { - $this->token('STRING', $this->escape_lines($string)); - } - - break; - - default: - return 0; - } - - $this->line += substr_count($string, "\n"); - - return strlen($string); - } - - function suppress_newlines() - { - if ($this->value() === '\\') - { - array_pop($this->tokens); - } - } - - function tag($index = 0, $tag = NULL) - { - $token = & last($this->tokens, $index); - - if ( ! is_null($tag)) - { - $token[0] = $tag; - } - - return $token[0]; - } - - function tag_parameters() - { - if ($this->tag() !== t(')')) - { - return $this; - } - - $stack = array(); - $tokens = &$this->tokens; - - $i = count($tokens); - $tokens[--$i][0] = t('PARAM_END'); - - while ( ($tok = &$tokens[--$i]) ) - { - if ($tok[0] === t(')')) - { - $stack[] = $tok; - } - else if (in_array($tok[0], t('(', 'CALL_START'))) - { - if (count($stack)) - { - array_pop($stack); - } - else if ($tok[0] === t('(')) - { - $tok[0] = t('PARAM_START'); - return $this; - } - } - } - - return $this; - } - - function token($tag, $value = NULL, $props = array()) - { - if ( ! is_numeric($tag)) - { - $tag = t($tag); - } - - $token = array($tag, $value, $this->line); - - if ($props) - { - foreach ($props as $k => $v) - { - $token[$k] = $v; - } - } - - return ($this->tokens[] = $token); - } - - function tokenize() - { - while ( ($this->chunk = substr($this->code, $this->index)) !== FALSE ) - { - $types = array('identifier', 'comment', 'whitespace', 'line', 'heredoc', - 'string', 'number', 'regex', 'js', 'literal'); - - foreach ($types as $type) - { - if ( ($d = $this->{$type.'_token'}()) ) - { - $this->index += $d; - break; - } - } - } - - $this->close_indentation(); - - if ($this->options['rewrite']) - { - $rewriter = new Rewriter($this->tokens); - $this->tokens = $rewriter->rewrite(); - } - - return $this->tokens; - } - - function value($index = 0, $value = NULL) - { - $token = & last($this->tokens, $index); - - if ( ! is_null($value)) - { - $token[1] = $value; - } - - return $token[1]; - } - - function unfinished() - { - return - preg_match(self::$LINE_CONTINUER, $this->chunk) || - ($prev = last($this->tokens, 1)) && - ($prev[0] !== t('.')) && - ($value = $this->value()) && - // ( ! (isset($value->reserved) && $value->reserved)) && - ( ! (isset($prev['reserved']) && $prev['reserved'])) && - preg_match(self::$NO_NEWLINE, $value) && - ( ! preg_match(self::$CODE, $value)) && - ( ! preg_match(self::$ASSIGNED, $this->chunk)); - } - - function whitespace_token() - { - if ( ! (preg_match(self::$WHITESPACE, $this->chunk, $match) || ($nline = ($this->chunk{0} === "\n")))) - { - return 0; - } - - $prev = & last($this->tokens); - - if ($prev) - { - $prev[$match ? 'spaced' : 'newLine'] = TRUE; - } - - return $match ? strlen($match[0]) : 0; - } -} - -Lexer::init(); - -?> diff --git a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes.php deleted file mode 100755 index 70e8769b..00000000 --- a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes.php +++ /dev/null @@ -1,137 +0,0 @@ -<?php - -namespace CoffeeScript; - -require_once 'helpers.php'; -require_once 'scope.php'; - -define('LEVEL_TOP', 1); -define('LEVEL_PAREN', 2); -define('LEVEL_LIST', 3); -define('LEVEL_COND', 4); -define('LEVEL_OP', 5); -define('LEVEL_ACCESS', 6); - -define('TAB', ' '); - -define('IDENTIFIER', '/^[$A-Za-z_\x7f-\x{ffff}][$\w\x7f-\x{ffff}]*$/u'); -define('IS_STRING', '/^[\'"]/'); -define('SIMPLENUM', '/^[+-]?\d+$/'); - -$UTILITIES = array( - 'hasProp' => 'Object.prototype.hasOwnProperty', - 'slice' => 'Array.prototype.slice' -); - -$UTILITIES['bind'] = <<<'BIND' -function(fn, me){ return function(){ return fn.apply(me, arguments); }; } -BIND; - -$UTILITIES['extends'] = <<<'EXTENDS' -function(child, parent) { - for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } - function ctor() { this.constructor = child; } - ctor.prototype = parent.prototype; - child.prototype = new ctor; - child.__super__ = parent.prototype; - return child; -} -EXTENDS; - -$UTILITIES['indexOf'] = <<<'INDEXOF' -Array.prototype.indexOf || function(item) { - for (var i = 0, l = this.length; i < l; i++) { - if (this[i] === item) return i; - } - return -1; -} -INDEXOF; - -function multident($code, $tab) -{ - return preg_replace('/\n/', "\n{$tab}", $code); -} - -function unfold_soak($options, $parent, $name) -{ - if ( ! (isset($parent->{$name}) && $parent->{$name} && $ifn = $parent->{$name}->unfold_soak($options))) - { - return; - } - - $parent->{$name} = $ifn->body; - $ifn->body = yy('Value', $parent); - - return $ifn; -} - -function utility($name) -{ - global $UTILITIES; - - Scope::$root->assign($ref = "__$name", $UTILITIES[$name]); - - return $ref; -} - -/** - * Since PHP can't return values from __construct, and some of the node - * classes rely heavily on this feature in JavaScript, we use this function - * instead of the new keyword to instantiate and implicitly call the - * constructor. - */ -function yy($type) -{ - $args = func_get_args(); - array_shift($args); - - $type = __NAMESPACE__.'\yy_'.$type; - - $inst = new $type; - $inst = call_user_func_array(array($inst, 'constructor'), $args); - - return $inst; -} - -// Base class. -require_once 'nodes/base.php'; - -$nodes = array( - 'access', - 'arr', - 'assign', - 'block', - 'call', - 'class', - 'closure', - 'code', - 'comment', - 'existence', - 'extends', - 'for', - 'if', - 'in', - 'index', - 'literal', - 'obj', - 'op', - 'param', - 'parens', - 'push', - 'range', - 'return', - 'slice', - 'splat', - 'switch', - 'throw', - 'try', - 'value', - 'while' -); - -foreach ($nodes as $node) -{ - require_once "nodes/{$node}.php"; -} - -?> diff --git a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/access.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/access.php deleted file mode 100755 index a98d2ae4..00000000 --- a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/access.php +++ /dev/null @@ -1,32 +0,0 @@ -<?php - -namespace CoffeeScript; - -class yy_Access extends yy_Base -{ - public $children = array('name'); - - function constructor($name, $tag = NULL) - { - $this->name = $name; - $this->name->as_key = TRUE; - - $this->proto = $tag === 'proto' ? '.prototype' : ''; - $this->soak = $tag === 'soak'; - - return $this; - } - - function compile($options, $level = NULL) - { - $name = $this->name->compile($options); - return $this->proto.(preg_match(IS_STRING, $name) ? "[{$name}]" : ".{$name}"); - } - - function is_complex() - { - return FALSE; - } -} - -?> diff --git a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/arr.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/arr.php deleted file mode 100755 index cb376568..00000000 --- a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/arr.php +++ /dev/null @@ -1,69 +0,0 @@ -<?php - -namespace CoffeeScript; - -class yy_Arr extends yy_Base -{ - public $children = array('objects'); - - function constructor($objs) - { - $this->objects = $objs ? $objs : array(); - - return $this; - } - - function assigns($name) - { - foreach ($this->objects as $obj) - { - if ($obj->assigns($name)) - { - return TRUE; - } - } - - return FALSE; - } - - function compile_node($options) - { - if ( ! count($options)) - { - return '[]'; - } - - $options['indent'] .= TAB; - $objs = $this->filter_implicit_objects($this->objects); - - if (($code = yy_Splat::compile_splatted_array($options, $objs))) - { - return $code; - } - - $code = array(); - - foreach ($objs as $obj) - { - $code[] = $obj->compile($options); - } - - $code = implode(', ', $code); - - if (strpos($code, "\n") !== FALSE) - { - return "[\n{$options['indent']}{$code}\n{$this->tab}]"; - } - else - { - return "[{$code}]"; - } - } - - function filter_implicit_objects() - { - return call_user_func_array(array(yy('Call'), __FUNCTION__), func_get_args()); - } -} - -?> diff --git a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/assign.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/assign.php deleted file mode 100755 index e7d2e2ca..00000000 --- a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/assign.php +++ /dev/null @@ -1,300 +0,0 @@ -<?php - -namespace CoffeeScript; - -class yy_Assign extends yy_Base -{ - public $children = array('variable', 'value'); - - const METHOD_DEF = '/^(?:(\S+)\.prototype\.|\S+?)?\b([$A-Za-z_][$\w\x7f-\x{ffff}]*)$/u'; - - function constructor($variable, $value, $context = '', $options = NULL) - { - $this->variable = $variable; - $this->value = $value; - $this->context = $context; - $this->param = $options ? $options['param'] : NULL; - - return $this; - } - - function assigns($name) - { - if ($this->context === 'object') - { - return $this->value->assigns($name); - } - else - { - return $this->variable->assigns($name); - } - } - - function compile_conditional($options) - { - list($left, $rite) = $this->variable->cache_reference($options); - $tmp = yy('Op', substr($this->context, 0, -1), $left, yy('Assign', $rite, $this->value, '=')); - - return $tmp->compile($options); - } - - function compile_node($options) - { - if (($is_value = ($this->variable instanceof yy_Value))) - { - if ($this->variable->is_array() || $this->variable->is_object()) - { - return $this->compile_pattern_match($options); - } - - if ($this->variable->is_splice()) - { - return $this->compile_splice($options); - } - - if (in_array($this->context, array('||=', '&&=', '?='), TRUE)) - { - return $this->compile_conditional($options); - } - } - - $name = $this->variable->compile($options, LEVEL_LIST); - - if ( ! ($this->context || $this->variable->is_assignable())) - { - throw new SyntaxError('"'.$this->variable->compile($options).'" cannot be assigned.'); - } - - if ( ! ($this->context || $is_value && - ((isset($this->variable->namespaced) && $this->variable->namespaced) || - $this->variable->has_properties()))) - { - if ($this->param) - { - $options['scope']->add($name, 'var'); - } - else - { - $options['scope']->find($name); - } - } - - if ($this->value instanceof yy_Code && preg_match(self::METHOD_DEF, $name, $match)) - { - $this->value->name = $match[2]; - - if (isset($match[1]) && $match[1]) - { - $this->value->klass = $match[1]; - } - } - - $val = $this->value->compile($options, LEVEL_LIST); - - if ($this->context === 'object') - { - return "{$name}: {$val}"; - } - - $val = $name.' '.($this->context ? $this->context : '=').' '.$val; - - return $options['level'] <= LEVEL_LIST ? $val : "({$val})"; - } - - function compile_pattern_match($options) - { - $top = $options['level'] === LEVEL_TOP; - $value = $this->value; - $objects = $this->variable->base->objects; - - if ( ! ($olen = count($objects))) - { - $code = $value->compile($options); - return $options['level'] >= LEVEL_OP ? "({$code})" : $code; - } - - $is_object = $this->variable->is_object(); - - if ($top && $olen === 1 && ! (($obj = $objects[0]) instanceof yy_Splat)) - { - if ($obj instanceof yy_Assign) - { - $idx = $obj->variable->base; - $obj = $obj->value; - } - else - { - if ($obj->base instanceof yy_Parens) - { - $tmp = yy('Value', $obj->unwrap_all()); - list($obj, $idx) = $tmp->cache_reference($options); - } - else - { - if ($is_object) - { - $idx = $obj->this ? $obj->properties[0]->name : $obj; - } - else - { - $idx = yy('Literal', 0); - } - } - } - - $acc = preg_match(IDENTIFIER, $idx->unwrap()->value); - $value = yy('Value', $value); - - if ($acc) - { - $value->properties[] = yy('Access', $idx); - } - else - { - $value->properties[] = yy('Index', $idx); - } - - $tmp = yy('Assign', $obj, $value); - - return $tmp->compile($options); - } - - $vvar = $value->compile($options, LEVEL_LIST); - $assigns = array(); - $splat = FALSE; - - if ( ! preg_match(IDENTIFIER, $vvar) || $this->variable->assigns($vvar)) - { - $assigns[] = ($ref = $options['scope']->free_variable('ref')).' = '.$vvar; - $vvar = $ref; - } - - foreach ($objects as $i => $obj) - { - $idx = $i; - - if ($is_object) - { - if ($obj instanceof yy_Assign) - { - $idx = $obj->variable->base; - $obj = $obj->value; - } - else - { - if ($obj->base instanceof yy_Parens) - { - $tmp = yy('Value', $obj->unwrap_all()); - list($obj, $idx) = $tmp->cache_reference($options); - } - else - { - $idx = $obj->this ? $obj->properties[0]->name : $obj; - } - } - } - - if ( ! $splat && ($obj instanceof yy_Splat)) - { - $val = "{$olen} <= {$vvar}.length ? ".utility('slice').".call({$vvar}, {$i}"; - $ivar = 'undefined'; - - if (($rest = $olen - $i - 1)) - { - $ivar = $options['scope']->free_variable('i'); - $val .= ", {$ivar} = {$vvar}.length - {$rest}) : ({$ivar} = {$i}, [])"; - } - else - { - $val .= ') : []'; - } - - $val = yy('Literal', $val); - $splat = "{$ivar}++"; - } - else - { - if ($obj instanceof yy_Splat) - { - $obj = $obj->name->compile($options); - throw SyntaxError("multiple splats are disallowed in an assignment: {$obj} ..."); - } - - if (is_numeric($idx)) - { - $idx = yy('Literal', $splat ? $splat : $idx); - $acc = FALSE; - } - else - { - $acc = $is_object ? preg_match(IDENTIFIER, $idx->unwrap()->value) : 0; - } - - $val = yy('Value', yy('Literal', $vvar), array($acc ? yy('Access', $idx) : yy('Index', $idx))); - } - - $tmp = yy('Assign', $obj, $val, NULL, array('param' => $this->param)); - $assigns[] = $tmp->compile($options, LEVEL_TOP); - } - - if ( ! $top) - { - $assigns[] = $vvar; - } - - $code = implode(', ', $assigns); - - return $options['level'] < LEVEL_LIST ? $code : "({$code})"; - } - - function compile_splice($options) - { - $tmp = array_pop($this->variable->properties); - - $from = $tmp->range->from; - $to = $tmp->range->to; - $exclusive = $tmp->range->exclusive; - - $name = $this->variable->compile($options); - - list($from_decl, $from_ref) = $from ? $from->cache($options, LEVEL_OP) : array('0', '0'); - - if ($to) - { - if (($from && $from->is_simple_number()) && $to->is_simple_number()) - { - $to = intval($to->compile($options)) - intval($from_ref); - - if ( ! $exclusive) - { - $to++; - } - } - else - { - $to = $to->compile($options).' - '. $from_ref; - - if ( ! $exclusive) - { - $to .= ' + 1'; - } - } - } - else - { - $to = '9e9'; - } - - list($val_def, $val_ref) = $this->value->cache($options, LEVEL_LIST); - - $code = "[].splice.apply({$name}, [{$from_decl}, {$to}].concat({$val_def})), {$val_ref}"; - return $options['level'] > LEVEL_TOP ? "({$code})" : $code; - } - - function unfold_soak($options) - { - return unfold_soak($options, $this, 'variable'); - } -} - -?> diff --git a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/base.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/base.php deleted file mode 100755 index 05b570eb..00000000 --- a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/base.php +++ /dev/null @@ -1,279 +0,0 @@ -<?php - -namespace CoffeeScript; - -class yy_Base -{ - public $as_key = FALSE; - public $assigns = FALSE; - public $children = array(); - public $ctor = NULL; - public $exclusive = NULL; - public $expression = NULL; - public $from = NULL; - public $front = NULL; - public $namespaced = FALSE; - public $negated = FALSE; - public $no_return = FALSE; - public $proto = FALSE; - public $soak = FALSE; - public $this = NULL; - public $to = NULL; - - function __construct() {} - - function constructor() { return $this; } - - function __toString() - { - return ''.$this->to_string(); - } - - function cache($options, $level = NULL, $reused = NULL) - { - if ( ! $this->is_complex()) - { - $ref = $level ? $this->compile($options, $level) : $this; - return array($ref, $ref); - } - else - { - $ref = yy('Literal', $reused ? $reused : $options['scope']->free_variable('ref')); - $sub = yy('Assign', $ref, $this); - - if ($level) - { - return array($sub->compile($options, $level), $ref->value); - } - else - { - return array($sub, $ref); - } - } - } - - function compile($options, $level = NULL) - { - if ($level) - { - $options['level'] = $level; - } - - if ( ! ($node = $this->unfold_soak($options))) - { - $node = $this; - } - - $node->tab = $options['indent']; - - if ($options['level'] === LEVEL_TOP || ! $node->is_statement($options)) - { - return $node->compile_node($options); - } - - return $node->compile_closure($options); - } - - function compile_closure($options) - { - if ($this->jumps() || ($this instanceof yy_Throw)) - { - throw new SyntaxError('cannot use a pure statement in an expression.'); - } - - $options['shared_scope'] = TRUE; - - $closure = yy_Closure::wrap($this); - return $closure->compile_node($options); - } - - function compile_loop_reference($options, $name) - { - $src = $tmp = $this->compile($options, LEVEL_LIST); - - if ( ! (abs($src) < INF || preg_match(IDENTIFIER, $src) && - $options['scope']->check($src, TRUE))) - { - $src = ($tmp = $options['scope']->free_variable($name)).' = '.$src; - } - - return array($src, $tmp); - } - - function contains($pred) - { - $contains = FALSE; - - if (is_string($pred)) - { - $tmp = __NAMESPACE__.'\\'.$pred; - - $pred = function($node) use ($tmp) - { - return call_user_func($tmp, $node); - }; - } - - $this->traverse_children(FALSE, function($node) use ( & $contains, & $pred) - { - if ($pred($node)) - { - $contains = TRUE; - return FALSE; - } - }); - - return $contains; - } - - function contains_type($type) - { - return ($this instanceof $type) || $this->contains(function($node) use ( & $type) - { - return $node instanceof $type; - }); - } - - function each_child($func) - { - if ( ! ($this->children)) - { - return $this; - } - - foreach ($this->children as $i => $attr) - { - if (isset($this->{$attr}) && $this->{$attr}) - { - foreach (flatten(array($this->{$attr})) as $i => $child) - { - if ($func($child) === FALSE) - { - break 2; - } - } - } - } - - return $this; - } - - function invert() - { - return yy('Op', '!', $this); - } - - function is_assignable() - { - return FALSE; - } - - function is_complex() - { - return FALSE; - } - - function is_chainable() - { - return FALSE; - } - - function is_object() - { - return FALSE; - } - - function is_statement() - { - return FALSE; - } - - function is_undefined() - { - return FALSE; - } - - function jumps() - { - return FALSE; - } - - function last_non_comment($list) - { - $i = count($list); - - while ($i--) - { - if ( ! ($list[$i] instanceof yy_Comment)) - { - return $list[$i]; - } - } - - return NULL; - } - - function make_return() - { - return yy('Return', $this); - } - - function to_string($idt = '', $name = NULL) - { - if ($name === NULL) - { - $name = get_class($this); - } - - $tree = "\n{$idt}{$name}"; - - if ($this->soak) - { - $tree .= '?'; - } - - $this->each_child(function($node) use ($idt, & $tree) - { - $tree .= $node->to_string($idt.TAB); - }); - - return $tree; - } - - function traverse_children($cross_scope, $func) - { - $this->each_child(function($child) use ($cross_scope, & $func) - { - if ($func($child) === FALSE) - { - return FALSE; - } - - return $child->traverse_children($cross_scope, $func); - }); - } - - function unfold_soak($options) - { - return FALSE; - } - - function unwrap() - { - return $this; - } - - function unwrap_all() - { - $node = $this; - - while ($node !== ($node = $node->unwrap())) - { - continue; - } - - return $node; - } -} - -?> diff --git a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/block.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/block.php deleted file mode 100755 index 5fadbf91..00000000 --- a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/block.php +++ /dev/null @@ -1,226 +0,0 @@ -<?php - -namespace CoffeeScript; - -class yy_Block extends yy_Base -{ - public $children = array('expressions'); - - function constructor($nodes = array()) - { - $this->expressions = compact(flatten($nodes)); - - return $this; - } - - function compile($options, $level = NULL) - { - if (isset($options['scope'])) - { - return parent::compile($options, $level); - } - else - { - return $this->compile_root($options); - } - } - - function compile_node($options) - { - $this->tab = $options['indent']; - - $top = $options['level'] === LEVEL_TOP; - $codes = array(); - - foreach ($this->expressions as $i => $node) - { - $node = $node->unwrap_all(); - $node = ($tmp = $node->unfold_soak($options)) ? $tmp : $node; - - if ($top) - { - $node->front = TRUE; - $code = $node->compile($options); - - if ($node->is_statement($options)) - { - $codes[] = $code; - } - else - { - $codes[] = $this->tab.$code.';'; - } - } - else - { - $codes[] = $node->compile($options, LEVEL_LIST); - } - } - - if ($top) - { - return implode("\n", $codes); - } - - $code = ($tmp = implode(', ', $codes)) ? $tmp : 'void 0'; - - if (count($codes) && $options['level'] >= LEVEL_LIST) - { - return "({$code})"; - } - else - { - return $code; - } - } - - function compile_root($options) - { - $options['indent'] = ($this->tab = isset($options['bare']) && $options['bare'] ? '' : TAB); - $options['scope'] = new Scope(NULL, $this, NULL); - $options['level'] = LEVEL_TOP; - - $code = $this->compile_with_declarations($options); - - return (isset($options['bare']) && $options['bare']) ? $code : - "(function() {\n{$code}\n}).call(this);\n"; - } - - function compile_with_declarations($options) - { - $code = $post = ''; - - foreach ($this->expressions as $i => $expr) - { - $expr = $expr->unwrap(); - - if ( ! ($expr instanceof yy_Comment || $expr instanceof yy_Literal)) - { - break; - } - } - - $options = array_merge($options, array('level' => LEVEL_TOP)); - - if ($i) - { - $rest = array_splice($this->expressions, $i, count($this->expressions)); - $code = $this->compile_node($options); - - $this->expressions = $rest; - } - - $post = $this->compile_node($options); - - $scope = $options['scope']; - - if ($scope->expressions === $this) - { - if ($scope->has_declarations()) - { - $code .= $this->tab.'var '.implode(', ', $scope->declared_variables()).";\n"; - } - - if ($scope->has_assignments()) - { - $code .= $this->tab.'var '.multident(implode(', ', $scope->assigned_variables()), $this->tab).";\n"; - } - } - - return $code.$post; - } - - function is_empty() - { - return ! count($this->expressions); - } - - function is_statement($options) - { - foreach ($this->expressions as $i => $expr) - { - if ($expr->is_statement($options)) - { - return TRUE; - } - } - - return FALSE; - } - - function jumps($options = array()) - { - foreach ($this->expressions as $i => $expr) - { - if ($expr->jumps($options)) - { - return $expr; - } - } - - return FALSE; - } - - function make_return() - { - $len = count($this->expressions); - - while ($len--) - { - $expr = $this->expressions[$len]; - - if ( ! ($expr instanceof yy_Comment)) - { - $this->expressions[$len] = $expr->make_return(); - - if ($expr instanceof yy_Return && ! $expr->expression) - { - return array_splice($this->expressions, $len, 1); - } - - break; - } - } - - return $this; - } - - function pop() - { - return array_pop($this->expressions); - } - - function push($node) - { - $this->expressions[] = $node; - return $this; - } - - function unshift($node) - { - array_unshift($this->expressions, $node); - return $this; - } - - function unwrap() - { - return count($this->expressions) === 1 ? $this->expressions[0] : $this; - } - - static function wrap($nodes) - { - if ( ! is_array($nodes)) - { - $nodes = array($nodes); - } - - if (count($nodes) === 1 && $nodes[0] instanceof yy_Block) - { - return $nodes[0]; - } - - return yy('Block', $nodes); - } -} - -?> diff --git a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/call.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/call.php deleted file mode 100755 index a9429199..00000000 --- a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/call.php +++ /dev/null @@ -1,271 +0,0 @@ -<?php - -namespace CoffeeScript; - -class yy_Call extends yy_Base -{ - public $children = array('variable', 'args'); - - private $is_new; - private $is_super; - - function constructor($variable = NULL, $args = array(), $soak = FALSE) - { - $this->args = $args; - $this->is_new = FALSE; - $this->is_super = $variable === 'super'; - $this->variable = $this->is_super() ? NULL : $variable; - - return $this; - } - - function compile_node($options) - { - if ($this->variable) - { - $this->variable->front = $this->front; - } - - if (($code = yy_Splat::compile_splatted_array($options, $this->args, TRUE))) - { - return $this->compile_splat($options, $code); - } - - $args = $this->filter_implicit_objects($this->args); - $tmp = array(); - - foreach ($args as $arg) - { - $tmp[] = $arg->compile($options, LEVEL_LIST); - } - - $args = implode(', ', $tmp); - - if ($this->is_super()) - { - return $this->super_reference($options).'.call(this'.($args ? ', '.$args : '').')'; - } - else - { - return ($this->is_new() ? 'new ' : '').$this->variable->compile($options, LEVEL_ACCESS)."({$args})"; - } - } - - function compile_super($args, $options) - { - return $this->super_reference($options).'.call(this'.(count($args) ? ', ' : '').$args.')'; - } - - function compile_splat($options, $splat_args) - { - if ($this->is_super()) - { - return $this->super_reference($options).'.apply(this, '.$splat_args.')'; - } - - if ($this->is_new()) - { - $idt = $this->tab.TAB; - - return - "(function(func, args, ctor) {\n" - . "{$idt}ctor.prototype = func.prototype;\n" - . "{$idt}var child = new ctor, result = func.apply(child, args);\n" - . "{$idt}return typeof result === \"object\" ? result : child;\n" - . "{$this->tab}})(".$this->variable->compile($options, LEVEL_LIST).", $splat_args, function() {})"; - } - - $base = yy('Value', $this->variable); - - if (($name = array_pop($base->properties)) && $base->is_complex()) - { - $ref = $options['scope']->free_variable('ref'); - $fun = "($ref = ".$base->compile($options, LEVEL_LIST).')'.$name->compile($options).''; - } - else - { - $fun = $base->compile($options, LEVEL_ACCESS); - $fun = preg_match(SIMPLENUM, $fun) ? "($fun)" : $fun; - - if ($name) - { - $ref = $fun; - $fun .= $name->compile($options); - } - else - { - $ref = NULL; - } - } - - return "{$fun}.apply({$ref}, {$splat_args})"; - } - - function is_new($set = NULL) - { - if ($set !== NULL) - { - $this->is_new = !! $set; - } - - return $this->is_new; - } - - function is_super() - { - return $this->is_super; - } - - function filter_implicit_objects($list) - { - $nodes = array(); - - foreach ($list as $node) - { - if ( ! ($node->is_object() && $node->base->generated)) - { - $nodes[] = $node; - continue; - } - - $obj = $tmp = NULL; - - foreach ($node->base->properties as $prop) - { - if ($prop instanceof yy_Assign) - { - if ( ! $obj) - { - $nodes[] = ($obj = $tmp = yy('Obj', array(), TRUE)); - } - - $tmp->properties[] = $prop; - } - else - { - $nodes[] = $prop; - $obj = NULL; - } - } - } - - return $nodes; - } - - function new_instance() - { - $base = isset($this->variable->base) ? $this->variable->base : $this->variable; - - if ($base instanceof yy_Call) - { - $base->new_instance(); - } - else - { - $this->is_new = TRUE; - } - - return $this; - } - - function super_reference($options) - { - $method = $options['scope']->method; - - if ( ! $method) - { - throw SyntaxError('cannot call super outside of a function.'); - } - - $name = $method->name; - - if ( ! $name) - { - throw SyntaxError('cannot call super on an anonymous function.'); - } - - if (isset($method->klass) && $method->klass) - { - return $method->klass.'.__super__.'.$name; - } - else - { - return $name.'.__super__.constructor'; - } - } - - function unfold_soak($options) - { - if ($this->soak) - { - if ($this->variable) - { - if ($ifn = unfold_soak($options, $this, 'variable')) - { - return $ifn; - } - - $tmp = yy('Value', $this->variable); - list($left, $rite) = $tmp->cache_reference($options); - } - else - { - $left = yy('Literal', $this->super_reference($options)); - $rite = yy('Value', $left); - } - - $rite = yy('Call', $rite, $this->args); - $rite->is_new($this->is_new()); - $left = yy('Literal', 'typeof '.$left->compile($options).' === "function"'); - - return yy('If', $left, yy('Value', $rite), array('soak' => TRUE)); - } - - $call = $this; - $list = array(); - - while (TRUE) - { - if ($call->variable instanceof yy_Call) - { - $list[] = $call; - $call = $call->variable; - - continue; - } - - if ( ! ($call->variable instanceof yy_Value)) - { - break; - } - - $list[] = $call; - - if ( ! (($call = $call->variable->base) instanceof yy_Call)) - { - break; - } - } - - foreach (array_reverse($list) as $call) - { - if (isset($ifn)) - { - if ($call->variable instanceof yy_Call) - { - $call->variable = $ifn; - } - else - { - $call->variable->base = $ifn; - } - } - - $ifn = unfold_soak($options, $call, 'variable'); - } - - return isset($ifn) ? $ifn : NULL; - } -} - -?> diff --git a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/class.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/class.php deleted file mode 100755 index a8ce027b..00000000 --- a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/class.php +++ /dev/null @@ -1,236 +0,0 @@ -<?php - -namespace CoffeeScript; - -class yy_Class extends yy_Base -{ - public $children = array('variable', 'parent', 'body'); - - function constructor($variable = NULL, $parent = NULL, $body = NULL) - { - $this->variable = $variable; - $this->parent = $parent; - - $this->body = $body === NULL ? yy('Block') : $body; - $this->body->class_body = TRUE; - - $this->bound_funcs = array(); - - return $this; - } - - function add_bound_functions($options) - { - if (count($this->bound_funcs)) - { - foreach ($this->bound_funcs as $bvar) - { - $bname = $bvar->compile($options); - $body = is_array($this->ctor->body) ? $this->ctor->body : array($this->ctor->body); - array_unshift($body, yy('Literal', "this.{$bname} = ".utility('bind')."(this.{$bname}, this)")); - } - } - } - - function add_properties($node, $name, $options) - { - $props = array_slice($node->base->properties, 0); - $exprs = array(); - - while ($assign = array_shift($props)) - { - if ($assign instanceof yy_Assign) - { - $base = $assign->variable->base; - $func = $assign->value; - - $assign->context = NULL; - - if ($base->value === 'constructor') - { - if ($this->ctor) - { - throw new Error('cannot define more than one constructor in a class'); - } - - if (isset($func->bound) && $func->bound) - { - throw new Error('cannot define a constructor as a bound functions'); - } - - if ($func instanceof yy_Code) - { - $assign = $this->ctor = $func; - } - else - { - $this->external_ctor = $options['scope']->free_variable('class'); - $assign = yy('Assign', yy('Literal', $this->external_ctor), $func); - } - } - else - { - if ( ! (isset($assign->variable->this) && $assign->variable->this)) - { - $assign->variable = yy('Value', yy('Literal', $name), array(yy('Access', $base, 'proto'))); - } - - if ($func instanceof yy_Code && isset($func->bound) && $func->bound) - { - $this->bound_funcs[] = $base; - $func->bound = FALSE; - } - } - } - - $exprs[] = $assign; - } - - return compact($exprs); - } - - function compile_node($options) - { - $decl = $this->determine_name(); - - if ($decl) - { - $name = $decl; - } - else if (isset($this->name) && $this->name) - { - $name = $this->name; - } - else - { - $name = '_Class'; - } - - $lname = yy('Literal', $name); - - $this->set_context($name); - $this->walk_body($name, $options); - $this->ensure_constructor($name); - - if ($this->parent) - { - array_unshift($this->body->expressions, yy('Extends', $lname, $this->parent)); - } - - if ( ! ($this->ctor instanceof yy_Code)) - { - array_unshift($this->body->expressions, $this->ctor); - } - - $this->body->expressions[] = $lname; - - $this->add_bound_functions($options); - - $klass = yy('Parens', yy_Closure::wrap($this->body), TRUE); - - if ($this->variable) - { - $klass = yy('Assign', $this->variable, $klass); - } - - return $klass->compile($options); - } - - function determine_name() - { - if ( ! (isset($this->variable) && $this->variable)) - { - return NULL; - } - - if (($tail = last($this->variable->properties))) - { - $decl = $tail instanceof yy_Access ? $tail->name->value : FALSE; - } - else - { - $decl = $this->variable->base->value; - } - - $decl = $decl ? (preg_match(IDENTIFIER, $decl) ? $decl : FALSE) : FALSE; - - return $decl; - } - - function ensure_constructor($name) - { - if ( ! (isset($this->ctor) && $this->ctor)) - { - $this->ctor = yy('Code'); - - if ($this->parent) - { - $this->ctor->body->push(yy('Literal', "{$name}.__super__.constructor.apply(this, arguments)")); - } - - if (isset($this->external_ctor) && $this->external_ctor) - { - $this->ctor->body->push(yy('Literal', "{$this->external_ctor}.apply(this, arguments)")); - } - - array_unshift($this->body->expressions, $this->ctor); - } - - $this->ctor->ctor = $this->ctor->name = $name; - $this->ctor->klass = NULL; - $this->ctor->no_return = TRUE; - } - - function set_context($name) - { - $this->body->traverse_children(FALSE, function($node) use ($name) - { - if (isset($node->class_body) && $node->class_body) - { - return FALSE; - } - - if ($node instanceof yy_Literal && ''.$node->value === 'this') - { - $node->value = $name; - } - else if ($node instanceof yy_Code) - { - $node->klass = $name; - - if ($node->bound) - { - $node->context = $name; - } - } - }); - } - - function walk_body($name, $options) - { - $self = $this; - - $this->traverse_children(FALSE, function($child) use ($name, $options, & $self) - { - if ($child instanceof yy_Class) - { - return FALSE; - } - - if ($child instanceof yy_Block) - { - foreach (($exps = $child->expressions) as $i => $node) - { - if ($node instanceof yy_Value && $node->is_object(TRUE)) - { - $exps[$i] = $self->add_properties($node, $name, $options); - } - } - - $child->expressions = $exps = flatten($exps); - } - }); - } -} - -?> diff --git a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/closure.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/closure.php deleted file mode 100755 index 5751ab0b..00000000 --- a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/closure.php +++ /dev/null @@ -1,49 +0,0 @@ -<?php - -namespace CoffeeScript; - -class yy_Closure -{ - static function wrap($expressions, $statement = NULL, $no_return = FALSE) - { - if ($expressions->jumps()) - { - return $expressions; - } - - $func = yy('Code', array(), yy_Block::wrap(array($expressions))); - $args = array(); - - if (($mentions_args = $expressions->contains('yy_Closure::literal_args')) || - $expressions->contains('yy_Closure::literal_this')) - { - $meth = yy('Literal', $mentions_args ? 'apply' : 'call'); - $args = array(yy('Literal', 'this')); - - if ($mentions_args) - { - $args[] = yy('Literal', 'arguments'); - } - - $func = yy('Value', $func, array(yy('Access', $meth))); - } - - $func->no_return = $no_return; - $call = yy('Call', $func, $args); - - return $statement ? yy_Block::wrap(array($call)) : $call; - } - - static function literal_args($node) - { - return ($node instanceof yy_Literal) && (''.$node->value === 'arguments') && ! $node->as_key; - } - - static function literal_this($node) - { - return (($node instanceof yy_Literal) && (''.$node->value === 'this') && ! $node->as_key) || - ($node instanceof yy_Code && $node->bound); - } -} - -?> diff --git a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/code.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/code.php deleted file mode 100755 index 33f5db2d..00000000 --- a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/code.php +++ /dev/null @@ -1,160 +0,0 @@ -<?php - -namespace CoffeeScript; - -class yy_Code extends yy_Base -{ - public $children = array('params', 'body'); - - function constructor($params = NULL, $body = NULL, $tag = NULL) - { - $this->params = $params ? $params : array(); - $this->body = $body ? $body : yy('Block'); - $this->bound = $tag === 'boundfunc'; - $this->context = $this->bound ? 'this' : NULL; - - return $this; - } - - function compile_node($options) - { - $options['scope'] = new Scope($options['scope'], $this->body, $this); - $options['scope']->shared = del($options, 'sharedScope'); - $options['indent'] .= TAB; - - unset($options['bare']); - - $vars = array(); - $exprs = array(); - - foreach ($this->params as $param) - { - if ($param->splat) - { - if (isset($param->name->value) && $param->name->value) - { - $options['scope']->add($param->name->value, 'var'); - } - - $params = array(); - - foreach ($this->params as $p) - { - $params[] = $p->as_reference($options); - } - - $splats = yy('Assign', yy('Value', yy('Arr', $params)), yy('Value', yy('Literal', 'arguments'))); - - break; - } - } - - foreach ($this->params as $param) - { - if ($param->is_complex()) - { - $val = $ref = $param->as_reference($options); - - if ($param->value) - { - $val = yy('Op', '?', $ref, $param->value); - } - - $exprs[] = yy('Assign', yy('Value', $param->name), $val, '=', array('param' => TRUE)); - } - else - { - $ref = $param; - - if ($param->value) - { - $lit = yy('Literal', $ref->name->value.' == null'); - $val = yy('Assign', yy('Value', $param->name), $param->value, '='); - - $exprs[] = yy('If', $lit, $val); - } - } - - if ( ! (isset($splats) && $splats)) - { - $vars[] = $ref; - } - } - - $was_empty = $this->body->is_empty(); - - if (isset($splats) && $splats) - { - array_unshift($exprs, $splats); - } - - if (count($exprs)) - { - $this->body->expressions = array_merge($this->body->expressions, $exprs); - } - - if ( ! (isset($splats) && $splats)) - { - foreach ($vars as $i => $v) - { - $options['scope']->parameter(($vars[$i] = $v->compile($options))); - } - } - - if ( ! ($was_empty || $this->no_return)) - { - $this->body->make_return(); - } - - $idt = $options['indent']; - $code = 'function'; - - if ($this->ctor) - { - $code .= ' '.$this->name; - } - - $code .= '('.implode(', ', $vars).') {'; - - if ( ! $this->body->is_empty()) - { - $code .= "\n".$this->body->compile_with_declarations($options)."\n{$this->tab}"; - } - - $code .= '}'; - - if ($this->ctor) - { - return $this->tab.$code; - } - - if ($this->bound) - { - return utility('bind')."({$code}, {$this->context})"; - } - - return ($this->front || $options['level'] >= LEVEL_ACCESS) ? "({$code})" : $code; - } - - function is_statement() - { - return !! $this->ctor; - } - - function jumps() - { - return FALSE; - } - - function traverse_children($cross_scope, $func) - { - if ($cross_scope) - { - return parent::traverse_children($cross_scope, $func); - } - - return NULL; - } -} - -?> diff --git a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/comment.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/comment.php deleted file mode 100755 index 12555dd3..00000000 --- a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/comment.php +++ /dev/null @@ -1,37 +0,0 @@ -<?php - -namespace CoffeeScript; - -class yy_Comment extends yy_Base -{ - function constructor($comment) - { - $this->comment = $comment; - - return $this; - } - - function compile_node($options, $level = NULL) - { - $code = '/*'.multident($this->comment, $this->tab).'*/'; - - if ($level === LEVEL_TOP || $options['level'] === LEVEL_TOP) - { - $code = $options['indent'].$code; - } - - return $code; - } - - function is_statement() - { - return TRUE; - } - - function make_return() - { - return $this; - } -} - -?> diff --git a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/existence.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/existence.php deleted file mode 100755 index fd338739..00000000 --- a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/existence.php +++ /dev/null @@ -1,47 +0,0 @@ -<?php - -namespace CoffeeScript; - -class yy_Existence extends yy_Base -{ - public $children = array('expression'); - - function constructor($expression) - { - $this->expression = $expression; - - return $this; - } - - function compile_node($options = array()) - { - $code = $this->expression->compile($options, LEVEL_OP); - - if (preg_match(IDENTIFIER, $code) && ! $options['scope']->check($code)) - { - if ($this->negated) - { - $code = "typeof {$code} === \"undefined\" || {$code} === null"; - } - else - { - $code = "typeof {$code} !== \"undefined\" && {$code} !== null"; - } - } - else - { - $sym = $this->negated ? '==' : '!='; - $code = "{$code} {$sym} null"; - } - - return (isset($options['level']) && $options['level'] <= LEVEL_COND) ? $code : "({$code})"; - } - - function invert() - { - $this->negated = ! $this->negated; - return $this; - } -} - -?> diff --git a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/extends.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/extends.php deleted file mode 100755 index a547e49e..00000000 --- a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/extends.php +++ /dev/null @@ -1,28 +0,0 @@ -<?php - -namespace CoffeeScript; - -class yy_Extends extends yy_Base -{ - public $children = array('child', 'parent'); - - function constructor($child, $parent) - { - $this->child = $child; - $this->parent = $parent; - - return $this; - } - - function compile($options) - { - utility('hasProp'); - - $tmp = yy('Call', yy('Value', yy('Literal', utility('extends'))), - array($this->child, $this->parent)); - - return $tmp->compile($options); - } -} - -?> diff --git a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/for.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/for.php deleted file mode 100755 index 05c11190..00000000 --- a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/for.php +++ /dev/null @@ -1,258 +0,0 @@ -<?php - -namespace CoffeeScript; - -class yy_For extends yy_Base -{ - public $children = array('body', 'source', 'guard', 'step'); - - function constructor($body, $source) - { - $this->source = $source['source']; - $this->guard = isset($source['guard']) ? $source['guard'] : NULL; - $this->step = isset($source['step']) ? $source['step'] : NULL; - $this->name = isset($source['name']) ? $source['name'] : NULL; - $this->index = isset($source['index']) ? $source['index'] : NULL; - - $this->body = yy_Block::wrap(array($body)); - - $this->own = (isset($source['own']) && $source['own']); - $this->object = (isset($source['object']) && $source['object']); - - if ($this->object) - { - $tmp = $this->name; - $this->name = $this->index; - $this->index = $tmp; - } - - if ($this->index instanceof yy_Value) - { - throw SyntaxError('index cannot be a pattern matching expression'); - } - - $this->range = $this->source instanceof yy_Value && $this->source->base instanceof yy_Range && - ! count($this->source->properties); - - $this->pattern = $this->name instanceof yy_Value; - - if ($this->range && $this->index) - { - throw SyntaxError('indexes do not apply to range loops'); - } - - if ($this->range && $this->pattern) - { - throw SyntaxError('cannot pattern match over range loops'); - } - - $this->returns = FALSE; - - return $this; - } - - function compile_node($options) - { - $body = yy_Block::wrap(array($this->body)); - - $last_jumps = last($body->expressions); - $last_jumps = $last_jumps ? $last_jumps->jumps() : FALSE; - - if ($last_jumps && $last_jumps instanceof yy_Return) - { - $this->returns = FALSE; - } - - if ($this->range) - { - $source = $this->source->base; - } - else - { - $source = $this->source; - } - - $scope = $options['scope']; - - $name = $this->name ? $this->name->compile($options, LEVEL_LIST) : FALSE; - $index = $this->index ? $this->index->compile($options, LEVEL_LIST) : FALSE; - - if ($name && ! $this->pattern) - { - $scope->find($name, array('immediate' => TRUE)); - } - - if ($index) - { - $scope->find($index, array('immediate' => TRUE)); - } - - if ($this->returns) - { - $rvar = $scope->free_variable('results'); - } - - $ivar = $this->range ? $name : $index; - $ivar = $ivar ? $ivar : $scope->free_variable('i'); - - if ($this->step && ! $this->range) - { - $stepvar = $scope->free_variable('step'); - } - - if ($this->pattern) - { - $name = $ivar; - } - - $var_part = ''; - $guard_part = ''; - $def_part = ''; - - $idt1 = $this->tab.TAB; - - if ($this->range) - { - $for_part = $source->compile(array_merge($options, array('index' => $ivar, 'step' => $this->step))); - } - else - { - $svar = $this->source->compile($options, LEVEL_LIST); - - if (($name || $this->own) && ! preg_match(IDENTIFIER, $svar)) - { - $ref = $scope->free_variable('ref'); - $def_part = "{$this->tab}{$ref} = {$svar};\n"; - $svar = $ref; - } - - if ($name && ! $this->pattern) - { - $name_part = "{$name} = {$svar}[{$ivar}]"; - } - - if ( ! $this->object) - { - $lvar = $scope->free_variable('len'); - $for_var_part = "{$ivar} = 0, {$lvar} = {$svar}.length"; - - if ($this->step) - { - $for_var_part .= ", {$stepvar} = ".$this->step->compile($options, LEVEL_OP); - } - - $step_part = $this->step ? "{$ivar} += {$stepvar}" : "{$ivar}++"; - $for_part = "{$for_var_part}; {$ivar} < {$lvar}; {$step_part}"; - } - } - - if ($this->returns) - { - $result_part = "{$this->tab}{$rvar} = [];\n"; - $return_result = "\n{$this->tab}return {$rvar};"; - $body = yy_Push::wrap($rvar, $body); - } - - if ($this->guard) - { - $body = yy_Block::wrap(array(yy('If', $this->guard, $body))); - } - - if ($this->pattern) - { - array_unshift($body->expressions, yy('Assign', $this->name, yy('Literal', "{$svar}[{$ivar}]"))); - } - - $def_part .= $this->pluck_direct_call($options, $body); - - if (isset($name_part) && $name_part) - { - $var_part = "\n{$idt1}{$name_part};"; - } - - if ($this->object) - { - $for_part = "{$ivar} in {$svar}"; - - if ($this->own) - { - $guard_part = "\n{$idt1}if (!".utility('hasProp').".call({$svar}, {$ivar})) continue;"; - } - } - - $body = $body->compile(array_merge($options, array('indent' => $idt1)), LEVEL_TOP); - - if ($body) - { - $body = "\n{$body}\n"; - } - - return - "{$def_part}" - . (isset($result_part) ? $result_part : '') - . "{$this->tab}for ({$for_part}) {{$guard_part}{$var_part}{$body}{$this->tab}}" - . (isset($return_result) ? $return_result : ''); - } - - function is_statement() - { - return TRUE; - } - - function jumps() - { - return call_user_func_array(array(yy('While'), __FUNCTION__), func_get_args()); - } - - function make_return() - { - $this->returns = TRUE; - return $this; - } - - function pluck_direct_call($options, $body) - { - $defs = ''; - - foreach ($body->expressions as $idx => $expr) - { - $expr = $expr->unwrap_all(); - - if ( ! ($expr instanceof yy_Call)) - { - continue; - } - - $val = $expr->variable->unwrap_all(); - - if ( ! ( ($val instanceof yy_Code) || - ($val instanceof yy_Value) && - (isset($val->base) && $val->base && ($val->base->unwrap_all() instanceof yy_Code) && - count($val->properties) === 1 && - isset($val->properties[0]->name) && - in_array($val->properties[0]->name['value'], array('call', 'apply'), TRUE)))) - { - continue; - } - - $fn = (isset($val->base) && $val->base) ? $val->base->unwrap_all() : $val; - $ref = yy('Literal', $options['scope']->free_variable('fn')); - $base = yy('Value', $ref); - - if (isset($val->base) && $val->base) - { - $val->base = $base; - $base = $val; - array_unshift($args, yy('Literal', 'this')); - } - - $body->expressions[$idx] = yy('Call', $base, $expr->args); - $tmp = yy('Assign', $ref, $fn); - $defs .= $this->tab.$tmp->compile($options, LEVEL_TOP).";\n"; - } - - return $defs; - } -} - -?> diff --git a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/if.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/if.php deleted file mode 100755 index b4b0a23c..00000000 --- a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/if.php +++ /dev/null @@ -1,146 +0,0 @@ -<?php - -namespace CoffeeScript; - -class yy_If extends yy_Base -{ - public $children = array('condition', 'body', 'elsebody'); - - function constructor($condition, $body, $options = array()) - { - $this->condition = (isset($options['type']) && $options['type'] === 'unless') ? $condition->invert() : $condition; - $this->body = $body; - $this->else_body = NULL; - $this->is_chain = FALSE; - $this->soak = isset($options['soak']) ? $options['soak'] : NULL; - - return $this; - } - - function add_else($else_body) - { - if ($this->is_chain()) - { - $this->else_body_node()->add_else($else_body); - } - else - { - $this->is_chain = $else_body instanceof yy_If; - $this->else_body = $this->ensure_block($else_body); - } - - return $this; - } - - function body_node() - { - return $this->body ? $this->body->unwrap() : NULL; - } - - function compile_node($options = array()) - { - return $this->is_statement($options) ? $this->compile_statement($options) : $this->compile_expression($options); - } - - function compile_expression($options) - { - $cond = $this->condition->compile($options, LEVEL_COND); - $body = $this->body_node()->compile($options, LEVEL_LIST); - - $alt = ($tmp = $this->else_body_node()) ? $tmp->compile($options, LEVEL_LIST) : 'void 0'; - $code = "{$cond} ? {$body} : {$alt}"; - - return (isset($options['level']) && $options['level'] > LEVEL_COND) ? "({$code})" : $code; - } - - function compile_statement($options) - { - $child = del($options, 'chainChild'); - $cond = $this->condition->compile($options, LEVEL_PAREN); - $options['indent'] .= TAB; - $body = $this->ensure_block($this->body)->compile($options); - - if ($body) - { - $body = "\n{$body}\n{$this->tab}"; - } - - $if_part = "if ({$cond}) {{$body}}"; - - if ( ! $child) - { - $if_part = $this->tab.$if_part; - } - - if ( ! $this->else_body) - { - return $if_part; - } - - $ret = $if_part.' else '; - - if ($this->is_chain()) - { - $options['indent'] = $this->tab; - $options['chainChild'] = TRUE; - - $ret .= $this->else_body->unwrap()->compile($options, LEVEL_TOP); - } - else - { - $ret .= "{\n".$this->else_body->compile($options, LEVEL_TOP)."\n{$this->tab}}"; - } - - return $ret; - } - - function else_body_node() - { - return (isset($this->else_body) && $this->else_body) ? $this->else_body->unwrap() : NULL; - } - - function ensure_block($node) - { - return $node instanceof yy_Block ? $node : yy('Block', array($node)); - } - - function is_chain() - { - return $this->is_chain; - } - - function is_statement($options = array()) - { - return (isset($options['level']) && $options['level'] === LEVEL_TOP) || - $this->body_node()->is_statement($options) || - ( ($tmp = $this->else_body_node()) && $tmp && $tmp->is_statement($options)); - } - - function jumps($options = array()) - { - return $this->body->jumps($options) || - (isset($this->else_body) && $this->else_body && $this->else_body->jumps($options)); - } - - function make_return() - { - if ($this->body) - { - $this->body = yy('Block', array($this->body->make_return())); - } - - if ($this->else_body) - { - $this->else_body = yy('Block', array($this->else_body->make_return())); - } - - return $this; - } - - function unfold_soak() - { - return $this->soak ? $this : FALSE; - } -} - -?> diff --git a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/in.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/in.php deleted file mode 100755 index ef849f65..00000000 --- a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/in.php +++ /dev/null @@ -1,79 +0,0 @@ -<?php - -namespace CoffeeScript; - -class yy_In extends yy_Base -{ - public $children = array('object', 'array'); - - function constructor($object = NULL, $array = NULL) - { - $this->array = $array; - $this->object = $object; - - return $this; - } - - function compile_node($options = array()) - { - if ($this->array instanceof yy_Value && $this->array->is_array()) - { - return $this->compile_or_test($options); - } - else - { - return $this->compile_loop_test($options); - } - } - - function compile_or_test($options) - { - list($sub, $ref) = $this->object->cache($options, LEVEL_OP); - list($cmp, $cnj) = $this->negated ? array(' !== ', ' && ') : array(' === ', ' || '); - - $tests = array(); - - foreach ($this->array->base->objects as $i => $item) - { - $tests[] = ($i ? $ref : $sub).$cmp.$item->compile($options, LEVEL_OP); - } - - if (count($tests) === 0) - { - return 'false'; - } - - $tests = implode($cnj, $tests); - - return (isset($options['level']) && $options['level'] < LEVEL_OP) ? $tests : "({$tests})"; - } - - function compile_loop_test($options) - { - list($sub, $ref) = $this->object->cache($options, LEVEL_LIST); - - $code = utility('indexOf').".call(".$this->array->compile($options, LEVEL_LIST).", {$ref}) " - .($this->negated ? '< 0' : '>= 0'); - - if ($sub === $ref) - { - return $code; - } - - $code = $sub.', '.$code; - return (isset($options['level']) && $options['level'] < LEVEL_LIST) ? $code : "({$code})"; - } - - function invert() - { - $this->negated = ! $this->negated; - return $this; - } - - function to_string($idt = '', $name = __CLASS__) - { - return parent::to_string($idt, $name.($this->negated ? '!' : '')); - } -} - -?> diff --git a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/index.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/index.php deleted file mode 100755 index e6463ab7..00000000 --- a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/index.php +++ /dev/null @@ -1,27 +0,0 @@ -<?php - -namespace CoffeeScript; - -class yy_Index extends yy_Base -{ - public $children = array('index'); - - function constructor($index) - { - $this->index = $index; - - return $this; - } - - function compile($options) - { - return ($this->proto ? '.prototype' : '').'['.$this->index->compile($options, LEVEL_PAREN).']'; - } - - function is_complex() - { - return $this->index->is_complex(); - } -} - -?> diff --git a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/literal.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/literal.php deleted file mode 100755 index 23894d6f..00000000 --- a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/literal.php +++ /dev/null @@ -1,93 +0,0 @@ -<?php - -namespace CoffeeScript; - -class yy_Literal extends yy_Base -{ - private $is_undefined = FALSE; - - function constructor($value) - { - $this->value = $value; - - return $this; - } - - function assigns($name) - { - return $name === $this->value; - } - - function compile_node($options) - { - if ($this->is_undefined()) - { - $code = $options['level'] >= LEVEL_ACCESS ? '(void 0)' : 'void 0'; - } - else if (isset($this->value->reserved) && $this->value->reserved) - { - $code = '"'.$this->value.'"'; - } - else - { - $code = ''.$this->value; - } - - return $this->is_statement() ? "{$this->tab}{$code};" : $code; - } - - function is_assignable() - { - return preg_match(IDENTIFIER, ''.$this->value); - } - - function is_complex() - { - return FALSE; - } - - function is_statement() - { - return in_array(''.$this->value, array('break', 'continue', 'debugger'), TRUE); - } - - function is_undefined($set = NULL) - { - if ($set !== NULL) - { - $this->is_undefined = !! $set; - } - - return $this->is_undefined; - } - - function jumps($options = array()) - { - if ( ! $this->is_statement()) - { - return FALSE; - } - - if ( ! ((isset($options['loop']) && $options['loop']) || - (isset($options['block']) && $options['block']) && (''.$this->value !== 'continue'))) - { - return $this; - } - else - { - return FALSE; - } - } - - function make_return() - { - return $this->is_statement() ? $this : yy('Return', $this); - } - - function to_string($idt = '', $name = __CLASS__) - { - return ' "'.$this->value.'"'; - } -} - -?> diff --git a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/obj.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/obj.php deleted file mode 100755 index 73e09c33..00000000 --- a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/obj.php +++ /dev/null @@ -1,104 +0,0 @@ -<?php - -namespace CoffeeScript; - -class yy_Obj extends yy_Base -{ - public $children = array('properties'); - - function constructor($props, $generated = FALSE) - { - $this->generated = $generated; - - $this->properties = $props ? $props : array(); - $this->objects = $this->properties; - - return $this; - } - - function assigns($name) - { - foreach ($this->properties as $prop) - { - if ($prop->assigns($name)) - { - return TRUE; - } - } - - return FALSE; - } - - function compile_node($options) - { - $props = $this->properties; - - if ( ! count($props)) - { - return ($this->front ? '({})' : '{}'); - } - - if ($this->generated) - { - foreach ($props as $node) - { - if ($node instanceof yy_Value) - { - throw new Error('cannot have an implicit value in an implicit object'); - } - } - } - - $idt = $options['indent'] .= TAB; - $last_non_com = $this->last_non_comment($this->properties); - - foreach ($props as $i => $prop) - { - if ($i === count($props) - 1) - { - $join = ''; - } - else if ($prop === $last_non_com || $prop instanceof yy_Comment) - { - $join = "\n"; - } - else - { - $join = ",\n"; - } - - $indent = $prop instanceof yy_Comment ? '' : $idt; - - if ($prop instanceof yy_Value && (isset($prop->this) && $prop->this)) - { - $prop = yy('Assign', $prop->properties[0]->name, $prop, 'object'); - } - - if ( ! ($prop instanceof yy_Comment)) - { - if ( ! ($prop instanceof yy_Assign)) - { - $prop = yy('Assign', $prop, $prop, 'object'); - } - - if (isset($prop->variable->base)) - { - $prop->variable->base->as_key = TRUE; - } - else - { - $prop->variable->as_key = TRUE; - } - } - - $props[$i] = $indent.$prop->compile($options, LEVEL_TOP).$join; - } - - $props = implode('', $props); - $obj = '{'.($props ? "\n{$props}\n{$this->tab}" : '').'}'; - - return ($this->front ? "({$obj})" : $obj); - } -} - -?> diff --git a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/op.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/op.php deleted file mode 100755 index 6d84fa2d..00000000 --- a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/op.php +++ /dev/null @@ -1,230 +0,0 @@ -<?php - -namespace CoffeeScript; - -class yy_Op extends yy_Base -{ - static $CONVERSIONS = array( - '==' => '===', - '!=' => '!==', - 'of' => 'in' - ); - - static $INVERSIONS = array( - '!==' => '===', - '===' => '!==' - ); - - public $children = array('first', 'second'); - - public $operator = NULL; - - function constructor($op, $first, $second = NULL, $flip = NULL) - { - if ($op === 'in') - { - return yy('In', $first, $second); - } - - if ($op === 'do') - { - $call = yy('Call', $first, isset($first->params) ? $first->params : array()); - $call->do = TRUE; - - return $call; - } - - if ($op === 'new') - { - if ($first instanceof yy_Call && ! (isset($first->do) && $first->do)) - { - return $first->new_instance(); - } - - if ($first instanceof yy_Code && $first->bound || (isset($first->do) && $first->do)) - { - $first = yy('Parens', $first); - } - } - - $this->operator = isset(self::$CONVERSIONS[$op]) ? self::$CONVERSIONS[$op] : $op; - $this->first = $first; - $this->second = $second; - $this->flip = !! $flip; - - return $this; - } - - function compile_chain($options) - { - $tmp = $this->first->second->cache($options); - - $this->first->second = $tmp[0]; - $shared = $tmp[1]; - - $fst = $this->first->compile($options, LEVEL_OP); - $code = "{$fst} ".($this->invert() ? '&&' : '||').' '.$shared->compile($options).' ' - .$this->operator.' '.$this->second->compile($options, LEVEL_OP); - - return "({$code})"; - } - - function compile_existence($options) - { - if ($this->first->is_complex()) - { - $ref = yy('Literal', $options['scope']->free_variable('ref')); - $fst = yy('Parens', yy('Assign', $ref, $this->first)); - } - else - { - $fst = $this->first; - $ref = $fst; - } - - $tmp = yy('If', yy('Existence', $fst), $ref, array('type' => 'if')); - $tmp->add_else($this->second); - - return $tmp->compile($options); - } - - function compile_node($options, $level = NULL) - { - if ($this->is_unary()) - { - return $this->compile_unary($options); - } - - if ($this->is_chainable() && $this->first->is_chainable()) - { - return $this->compile_chain($options); - } - - if ($this->operator === '?') - { - return $this->compile_existence($options); - } - - $this->first->front = $this->front; - - $code = $this->first->compile($options, LEVEL_OP).' '.$this->operator.' ' - .$this->second->compile($options, LEVEL_OP); - - return $options['level'] <= LEVEL_OP ? $code : "({$code})"; - } - - function compile_unary($options) - { - $parts = array($op = $this->operator); - - if (in_array($op, array('new', 'typeof', 'delete'), TRUE) || - in_array($op, array('+', '-'), TRUE) && - $this->first instanceof yy_Op && $this->first->operator === $op) - { - $parts[] = ' '; - } - - if ($op === 'new' && $this->first->is_statement($options)) - { - $this->first = yy('Parens', $this->first); - } - - $parts[] = $this->first->compile($options, LEVEL_OP); - - if ($this->flip) - { - $parts = array_reverse($parts); - } - - return implode('', $parts); - } - - function is_chainable() - { - return in_array($this->operator, array('<', '>', '>=', '<=', '===', '!=='), TRUE); - } - - function invert() - { - if ($this->is_chainable() && $this->first->is_chainable()) - { - $all_invertable = TRUE; - $curr = $this; - - while ($curr && (isset($curr->operator) && $curr->operator)) - { - $all_invertable = $all_invertable && isset(self::$INVERSIONS[$curr->operator]); - $curr = $curr->first; - } - - if ( ! $all_invertable) - { - $tmp = yy('Parens', $this); - return $tmp->invert(); - } - - $curr = $this; - - while ($curr && (isset($curr->operator) && $curr->operator)) - { - $curr->invert = ! (isset($curr->invert) && $curr->invert); - $curr->operator = self::$INVERSIONS[$curr->operator]; - $curr = $curr->first; - } - - return $this; - } - else if (isset(self::$INVERSIONS[$this->operator]) && ($op = self::$INVERSIONS[$this->operator])) - { - $this->operator = $op; - - if ($this->first->unwrap() instanceof yy_Op) - { - $this->first->invert(); - } - - return $this; - } - else if ($this->second) - { - $tmp = yy('Parens', $this); - return $tmp->invert(); - } - else if ($this->operator === '!' && (($fst = $this->first->unwrap()) instanceof yy_Op) && - in_array($fst->operator, array('!', 'in', 'instanceof'), TRUE)) - { - return $fst; - } - else - { - return yy('Op', '!', $this); - } - } - - function is_simple_number() - { - return FALSE; - } - - function is_unary() - { - return ! (isset($this->second) && $this->second); - } - - function unfold_soak($options) - { - if (in_array($this->operator, array('++', '--', 'delete'), TRUE)) - { - return unfold_soak($options, $this, 'first'); - } - - return NULL; - } - - function to_string($idt = '', $name = __CLASS__) - { - return parent::to_string($idt, $name.' '.$this->operator); - } -} - -?> diff --git a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/param.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/param.php deleted file mode 100755 index ed25f845..00000000 --- a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/param.php +++ /dev/null @@ -1,62 +0,0 @@ -<?php - -namespace CoffeeScript; - -class yy_Param extends yy_Base -{ - public $children = array('name', 'value'); - - function constructor($name, $value = NULL, $splat = NULL) - { - $this->name = $name; - $this->value = $value; - $this->splat = $splat; - - return $this; - } - - function as_reference($options) - { - if (isset($this->reference) && $this->reference) - { - return $this->reference; - } - - $node = $this->name; - - if (isset($node->this) && $node->this) - { - $node = $node->properties[0]->name; - - if (isset($this->value->reserved) && $this->value->reserved) - { - $node = yy('Literal', '_'.$node->value); - } - } - else if ($node->is_complex()) - { - $node = yy('Literal', $options['scope']->free_variable('arg')); - } - - $node = yy('Value', $node); - - if ($this->splat) - { - $node = yy('Splat', $node); - } - - return ($this->reference = $node); - } - - function compile($options, $level = NULL) - { - return $this->name->compile($options, LEVEL_LIST); - } - - function is_complex() - { - return $this->name->is_complex(); - } -} - -?> diff --git a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/parens.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/parens.php deleted file mode 100755 index 47e508d5..00000000 --- a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/parens.php +++ /dev/null @@ -1,50 +0,0 @@ -<?php - -namespace CoffeeScript; - -class yy_Parens extends yy_Base -{ - public $children = array('body'); - - public function constructor($body) - { - $this->body = $body; - - return $this; - } - - public function compile_node($options = array()) - { - $expr = $this->body->unwrap(); - - if ($expr instanceof yy_Value && $expr->is_atomic()) - { - $expr->front = $this->front; - return $expr->compile($options); - } - - $code = $expr->compile($options, LEVEL_PAREN); - - $bare = $options['level'] < LEVEL_OP && ($expr instanceof yy_Op || $expr instanceof yy_Call || - ($expr instanceof yy_For && $expr->returns)); - - return $bare ? $code : "({$code})"; - } - - public function is_complex() - { - return $this->body->is_complex(); - } - - public function make_return() - { - return $this->body->make_return(); - } - - public function unwrap() - { - return $this->body; - } -} - -?> diff --git a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/push.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/push.php deleted file mode 100755 index d90ec8bc..00000000 --- a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/push.php +++ /dev/null @@ -1,19 +0,0 @@ -<?php - -namespace CoffeeScript; - -class yy_Push -{ - static function wrap($name, $exps) - { - if ($exps->is_empty() || last($exps->expressions)->jumps()) - { - return $exps; - } - - return $exps->push(yy('Call', yy('Value', yy('Literal', $name), - array(yy('Access', yy('Literal', 'push')))), array($exps->pop()))); - } -} - -?> diff --git a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/range.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/range.php deleted file mode 100755 index 2c201b7b..00000000 --- a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/range.php +++ /dev/null @@ -1,152 +0,0 @@ -<?php - -namespace CoffeeScript; - -class yy_Range extends yy_Base -{ - public $children = array('from', 'to'); - - public $from_num = 0; - public $to_num = 0; - - function constructor($from, $to, $tag) - { - $this->from = $from; - $this->to = $to; - $this->exclusive = $tag === 'exclusive'; - $this->equals = $this->exclusive ? '' : '='; - - return $this; - } - - function compile_array($options) - { - if ( (isset($this->from_num) && $this->from_num) && - (isset($this->to_num) && $this->to_num) && abs($this->from_num - $this->to_num) <= 20) - { - $range = range($this->from_num, $this->to_num); - - if ($this->exclusive) - { - array_pop($range); - } - - return '['.implode(', ', $range).']'; - } - - $idt = $this->tab.TAB; - $i = $options['scope']->free_variable('i'); - $result = $options['scope']->free_variable('result'); - $pre = "\n{$idt}{$result} = [];"; - - if ( (isset($this->from_num) && $this->from_num) && - (isset($this->to_num) && $this->to_num)) - { - $options['index'] = $i; - $body = $this->compile_simple($options); - } - else - { - $vars = "{$i} = {$this->from}".($this->to !== $this->to_var ? ", {$this->to}" : ''); - $cond = "{$this->from_var} <= {$this->to_var}"; - $body = "var {$vars}; {$cond} ? {$i} <{$this->equals} {$this->to_var} : {$i} >{$this->equals} {$this->to_var}; {$cond} ? {$i}++ : {$i}--"; - } - - $post = "{ {$result}.push({$i}); }\n{$idt}return {$result};\n{$options['indent']}"; - - return "(function() {{$pre}\n{$idt}for ({$body}){$post}}).apply(this, arguments)"; - } - - function compile_node($options) - { - $this->compile_variables($options); - - if ( ! (isset($options['index']) && $options['index'])) - { - return $this->compile_array($options); - } - - if ($this->from_num && $this->to_num) - { - return $this->compile_simple($options); - } - - $idx = del($options, 'index'); - $step = del($options, 'step'); - - if ($step) - { - $stepvar = $options['scope']->free_variable('step'); - } - - $var_part = "{$idx} = {$this->from}".($this->to !== $this->to_var ? ", {$this->to}" : '') - .($step ? ", {$stepvar} = ".$step->compile($options) : ''); - - $cond = "{$this->from_var} <= {$this->to_var}"; - $cond_part = "{$cond} ? {$idx} <{$this->equals} {$this->to_var} : {$idx} >{$this->equals} {$this->to_var}"; - $step_part = $step ? "{$idx} += {$stepvar}" : "{$cond} ? {$idx}++ : {$idx}--"; - - return "{$var_part}; {$cond_part}; {$step_part}"; - } - - function compile_simple($options) - { - list($from, $to) = array($this->from_num, $this->to_num); - - $idx = del($options, 'index'); - $step = del($options, 'step'); - - if ($step) - { - $stepvar = $options['scope']->free_variable('step'); - } - - $var_part = "{$idx} = {$from}"; - - if ($step) - { - $var_part .= ", {$stepvar} = ".$step->compile($options); - } - - $cond_part = $from <= $to ? "{$idx} <{$this->equals} {$to}" : "{$idx} >{$this->equals} {$to}"; - - if ($step) - { - $step_part = "{$idx} += {$stepvar}"; - } - else - { - $step_part = $from <= $to ? "{$idx}++" : "{$idx}--"; - } - - return "{$var_part}; {$cond_part}; {$step_part}"; - } - - function compile_variables($options) - { - $options = array_merge($options, array('top' => TRUE)); - - list($this->from, $this->from_var) = $this->from->cache($options, LEVEL_LIST); - list($this->to, $this->to_var) = $this->to->cache($options, LEVEL_LIST); - - preg_match(SIMPLENUM, $this->from_var, $from_num); - preg_match(SIMPLENUM, $this->to_var, $to_num); - - $this->from_num = isset($from_num[0]) ? $from_num[0] : NULL; - $this->to_num = isset($to_num[0]) ? $to_num[0] : NULL; - - $parts = array(); - - if ($this->from !== $this->from_var) - { - $parts[] = $this->from; - } - - if ($this->to !== $this->to_var) - { - $parts[] = $this->to; - } - } -} - -?> diff --git a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/return.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/return.php deleted file mode 100755 index 8cb80549..00000000 --- a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/return.php +++ /dev/null @@ -1,56 +0,0 @@ -<?php - -namespace CoffeeScript; - -class yy_Return extends yy_Base -{ - public $children = array('expression'); - - function constructor($expr = NULL) - { - if ($expr && ! ($expr->unwrap()->is_undefined())) - { - $this->expression = $expr; - } - - return $this; - } - - function compile($options, $level = NULL) - { - $expr = (isset($this->expression) && $this->expression) ? - $this->expression->make_return() : NULL; - - if ($expr && ! ($expr instanceof yy_Return)) - { - return $expr->compile($options, $level); - } - else - { - return parent::compile($options, $level); - } - } - - function compile_node($options) - { - return $this->tab.'return'.(isset($this->expression) && $this->expression ? - ' '.$this->expression->compile($options, LEVEL_PAREN) : '').';'; - } - - function is_statement() - { - return TRUE; - } - - function jumps() - { - return $this; - } - - function make_return() - { - return $this; - } -} - -?> diff --git a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/slice.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/slice.php deleted file mode 100755 index bae5a977..00000000 --- a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/slice.php +++ /dev/null @@ -1,48 +0,0 @@ -<?php - -namespace CoffeeScript; - -class yy_Slice extends yy_Base -{ - public $children = array('range'); - - function constructor($range) - { - parent::constructor(); - - $this->range = $range; - - return $this; - } - - function compile_node($options) - { - $to = $this->range->to; - $from = $this->range->from; - - $from_str = $from ? $from->compile($options, LEVEL_PAREN) : '0'; - $compiled = $to ? $to->compile($options, LEVEL_PAREN) : ''; - - if ($to && ! ( ! $this->range->exclusive && intval($compiled) === -1)) - { - $to_str = ', '; - - if ($this->range->exclusive) - { - $to_str .= $compiled; - } - else if (preg_match(SIMPLENUM, $compiled)) - { - $to_str .= (intval($compiled) + 1); - } - else - { - $to_str .= "({$compiled} + 1) || 9e9"; - } - } - - return ".slice({$from_str}".(isset($to_str) ? $to_str : '').')'; - } -} - -?> diff --git a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/splat.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/splat.php deleted file mode 100755 index 0490358f..00000000 --- a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/splat.php +++ /dev/null @@ -1,95 +0,0 @@ -<?php - -namespace CoffeeScript; - -class yy_Splat extends yy_Base -{ - public $children = array('name'); - - function constructor($name) - { - if (is_object($name)) - { - $this->name = $name; - } - else - { - $this->name = yy('Literal', $name); - } - - return $this; - } - - function assigns($name) - { - return $this->name->assigns($name); - } - - function compile($options) - { - if (isset($this->index) && $this->index) - { - return $this->compile_param($options); - } - else - { - return $this->name->compile($options); - } - } - - static function compile_splatted_array($options, $list, $apply = FALSE) - { - $index = -1; - - while (isset($list[++$index]) && ($node = $list[$index]) && ! ($node instanceof yy_Splat)) - { - continue; - } - - if ($index >= count($list)) - { - return ''; - } - - if (count($list) === 1) - { - $code = $list[0]->compile($options, LEVEL_LIST); - - if ($apply) - { - return $code; - } - - return utility('slice').".call({$code})"; - } - - $args = array_slice($list, $index); - - foreach ($args as $i => $node) - { - $code = $node->compile($options, LEVEL_LIST); - $args[$i] = ($node instanceof yy_Splat) ? utility('slice').".call({$code})" : "[{$code}]"; - } - - if ($index === 0) - { - return $args[0].'.concat('.implode(', ', array_slice($args, 1)).')'; - } - - $base = array(); - - foreach (array_slice($list, 0, $index) as $node) - { - $base[] = $node->compile($options, LEVEL_LIST); - } - - return '['.implode(', ', $base).'].concat('.implode(', ', $args).')'; - } - - function is_assignable() - { - return TRUE; - } -} - -?> diff --git a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/switch.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/switch.php deleted file mode 100755 index e8677688..00000000 --- a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/switch.php +++ /dev/null @@ -1,116 +0,0 @@ -<?php - -namespace CoffeeScript; - -class yy_Switch extends yy_Base -{ - public $children = array('subject', 'cases', 'otherwise'); - - function constructor($subject = NULL, $cases = array(), $otherwise = NULL) - { - $this->subject = $subject; - $this->cases = $cases; - $this->otherwise = $otherwise; - - return $this; - } - - function compile_node($options) - { - $idt1 = $options['indent'].TAB; - $idt2 = $options['indent'] = $idt1.TAB; - - $code = $this->tab.'switch (' - .($this->subject ? $this->subject->compile($options, LEVEL_PAREN) : 'false') - .") {\n"; - - foreach ($this->cases as $i => $case) - { - list($conditions, $block) = $case; - - foreach (flatten(array($conditions)) as $cond) - { - if ( ! $this->subject) - { - $cond = $cond->invert(); - } - - $code .= $idt1.'case '.$cond->compile($options, LEVEL_PAREN).":\n"; - } - - if ($body = $block->compile($options, LEVEL_TOP)) - { - $code .= $body."\n"; - } - - if ($i === (count($this->cases) - 1) && ! $this->otherwise) - { - break; - } - - $expr = $this->last_non_comment($block->expressions); - - if ($expr instanceof yy_Return || - ($expr instanceof yy_Literal && $expr->jumps() && ''.$expr->value !== 'debugger')) - { - continue; - } - - $code .= $idt2."break;\n"; - } - - if ($this->otherwise && count($this->otherwise->expressions)) - { - $code .= $idt1."default:\n".$this->otherwise->compile($options, LEVEL_TOP)."\n"; - } - - return $code.$this->tab.'}'; - } - - function is_statement() - { - return TRUE; - } - - function jumps($options = array()) - { - if ( ! isset($options['block'])) - { - $options['block'] = TRUE; - } - - foreach ($this->cases as $case) - { - list($conds, $block) = $case; - - if ($block->jumps($options)) - { - return $block; - } - } - - if (isset($this->otherwise) && $this->otherwise) - { - return $this->otherwise->jumps($options); - } - - return FALSE; - } - - function make_return() - { - foreach ($this->cases as $pair) - { - $pair[1]->make_return(); - } - - if (isset($this->otherwise) && $this->otherwise) - { - $this->otherwise->make_return(); - } - - return $this; - } -} - -?> diff --git a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/throw.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/throw.php deleted file mode 100755 index 3a2cf39a..00000000 --- a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/throw.php +++ /dev/null @@ -1,37 +0,0 @@ -<?php - -namespace CoffeeScript; - -class yy_Throw extends yy_Base -{ - public $children = array('expression'); - - function constructor($expression) - { - $this->expression = $expression; - - return $this; - } - - function compile_node($options = array()) - { - return $this->tab.'throw '.$this->expression->compile($options).';'; - } - - function is_statement() - { - return TRUE; - } - - function jumps() - { - return FALSE; - } - - function make_return() - { - return $this; - } -} - -?> diff --git a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/try.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/try.php deleted file mode 100755 index 0334a685..00000000 --- a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/try.php +++ /dev/null @@ -1,67 +0,0 @@ -<?php - -namespace CoffeeScript; - -class yy_Try extends yy_Base -{ - public $children = array('attempt', 'recovery', 'ensure'); - - function constructor($attempt = NULL, $error = NULL, $recovery = NULL, $ensure = NULL) - { - $this->attempt = $attempt; - $this->error = $error; - $this->recovery = $recovery; - $this->ensure = $ensure; - - return $this; - } - - function compile_node($options = array()) - { - $options['indent'] .= TAB; - $error_part = $this->error ? ' ('.$this->error->compile($options).') ' : ' '; - $catch_part = ''; - - if ($this->recovery) - { - $catch_part = " catch{$error_part}{\n".$this->recovery->compile($options, LEVEL_TOP)."\n{$this->tab}}"; - } - else if ( ! ($this->ensure || $this->recovery)) - { - $catch_part = ' catch (_e) {}'; - } - - return - "{$this->tab}try {\n" - . $this->attempt->compile($options, LEVEL_TOP)."\n" - . "{$this->tab}}{$catch_part}" - . ($this->ensure ? " finally {\n".$this->ensure->compile($options, LEVEL_TOP)."\n{$this->tab}}" : ''); - } - - function is_statement() - { - return TRUE; - } - - function jumps($options = array()) - { - return $this->attempt->jumps($options) || (isset($this->recovery) && $this->recovery->jumps($options)); - } - - function make_return() - { - if ($this->attempt) - { - $this->attempt = $this->attempt->make_return(); - } - - if ($this->recovery) - { - $this->recovery = $this->recovery->make_return(); - } - - return $this; - } -} - -?> diff --git a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/value.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/value.php deleted file mode 100755 index f11e7c5d..00000000 --- a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/value.php +++ /dev/null @@ -1,218 +0,0 @@ -<?php - -namespace CoffeeScript; - -class yy_Value extends yy_Base -{ - public $children = array('base', 'properties'); - - function constructor($base = NULL, $props = NULL, $tag = NULL) - { - if ( ! $props && $base instanceof yy_Value) - { - return $base; - } - - $this->base = $base; - $this->properties = $props ? $props : array(); - - if ($tag) - { - $this->{$tag} = TRUE; - } - - return $this; - } - - function assigns($name) - { - return ! count($this->properties) && $this->base->assigns($name); - } - - function cache_reference($options) - { - $name = last($this->properties); - - if (count($this->properties) < 2 && ! $this->base->is_complex() && ! ($name && $name->is_complex())) - { - return array($this, $this); - } - - $base = yy('Value', $this->base, array_slice($this->properties, 0, -1)); - $bref = NULL; - - if ($base->is_complex()) - { - $bref = yy('Literal', $options['scope']->free_variable('base')); - $base = yy('Value', yy('Parens', yy('Assign', $bref, $base))); - } - - if ( ! $name) - { - return array($base, $bref); - } - - if ($name->is_complex()) - { - $nref = yy('Literal', $options['scope']->free_variable('name')); - $name = yy('Index', yy('Assign', $nref, $name->index)); - $nref = yy('Index', $nref); - } - - $base->push($name); - - return array($base, yy('Value', isset($bref) ? $bref : $base->base, - array(isset($nref) ? $nref : $name))); - } - - function compile_node($options) - { - $this->base->front = $this->front; - $props = $this->properties; - - $code = $this->base->compile($options, count($props) ? LEVEL_ACCESS : NULL); - - if ($props && $props[0] instanceof yy_Access && $this->is_simple_number()) - { - $code = "($code)"; - } - - foreach ($props as $prop) - { - $code .= $prop->compile($options); - } - - return $code; - } - - function push($prop) - { - $this->properties[] = $prop; - - return $this; - } - - function has_properties() - { - return !! count($this->properties); - } - - function is_array() - { - return ! count($this->properties) && $this->base instanceof yy_Arr; - } - - function is_assignable() - { - return $this->has_properties() || $this->base->is_assignable(); - } - - function is_atomic() - { - foreach (array_merge($this->properties, array($this->base)) as $node) - { - if ((isset($node->soak) && $node->soak) || $node instanceof yy_Call) - { - return FALSE; - } - } - - return TRUE; - } - - function is_complex() - { - return $this->has_properties() || $this->base->is_complex(); - } - - function is_object($only_generated = FALSE) - { - if (count($this->properties)) - { - return FALSE; - } - - return ($this->base instanceof yy_Obj) && ( ! $only_generated || $this->base->generated); - } - - function is_simple_number() - { - return ($this->base instanceof yy_Literal) && preg_match(SIMPLENUM, ''.$this->base->value); - } - - function is_splice() - { - return last($this->properties) instanceof yy_Slice; - } - - function is_statement($options) - { - return ! count($this->properties) && $this->base->is_statement($options); - } - - function jumps($options = array()) - { - return ! count($this->properties) && $this->base->jumps($options); - } - - function make_return() - { - if (count($this->properties)) - { - return parent::make_return(); - } - else - { - return $this->base->make_return(); - } - } - - function unfold_soak($options) - { - if (isset($this->unfolded_soak)) - { - return $this->unfolded_soak; - } - - $result = NULL; - - if (($ifn = $this->base->unfold_soak($options))) - { - $ifn->body->properties = array_merge($ifn->body->properties, $this->properties); - $result = $ifn; - } - else - { - foreach ($this->properties as $i => $prop) - { - if (isset($prop->soak) && $prop->soak) - { - $prop->soak = FALSE; - - $fst = yy('Value', $this->base, array_slice($this->properties, 0, $i)); - $snd = yy('Value', $this->base, array_slice($this->properties, $i)); - - if ($fst->is_complex()) - { - $ref = yy('Literal', $options['scope']->free_variable('ref')); - $fst = yy('Parens', yy('Assign', $ref, $fst)); - $snd->base = $ref; - } - - $result = yy('If', yy('Existence', $fst), $snd, array('soak' => TRUE)); - } - } - } - - $this->unfolded_soak = $result ? $result : FALSE; - - return $this->unfolded_soak; - } - - function unwrap() - { - return count($this->properties) ? $this : $this->base; - } -} - -?> diff --git a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/while.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/while.php deleted file mode 100755 index e19e7612..00000000 --- a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/nodes/while.php +++ /dev/null @@ -1,101 +0,0 @@ -<?php - -namespace CoffeeScript; - -class yy_While extends yy_Base -{ - public $children = array('condition', 'guard', 'body'); - - public $returns = FALSE; - - function constructor($condition = NULL, $options = NULL) - { - $this->condition = (isset($options['invert']) && $options['invert']) ? - $condition->invert() : $condition; - - $this->guard = isset($options['guard']) ? $options['guard'] : NULL; - - return $this; - } - - function add_body($body) - { - $this->body = $body; - return $this; - } - - function compile_node($options) - { - $options['indent'] .= TAB; - $set = ''; - $body = $this->body; - - if ($body->is_empty()) - { - $body = ''; - } - else - { - if ($options['level'] > LEVEL_TOP || $this->returns) - { - $rvar = $options['scope']->free_variable('results'); - $set = "{$this->tab}{$rvar} = [];\n"; - - if ($body) - { - $body = yy_Push::wrap($rvar, $body); - } - } - - if ($this->guard) - { - $body = yy_Block::wrap(array(yy('If', $this->guard, $body))); - } - - $body = "\n".$body->compile($options, LEVEL_TOP)."\n{$this->tab}"; - } - - $code = $set.$this->tab.'while ('.$this->condition->compile($options, LEVEL_PAREN).") {{$body}}"; - - if ($this->returns) - { - $code .= "\n{$this->tab}return {$rvar};"; - } - - return $code; - } - - function is_statement() - { - return TRUE; - } - - function jumps() - { - $expressions = isset($this->body->expressions) ? $this->body->expressions : array(); - - if ( ! count($expressions)) - { - return FALSE; - } - - foreach ($expressions as $node) - { - if ($node->jumps(array('loop' => TRUE))) - { - return $node; - } - } - - return FALSE; - } - - function make_return() - { - $this->returns = TRUE; - - return $this; - } -} - -?> diff --git a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/parser.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/parser.php deleted file mode 100755 index 65ad16b7..00000000 --- a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/parser.php +++ /dev/null @@ -1,3291 +0,0 @@ -<?php -namespace CoffeeScript; -use \ArrayAccess as ArrayAccess; -/* Driver template for the PHP_ParserGenerator parser generator. (PHP port of LEMON) -*/ - -/** - * This can be used to store both the string representation of - * a token, and any useful meta-data associated with the token. - * - * meta-data should be stored as an array - */ -class yyToken implements ArrayAccess -{ - public $string = ''; - public $metadata = array(); - - function __construct($s, $m = array()) - { - if ($s instanceof yyToken) { - $this->string = $s->string; - $this->metadata = $s->metadata; - } else { - $this->string = (string) $s; - if ($m instanceof yyToken) { - $this->metadata = $m->metadata; - } elseif (is_array($m)) { - $this->metadata = $m; - } - } - } - - function __toString() - { - return $this->string; - } - - function offsetExists($offset) - { - return isset($this->metadata[$offset]); - } - - function offsetGet($offset) - { - return $this->metadata[$offset]; - } - - function offsetSet($offset, $value) - { - if ($offset === null) { - if (isset($value[0])) { - $x = ($value instanceof yyToken) ? - $value->metadata : $value; - $this->metadata = array_merge($this->metadata, $x); - return; - } - $offset = count($this->metadata); - } - if ($value === null) { - return; - } - if ($value instanceof yyToken) { - if ($value->metadata) { - $this->metadata[$offset] = $value->metadata; - } - } elseif ($value) { - $this->metadata[$offset] = $value; - } - } - - function offsetUnset($offset) - { - unset($this->metadata[$offset]); - } -} - -/** The following structure represents a single element of the - * parser's stack. Information stored includes: - * - * + The state number for the parser at this level of the stack. - * - * + The value of the token stored at this level of the stack. - * (In other words, the "major" token.) - * - * + The semantic value stored at this level of the stack. This is - * the information used by the action routines in the grammar. - * It is sometimes called the "minor" token. - */ -class yyStackEntry -{ - public $stateno; /* The state-number */ - public $major; /* The major token value. This is the code - ** number for the token at this stack level */ - public $minor; /* The user-supplied minor token value. This - ** is the value of the token */ - - public $generated = FALSE; -}; - -// code external to the class is included here - -// declare_class is output here -#line 2 "/var/www/coffeescript-php/grammar.y" - class Parser #line 104 "/var/www/coffeescript-php/grammar.php" -{ - static $LINE = 0; - static $FILE = 'unknown'; - -/* First off, code is included which follows the "include_class" declaration -** in the input file. */ - -/* Next is all token values, as class constants -*/ -/* -** These constants (all generated automatically by the parser generator) -** specify the various kinds of tokens (terminals) that the parser -** understands. -** -** Each symbol here is a terminal symbol in the grammar. -*/ - const YY_POST_IF = 1; - const YY_IF = 2; - const YY_ELSE = 3; - const YY_FOR = 4; - const YY_DO = 5; - const YY_WHILE = 6; - const YY_UNTIL = 7; - const YY_LOOP = 8; - const YY_SUPER = 9; - const YY_CLASS = 10; - const YY_FORIN = 11; - const YY_FOROF = 12; - const YY_BY = 13; - const YY_WHEN = 14; - const YY_EQUALS = 15; - const YY_COLON = 16; - const YY_COMPOUND_ASSIGN = 17; - const YY_RETURN = 18; - const YY_THROW = 19; - const YY_EXTENDS = 20; - const YY_INDENT = 21; - const YY_OUTDENT = 22; - const YY_LOGIC = 23; - const YY_COMPARE = 24; - const YY_RELATION = 25; - const YY_SHIFT = 26; - const YY_PLUS = 27; - const YY_MINUS = 28; - const YY_MATH = 29; - const YY_UNARY = 30; - const YY_EXISTENTIAL = 31; - const YY_INCREMENT = 32; - const YY_DECREMENT = 33; - const YY_CALL_START = 34; - const YY_CALL_END = 35; - const YY_ACCESSOR = 36; - const YY_EXISTENTIAL_ACCESSOR = 37; - const YY_PROTOTYPE = 38; - const YY_TERMINATOR = 39; - const YY_STATEMENT = 40; - const YY_IDENTIFIER = 41; - const YY_NUMBER = 42; - const YY_STRING = 43; - const YY_JS = 44; - const YY_REGEX = 45; - const YY_BOOL = 46; - const YY_HERECOMMENT = 47; - const YY_PARAM_START = 48; - const YY_PARAM_END = 49; - const YY_FUNC = 50; - const YY_BOUND_FUNC = 51; - const YY_COMMA = 52; - const YY_RANGE_EXCLUSIVE = 53; - const YY_INDEX_START = 54; - const YY_INDEX_END = 55; - const YY_INDEX_SOAK = 56; - const YY_INDEX_PROTO = 57; - const YY_OBJECT_START = 58; - const YY_OBJECT_END = 59; - const YY_FUNC_EXIST = 60; - const YY_THIS = 61; - const YY_AT_SIGN = 62; - const YY_ARRAY_START = 63; - const YY_ARRAY_END = 64; - const YY_RANGE_INCLUSIVE = 65; - const YY_TRY = 66; - const YY_FINALLY = 67; - const YY_CATCH = 68; - const YY_PAREN_START = 69; - const YY_PAREN_END = 70; - const YY_OWN = 71; - const YY_SWITCH = 72; - const YY_LEADING_WHEN = 73; - const YY_NO_ACTION = 510; - const YY_ACCEPT_ACTION = 509; - const YY_ERROR_ACTION = 508; - -/* Next are that tables used to determine what action to take based on the -** current state and lookahead token. These tables are used to implement -** functions that take a state number and lookahead value and return an -** action integer. -** -** Suppose the action integer is N. Then the action is determined as -** follows -** -** 0 <= N < self::YYNSTATE Shift N. That is, -** push the lookahead -** token onto the stack -** and goto state N. -** -** self::YYNSTATE <= N < self::YYNSTATE+self::YYNRULE Reduce by rule N-YYNSTATE. -** -** N == self::YYNSTATE+self::YYNRULE A syntax error has occurred. -** -** N == self::YYNSTATE+self::YYNRULE+1 The parser accepts its -** input. (and concludes parsing) -** -** N == self::YYNSTATE+self::YYNRULE+2 No such action. Denotes unused -** slots in the yy_action[] table. -** -** The action table is constructed as a single large static array $yy_action. -** Given state S and lookahead X, the action is computed as -** -** self::$yy_action[self::$yy_shift_ofst[S] + X ] -** -** If the index value self::$yy_shift_ofst[S]+X is out of range or if the value -** self::$yy_lookahead[self::$yy_shift_ofst[S]+X] is not equal to X or if -** self::$yy_shift_ofst[S] is equal to self::YY_SHIFT_USE_DFLT, it means that -** the action is not in the table and that self::$yy_default[S] should be used instead. -** -** The formula above is for computing the action when the lookahead is -** a terminal symbol. If the lookahead is a non-terminal (as occurs after -** a reduce action) then the static $yy_reduce_ofst array is used in place of -** the static $yy_shift_ofst array and self::YY_REDUCE_USE_DFLT is used in place of -** self::YY_SHIFT_USE_DFLT. -** -** The following are the tables generated in this section: -** -** self::$yy_action A single table containing all actions. -** self::$yy_lookahead A table containing the lookahead for each entry in -** yy_action. Used to detect hash collisions. -** self::$yy_shift_ofst For each state, the offset into self::$yy_action for -** shifting terminals. -** self::$yy_reduce_ofst For each state, the offset into self::$yy_action for -** shifting non-terminals after a reduce. -** self::$yy_default Default action for each state. -*/ - const YY_SZ_ACTTAB = 4481; -static public $yy_action = array( - /* 0 */ 509, 182, 181, 233, 88, 115, 286, 281, 223, 102, - /* 10 */ 105, 251, 247, 248, 249, 250, 257, 258, 265, 266, - /* 20 */ 234, 263, 236, 186, 226, 227, 235, 48, 155, 311, - /* 30 */ 43, 51, 241, 240, 225, 162, 139, 237, 238, 239, - /* 40 */ 25, 35, 23, 36, 32, 49, 48, 246, 311, 245, - /* 50 */ 132, 158, 305, 151, 132, 292, 1, 13, 126, 128, - /* 60 */ 184, 80, 116, 286, 281, 223, 102, 105, 251, 247, - /* 70 */ 248, 249, 250, 257, 258, 265, 266, 234, 263, 236, - /* 80 */ 186, 52, 7, 235, 66, 155, 40, 34, 309, 241, - /* 90 */ 240, 290, 162, 244, 237, 238, 239, 35, 23, 36, - /* 100 */ 32, 49, 48, 140, 311, 283, 14, 24, 158, 305, - /* 110 */ 151, 132, 32, 49, 48, 291, 311, 184, 68, 116, - /* 120 */ 286, 281, 223, 102, 105, 251, 247, 248, 249, 250, - /* 130 */ 257, 258, 265, 266, 234, 263, 236, 186, 154, 156, - /* 140 */ 235, 244, 155, 64, 220, 213, 241, 240, 290, 162, - /* 150 */ 206, 237, 238, 239, 215, 173, 209, 207, 60, 210, - /* 160 */ 147, 134, 283, 2, 65, 158, 305, 151, 132, 33, - /* 170 */ 22, 214, 188, 166, 184, 80, 116, 286, 281, 223, - /* 180 */ 102, 105, 251, 247, 248, 249, 250, 257, 258, 265, - /* 190 */ 266, 234, 263, 236, 186, 218, 176, 235, 228, 155, - /* 200 */ 224, 132, 31, 241, 240, 290, 162, 303, 237, 238, - /* 210 */ 239, 179, 23, 36, 32, 49, 48, 145, 311, 283, - /* 220 */ 307, 7, 158, 305, 151, 132, 278, 133, 13, 310, - /* 230 */ 272, 184, 80, 116, 286, 281, 223, 102, 105, 251, - /* 240 */ 247, 248, 249, 250, 257, 258, 265, 266, 234, 263, - /* 250 */ 236, 186, 129, 270, 235, 7, 155, 127, 270, 304, - /* 260 */ 241, 240, 290, 162, 130, 237, 238, 239, 36, 32, - /* 270 */ 49, 48, 210, 311, 144, 246, 283, 245, 132, 158, - /* 280 */ 305, 151, 132, 279, 214, 188, 21, 159, 184, 80, - /* 290 */ 116, 286, 281, 223, 102, 105, 251, 247, 248, 249, - /* 300 */ 250, 257, 258, 265, 266, 234, 263, 236, 186, 208, - /* 310 */ 308, 235, 17, 155, 191, 44, 13, 241, 240, 290, - /* 320 */ 162, 15, 237, 238, 239, 229, 5, 243, 242, 16, - /* 330 */ 302, 147, 246, 283, 245, 132, 158, 305, 151, 132, - /* 340 */ 221, 74, 13, 294, 10, 184, 69, 116, 286, 281, - /* 350 */ 223, 102, 105, 251, 247, 248, 249, 250, 257, 258, - /* 360 */ 265, 266, 234, 263, 236, 186, 274, 222, 235, 244, - /* 370 */ 155, 153, 268, 3, 241, 240, 138, 162, 262, 237, - /* 380 */ 238, 239, 183, 180, 190, 189, 60, 177, 230, 50, - /* 390 */ 137, 2, 14, 158, 305, 151, 132, 311, 299, 275, - /* 400 */ 276, 255, 184, 80, 116, 286, 281, 223, 102, 105, - /* 410 */ 251, 247, 248, 249, 250, 257, 258, 265, 266, 234, - /* 420 */ 263, 236, 186, 175, 256, 235, 11, 155, 232, 168, - /* 430 */ 37, 241, 240, 290, 162, 297, 237, 238, 239, 5, - /* 440 */ 25, 35, 23, 36, 32, 49, 48, 289, 311, 252, - /* 450 */ 158, 305, 151, 132, 164, 253, 167, 10, 171, 184, - /* 460 */ 233, 88, 115, 286, 281, 223, 102, 105, 251, 247, - /* 470 */ 248, 249, 250, 257, 258, 265, 266, 234, 263, 236, - /* 480 */ 186, 178, 287, 235, 165, 155, 5, 284, 28, 241, - /* 490 */ 240, 169, 162, 332, 237, 238, 239, 25, 35, 23, - /* 500 */ 36, 32, 49, 48, 10, 311, 332, 332, 158, 305, - /* 510 */ 151, 132, 332, 332, 332, 332, 332, 184, 80, 116, - /* 520 */ 286, 281, 223, 102, 105, 251, 247, 248, 249, 250, - /* 530 */ 257, 258, 265, 266, 234, 263, 236, 186, 332, 332, - /* 540 */ 235, 332, 155, 332, 332, 332, 241, 240, 290, 162, - /* 550 */ 332, 237, 238, 239, 332, 25, 35, 23, 36, 32, - /* 560 */ 49, 48, 282, 311, 332, 158, 305, 151, 132, 332, - /* 570 */ 332, 332, 332, 174, 184, 233, 88, 115, 286, 281, - /* 580 */ 223, 102, 105, 251, 247, 248, 249, 250, 257, 258, - /* 590 */ 265, 266, 234, 263, 236, 186, 300, 332, 235, 332, - /* 600 */ 155, 5, 285, 42, 241, 240, 332, 162, 332, 237, - /* 610 */ 238, 239, 25, 35, 23, 36, 32, 49, 48, 10, - /* 620 */ 311, 332, 332, 158, 305, 151, 132, 332, 332, 254, - /* 630 */ 312, 332, 184, 277, 277, 332, 332, 142, 135, 172, - /* 640 */ 332, 233, 88, 115, 286, 281, 223, 102, 105, 251, - /* 650 */ 247, 248, 249, 250, 257, 258, 265, 266, 234, 263, - /* 660 */ 236, 186, 332, 192, 235, 332, 155, 332, 332, 374, - /* 670 */ 241, 240, 332, 162, 332, 237, 238, 239, 53, 332, - /* 680 */ 66, 332, 40, 34, 12, 143, 55, 374, 332, 158, - /* 690 */ 305, 151, 132, 332, 54, 38, 332, 312, 184, 332, - /* 700 */ 374, 277, 332, 19, 20, 135, 26, 46, 58, 56, - /* 710 */ 332, 246, 374, 245, 132, 332, 306, 244, 267, 264, - /* 720 */ 259, 260, 261, 231, 62, 332, 226, 227, 312, 194, - /* 730 */ 332, 332, 277, 332, 60, 332, 135, 293, 150, 4, - /* 740 */ 47, 295, 152, 332, 246, 8, 245, 132, 18, 273, - /* 750 */ 332, 94, 116, 286, 281, 223, 102, 105, 251, 247, - /* 760 */ 248, 249, 250, 257, 258, 265, 266, 234, 263, 236, - /* 770 */ 186, 61, 198, 235, 332, 155, 149, 332, 332, 241, - /* 780 */ 240, 220, 162, 332, 237, 238, 239, 206, 170, 63, - /* 790 */ 332, 219, 173, 209, 207, 271, 332, 332, 158, 305, - /* 800 */ 151, 132, 332, 332, 332, 332, 332, 184, 211, 88, - /* 810 */ 115, 286, 281, 223, 102, 105, 251, 247, 248, 249, - /* 820 */ 250, 257, 258, 265, 266, 234, 263, 236, 186, 332, - /* 830 */ 332, 235, 332, 155, 332, 195, 332, 241, 240, 332, - /* 840 */ 162, 332, 237, 238, 239, 332, 14, 196, 199, 332, - /* 850 */ 332, 204, 185, 216, 332, 332, 158, 305, 151, 132, - /* 860 */ 332, 332, 332, 332, 332, 184, 91, 116, 286, 281, - /* 870 */ 223, 102, 105, 251, 247, 248, 249, 250, 257, 258, - /* 880 */ 265, 266, 234, 263, 236, 186, 332, 61, 235, 332, - /* 890 */ 155, 332, 332, 332, 241, 240, 332, 162, 332, 237, - /* 900 */ 238, 239, 53, 332, 66, 63, 40, 34, 12, 143, - /* 910 */ 55, 131, 332, 158, 305, 151, 132, 332, 54, 38, - /* 920 */ 332, 6, 184, 332, 332, 193, 332, 19, 20, 332, - /* 930 */ 26, 332, 58, 56, 332, 205, 332, 332, 332, 332, - /* 940 */ 306, 244, 267, 264, 259, 260, 261, 231, 62, 332, - /* 950 */ 226, 227, 210, 244, 267, 264, 244, 332, 60, 231, - /* 960 */ 332, 293, 150, 4, 214, 188, 152, 332, 332, 8, - /* 970 */ 201, 332, 18, 60, 137, 53, 332, 66, 4, 40, - /* 980 */ 34, 12, 143, 55, 332, 332, 67, 332, 217, 176, - /* 990 */ 332, 54, 38, 332, 6, 332, 332, 332, 332, 332, - /* 1000 */ 19, 20, 332, 26, 332, 58, 56, 332, 332, 332, - /* 1010 */ 332, 332, 332, 306, 244, 267, 264, 259, 260, 261, - /* 1020 */ 231, 62, 332, 226, 227, 332, 332, 332, 332, 332, - /* 1030 */ 332, 60, 332, 332, 293, 150, 4, 280, 332, 152, - /* 1040 */ 332, 332, 8, 332, 332, 18, 77, 116, 286, 281, - /* 1050 */ 223, 102, 105, 251, 247, 248, 249, 250, 257, 258, - /* 1060 */ 265, 266, 234, 263, 236, 186, 332, 332, 235, 332, - /* 1070 */ 155, 332, 332, 332, 241, 240, 332, 162, 332, 237, - /* 1080 */ 238, 239, 332, 332, 332, 332, 332, 332, 332, 332, - /* 1090 */ 332, 332, 332, 158, 305, 151, 132, 332, 332, 332, - /* 1100 */ 332, 332, 184, 109, 116, 286, 281, 223, 102, 105, - /* 1110 */ 251, 247, 248, 249, 250, 257, 258, 265, 266, 234, - /* 1120 */ 263, 236, 186, 332, 332, 235, 332, 155, 332, 195, - /* 1130 */ 332, 241, 240, 332, 162, 332, 237, 238, 239, 332, - /* 1140 */ 332, 196, 199, 332, 332, 202, 185, 216, 332, 332, - /* 1150 */ 158, 305, 151, 132, 332, 332, 332, 332, 332, 184, - /* 1160 */ 117, 116, 286, 281, 223, 102, 105, 251, 247, 248, - /* 1170 */ 249, 250, 257, 258, 265, 266, 234, 263, 236, 186, - /* 1180 */ 332, 332, 235, 332, 155, 332, 332, 332, 241, 240, - /* 1190 */ 332, 162, 332, 237, 238, 239, 332, 332, 332, 332, - /* 1200 */ 332, 332, 332, 332, 332, 332, 332, 158, 305, 151, - /* 1210 */ 132, 332, 332, 332, 332, 332, 184, 84, 116, 286, - /* 1220 */ 281, 223, 102, 105, 251, 247, 248, 249, 250, 257, - /* 1230 */ 258, 265, 266, 234, 263, 236, 186, 332, 332, 235, - /* 1240 */ 332, 155, 332, 332, 332, 241, 240, 332, 162, 332, - /* 1250 */ 237, 238, 239, 332, 332, 332, 332, 332, 332, 332, - /* 1260 */ 332, 332, 332, 332, 158, 305, 151, 132, 332, 332, - /* 1270 */ 332, 332, 332, 184, 71, 116, 286, 281, 223, 102, - /* 1280 */ 105, 251, 247, 248, 249, 250, 257, 258, 265, 266, - /* 1290 */ 234, 263, 236, 186, 332, 332, 235, 332, 155, 332, - /* 1300 */ 332, 332, 241, 240, 332, 162, 332, 237, 238, 239, - /* 1310 */ 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, - /* 1320 */ 332, 158, 305, 151, 132, 332, 332, 332, 332, 332, - /* 1330 */ 184, 93, 116, 286, 281, 223, 102, 105, 251, 247, - /* 1340 */ 248, 249, 250, 257, 258, 265, 266, 234, 263, 236, - /* 1350 */ 186, 332, 332, 235, 332, 155, 332, 332, 332, 241, - /* 1360 */ 240, 332, 162, 332, 237, 238, 239, 332, 332, 332, - /* 1370 */ 332, 332, 332, 332, 332, 332, 332, 332, 158, 305, - /* 1380 */ 151, 132, 332, 332, 332, 332, 332, 184, 103, 116, - /* 1390 */ 286, 281, 223, 102, 105, 251, 247, 248, 249, 250, - /* 1400 */ 257, 258, 265, 266, 234, 263, 236, 186, 332, 332, - /* 1410 */ 235, 332, 155, 332, 332, 332, 241, 240, 332, 162, - /* 1420 */ 332, 237, 238, 239, 332, 332, 332, 332, 332, 332, - /* 1430 */ 332, 332, 332, 332, 332, 158, 305, 151, 132, 332, - /* 1440 */ 332, 332, 332, 332, 184, 83, 116, 286, 281, 223, - /* 1450 */ 102, 105, 251, 247, 248, 249, 250, 257, 258, 265, - /* 1460 */ 266, 234, 263, 236, 186, 332, 332, 235, 332, 155, - /* 1470 */ 332, 332, 332, 241, 240, 332, 162, 332, 237, 238, - /* 1480 */ 239, 332, 332, 332, 332, 332, 332, 332, 332, 332, - /* 1490 */ 332, 332, 158, 305, 151, 132, 332, 332, 332, 332, - /* 1500 */ 332, 184, 78, 116, 286, 281, 223, 102, 105, 251, - /* 1510 */ 247, 248, 249, 250, 257, 258, 265, 266, 234, 263, - /* 1520 */ 236, 186, 332, 332, 235, 332, 155, 332, 332, 332, - /* 1530 */ 241, 240, 332, 162, 332, 237, 238, 239, 332, 332, - /* 1540 */ 332, 332, 332, 332, 332, 332, 332, 332, 332, 158, - /* 1550 */ 305, 151, 132, 332, 332, 332, 332, 332, 184, 85, - /* 1560 */ 116, 286, 281, 223, 102, 105, 251, 247, 248, 249, - /* 1570 */ 250, 257, 258, 265, 266, 234, 263, 236, 186, 332, - /* 1580 */ 332, 235, 332, 155, 332, 332, 332, 241, 240, 332, - /* 1590 */ 162, 332, 237, 238, 239, 332, 332, 332, 332, 332, - /* 1600 */ 332, 332, 332, 332, 332, 332, 158, 305, 151, 132, - /* 1610 */ 332, 332, 332, 332, 332, 184, 121, 116, 286, 281, - /* 1620 */ 223, 102, 105, 251, 247, 248, 249, 250, 257, 258, - /* 1630 */ 265, 266, 234, 263, 236, 186, 332, 332, 235, 332, - /* 1640 */ 155, 332, 332, 332, 241, 240, 332, 162, 332, 237, - /* 1650 */ 238, 239, 332, 332, 332, 332, 332, 332, 332, 332, - /* 1660 */ 332, 332, 332, 158, 305, 151, 132, 332, 332, 332, - /* 1670 */ 332, 332, 184, 122, 116, 286, 281, 223, 102, 105, - /* 1680 */ 251, 247, 248, 249, 250, 257, 258, 265, 266, 234, - /* 1690 */ 263, 236, 186, 332, 332, 235, 332, 155, 332, 332, - /* 1700 */ 332, 241, 240, 332, 162, 332, 237, 238, 239, 332, - /* 1710 */ 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, - /* 1720 */ 158, 305, 151, 132, 332, 332, 332, 332, 332, 184, - /* 1730 */ 75, 116, 286, 281, 223, 102, 105, 251, 247, 248, - /* 1740 */ 249, 250, 257, 258, 265, 266, 234, 263, 236, 186, - /* 1750 */ 332, 332, 235, 332, 155, 332, 332, 332, 241, 240, - /* 1760 */ 332, 162, 332, 237, 238, 239, 332, 332, 332, 332, - /* 1770 */ 332, 332, 332, 332, 332, 332, 332, 158, 305, 151, - /* 1780 */ 132, 332, 332, 332, 332, 332, 184, 114, 116, 286, - /* 1790 */ 281, 223, 102, 105, 251, 247, 248, 249, 250, 257, - /* 1800 */ 258, 265, 266, 234, 263, 236, 186, 332, 332, 235, - /* 1810 */ 332, 155, 332, 332, 332, 241, 240, 332, 162, 332, - /* 1820 */ 237, 238, 239, 332, 332, 332, 332, 332, 332, 332, - /* 1830 */ 332, 332, 332, 332, 158, 305, 151, 132, 332, 332, - /* 1840 */ 332, 332, 332, 184, 108, 116, 286, 281, 223, 102, - /* 1850 */ 105, 251, 247, 248, 249, 250, 257, 258, 265, 266, - /* 1860 */ 234, 263, 236, 186, 332, 332, 235, 332, 155, 332, - /* 1870 */ 332, 332, 241, 240, 332, 162, 332, 237, 238, 239, - /* 1880 */ 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, - /* 1890 */ 332, 158, 305, 151, 132, 332, 332, 332, 332, 332, - /* 1900 */ 184, 99, 116, 286, 281, 223, 102, 105, 251, 247, - /* 1910 */ 248, 249, 250, 257, 258, 265, 266, 234, 263, 236, - /* 1920 */ 186, 332, 332, 235, 332, 155, 332, 332, 332, 241, - /* 1930 */ 240, 332, 162, 332, 237, 238, 239, 332, 332, 332, - /* 1940 */ 332, 332, 332, 332, 332, 332, 332, 332, 158, 305, - /* 1950 */ 151, 132, 332, 332, 332, 332, 332, 184, 92, 116, - /* 1960 */ 286, 281, 223, 102, 105, 251, 247, 248, 249, 250, - /* 1970 */ 257, 258, 265, 266, 234, 263, 236, 186, 332, 332, - /* 1980 */ 235, 332, 155, 332, 332, 332, 241, 240, 332, 162, - /* 1990 */ 332, 237, 238, 239, 332, 332, 332, 332, 332, 332, - /* 2000 */ 332, 332, 332, 332, 332, 158, 305, 151, 132, 332, - /* 2010 */ 332, 332, 332, 332, 184, 76, 116, 286, 281, 223, - /* 2020 */ 102, 105, 251, 247, 248, 249, 250, 257, 258, 265, - /* 2030 */ 266, 234, 263, 236, 186, 332, 332, 235, 332, 155, - /* 2040 */ 332, 332, 332, 241, 240, 332, 162, 332, 237, 238, - /* 2050 */ 239, 332, 332, 332, 332, 332, 332, 332, 332, 332, - /* 2060 */ 332, 332, 158, 305, 151, 132, 332, 332, 332, 332, - /* 2070 */ 332, 184, 90, 116, 286, 281, 223, 102, 105, 251, - /* 2080 */ 247, 248, 249, 250, 257, 258, 265, 266, 234, 263, - /* 2090 */ 236, 186, 332, 332, 235, 332, 155, 332, 332, 332, - /* 2100 */ 241, 240, 332, 162, 332, 237, 238, 239, 332, 332, - /* 2110 */ 332, 332, 332, 332, 332, 332, 332, 332, 332, 158, - /* 2120 */ 305, 151, 132, 332, 332, 332, 332, 332, 184, 107, - /* 2130 */ 116, 286, 281, 223, 102, 105, 251, 247, 248, 249, - /* 2140 */ 250, 257, 258, 265, 266, 234, 263, 236, 186, 332, - /* 2150 */ 332, 235, 332, 155, 332, 332, 332, 241, 240, 332, - /* 2160 */ 162, 332, 237, 238, 239, 332, 332, 332, 332, 332, - /* 2170 */ 332, 332, 332, 332, 332, 332, 158, 305, 151, 132, - /* 2180 */ 332, 332, 332, 332, 332, 184, 113, 116, 286, 281, - /* 2190 */ 223, 102, 105, 251, 247, 248, 249, 250, 257, 258, - /* 2200 */ 265, 266, 234, 263, 236, 186, 332, 332, 235, 332, - /* 2210 */ 155, 332, 332, 332, 241, 240, 332, 162, 332, 237, - /* 2220 */ 238, 239, 332, 332, 332, 332, 332, 332, 332, 332, - /* 2230 */ 332, 332, 332, 158, 305, 151, 132, 332, 332, 332, - /* 2240 */ 332, 332, 184, 104, 116, 286, 281, 223, 102, 105, - /* 2250 */ 251, 247, 248, 249, 250, 257, 258, 265, 266, 234, - /* 2260 */ 263, 236, 186, 332, 332, 235, 332, 155, 332, 332, - /* 2270 */ 332, 241, 240, 332, 162, 332, 237, 238, 239, 332, - /* 2280 */ 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, - /* 2290 */ 158, 305, 151, 132, 332, 332, 332, 332, 332, 184, - /* 2300 */ 95, 116, 286, 281, 223, 102, 105, 251, 247, 248, - /* 2310 */ 249, 250, 257, 258, 265, 266, 234, 263, 236, 186, - /* 2320 */ 332, 332, 235, 332, 155, 332, 332, 332, 241, 240, - /* 2330 */ 332, 162, 332, 237, 238, 239, 332, 332, 332, 332, - /* 2340 */ 332, 332, 332, 332, 332, 332, 332, 158, 305, 151, - /* 2350 */ 132, 332, 332, 332, 332, 332, 184, 87, 116, 286, - /* 2360 */ 281, 223, 102, 105, 251, 247, 248, 249, 250, 257, - /* 2370 */ 258, 265, 266, 234, 263, 236, 186, 332, 332, 235, - /* 2380 */ 332, 155, 332, 332, 332, 241, 240, 332, 162, 332, - /* 2390 */ 237, 238, 239, 332, 332, 332, 332, 332, 332, 332, - /* 2400 */ 332, 332, 332, 332, 158, 305, 151, 132, 332, 332, - /* 2410 */ 332, 332, 332, 184, 112, 116, 286, 281, 223, 102, - /* 2420 */ 105, 251, 247, 248, 249, 250, 257, 258, 265, 266, - /* 2430 */ 234, 263, 236, 186, 332, 332, 235, 332, 155, 332, - /* 2440 */ 332, 332, 241, 240, 332, 162, 332, 237, 238, 239, - /* 2450 */ 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, - /* 2460 */ 332, 158, 305, 151, 132, 332, 332, 332, 332, 332, - /* 2470 */ 184, 97, 116, 286, 281, 223, 102, 105, 251, 247, - /* 2480 */ 248, 249, 250, 257, 258, 265, 266, 234, 263, 236, - /* 2490 */ 186, 332, 332, 235, 332, 155, 332, 332, 332, 241, - /* 2500 */ 240, 332, 162, 332, 237, 238, 239, 332, 332, 332, - /* 2510 */ 332, 332, 332, 332, 332, 332, 332, 332, 158, 305, - /* 2520 */ 151, 132, 332, 332, 332, 332, 332, 184, 119, 116, - /* 2530 */ 286, 281, 223, 102, 105, 251, 247, 248, 249, 250, - /* 2540 */ 257, 258, 265, 266, 234, 263, 236, 186, 332, 332, - /* 2550 */ 235, 332, 155, 332, 332, 332, 241, 240, 332, 162, - /* 2560 */ 332, 237, 238, 239, 332, 332, 332, 332, 332, 332, - /* 2570 */ 332, 332, 332, 332, 332, 158, 305, 151, 132, 332, - /* 2580 */ 332, 332, 332, 332, 184, 96, 116, 286, 281, 223, - /* 2590 */ 102, 105, 251, 247, 248, 249, 250, 257, 258, 265, - /* 2600 */ 266, 234, 263, 236, 186, 332, 332, 235, 332, 155, - /* 2610 */ 332, 332, 332, 241, 240, 332, 162, 332, 237, 238, - /* 2620 */ 239, 332, 332, 332, 332, 332, 332, 332, 332, 332, - /* 2630 */ 332, 332, 158, 305, 151, 132, 332, 332, 332, 332, - /* 2640 */ 332, 184, 82, 116, 286, 281, 223, 102, 105, 251, - /* 2650 */ 247, 248, 249, 250, 257, 258, 265, 266, 234, 263, - /* 2660 */ 236, 186, 332, 332, 235, 332, 155, 332, 332, 332, - /* 2670 */ 241, 240, 332, 162, 332, 237, 238, 239, 53, 332, - /* 2680 */ 66, 332, 40, 34, 12, 143, 55, 332, 332, 158, - /* 2690 */ 305, 151, 132, 332, 54, 38, 332, 7, 184, 332, - /* 2700 */ 332, 332, 332, 19, 20, 332, 26, 332, 58, 56, - /* 2710 */ 332, 332, 332, 332, 332, 332, 306, 244, 267, 264, - /* 2720 */ 259, 260, 261, 231, 62, 332, 226, 227, 332, 332, - /* 2730 */ 332, 332, 332, 332, 60, 332, 332, 293, 150, 4, - /* 2740 */ 332, 332, 152, 332, 332, 8, 332, 332, 18, 332, - /* 2750 */ 332, 53, 332, 66, 332, 40, 34, 12, 143, 55, - /* 2760 */ 332, 332, 332, 332, 332, 332, 332, 54, 38, 332, - /* 2770 */ 27, 332, 332, 332, 332, 332, 19, 20, 332, 26, - /* 2780 */ 332, 58, 56, 332, 332, 332, 332, 332, 332, 306, - /* 2790 */ 244, 267, 264, 259, 260, 261, 231, 62, 332, 226, - /* 2800 */ 227, 332, 332, 332, 332, 332, 332, 60, 332, 332, - /* 2810 */ 293, 150, 4, 332, 332, 152, 332, 332, 8, 332, - /* 2820 */ 332, 18, 101, 116, 286, 281, 223, 102, 105, 251, - /* 2830 */ 247, 248, 249, 250, 257, 258, 265, 266, 234, 263, - /* 2840 */ 236, 186, 332, 332, 235, 332, 155, 332, 332, 332, - /* 2850 */ 241, 240, 332, 162, 332, 237, 238, 239, 53, 332, - /* 2860 */ 66, 332, 40, 34, 12, 143, 55, 332, 332, 158, - /* 2870 */ 305, 151, 132, 332, 54, 38, 332, 41, 184, 332, - /* 2880 */ 332, 332, 332, 19, 20, 332, 26, 332, 58, 56, - /* 2890 */ 332, 332, 332, 332, 332, 332, 306, 244, 267, 264, - /* 2900 */ 259, 260, 261, 231, 62, 332, 226, 227, 332, 332, - /* 2910 */ 332, 332, 332, 332, 60, 332, 332, 293, 150, 4, - /* 2920 */ 332, 332, 152, 332, 332, 8, 332, 332, 18, 332, - /* 2930 */ 332, 53, 332, 66, 332, 40, 34, 12, 143, 55, - /* 2940 */ 332, 332, 332, 332, 332, 332, 332, 54, 38, 332, - /* 2950 */ 45, 332, 332, 332, 332, 332, 19, 20, 332, 26, - /* 2960 */ 332, 58, 56, 332, 332, 332, 332, 332, 332, 306, - /* 2970 */ 244, 267, 264, 259, 260, 261, 231, 62, 332, 226, - /* 2980 */ 227, 332, 332, 332, 332, 332, 332, 60, 332, 332, - /* 2990 */ 293, 150, 4, 332, 332, 152, 332, 332, 8, 332, - /* 3000 */ 332, 18, 70, 116, 286, 281, 223, 102, 105, 251, - /* 3010 */ 247, 248, 249, 250, 257, 258, 265, 266, 234, 263, - /* 3020 */ 236, 186, 332, 332, 235, 332, 155, 332, 332, 332, - /* 3030 */ 241, 240, 332, 162, 332, 237, 238, 239, 332, 332, - /* 3040 */ 332, 332, 332, 332, 332, 332, 332, 332, 332, 158, - /* 3050 */ 305, 151, 132, 332, 332, 332, 332, 332, 184, 100, - /* 3060 */ 116, 286, 281, 223, 102, 105, 251, 247, 248, 249, - /* 3070 */ 250, 257, 258, 265, 266, 234, 263, 236, 186, 332, - /* 3080 */ 332, 235, 332, 155, 332, 332, 332, 241, 240, 332, - /* 3090 */ 162, 332, 237, 238, 239, 53, 332, 66, 332, 40, - /* 3100 */ 34, 12, 143, 55, 332, 332, 158, 305, 151, 132, - /* 3110 */ 332, 54, 38, 332, 6, 184, 332, 332, 332, 332, - /* 3120 */ 19, 20, 332, 26, 332, 58, 56, 332, 332, 332, - /* 3130 */ 332, 332, 332, 306, 244, 267, 264, 259, 260, 261, - /* 3140 */ 231, 62, 332, 226, 227, 332, 332, 332, 332, 332, - /* 3150 */ 332, 60, 332, 332, 293, 150, 4, 332, 332, 152, - /* 3160 */ 332, 332, 8, 332, 332, 18, 332, 332, 53, 332, - /* 3170 */ 66, 332, 40, 34, 12, 143, 55, 332, 332, 332, - /* 3180 */ 332, 332, 332, 332, 54, 38, 332, 332, 187, 332, - /* 3190 */ 332, 332, 332, 19, 20, 332, 26, 332, 58, 56, - /* 3200 */ 332, 332, 332, 332, 332, 332, 306, 244, 267, 264, - /* 3210 */ 259, 260, 261, 231, 62, 332, 226, 227, 332, 332, - /* 3220 */ 332, 332, 332, 332, 60, 332, 332, 293, 150, 4, - /* 3230 */ 332, 332, 152, 332, 332, 8, 332, 332, 18, 332, - /* 3240 */ 332, 53, 332, 66, 332, 40, 34, 12, 143, 55, - /* 3250 */ 332, 332, 332, 332, 332, 332, 332, 54, 38, 332, - /* 3260 */ 9, 332, 332, 332, 332, 332, 19, 20, 332, 26, - /* 3270 */ 332, 58, 56, 332, 332, 332, 332, 332, 332, 306, - /* 3280 */ 244, 267, 264, 259, 260, 261, 231, 62, 332, 226, - /* 3290 */ 227, 332, 332, 332, 332, 332, 332, 60, 332, 332, - /* 3300 */ 293, 150, 4, 332, 332, 152, 332, 332, 8, 332, - /* 3310 */ 332, 18, 106, 116, 286, 281, 223, 102, 105, 251, - /* 3320 */ 247, 248, 249, 250, 257, 258, 265, 266, 234, 263, - /* 3330 */ 236, 186, 332, 332, 235, 332, 155, 332, 332, 332, - /* 3340 */ 241, 240, 332, 162, 332, 237, 238, 239, 332, 332, - /* 3350 */ 332, 332, 332, 332, 332, 332, 332, 332, 332, 158, - /* 3360 */ 305, 151, 132, 332, 332, 332, 332, 332, 184, 86, - /* 3370 */ 116, 286, 281, 223, 102, 105, 251, 247, 248, 249, - /* 3380 */ 250, 257, 258, 265, 266, 234, 263, 236, 186, 332, - /* 3390 */ 332, 235, 332, 155, 332, 332, 332, 241, 240, 332, - /* 3400 */ 162, 332, 237, 238, 239, 332, 332, 332, 332, 332, - /* 3410 */ 332, 332, 332, 332, 332, 332, 158, 305, 151, 132, - /* 3420 */ 332, 332, 332, 332, 332, 184, 120, 116, 286, 281, - /* 3430 */ 223, 102, 105, 251, 247, 248, 249, 250, 257, 258, - /* 3440 */ 265, 266, 234, 263, 236, 186, 332, 332, 235, 332, - /* 3450 */ 155, 332, 332, 332, 241, 240, 332, 162, 332, 237, - /* 3460 */ 238, 239, 332, 332, 332, 332, 332, 332, 332, 332, - /* 3470 */ 332, 332, 332, 158, 305, 151, 132, 332, 332, 332, - /* 3480 */ 332, 332, 184, 118, 116, 286, 281, 223, 102, 105, - /* 3490 */ 251, 247, 248, 249, 250, 257, 258, 265, 266, 234, - /* 3500 */ 263, 236, 186, 332, 332, 235, 332, 155, 332, 332, - /* 3510 */ 332, 241, 240, 332, 162, 332, 237, 238, 239, 332, - /* 3520 */ 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, - /* 3530 */ 158, 305, 151, 132, 332, 332, 332, 332, 332, 184, - /* 3540 */ 89, 116, 286, 281, 223, 102, 105, 251, 247, 248, - /* 3550 */ 249, 250, 257, 258, 265, 266, 234, 263, 236, 186, - /* 3560 */ 332, 332, 235, 332, 155, 332, 332, 332, 241, 240, - /* 3570 */ 332, 162, 332, 237, 238, 239, 332, 332, 332, 332, - /* 3580 */ 332, 332, 332, 332, 332, 332, 332, 158, 305, 151, - /* 3590 */ 132, 332, 332, 332, 332, 332, 184, 79, 116, 286, - /* 3600 */ 281, 223, 102, 105, 251, 247, 248, 249, 250, 257, - /* 3610 */ 258, 265, 266, 234, 263, 236, 186, 332, 332, 235, - /* 3620 */ 332, 155, 332, 332, 332, 241, 240, 332, 162, 332, - /* 3630 */ 237, 238, 239, 53, 332, 66, 332, 40, 34, 12, - /* 3640 */ 143, 55, 332, 332, 158, 305, 151, 132, 332, 54, - /* 3650 */ 38, 332, 124, 184, 332, 332, 332, 332, 19, 20, - /* 3660 */ 332, 26, 332, 58, 56, 332, 332, 332, 332, 332, - /* 3670 */ 332, 306, 244, 267, 264, 259, 260, 261, 231, 62, - /* 3680 */ 332, 226, 227, 332, 332, 332, 332, 332, 332, 60, - /* 3690 */ 332, 332, 293, 150, 4, 332, 332, 152, 332, 332, - /* 3700 */ 8, 332, 332, 18, 332, 98, 116, 286, 281, 223, - /* 3710 */ 102, 105, 251, 247, 248, 249, 250, 257, 258, 265, - /* 3720 */ 266, 234, 263, 236, 186, 332, 332, 235, 332, 155, - /* 3730 */ 332, 332, 332, 241, 240, 332, 162, 332, 237, 238, - /* 3740 */ 239, 332, 332, 332, 332, 332, 332, 332, 332, 332, - /* 3750 */ 332, 332, 158, 305, 151, 132, 332, 332, 332, 332, - /* 3760 */ 332, 184, 81, 116, 286, 281, 223, 102, 105, 251, - /* 3770 */ 247, 248, 249, 250, 257, 258, 265, 266, 234, 263, - /* 3780 */ 236, 186, 332, 332, 235, 332, 155, 332, 332, 332, - /* 3790 */ 241, 240, 332, 162, 332, 237, 238, 239, 53, 332, - /* 3800 */ 66, 332, 40, 34, 12, 143, 55, 332, 332, 158, - /* 3810 */ 305, 151, 132, 332, 54, 38, 332, 332, 184, 332, - /* 3820 */ 332, 332, 332, 19, 20, 332, 26, 332, 58, 56, - /* 3830 */ 332, 332, 332, 332, 332, 332, 306, 244, 267, 264, - /* 3840 */ 259, 260, 261, 231, 62, 332, 226, 227, 332, 148, - /* 3850 */ 136, 146, 332, 332, 60, 332, 332, 293, 150, 4, - /* 3860 */ 332, 332, 152, 332, 332, 8, 332, 1, 18, 126, - /* 3870 */ 128, 53, 415, 269, 148, 136, 146, 12, 143, 55, - /* 3880 */ 332, 332, 332, 332, 332, 332, 332, 54, 38, 332, - /* 3890 */ 332, 332, 1, 332, 126, 128, 19, 20, 269, 26, - /* 3900 */ 332, 58, 56, 332, 332, 332, 332, 332, 332, 306, - /* 3910 */ 244, 267, 264, 259, 260, 261, 231, 62, 332, 226, - /* 3920 */ 227, 332, 143, 332, 332, 332, 332, 60, 332, 332, - /* 3930 */ 293, 150, 4, 57, 7, 152, 332, 332, 8, 332, - /* 3940 */ 30, 18, 332, 66, 332, 40, 34, 332, 332, 332, - /* 3950 */ 332, 332, 332, 332, 244, 267, 264, 259, 260, 261, - /* 3960 */ 332, 332, 25, 35, 23, 36, 32, 49, 48, 332, - /* 3970 */ 311, 60, 332, 332, 293, 150, 4, 332, 332, 332, - /* 3980 */ 332, 332, 8, 332, 30, 7, 332, 66, 332, 40, - /* 3990 */ 34, 332, 163, 332, 332, 332, 332, 332, 415, 332, - /* 4000 */ 148, 136, 146, 332, 295, 332, 25, 35, 23, 36, - /* 4010 */ 32, 49, 48, 332, 311, 332, 195, 332, 1, 313, - /* 4020 */ 126, 128, 332, 332, 269, 332, 110, 111, 196, 199, - /* 4030 */ 332, 332, 212, 185, 216, 332, 194, 234, 263, 236, - /* 4040 */ 298, 30, 332, 235, 66, 332, 40, 34, 295, 241, - /* 4050 */ 240, 157, 125, 332, 237, 238, 239, 332, 332, 332, - /* 4060 */ 332, 7, 332, 25, 35, 23, 36, 32, 49, 48, - /* 4070 */ 30, 311, 332, 66, 332, 40, 34, 332, 332, 332, - /* 4080 */ 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, - /* 4090 */ 332, 197, 25, 35, 23, 36, 32, 49, 48, 30, - /* 4100 */ 311, 332, 66, 332, 40, 34, 332, 332, 332, 332, - /* 4110 */ 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, - /* 4120 */ 203, 25, 35, 23, 36, 32, 49, 48, 30, 311, - /* 4130 */ 332, 66, 332, 40, 34, 332, 332, 332, 332, 332, - /* 4140 */ 332, 332, 332, 332, 332, 332, 332, 332, 73, 111, - /* 4150 */ 25, 35, 23, 36, 32, 49, 48, 332, 311, 234, - /* 4160 */ 263, 236, 298, 332, 332, 235, 332, 332, 332, 332, - /* 4170 */ 332, 241, 240, 332, 301, 332, 237, 238, 239, 332, - /* 4180 */ 288, 332, 30, 332, 332, 66, 332, 40, 34, 332, - /* 4190 */ 332, 332, 332, 332, 332, 143, 332, 332, 332, 332, - /* 4200 */ 332, 332, 123, 332, 25, 35, 23, 36, 32, 49, - /* 4210 */ 48, 30, 311, 332, 66, 332, 40, 34, 332, 332, - /* 4220 */ 332, 332, 332, 332, 332, 332, 332, 244, 267, 264, - /* 4230 */ 259, 260, 261, 25, 35, 23, 36, 32, 49, 48, - /* 4240 */ 30, 311, 332, 66, 60, 40, 34, 293, 150, 4, - /* 4250 */ 332, 332, 332, 332, 332, 8, 332, 332, 332, 332, - /* 4260 */ 332, 200, 25, 35, 23, 36, 32, 49, 48, 332, - /* 4270 */ 311, 332, 110, 111, 296, 332, 332, 332, 332, 332, - /* 4280 */ 332, 332, 332, 234, 263, 236, 298, 332, 332, 235, - /* 4290 */ 332, 332, 72, 111, 332, 241, 240, 332, 161, 332, - /* 4300 */ 237, 238, 239, 234, 263, 236, 298, 332, 379, 235, - /* 4310 */ 379, 379, 379, 332, 332, 241, 240, 332, 301, 332, - /* 4320 */ 237, 238, 239, 332, 110, 111, 332, 332, 379, 332, - /* 4330 */ 379, 379, 332, 332, 379, 234, 263, 236, 298, 30, - /* 4340 */ 332, 235, 66, 332, 40, 34, 332, 241, 240, 332, - /* 4350 */ 160, 332, 237, 238, 239, 332, 332, 332, 332, 332, - /* 4360 */ 332, 25, 35, 23, 36, 32, 49, 48, 66, 311, - /* 4370 */ 40, 34, 332, 332, 332, 332, 332, 332, 39, 332, - /* 4380 */ 332, 332, 332, 332, 332, 332, 332, 25, 35, 23, - /* 4390 */ 36, 32, 49, 48, 66, 311, 40, 34, 332, 332, - /* 4400 */ 332, 332, 332, 332, 29, 332, 332, 332, 332, 66, - /* 4410 */ 332, 40, 34, 25, 35, 23, 36, 32, 49, 48, - /* 4420 */ 332, 311, 332, 332, 332, 332, 332, 332, 25, 35, - /* 4430 */ 23, 36, 32, 49, 48, 332, 311, 59, 7, 332, - /* 4440 */ 332, 332, 332, 332, 332, 195, 332, 332, 332, 332, - /* 4450 */ 332, 379, 332, 379, 379, 379, 332, 196, 199, 332, - /* 4460 */ 332, 212, 185, 216, 332, 332, 332, 332, 332, 332, - /* 4470 */ 332, 379, 332, 379, 379, 332, 332, 379, 332, 332, - /* 4480 */ 141, - ); - static public $yy_lookahead = array( - /* 0 */ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - /* 10 */ 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - /* 20 */ 95, 96, 97, 98, 50, 51, 101, 29, 103, 31, - /* 30 */ 13, 14, 107, 108, 77, 110, 3, 112, 113, 114, - /* 40 */ 23, 24, 25, 26, 27, 28, 29, 126, 31, 128, - /* 50 */ 129, 126, 127, 128, 129, 22, 54, 39, 56, 57, - /* 60 */ 135, 79, 80, 81, 82, 83, 84, 85, 86, 87, - /* 70 */ 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - /* 80 */ 98, 1, 21, 101, 4, 103, 6, 7, 70, 107, - /* 90 */ 108, 109, 110, 41, 112, 113, 114, 24, 25, 26, - /* 100 */ 27, 28, 29, 121, 31, 123, 73, 15, 126, 127, - /* 110 */ 128, 129, 27, 28, 29, 22, 31, 135, 79, 80, - /* 120 */ 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - /* 130 */ 91, 92, 93, 94, 95, 96, 97, 98, 67, 68, - /* 140 */ 101, 41, 103, 52, 95, 53, 107, 108, 109, 110, - /* 150 */ 101, 112, 113, 114, 105, 106, 107, 108, 58, 95, - /* 160 */ 121, 49, 123, 63, 52, 126, 127, 128, 129, 11, - /* 170 */ 12, 107, 108, 104, 135, 79, 80, 81, 82, 83, - /* 180 */ 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - /* 190 */ 94, 95, 96, 97, 98, 131, 132, 101, 126, 103, - /* 200 */ 128, 129, 2, 107, 108, 109, 110, 77, 112, 113, - /* 210 */ 114, 22, 25, 26, 27, 28, 29, 121, 31, 123, - /* 220 */ 77, 21, 126, 127, 128, 129, 77, 77, 39, 77, - /* 230 */ 22, 135, 79, 80, 81, 82, 83, 84, 85, 86, - /* 240 */ 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - /* 250 */ 97, 98, 133, 134, 101, 21, 103, 133, 134, 77, - /* 260 */ 107, 108, 109, 110, 3, 112, 113, 114, 26, 27, - /* 270 */ 28, 29, 95, 31, 121, 126, 123, 128, 129, 126, - /* 280 */ 127, 128, 129, 77, 107, 108, 52, 67, 135, 79, - /* 290 */ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - /* 300 */ 90, 91, 92, 93, 94, 95, 96, 97, 98, 132, - /* 310 */ 70, 101, 17, 103, 39, 20, 39, 107, 108, 109, - /* 320 */ 110, 15, 112, 113, 114, 22, 21, 32, 33, 16, - /* 330 */ 77, 121, 126, 123, 128, 129, 126, 127, 128, 129, - /* 340 */ 35, 52, 39, 95, 39, 135, 79, 80, 81, 82, - /* 350 */ 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - /* 360 */ 93, 94, 95, 96, 97, 98, 39, 55, 101, 41, - /* 370 */ 103, 95, 120, 34, 107, 108, 103, 110, 95, 112, - /* 380 */ 113, 114, 125, 116, 117, 77, 58, 77, 130, 122, - /* 390 */ 62, 63, 73, 126, 127, 128, 129, 31, 77, 77, - /* 400 */ 134, 115, 135, 79, 80, 81, 82, 83, 84, 85, - /* 410 */ 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - /* 420 */ 96, 97, 98, 77, 115, 101, 52, 103, 95, 104, - /* 430 */ 13, 107, 108, 109, 110, 120, 112, 113, 114, 21, - /* 440 */ 23, 24, 25, 26, 27, 28, 29, 123, 31, 120, - /* 450 */ 126, 127, 128, 129, 104, 95, 104, 39, 76, 135, - /* 460 */ 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - /* 470 */ 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - /* 480 */ 98, 77, 64, 101, 104, 103, 21, 22, 14, 107, - /* 490 */ 108, 104, 110, 136, 112, 113, 114, 23, 24, 25, - /* 500 */ 26, 27, 28, 29, 39, 31, 136, 136, 126, 127, - /* 510 */ 128, 129, 136, 136, 136, 136, 136, 135, 79, 80, - /* 520 */ 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - /* 530 */ 91, 92, 93, 94, 95, 96, 97, 98, 136, 136, - /* 540 */ 101, 136, 103, 136, 136, 136, 107, 108, 109, 110, - /* 550 */ 136, 112, 113, 114, 136, 23, 24, 25, 26, 27, - /* 560 */ 28, 29, 123, 31, 136, 126, 127, 128, 129, 136, - /* 570 */ 136, 136, 136, 76, 135, 78, 79, 80, 81, 82, - /* 580 */ 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - /* 590 */ 93, 94, 95, 96, 97, 98, 77, 136, 101, 136, - /* 600 */ 103, 21, 22, 14, 107, 108, 136, 110, 136, 112, - /* 610 */ 113, 114, 23, 24, 25, 26, 27, 28, 29, 39, - /* 620 */ 31, 136, 136, 126, 127, 128, 129, 136, 136, 111, - /* 630 */ 111, 136, 135, 115, 115, 136, 136, 119, 119, 76, - /* 640 */ 136, 78, 79, 80, 81, 82, 83, 84, 85, 86, - /* 650 */ 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - /* 660 */ 97, 98, 136, 77, 101, 136, 103, 136, 136, 21, - /* 670 */ 107, 108, 136, 110, 136, 112, 113, 114, 2, 136, - /* 680 */ 4, 136, 6, 7, 8, 9, 10, 39, 136, 126, - /* 690 */ 127, 128, 129, 136, 18, 19, 136, 111, 135, 136, - /* 700 */ 52, 115, 136, 27, 28, 119, 30, 122, 32, 33, - /* 710 */ 136, 126, 64, 128, 129, 136, 40, 41, 42, 43, - /* 720 */ 44, 45, 46, 47, 48, 136, 50, 51, 111, 53, - /* 730 */ 136, 136, 115, 136, 58, 136, 119, 61, 62, 63, - /* 740 */ 122, 65, 66, 136, 126, 69, 128, 129, 72, 77, - /* 750 */ 136, 79, 80, 81, 82, 83, 84, 85, 86, 87, - /* 760 */ 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - /* 770 */ 98, 21, 22, 101, 136, 103, 3, 136, 136, 107, - /* 780 */ 108, 95, 110, 136, 112, 113, 114, 101, 102, 39, - /* 790 */ 136, 105, 106, 107, 108, 22, 136, 136, 126, 127, - /* 800 */ 128, 129, 136, 136, 136, 136, 136, 135, 78, 79, - /* 810 */ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - /* 820 */ 90, 91, 92, 93, 94, 95, 96, 97, 98, 136, - /* 830 */ 136, 101, 136, 103, 136, 83, 136, 107, 108, 136, - /* 840 */ 110, 136, 112, 113, 114, 136, 73, 95, 96, 136, - /* 850 */ 136, 99, 100, 101, 136, 136, 126, 127, 128, 129, - /* 860 */ 136, 136, 136, 136, 136, 135, 79, 80, 81, 82, - /* 870 */ 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - /* 880 */ 93, 94, 95, 96, 97, 98, 136, 21, 101, 136, - /* 890 */ 103, 136, 136, 136, 107, 108, 136, 110, 136, 112, - /* 900 */ 113, 114, 2, 136, 4, 39, 6, 7, 8, 9, - /* 910 */ 10, 124, 136, 126, 127, 128, 129, 136, 18, 19, - /* 920 */ 136, 21, 135, 136, 136, 59, 136, 27, 28, 136, - /* 930 */ 30, 136, 32, 33, 136, 35, 136, 136, 136, 136, - /* 940 */ 40, 41, 42, 43, 44, 45, 46, 47, 48, 136, - /* 950 */ 50, 51, 95, 41, 42, 43, 41, 136, 58, 47, - /* 960 */ 136, 61, 62, 63, 107, 108, 66, 136, 136, 69, - /* 970 */ 113, 136, 72, 58, 62, 2, 136, 4, 63, 6, - /* 980 */ 7, 8, 9, 10, 136, 136, 71, 136, 131, 132, - /* 990 */ 136, 18, 19, 136, 21, 136, 136, 136, 136, 136, - /* 1000 */ 27, 28, 136, 30, 136, 32, 33, 136, 136, 136, - /* 1010 */ 136, 136, 136, 40, 41, 42, 43, 44, 45, 46, - /* 1020 */ 47, 48, 136, 50, 51, 136, 136, 136, 136, 136, - /* 1030 */ 136, 58, 136, 136, 61, 62, 63, 64, 136, 66, - /* 1040 */ 136, 136, 69, 136, 136, 72, 79, 80, 81, 82, - /* 1050 */ 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - /* 1060 */ 93, 94, 95, 96, 97, 98, 136, 136, 101, 136, - /* 1070 */ 103, 136, 136, 136, 107, 108, 136, 110, 136, 112, - /* 1080 */ 113, 114, 136, 136, 136, 136, 136, 136, 136, 136, - /* 1090 */ 136, 136, 136, 126, 127, 128, 129, 136, 136, 136, - /* 1100 */ 136, 136, 135, 79, 80, 81, 82, 83, 84, 85, - /* 1110 */ 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - /* 1120 */ 96, 97, 98, 136, 136, 101, 136, 103, 136, 83, - /* 1130 */ 136, 107, 108, 136, 110, 136, 112, 113, 114, 136, - /* 1140 */ 136, 95, 96, 136, 136, 99, 100, 101, 136, 136, - /* 1150 */ 126, 127, 128, 129, 136, 136, 136, 136, 136, 135, - /* 1160 */ 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - /* 1170 */ 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - /* 1180 */ 136, 136, 101, 136, 103, 136, 136, 136, 107, 108, - /* 1190 */ 136, 110, 136, 112, 113, 114, 136, 136, 136, 136, - /* 1200 */ 136, 136, 136, 136, 136, 136, 136, 126, 127, 128, - /* 1210 */ 129, 136, 136, 136, 136, 136, 135, 79, 80, 81, - /* 1220 */ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - /* 1230 */ 92, 93, 94, 95, 96, 97, 98, 136, 136, 101, - /* 1240 */ 136, 103, 136, 136, 136, 107, 108, 136, 110, 136, - /* 1250 */ 112, 113, 114, 136, 136, 136, 136, 136, 136, 136, - /* 1260 */ 136, 136, 136, 136, 126, 127, 128, 129, 136, 136, - /* 1270 */ 136, 136, 136, 135, 79, 80, 81, 82, 83, 84, - /* 1280 */ 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - /* 1290 */ 95, 96, 97, 98, 136, 136, 101, 136, 103, 136, - /* 1300 */ 136, 136, 107, 108, 136, 110, 136, 112, 113, 114, - /* 1310 */ 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - /* 1320 */ 136, 126, 127, 128, 129, 136, 136, 136, 136, 136, - /* 1330 */ 135, 79, 80, 81, 82, 83, 84, 85, 86, 87, - /* 1340 */ 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - /* 1350 */ 98, 136, 136, 101, 136, 103, 136, 136, 136, 107, - /* 1360 */ 108, 136, 110, 136, 112, 113, 114, 136, 136, 136, - /* 1370 */ 136, 136, 136, 136, 136, 136, 136, 136, 126, 127, - /* 1380 */ 128, 129, 136, 136, 136, 136, 136, 135, 79, 80, - /* 1390 */ 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - /* 1400 */ 91, 92, 93, 94, 95, 96, 97, 98, 136, 136, - /* 1410 */ 101, 136, 103, 136, 136, 136, 107, 108, 136, 110, - /* 1420 */ 136, 112, 113, 114, 136, 136, 136, 136, 136, 136, - /* 1430 */ 136, 136, 136, 136, 136, 126, 127, 128, 129, 136, - /* 1440 */ 136, 136, 136, 136, 135, 79, 80, 81, 82, 83, - /* 1450 */ 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - /* 1460 */ 94, 95, 96, 97, 98, 136, 136, 101, 136, 103, - /* 1470 */ 136, 136, 136, 107, 108, 136, 110, 136, 112, 113, - /* 1480 */ 114, 136, 136, 136, 136, 136, 136, 136, 136, 136, - /* 1490 */ 136, 136, 126, 127, 128, 129, 136, 136, 136, 136, - /* 1500 */ 136, 135, 79, 80, 81, 82, 83, 84, 85, 86, - /* 1510 */ 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - /* 1520 */ 97, 98, 136, 136, 101, 136, 103, 136, 136, 136, - /* 1530 */ 107, 108, 136, 110, 136, 112, 113, 114, 136, 136, - /* 1540 */ 136, 136, 136, 136, 136, 136, 136, 136, 136, 126, - /* 1550 */ 127, 128, 129, 136, 136, 136, 136, 136, 135, 79, - /* 1560 */ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - /* 1570 */ 90, 91, 92, 93, 94, 95, 96, 97, 98, 136, - /* 1580 */ 136, 101, 136, 103, 136, 136, 136, 107, 108, 136, - /* 1590 */ 110, 136, 112, 113, 114, 136, 136, 136, 136, 136, - /* 1600 */ 136, 136, 136, 136, 136, 136, 126, 127, 128, 129, - /* 1610 */ 136, 136, 136, 136, 136, 135, 79, 80, 81, 82, - /* 1620 */ 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - /* 1630 */ 93, 94, 95, 96, 97, 98, 136, 136, 101, 136, - /* 1640 */ 103, 136, 136, 136, 107, 108, 136, 110, 136, 112, - /* 1650 */ 113, 114, 136, 136, 136, 136, 136, 136, 136, 136, - /* 1660 */ 136, 136, 136, 126, 127, 128, 129, 136, 136, 136, - /* 1670 */ 136, 136, 135, 79, 80, 81, 82, 83, 84, 85, - /* 1680 */ 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - /* 1690 */ 96, 97, 98, 136, 136, 101, 136, 103, 136, 136, - /* 1700 */ 136, 107, 108, 136, 110, 136, 112, 113, 114, 136, - /* 1710 */ 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - /* 1720 */ 126, 127, 128, 129, 136, 136, 136, 136, 136, 135, - /* 1730 */ 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - /* 1740 */ 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - /* 1750 */ 136, 136, 101, 136, 103, 136, 136, 136, 107, 108, - /* 1760 */ 136, 110, 136, 112, 113, 114, 136, 136, 136, 136, - /* 1770 */ 136, 136, 136, 136, 136, 136, 136, 126, 127, 128, - /* 1780 */ 129, 136, 136, 136, 136, 136, 135, 79, 80, 81, - /* 1790 */ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - /* 1800 */ 92, 93, 94, 95, 96, 97, 98, 136, 136, 101, - /* 1810 */ 136, 103, 136, 136, 136, 107, 108, 136, 110, 136, - /* 1820 */ 112, 113, 114, 136, 136, 136, 136, 136, 136, 136, - /* 1830 */ 136, 136, 136, 136, 126, 127, 128, 129, 136, 136, - /* 1840 */ 136, 136, 136, 135, 79, 80, 81, 82, 83, 84, - /* 1850 */ 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - /* 1860 */ 95, 96, 97, 98, 136, 136, 101, 136, 103, 136, - /* 1870 */ 136, 136, 107, 108, 136, 110, 136, 112, 113, 114, - /* 1880 */ 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - /* 1890 */ 136, 126, 127, 128, 129, 136, 136, 136, 136, 136, - /* 1900 */ 135, 79, 80, 81, 82, 83, 84, 85, 86, 87, - /* 1910 */ 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - /* 1920 */ 98, 136, 136, 101, 136, 103, 136, 136, 136, 107, - /* 1930 */ 108, 136, 110, 136, 112, 113, 114, 136, 136, 136, - /* 1940 */ 136, 136, 136, 136, 136, 136, 136, 136, 126, 127, - /* 1950 */ 128, 129, 136, 136, 136, 136, 136, 135, 79, 80, - /* 1960 */ 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - /* 1970 */ 91, 92, 93, 94, 95, 96, 97, 98, 136, 136, - /* 1980 */ 101, 136, 103, 136, 136, 136, 107, 108, 136, 110, - /* 1990 */ 136, 112, 113, 114, 136, 136, 136, 136, 136, 136, - /* 2000 */ 136, 136, 136, 136, 136, 126, 127, 128, 129, 136, - /* 2010 */ 136, 136, 136, 136, 135, 79, 80, 81, 82, 83, - /* 2020 */ 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - /* 2030 */ 94, 95, 96, 97, 98, 136, 136, 101, 136, 103, - /* 2040 */ 136, 136, 136, 107, 108, 136, 110, 136, 112, 113, - /* 2050 */ 114, 136, 136, 136, 136, 136, 136, 136, 136, 136, - /* 2060 */ 136, 136, 126, 127, 128, 129, 136, 136, 136, 136, - /* 2070 */ 136, 135, 79, 80, 81, 82, 83, 84, 85, 86, - /* 2080 */ 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - /* 2090 */ 97, 98, 136, 136, 101, 136, 103, 136, 136, 136, - /* 2100 */ 107, 108, 136, 110, 136, 112, 113, 114, 136, 136, - /* 2110 */ 136, 136, 136, 136, 136, 136, 136, 136, 136, 126, - /* 2120 */ 127, 128, 129, 136, 136, 136, 136, 136, 135, 79, - /* 2130 */ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - /* 2140 */ 90, 91, 92, 93, 94, 95, 96, 97, 98, 136, - /* 2150 */ 136, 101, 136, 103, 136, 136, 136, 107, 108, 136, - /* 2160 */ 110, 136, 112, 113, 114, 136, 136, 136, 136, 136, - /* 2170 */ 136, 136, 136, 136, 136, 136, 126, 127, 128, 129, - /* 2180 */ 136, 136, 136, 136, 136, 135, 79, 80, 81, 82, - /* 2190 */ 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - /* 2200 */ 93, 94, 95, 96, 97, 98, 136, 136, 101, 136, - /* 2210 */ 103, 136, 136, 136, 107, 108, 136, 110, 136, 112, - /* 2220 */ 113, 114, 136, 136, 136, 136, 136, 136, 136, 136, - /* 2230 */ 136, 136, 136, 126, 127, 128, 129, 136, 136, 136, - /* 2240 */ 136, 136, 135, 79, 80, 81, 82, 83, 84, 85, - /* 2250 */ 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - /* 2260 */ 96, 97, 98, 136, 136, 101, 136, 103, 136, 136, - /* 2270 */ 136, 107, 108, 136, 110, 136, 112, 113, 114, 136, - /* 2280 */ 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - /* 2290 */ 126, 127, 128, 129, 136, 136, 136, 136, 136, 135, - /* 2300 */ 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - /* 2310 */ 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - /* 2320 */ 136, 136, 101, 136, 103, 136, 136, 136, 107, 108, - /* 2330 */ 136, 110, 136, 112, 113, 114, 136, 136, 136, 136, - /* 2340 */ 136, 136, 136, 136, 136, 136, 136, 126, 127, 128, - /* 2350 */ 129, 136, 136, 136, 136, 136, 135, 79, 80, 81, - /* 2360 */ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - /* 2370 */ 92, 93, 94, 95, 96, 97, 98, 136, 136, 101, - /* 2380 */ 136, 103, 136, 136, 136, 107, 108, 136, 110, 136, - /* 2390 */ 112, 113, 114, 136, 136, 136, 136, 136, 136, 136, - /* 2400 */ 136, 136, 136, 136, 126, 127, 128, 129, 136, 136, - /* 2410 */ 136, 136, 136, 135, 79, 80, 81, 82, 83, 84, - /* 2420 */ 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - /* 2430 */ 95, 96, 97, 98, 136, 136, 101, 136, 103, 136, - /* 2440 */ 136, 136, 107, 108, 136, 110, 136, 112, 113, 114, - /* 2450 */ 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - /* 2460 */ 136, 126, 127, 128, 129, 136, 136, 136, 136, 136, - /* 2470 */ 135, 79, 80, 81, 82, 83, 84, 85, 86, 87, - /* 2480 */ 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - /* 2490 */ 98, 136, 136, 101, 136, 103, 136, 136, 136, 107, - /* 2500 */ 108, 136, 110, 136, 112, 113, 114, 136, 136, 136, - /* 2510 */ 136, 136, 136, 136, 136, 136, 136, 136, 126, 127, - /* 2520 */ 128, 129, 136, 136, 136, 136, 136, 135, 79, 80, - /* 2530 */ 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - /* 2540 */ 91, 92, 93, 94, 95, 96, 97, 98, 136, 136, - /* 2550 */ 101, 136, 103, 136, 136, 136, 107, 108, 136, 110, - /* 2560 */ 136, 112, 113, 114, 136, 136, 136, 136, 136, 136, - /* 2570 */ 136, 136, 136, 136, 136, 126, 127, 128, 129, 136, - /* 2580 */ 136, 136, 136, 136, 135, 79, 80, 81, 82, 83, - /* 2590 */ 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - /* 2600 */ 94, 95, 96, 97, 98, 136, 136, 101, 136, 103, - /* 2610 */ 136, 136, 136, 107, 108, 136, 110, 136, 112, 113, - /* 2620 */ 114, 136, 136, 136, 136, 136, 136, 136, 136, 136, - /* 2630 */ 136, 136, 126, 127, 128, 129, 136, 136, 136, 136, - /* 2640 */ 136, 135, 79, 80, 81, 82, 83, 84, 85, 86, - /* 2650 */ 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - /* 2660 */ 97, 98, 136, 136, 101, 136, 103, 136, 136, 136, - /* 2670 */ 107, 108, 136, 110, 136, 112, 113, 114, 2, 136, - /* 2680 */ 4, 136, 6, 7, 8, 9, 10, 136, 136, 126, - /* 2690 */ 127, 128, 129, 136, 18, 19, 136, 21, 135, 136, - /* 2700 */ 136, 136, 136, 27, 28, 136, 30, 136, 32, 33, - /* 2710 */ 136, 136, 136, 136, 136, 136, 40, 41, 42, 43, - /* 2720 */ 44, 45, 46, 47, 48, 136, 50, 51, 136, 136, - /* 2730 */ 136, 136, 136, 136, 58, 136, 136, 61, 62, 63, - /* 2740 */ 136, 136, 66, 136, 136, 69, 136, 136, 72, 136, - /* 2750 */ 136, 2, 136, 4, 136, 6, 7, 8, 9, 10, - /* 2760 */ 136, 136, 136, 136, 136, 136, 136, 18, 19, 136, - /* 2770 */ 21, 136, 136, 136, 136, 136, 27, 28, 136, 30, - /* 2780 */ 136, 32, 33, 136, 136, 136, 136, 136, 136, 40, - /* 2790 */ 41, 42, 43, 44, 45, 46, 47, 48, 136, 50, - /* 2800 */ 51, 136, 136, 136, 136, 136, 136, 58, 136, 136, - /* 2810 */ 61, 62, 63, 136, 136, 66, 136, 136, 69, 136, - /* 2820 */ 136, 72, 79, 80, 81, 82, 83, 84, 85, 86, - /* 2830 */ 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - /* 2840 */ 97, 98, 136, 136, 101, 136, 103, 136, 136, 136, - /* 2850 */ 107, 108, 136, 110, 136, 112, 113, 114, 2, 136, - /* 2860 */ 4, 136, 6, 7, 8, 9, 10, 136, 136, 126, - /* 2870 */ 127, 128, 129, 136, 18, 19, 136, 21, 135, 136, - /* 2880 */ 136, 136, 136, 27, 28, 136, 30, 136, 32, 33, - /* 2890 */ 136, 136, 136, 136, 136, 136, 40, 41, 42, 43, - /* 2900 */ 44, 45, 46, 47, 48, 136, 50, 51, 136, 136, - /* 2910 */ 136, 136, 136, 136, 58, 136, 136, 61, 62, 63, - /* 2920 */ 136, 136, 66, 136, 136, 69, 136, 136, 72, 136, - /* 2930 */ 136, 2, 136, 4, 136, 6, 7, 8, 9, 10, - /* 2940 */ 136, 136, 136, 136, 136, 136, 136, 18, 19, 136, - /* 2950 */ 21, 136, 136, 136, 136, 136, 27, 28, 136, 30, - /* 2960 */ 136, 32, 33, 136, 136, 136, 136, 136, 136, 40, - /* 2970 */ 41, 42, 43, 44, 45, 46, 47, 48, 136, 50, - /* 2980 */ 51, 136, 136, 136, 136, 136, 136, 58, 136, 136, - /* 2990 */ 61, 62, 63, 136, 136, 66, 136, 136, 69, 136, - /* 3000 */ 136, 72, 79, 80, 81, 82, 83, 84, 85, 86, - /* 3010 */ 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - /* 3020 */ 97, 98, 136, 136, 101, 136, 103, 136, 136, 136, - /* 3030 */ 107, 108, 136, 110, 136, 112, 113, 114, 136, 136, - /* 3040 */ 136, 136, 136, 136, 136, 136, 136, 136, 136, 126, - /* 3050 */ 127, 128, 129, 136, 136, 136, 136, 136, 135, 79, - /* 3060 */ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - /* 3070 */ 90, 91, 92, 93, 94, 95, 96, 97, 98, 136, - /* 3080 */ 136, 101, 136, 103, 136, 136, 136, 107, 108, 136, - /* 3090 */ 110, 136, 112, 113, 114, 2, 136, 4, 136, 6, - /* 3100 */ 7, 8, 9, 10, 136, 136, 126, 127, 128, 129, - /* 3110 */ 136, 18, 19, 136, 21, 135, 136, 136, 136, 136, - /* 3120 */ 27, 28, 136, 30, 136, 32, 33, 136, 136, 136, - /* 3130 */ 136, 136, 136, 40, 41, 42, 43, 44, 45, 46, - /* 3140 */ 47, 48, 136, 50, 51, 136, 136, 136, 136, 136, - /* 3150 */ 136, 58, 136, 136, 61, 62, 63, 136, 136, 66, - /* 3160 */ 136, 136, 69, 136, 136, 72, 136, 136, 2, 136, - /* 3170 */ 4, 136, 6, 7, 8, 9, 10, 136, 136, 136, - /* 3180 */ 136, 136, 136, 136, 18, 19, 136, 136, 22, 136, - /* 3190 */ 136, 136, 136, 27, 28, 136, 30, 136, 32, 33, - /* 3200 */ 136, 136, 136, 136, 136, 136, 40, 41, 42, 43, - /* 3210 */ 44, 45, 46, 47, 48, 136, 50, 51, 136, 136, - /* 3220 */ 136, 136, 136, 136, 58, 136, 136, 61, 62, 63, - /* 3230 */ 136, 136, 66, 136, 136, 69, 136, 136, 72, 136, - /* 3240 */ 136, 2, 136, 4, 136, 6, 7, 8, 9, 10, - /* 3250 */ 136, 136, 136, 136, 136, 136, 136, 18, 19, 136, - /* 3260 */ 21, 136, 136, 136, 136, 136, 27, 28, 136, 30, - /* 3270 */ 136, 32, 33, 136, 136, 136, 136, 136, 136, 40, - /* 3280 */ 41, 42, 43, 44, 45, 46, 47, 48, 136, 50, - /* 3290 */ 51, 136, 136, 136, 136, 136, 136, 58, 136, 136, - /* 3300 */ 61, 62, 63, 136, 136, 66, 136, 136, 69, 136, - /* 3310 */ 136, 72, 79, 80, 81, 82, 83, 84, 85, 86, - /* 3320 */ 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - /* 3330 */ 97, 98, 136, 136, 101, 136, 103, 136, 136, 136, - /* 3340 */ 107, 108, 136, 110, 136, 112, 113, 114, 136, 136, - /* 3350 */ 136, 136, 136, 136, 136, 136, 136, 136, 136, 126, - /* 3360 */ 127, 128, 129, 136, 136, 136, 136, 136, 135, 79, - /* 3370 */ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - /* 3380 */ 90, 91, 92, 93, 94, 95, 96, 97, 98, 136, - /* 3390 */ 136, 101, 136, 103, 136, 136, 136, 107, 108, 136, - /* 3400 */ 110, 136, 112, 113, 114, 136, 136, 136, 136, 136, - /* 3410 */ 136, 136, 136, 136, 136, 136, 126, 127, 128, 129, - /* 3420 */ 136, 136, 136, 136, 136, 135, 79, 80, 81, 82, - /* 3430 */ 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - /* 3440 */ 93, 94, 95, 96, 97, 98, 136, 136, 101, 136, - /* 3450 */ 103, 136, 136, 136, 107, 108, 136, 110, 136, 112, - /* 3460 */ 113, 114, 136, 136, 136, 136, 136, 136, 136, 136, - /* 3470 */ 136, 136, 136, 126, 127, 128, 129, 136, 136, 136, - /* 3480 */ 136, 136, 135, 79, 80, 81, 82, 83, 84, 85, - /* 3490 */ 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - /* 3500 */ 96, 97, 98, 136, 136, 101, 136, 103, 136, 136, - /* 3510 */ 136, 107, 108, 136, 110, 136, 112, 113, 114, 136, - /* 3520 */ 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - /* 3530 */ 126, 127, 128, 129, 136, 136, 136, 136, 136, 135, - /* 3540 */ 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - /* 3550 */ 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - /* 3560 */ 136, 136, 101, 136, 103, 136, 136, 136, 107, 108, - /* 3570 */ 136, 110, 136, 112, 113, 114, 136, 136, 136, 136, - /* 3580 */ 136, 136, 136, 136, 136, 136, 136, 126, 127, 128, - /* 3590 */ 129, 136, 136, 136, 136, 136, 135, 79, 80, 81, - /* 3600 */ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - /* 3610 */ 92, 93, 94, 95, 96, 97, 98, 136, 136, 101, - /* 3620 */ 136, 103, 136, 136, 136, 107, 108, 136, 110, 136, - /* 3630 */ 112, 113, 114, 2, 136, 4, 136, 6, 7, 8, - /* 3640 */ 9, 10, 136, 136, 126, 127, 128, 129, 136, 18, - /* 3650 */ 19, 136, 21, 135, 136, 136, 136, 136, 27, 28, - /* 3660 */ 136, 30, 136, 32, 33, 136, 136, 136, 136, 136, - /* 3670 */ 136, 40, 41, 42, 43, 44, 45, 46, 47, 48, - /* 3680 */ 136, 50, 51, 136, 136, 136, 136, 136, 136, 58, - /* 3690 */ 136, 136, 61, 62, 63, 136, 136, 66, 136, 136, - /* 3700 */ 69, 136, 136, 72, 136, 79, 80, 81, 82, 83, - /* 3710 */ 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - /* 3720 */ 94, 95, 96, 97, 98, 136, 136, 101, 136, 103, - /* 3730 */ 136, 136, 136, 107, 108, 136, 110, 136, 112, 113, - /* 3740 */ 114, 136, 136, 136, 136, 136, 136, 136, 136, 136, - /* 3750 */ 136, 136, 126, 127, 128, 129, 136, 136, 136, 136, - /* 3760 */ 136, 135, 79, 80, 81, 82, 83, 84, 85, 86, - /* 3770 */ 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - /* 3780 */ 97, 98, 136, 136, 101, 136, 103, 136, 136, 136, - /* 3790 */ 107, 108, 136, 110, 136, 112, 113, 114, 2, 136, - /* 3800 */ 4, 136, 6, 7, 8, 9, 10, 136, 136, 126, - /* 3810 */ 127, 128, 129, 136, 18, 19, 136, 136, 135, 136, - /* 3820 */ 136, 136, 136, 27, 28, 136, 30, 136, 32, 33, - /* 3830 */ 136, 136, 136, 136, 136, 136, 40, 41, 42, 43, - /* 3840 */ 44, 45, 46, 47, 48, 136, 50, 51, 136, 36, - /* 3850 */ 37, 38, 136, 136, 58, 136, 136, 61, 62, 63, - /* 3860 */ 136, 136, 66, 136, 136, 69, 136, 54, 72, 56, - /* 3870 */ 57, 2, 34, 60, 36, 37, 38, 8, 9, 10, - /* 3880 */ 136, 136, 136, 136, 136, 136, 136, 18, 19, 136, - /* 3890 */ 136, 136, 54, 136, 56, 57, 27, 28, 60, 30, - /* 3900 */ 136, 32, 33, 136, 136, 136, 136, 136, 136, 40, - /* 3910 */ 41, 42, 43, 44, 45, 46, 47, 48, 136, 50, - /* 3920 */ 51, 136, 9, 136, 136, 136, 136, 58, 136, 136, - /* 3930 */ 61, 62, 63, 20, 21, 66, 136, 136, 69, 136, - /* 3940 */ 1, 72, 136, 4, 136, 6, 7, 136, 136, 136, - /* 3950 */ 136, 136, 136, 136, 41, 42, 43, 44, 45, 46, - /* 3960 */ 136, 136, 23, 24, 25, 26, 27, 28, 29, 136, - /* 3970 */ 31, 58, 136, 136, 61, 62, 63, 136, 136, 136, - /* 3980 */ 136, 136, 69, 136, 1, 21, 136, 4, 136, 6, - /* 3990 */ 7, 136, 53, 136, 136, 136, 136, 136, 34, 136, - /* 4000 */ 36, 37, 38, 136, 65, 136, 23, 24, 25, 26, - /* 4010 */ 27, 28, 29, 136, 31, 136, 83, 136, 54, 77, - /* 4020 */ 56, 57, 136, 136, 60, 136, 84, 85, 95, 96, - /* 4030 */ 136, 136, 99, 100, 101, 136, 53, 95, 96, 97, - /* 4040 */ 98, 1, 136, 101, 4, 136, 6, 7, 65, 107, - /* 4050 */ 108, 118, 110, 136, 112, 113, 114, 136, 136, 136, - /* 4060 */ 136, 21, 136, 23, 24, 25, 26, 27, 28, 29, - /* 4070 */ 1, 31, 136, 4, 136, 6, 7, 136, 136, 136, - /* 4080 */ 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - /* 4090 */ 136, 22, 23, 24, 25, 26, 27, 28, 29, 1, - /* 4100 */ 31, 136, 4, 136, 6, 7, 136, 136, 136, 136, - /* 4110 */ 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - /* 4120 */ 22, 23, 24, 25, 26, 27, 28, 29, 1, 31, - /* 4130 */ 136, 4, 136, 6, 7, 136, 136, 136, 136, 136, - /* 4140 */ 136, 136, 136, 136, 136, 136, 136, 136, 84, 85, - /* 4150 */ 23, 24, 25, 26, 27, 28, 29, 136, 31, 95, - /* 4160 */ 96, 97, 98, 136, 136, 101, 136, 136, 136, 136, - /* 4170 */ 136, 107, 108, 136, 110, 136, 112, 113, 114, 136, - /* 4180 */ 53, 136, 1, 136, 136, 4, 136, 6, 7, 136, - /* 4190 */ 136, 136, 136, 136, 136, 9, 136, 136, 136, 136, - /* 4200 */ 136, 136, 21, 136, 23, 24, 25, 26, 27, 28, - /* 4210 */ 29, 1, 31, 136, 4, 136, 6, 7, 136, 136, - /* 4220 */ 136, 136, 136, 136, 136, 136, 136, 41, 42, 43, - /* 4230 */ 44, 45, 46, 23, 24, 25, 26, 27, 28, 29, - /* 4240 */ 1, 31, 136, 4, 58, 6, 7, 61, 62, 63, - /* 4250 */ 136, 136, 136, 136, 136, 69, 136, 136, 136, 136, - /* 4260 */ 136, 22, 23, 24, 25, 26, 27, 28, 29, 136, - /* 4270 */ 31, 136, 84, 85, 64, 136, 136, 136, 136, 136, - /* 4280 */ 136, 136, 136, 95, 96, 97, 98, 136, 136, 101, - /* 4290 */ 136, 136, 84, 85, 136, 107, 108, 136, 110, 136, - /* 4300 */ 112, 113, 114, 95, 96, 97, 98, 136, 34, 101, - /* 4310 */ 36, 37, 38, 136, 136, 107, 108, 136, 110, 136, - /* 4320 */ 112, 113, 114, 136, 84, 85, 136, 136, 54, 136, - /* 4330 */ 56, 57, 136, 136, 60, 95, 96, 97, 98, 1, - /* 4340 */ 136, 101, 4, 136, 6, 7, 136, 107, 108, 136, - /* 4350 */ 110, 136, 112, 113, 114, 136, 136, 136, 136, 136, - /* 4360 */ 136, 23, 24, 25, 26, 27, 28, 29, 4, 31, - /* 4370 */ 6, 7, 136, 136, 136, 136, 136, 136, 14, 136, - /* 4380 */ 136, 136, 136, 136, 136, 136, 136, 23, 24, 25, - /* 4390 */ 26, 27, 28, 29, 4, 31, 6, 7, 136, 136, - /* 4400 */ 136, 136, 136, 136, 14, 136, 136, 136, 136, 4, - /* 4410 */ 136, 6, 7, 23, 24, 25, 26, 27, 28, 29, - /* 4420 */ 136, 31, 136, 136, 136, 136, 136, 136, 23, 24, - /* 4430 */ 25, 26, 27, 28, 29, 136, 31, 20, 21, 136, - /* 4440 */ 136, 136, 136, 136, 136, 83, 136, 136, 136, 136, - /* 4450 */ 136, 34, 136, 36, 37, 38, 136, 95, 96, 136, - /* 4460 */ 136, 99, 100, 101, 136, 136, 136, 136, 136, 136, - /* 4470 */ 136, 54, 136, 56, 57, 136, 136, 60, 136, 136, - /* 4480 */ 118, -); - const YY_SHIFT_USE_DFLT = -27; - const YY_SHIFT_MAX = 186; - static public $yy_shift_ofst = array( - /* 0 */ 2676, 676, 973, 900, 973, 3093, 3093, 3166, 3239, 3796, - /* 10 */ 3796, 3796, 2676, 3796, 3796, 2749, 2929, 2856, 3631, 3796, - /* 20 */ 3796, 3796, 3796, 3796, 3796, 3796, 3796, 3796, 3796, 3796, - /* 30 */ 3796, 3796, 3796, 3796, 3796, 3796, 3796, 3796, 3796, 3796, - /* 40 */ 3796, 3796, 3796, 3796, 3796, 3796, 3796, 3796, 3796, 3796, - /* 50 */ 3796, 3796, 3796, 3796, 3869, 3913, 4186, 4186, 4186, 4186, - /* 60 */ 912, 912, 328, 912, 912, 328, 915, 100, 3939, 3983, - /* 70 */ 4040, 4040, 3964, 3964, 100, 4239, 4069, 4210, 4098, 4181, - /* 80 */ 4127, 4338, 4338, 4338, 4338, 4338, 4338, 4390, 4338, 4338, - /* 90 */ 4364, 4338, 4405, 4405, 4405, 17, 417, 589, 474, 532, - /* 100 */ 532, 532, 3838, 532, 532, 3838, 532, 532, 532, 73, - /* 110 */ 3813, 3813, 187, 242, 85, 80, 80, -2, -2, -2, - /* 120 */ -2, 366, 366, 319, 319, 4417, 2, 773, 2, 33, - /* 130 */ 200, 234, 158, 71, -26, 339, 52, 52, 61, 61, - /* 140 */ 374, 91, 339, 339, 374, 374, 52, 374, 52, 61, - /* 150 */ 52, 61, 61, 61, 61, 61, 52, 91, 61, 61, - /* 160 */ 4274, 4274, 295, 648, 580, 866, 750, 418, 465, 305, - /* 170 */ 112, 18, 303, 92, 189, 93, 289, 327, 208, 240, - /* 180 */ 312, 275, 277, 220, 261, 313, 306, -); - const YY_REDUCE_USE_DFLT = -80; - const YY_REDUCE_MAX = 159; - static public $yy_reduce_ofst = array( - /* 0 */ -75, 267, 210, -18, 39, 153, 96, 563, 382, 497, - /* 10 */ 439, 324, 672, 730, 787, 2743, 3290, 3233, 3518, 3404, - /* 20 */ 3347, 3683, 3626, 2107, 1366, 1024, 1594, 1423, 1309, 1252, - /* 30 */ 1138, 1195, 2449, 2221, 2278, 2335, 1708, 2050, 1765, 1879, - /* 40 */ 1993, 1936, 1822, 2392, 2164, 1651, 967, 1480, 1537, 1081, - /* 50 */ 3461, 2506, 2563, 2923, 2980, 3942, 4188, 4208, 4240, 4064, - /* 60 */ 4362, 3933, 686, 752, 1046, 49, 857, 64, 585, 618, - /* 70 */ 149, 206, 586, 519, 177, -79, -79, -79, -79, -79, - /* 80 */ -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, - /* 90 */ -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, - /* 100 */ -79, -79, 617, -79, -79, 518, -79, -79, -79, -79, - /* 110 */ 617, 518, -79, -79, -79, 72, 72, -79, -79, -79, - /* 120 */ -79, -79, -79, 119, 124, 321, 286, 266, 309, 266, - /* 130 */ 322, 310, 258, 257, 273, 252, 283, 248, 308, 346, - /* 140 */ 387, 380, 329, 315, 325, 350, 360, 352, 333, 404, - /* 150 */ 248, 143, 150, 152, 130, -43, 276, 69, 182, 253, -); - static public $yyExpectedTokens = array( - /* 0 */ array(2, 4, 6, 7, 8, 9, 10, 18, 19, 21, 27, 28, 30, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 58, 61, 62, 63, 66, 69, 72, ), - /* 1 */ array(2, 4, 6, 7, 8, 9, 10, 18, 19, 27, 28, 30, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 53, 58, 61, 62, 63, 65, 66, 69, 72, ), - /* 2 */ array(2, 4, 6, 7, 8, 9, 10, 18, 19, 21, 27, 28, 30, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 58, 61, 62, 63, 64, 66, 69, 72, ), - /* 3 */ array(2, 4, 6, 7, 8, 9, 10, 18, 19, 21, 27, 28, 30, 32, 33, 35, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 58, 61, 62, 63, 66, 69, 72, ), - /* 4 */ array(2, 4, 6, 7, 8, 9, 10, 18, 19, 21, 27, 28, 30, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 58, 61, 62, 63, 64, 66, 69, 72, ), - /* 5 */ array(2, 4, 6, 7, 8, 9, 10, 18, 19, 21, 27, 28, 30, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 58, 61, 62, 63, 66, 69, 72, ), - /* 6 */ array(2, 4, 6, 7, 8, 9, 10, 18, 19, 21, 27, 28, 30, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 58, 61, 62, 63, 66, 69, 72, ), - /* 7 */ array(2, 4, 6, 7, 8, 9, 10, 18, 19, 22, 27, 28, 30, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 58, 61, 62, 63, 66, 69, 72, ), - /* 8 */ array(2, 4, 6, 7, 8, 9, 10, 18, 19, 21, 27, 28, 30, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 58, 61, 62, 63, 66, 69, 72, ), - /* 9 */ array(2, 4, 6, 7, 8, 9, 10, 18, 19, 27, 28, 30, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 58, 61, 62, 63, 66, 69, 72, ), - /* 10 */ array(2, 4, 6, 7, 8, 9, 10, 18, 19, 27, 28, 30, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 58, 61, 62, 63, 66, 69, 72, ), - /* 11 */ array(2, 4, 6, 7, 8, 9, 10, 18, 19, 27, 28, 30, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 58, 61, 62, 63, 66, 69, 72, ), - /* 12 */ array(2, 4, 6, 7, 8, 9, 10, 18, 19, 21, 27, 28, 30, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 58, 61, 62, 63, 66, 69, 72, ), - /* 13 */ array(2, 4, 6, 7, 8, 9, 10, 18, 19, 27, 28, 30, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 58, 61, 62, 63, 66, 69, 72, ), - /* 14 */ array(2, 4, 6, 7, 8, 9, 10, 18, 19, 27, 28, 30, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 58, 61, 62, 63, 66, 69, 72, ), - /* 15 */ array(2, 4, 6, 7, 8, 9, 10, 18, 19, 21, 27, 28, 30, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 58, 61, 62, 63, 66, 69, 72, ), - /* 16 */ array(2, 4, 6, 7, 8, 9, 10, 18, 19, 21, 27, 28, 30, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 58, 61, 62, 63, 66, 69, 72, ), - /* 17 */ array(2, 4, 6, 7, 8, 9, 10, 18, 19, 21, 27, 28, 30, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 58, 61, 62, 63, 66, 69, 72, ), - /* 18 */ array(2, 4, 6, 7, 8, 9, 10, 18, 19, 21, 27, 28, 30, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 58, 61, 62, 63, 66, 69, 72, ), - /* 19 */ array(2, 4, 6, 7, 8, 9, 10, 18, 19, 27, 28, 30, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 58, 61, 62, 63, 66, 69, 72, ), - /* 20 */ array(2, 4, 6, 7, 8, 9, 10, 18, 19, 27, 28, 30, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 58, 61, 62, 63, 66, 69, 72, ), - /* 21 */ array(2, 4, 6, 7, 8, 9, 10, 18, 19, 27, 28, 30, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 58, 61, 62, 63, 66, 69, 72, ), - /* 22 */ array(2, 4, 6, 7, 8, 9, 10, 18, 19, 27, 28, 30, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 58, 61, 62, 63, 66, 69, 72, ), - /* 23 */ array(2, 4, 6, 7, 8, 9, 10, 18, 19, 27, 28, 30, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 58, 61, 62, 63, 66, 69, 72, ), - /* 24 */ array(2, 4, 6, 7, 8, 9, 10, 18, 19, 27, 28, 30, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 58, 61, 62, 63, 66, 69, 72, ), - /* 25 */ array(2, 4, 6, 7, 8, 9, 10, 18, 19, 27, 28, 30, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 58, 61, 62, 63, 66, 69, 72, ), - /* 26 */ array(2, 4, 6, 7, 8, 9, 10, 18, 19, 27, 28, 30, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 58, 61, 62, 63, 66, 69, 72, ), - /* 27 */ array(2, 4, 6, 7, 8, 9, 10, 18, 19, 27, 28, 30, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 58, 61, 62, 63, 66, 69, 72, ), - /* 28 */ array(2, 4, 6, 7, 8, 9, 10, 18, 19, 27, 28, 30, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 58, 61, 62, 63, 66, 69, 72, ), - /* 29 */ array(2, 4, 6, 7, 8, 9, 10, 18, 19, 27, 28, 30, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 58, 61, 62, 63, 66, 69, 72, ), - /* 30 */ array(2, 4, 6, 7, 8, 9, 10, 18, 19, 27, 28, 30, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 58, 61, 62, 63, 66, 69, 72, ), - /* 31 */ array(2, 4, 6, 7, 8, 9, 10, 18, 19, 27, 28, 30, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 58, 61, 62, 63, 66, 69, 72, ), - /* 32 */ array(2, 4, 6, 7, 8, 9, 10, 18, 19, 27, 28, 30, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 58, 61, 62, 63, 66, 69, 72, ), - /* 33 */ array(2, 4, 6, 7, 8, 9, 10, 18, 19, 27, 28, 30, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 58, 61, 62, 63, 66, 69, 72, ), - /* 34 */ array(2, 4, 6, 7, 8, 9, 10, 18, 19, 27, 28, 30, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 58, 61, 62, 63, 66, 69, 72, ), - /* 35 */ array(2, 4, 6, 7, 8, 9, 10, 18, 19, 27, 28, 30, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 58, 61, 62, 63, 66, 69, 72, ), - /* 36 */ array(2, 4, 6, 7, 8, 9, 10, 18, 19, 27, 28, 30, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 58, 61, 62, 63, 66, 69, 72, ), - /* 37 */ array(2, 4, 6, 7, 8, 9, 10, 18, 19, 27, 28, 30, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 58, 61, 62, 63, 66, 69, 72, ), - /* 38 */ array(2, 4, 6, 7, 8, 9, 10, 18, 19, 27, 28, 30, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 58, 61, 62, 63, 66, 69, 72, ), - /* 39 */ array(2, 4, 6, 7, 8, 9, 10, 18, 19, 27, 28, 30, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 58, 61, 62, 63, 66, 69, 72, ), - /* 40 */ array(2, 4, 6, 7, 8, 9, 10, 18, 19, 27, 28, 30, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 58, 61, 62, 63, 66, 69, 72, ), - /* 41 */ array(2, 4, 6, 7, 8, 9, 10, 18, 19, 27, 28, 30, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 58, 61, 62, 63, 66, 69, 72, ), - /* 42 */ array(2, 4, 6, 7, 8, 9, 10, 18, 19, 27, 28, 30, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 58, 61, 62, 63, 66, 69, 72, ), - /* 43 */ array(2, 4, 6, 7, 8, 9, 10, 18, 19, 27, 28, 30, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 58, 61, 62, 63, 66, 69, 72, ), - /* 44 */ array(2, 4, 6, 7, 8, 9, 10, 18, 19, 27, 28, 30, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 58, 61, 62, 63, 66, 69, 72, ), - /* 45 */ array(2, 4, 6, 7, 8, 9, 10, 18, 19, 27, 28, 30, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 58, 61, 62, 63, 66, 69, 72, ), - /* 46 */ array(2, 4, 6, 7, 8, 9, 10, 18, 19, 27, 28, 30, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 58, 61, 62, 63, 66, 69, 72, ), - /* 47 */ array(2, 4, 6, 7, 8, 9, 10, 18, 19, 27, 28, 30, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 58, 61, 62, 63, 66, 69, 72, ), - /* 48 */ array(2, 4, 6, 7, 8, 9, 10, 18, 19, 27, 28, 30, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 58, 61, 62, 63, 66, 69, 72, ), - /* 49 */ array(2, 4, 6, 7, 8, 9, 10, 18, 19, 27, 28, 30, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 58, 61, 62, 63, 66, 69, 72, ), - /* 50 */ array(2, 4, 6, 7, 8, 9, 10, 18, 19, 27, 28, 30, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 58, 61, 62, 63, 66, 69, 72, ), - /* 51 */ array(2, 4, 6, 7, 8, 9, 10, 18, 19, 27, 28, 30, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 58, 61, 62, 63, 66, 69, 72, ), - /* 52 */ array(2, 4, 6, 7, 8, 9, 10, 18, 19, 27, 28, 30, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 58, 61, 62, 63, 66, 69, 72, ), - /* 53 */ array(2, 4, 6, 7, 8, 9, 10, 18, 19, 27, 28, 30, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 58, 61, 62, 63, 66, 69, 72, ), - /* 54 */ array(2, 8, 9, 10, 18, 19, 27, 28, 30, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 58, 61, 62, 63, 66, 69, 72, ), - /* 55 */ array(9, 20, 21, 41, 42, 43, 44, 45, 46, 58, 61, 62, 63, 69, ), - /* 56 */ array(9, 41, 42, 43, 44, 45, 46, 58, 61, 62, 63, 69, ), - /* 57 */ array(9, 41, 42, 43, 44, 45, 46, 58, 61, 62, 63, 69, ), - /* 58 */ array(9, 41, 42, 43, 44, 45, 46, 58, 61, 62, 63, 69, ), - /* 59 */ array(9, 41, 42, 43, 44, 45, 46, 58, 61, 62, 63, 69, ), - /* 60 */ array(41, 42, 43, 47, 62, ), - /* 61 */ array(41, 42, 43, 47, 62, ), - /* 62 */ array(41, 58, 62, 63, ), - /* 63 */ array(41, 42, 43, 47, 62, ), - /* 64 */ array(41, 42, 43, 47, 62, ), - /* 65 */ array(41, 58, 62, 63, ), - /* 66 */ array(41, 58, 63, 71, ), - /* 67 */ array(41, 58, 63, ), - /* 68 */ array(1, 4, 6, 7, 23, 24, 25, 26, 27, 28, 29, 31, 53, 65, ), - /* 69 */ array(1, 4, 6, 7, 23, 24, 25, 26, 27, 28, 29, 31, 53, 65, ), - /* 70 */ array(1, 4, 6, 7, 21, 23, 24, 25, 26, 27, 28, 29, 31, ), - /* 71 */ array(1, 4, 6, 7, 21, 23, 24, 25, 26, 27, 28, 29, 31, ), - /* 72 */ array(21, 34, 36, 37, 38, 54, 56, 57, 60, ), - /* 73 */ array(21, 34, 36, 37, 38, 54, 56, 57, 60, ), - /* 74 */ array(41, 58, 63, ), - /* 75 */ array(1, 4, 6, 7, 22, 23, 24, 25, 26, 27, 28, 29, 31, ), - /* 76 */ array(1, 4, 6, 7, 22, 23, 24, 25, 26, 27, 28, 29, 31, ), - /* 77 */ array(1, 4, 6, 7, 23, 24, 25, 26, 27, 28, 29, 31, 64, ), - /* 78 */ array(1, 4, 6, 7, 22, 23, 24, 25, 26, 27, 28, 29, 31, ), - /* 79 */ array(1, 4, 6, 7, 21, 23, 24, 25, 26, 27, 28, 29, 31, ), - /* 80 */ array(1, 4, 6, 7, 23, 24, 25, 26, 27, 28, 29, 31, 53, ), - /* 81 */ array(1, 4, 6, 7, 23, 24, 25, 26, 27, 28, 29, 31, ), - /* 82 */ array(1, 4, 6, 7, 23, 24, 25, 26, 27, 28, 29, 31, ), - /* 83 */ array(1, 4, 6, 7, 23, 24, 25, 26, 27, 28, 29, 31, ), - /* 84 */ array(1, 4, 6, 7, 23, 24, 25, 26, 27, 28, 29, 31, ), - /* 85 */ array(1, 4, 6, 7, 23, 24, 25, 26, 27, 28, 29, 31, ), - /* 86 */ array(1, 4, 6, 7, 23, 24, 25, 26, 27, 28, 29, 31, ), - /* 87 */ array(4, 6, 7, 14, 23, 24, 25, 26, 27, 28, 29, 31, ), - /* 88 */ array(1, 4, 6, 7, 23, 24, 25, 26, 27, 28, 29, 31, ), - /* 89 */ array(1, 4, 6, 7, 23, 24, 25, 26, 27, 28, 29, 31, ), - /* 90 */ array(4, 6, 7, 14, 23, 24, 25, 26, 27, 28, 29, 31, ), - /* 91 */ array(1, 4, 6, 7, 23, 24, 25, 26, 27, 28, 29, 31, ), - /* 92 */ array(4, 6, 7, 23, 24, 25, 26, 27, 28, 29, 31, ), - /* 93 */ array(4, 6, 7, 23, 24, 25, 26, 27, 28, 29, 31, ), - /* 94 */ array(4, 6, 7, 23, 24, 25, 26, 27, 28, 29, 31, ), - /* 95 */ array(13, 14, 23, 24, 25, 26, 27, 28, 29, 31, ), - /* 96 */ array(13, 23, 24, 25, 26, 27, 28, 29, 31, ), - /* 97 */ array(14, 23, 24, 25, 26, 27, 28, 29, 31, ), - /* 98 */ array(14, 23, 24, 25, 26, 27, 28, 29, 31, ), - /* 99 */ array(23, 24, 25, 26, 27, 28, 29, 31, ), - /* 100 */ array(23, 24, 25, 26, 27, 28, 29, 31, ), - /* 101 */ array(23, 24, 25, 26, 27, 28, 29, 31, ), - /* 102 */ array(34, 36, 37, 38, 54, 56, 57, 60, ), - /* 103 */ array(23, 24, 25, 26, 27, 28, 29, 31, ), - /* 104 */ array(23, 24, 25, 26, 27, 28, 29, 31, ), - /* 105 */ array(34, 36, 37, 38, 54, 56, 57, 60, ), - /* 106 */ array(23, 24, 25, 26, 27, 28, 29, 31, ), - /* 107 */ array(23, 24, 25, 26, 27, 28, 29, 31, ), - /* 108 */ array(23, 24, 25, 26, 27, 28, 29, 31, ), - /* 109 */ array(24, 25, 26, 27, 28, 29, 31, ), - /* 110 */ array(36, 37, 38, 54, 56, 57, 60, ), - /* 111 */ array(36, 37, 38, 54, 56, 57, 60, ), - /* 112 */ array(25, 26, 27, 28, 29, 31, ), - /* 113 */ array(26, 27, 28, 29, 31, ), - /* 114 */ array(27, 28, 29, 31, ), - /* 115 */ array(1, 4, 6, 7, ), - /* 116 */ array(1, 4, 6, 7, ), - /* 117 */ array(29, 31, ), - /* 118 */ array(29, 31, ), - /* 119 */ array(29, 31, ), - /* 120 */ array(29, 31, ), - /* 121 */ array(31, ), - /* 122 */ array(31, ), - /* 123 */ array(73, ), - /* 124 */ array(73, ), - /* 125 */ array(20, 21, 34, 36, 37, 38, 54, 56, 57, 60, ), - /* 126 */ array(54, 56, 57, ), - /* 127 */ array(3, 22, 73, ), - /* 128 */ array(54, 56, 57, ), - /* 129 */ array(3, 22, 73, ), - /* 130 */ array(2, 21, ), - /* 131 */ array(21, 52, ), - /* 132 */ array(11, 12, ), - /* 133 */ array(67, 68, ), - /* 134 */ array(50, 51, ), - /* 135 */ array(34, ), - /* 136 */ array(41, ), - /* 137 */ array(41, ), - /* 138 */ array(21, ), - /* 139 */ array(21, ), - /* 140 */ array(52, ), - /* 141 */ array(52, ), - /* 142 */ array(34, ), - /* 143 */ array(34, ), - /* 144 */ array(52, ), - /* 145 */ array(52, ), - /* 146 */ array(41, ), - /* 147 */ array(52, ), - /* 148 */ array(41, ), - /* 149 */ array(21, ), - /* 150 */ array(41, ), - /* 151 */ array(21, ), - /* 152 */ array(21, ), - /* 153 */ array(21, ), - /* 154 */ array(21, ), - /* 155 */ array(21, ), - /* 156 */ array(41, ), - /* 157 */ array(52, ), - /* 158 */ array(21, ), - /* 159 */ array(21, ), - /* 160 */ array(34, 36, 37, 38, 54, 56, 57, 60, ), - /* 161 */ array(34, 36, 37, 38, 54, 56, 57, 60, ), - /* 162 */ array(17, 20, 32, 33, ), - /* 163 */ array(21, 39, 52, 64, ), - /* 164 */ array(21, 22, 39, ), - /* 165 */ array(21, 39, 59, ), - /* 166 */ array(21, 22, 39, ), - /* 167 */ array(21, 39, 64, ), - /* 168 */ array(21, 22, 39, ), - /* 169 */ array(21, 35, 39, ), - /* 170 */ array(49, 52, ), - /* 171 */ array(39, 70, ), - /* 172 */ array(22, 39, ), - /* 173 */ array(15, 53, ), - /* 174 */ array(22, 39, ), - /* 175 */ array(22, ), - /* 176 */ array(52, ), - /* 177 */ array(39, ), - /* 178 */ array(22, ), - /* 179 */ array(70, ), - /* 180 */ array(55, ), - /* 181 */ array(39, ), - /* 182 */ array(39, ), - /* 183 */ array(67, ), - /* 184 */ array(3, ), - /* 185 */ array(16, ), - /* 186 */ array(15, ), - /* 187 */ array(), - /* 188 */ array(), - /* 189 */ array(), - /* 190 */ array(), - /* 191 */ array(), - /* 192 */ array(), - /* 193 */ array(), - /* 194 */ array(), - /* 195 */ array(), - /* 196 */ array(), - /* 197 */ array(), - /* 198 */ array(), - /* 199 */ array(), - /* 200 */ array(), - /* 201 */ array(), - /* 202 */ array(), - /* 203 */ array(), - /* 204 */ array(), - /* 205 */ array(), - /* 206 */ array(), - /* 207 */ array(), - /* 208 */ array(), - /* 209 */ array(), - /* 210 */ array(), - /* 211 */ array(), - /* 212 */ array(), - /* 213 */ array(), - /* 214 */ array(), - /* 215 */ array(), - /* 216 */ array(), - /* 217 */ array(), - /* 218 */ array(), - /* 219 */ array(), - /* 220 */ array(), - /* 221 */ array(), - /* 222 */ array(), - /* 223 */ array(), - /* 224 */ array(), - /* 225 */ array(), - /* 226 */ array(), - /* 227 */ array(), - /* 228 */ array(), - /* 229 */ array(), - /* 230 */ array(), - /* 231 */ array(), - /* 232 */ array(), - /* 233 */ array(), - /* 234 */ array(), - /* 235 */ array(), - /* 236 */ array(), - /* 237 */ array(), - /* 238 */ array(), - /* 239 */ array(), - /* 240 */ array(), - /* 241 */ array(), - /* 242 */ array(), - /* 243 */ array(), - /* 244 */ array(), - /* 245 */ array(), - /* 246 */ array(), - /* 247 */ array(), - /* 248 */ array(), - /* 249 */ array(), - /* 250 */ array(), - /* 251 */ array(), - /* 252 */ array(), - /* 253 */ array(), - /* 254 */ array(), - /* 255 */ array(), - /* 256 */ array(), - /* 257 */ array(), - /* 258 */ array(), - /* 259 */ array(), - /* 260 */ array(), - /* 261 */ array(), - /* 262 */ array(), - /* 263 */ array(), - /* 264 */ array(), - /* 265 */ array(), - /* 266 */ array(), - /* 267 */ array(), - /* 268 */ array(), - /* 269 */ array(), - /* 270 */ array(), - /* 271 */ array(), - /* 272 */ array(), - /* 273 */ array(), - /* 274 */ array(), - /* 275 */ array(), - /* 276 */ array(), - /* 277 */ array(), - /* 278 */ array(), - /* 279 */ array(), - /* 280 */ array(), - /* 281 */ array(), - /* 282 */ array(), - /* 283 */ array(), - /* 284 */ array(), - /* 285 */ array(), - /* 286 */ array(), - /* 287 */ array(), - /* 288 */ array(), - /* 289 */ array(), - /* 290 */ array(), - /* 291 */ array(), - /* 292 */ array(), - /* 293 */ array(), - /* 294 */ array(), - /* 295 */ array(), - /* 296 */ array(), - /* 297 */ array(), - /* 298 */ array(), - /* 299 */ array(), - /* 300 */ array(), - /* 301 */ array(), - /* 302 */ array(), - /* 303 */ array(), - /* 304 */ array(), - /* 305 */ array(), - /* 306 */ array(), - /* 307 */ array(), - /* 308 */ array(), - /* 309 */ array(), - /* 310 */ array(), - /* 311 */ array(), - /* 312 */ array(), - /* 313 */ array(), -); - static public $yy_default = array( - /* 0 */ 314, 508, 508, 508, 508, 508, 508, 508, 508, 508, - /* 10 */ 508, 363, 508, 319, 508, 508, 508, 508, 508, 508, - /* 20 */ 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, - /* 30 */ 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, - /* 40 */ 508, 508, 508, 508, 508, 508, 508, 428, 508, 508, - /* 50 */ 508, 508, 508, 508, 356, 403, 508, 508, 508, 508, - /* 60 */ 398, 398, 364, 508, 363, 508, 508, 508, 435, 395, - /* 70 */ 508, 508, 405, 409, 508, 508, 508, 508, 508, 508, - /* 80 */ 435, 438, 488, 369, 489, 427, 349, 449, 320, 429, - /* 90 */ 447, 437, 448, 450, 456, 469, 471, 473, 470, 475, - /* 100 */ 355, 346, 326, 472, 507, 327, 505, 474, 444, 503, - /* 110 */ 415, 415, 502, 504, 501, 321, 508, 499, 492, 498, - /* 120 */ 491, 500, 490, 508, 508, 407, 508, 508, 508, 508, - /* 130 */ 508, 508, 508, 439, 508, 508, 508, 508, 508, 508, - /* 140 */ 362, 362, 508, 413, 362, 362, 390, 362, 508, 508, - /* 150 */ 420, 508, 508, 508, 508, 508, 508, 362, 508, 508, - /* 160 */ 494, 493, 379, 425, 508, 508, 508, 508, 508, 508, - /* 170 */ 508, 508, 508, 367, 508, 508, 467, 482, 508, 508, - /* 180 */ 508, 508, 315, 440, 486, 348, 382, 337, 466, 358, - /* 190 */ 396, 316, 406, 397, 425, 351, 352, 506, 402, 353, - /* 200 */ 350, 460, 400, 347, 401, 417, 371, 373, 468, 372, - /* 210 */ 464, 318, 399, 368, 465, 366, 354, 462, 463, 365, - /* 220 */ 370, 418, 392, 324, 457, 359, 360, 361, 452, 338, - /* 230 */ 461, 357, 387, 317, 375, 378, 383, 384, 385, 386, - /* 240 */ 381, 380, 495, 496, 339, 458, 453, 329, 330, 331, - /* 250 */ 332, 328, 412, 389, 377, 393, 394, 333, 334, 343, - /* 260 */ 344, 345, 388, 342, 341, 335, 336, 340, 411, 416, - /* 270 */ 480, 478, 479, 455, 483, 487, 481, 391, 484, 485, - /* 280 */ 422, 323, 432, 430, 434, 433, 322, 423, 374, 431, - /* 290 */ 436, 477, 476, 419, 421, 424, 426, 414, 382, 408, - /* 300 */ 410, 379, 442, 441, 451, 454, 325, 459, 446, 445, - /* 310 */ 443, 497, 376, 404, -); -/* The next thing included is series of defines which control -** various aspects of the generated parser. -** self::YYNOCODE is a number which corresponds -** to no legal terminal or nonterminal number. This -** number is used to fill in empty slots of the hash -** table. -** self::YYFALLBACK If defined, this indicates that one or more tokens -** have fall-back values which should be used if the -** original value of the token will not parse. -** self::YYSTACKDEPTH is the maximum depth of the parser's stack. -** self::YYNSTATE the combined number of states. -** self::YYNRULE the number of rules in the grammar -** self::YYERRORSYMBOL is the code number of the error symbol. If not -** defined, then do no error processing. -*/ - const YYNOCODE = 137; - const YYSTACKDEPTH = 100; - const YYNSTATE = 314; - const YYNRULE = 194; - const YYERRORSYMBOL = 74; - const YYERRSYMDT = 'yy0'; - const YYFALLBACK = 0; - /** The next table maps tokens into fallback tokens. If a construct - * like the following: - * - * %fallback ID X Y Z. - * - * appears in the grammer, then ID becomes a fallback token for X, Y, - * and Z. Whenever one of the tokens X, Y, or Z is input to the parser - * but it does not parse, the type of the token is changed to ID and - * the parse is retried before an error is thrown. - */ - static public $yyFallback = array( - ); - /** - * Turn parser tracing on by giving a stream to which to write the trace - * and a prompt to preface each trace message. Tracing is turned off - * by making either argument NULL - * - * Inputs: - * - * - A stream resource to which trace output should be written. - * If NULL, then tracing is turned off. - * - A prefix string written at the beginning of every - * line of trace output. If NULL, then tracing is - * turned off. - * - * Outputs: - * - * - None. - * @param resource - * @param string - */ - static function Trace($TraceFILE, $zTracePrompt) - { - if (!$TraceFILE) { - $zTracePrompt = 0; - } elseif (!$zTracePrompt) { - $TraceFILE = 0; - } - self::$yyTraceFILE = $TraceFILE; - self::$yyTracePrompt = $zTracePrompt; - } - - /** - * Output debug information to output (php://output stream) - */ - static function PrintTrace() - { - self::$yyTraceFILE = fopen('php://output', 'w'); - self::$yyTracePrompt = ''; - } - - /** - * @var resource|0 - */ - static public $yyTraceFILE; - /** - * String to prepend to debug output - * @var string|0 - */ - static public $yyTracePrompt; - /** - * @var int - */ - public $yyidx = -1; /* Index of top element in stack */ - /** - * @var int - */ - public $yyerrcnt; /* Shifts left before out of the error */ - /** - * @var array - */ - public $yystack = array(); /* The parser's stack */ - - /** - * For tracing shifts, the names of all terminals and nonterminals - * are required. The following table supplies these names - * @var array - */ - static public $yyTokenName = array( - '$', 'YY_POST_IF', 'YY_IF', 'YY_ELSE', - 'YY_FOR', 'YY_DO', 'YY_WHILE', 'YY_UNTIL', - 'YY_LOOP', 'YY_SUPER', 'YY_CLASS', 'YY_FORIN', - 'YY_FOROF', 'YY_BY', 'YY_WHEN', 'YY_EQUALS', - 'YY_COLON', 'YY_COMPOUND_ASSIGN', 'YY_RETURN', 'YY_THROW', - 'YY_EXTENDS', 'YY_INDENT', 'YY_OUTDENT', 'YY_LOGIC', - 'YY_COMPARE', 'YY_RELATION', 'YY_SHIFT', 'YY_PLUS', - 'YY_MINUS', 'YY_MATH', 'YY_UNARY', 'YY_EXISTENTIAL', - 'YY_INCREMENT', 'YY_DECREMENT', 'YY_CALL_START', 'YY_CALL_END', - 'YY_ACCESSOR', 'YY_EXISTENTIAL_ACCESSOR', 'YY_PROTOTYPE', 'YY_TERMINATOR', - 'YY_STATEMENT', 'YY_IDENTIFIER', 'YY_NUMBER', 'YY_STRING', - 'YY_JS', 'YY_REGEX', 'YY_BOOL', 'YY_HERECOMMENT', - 'YY_PARAM_START', 'YY_PARAM_END', 'YY_FUNC', 'YY_BOUND_FUNC', - 'YY_COMMA', 'YY_RANGE_EXCLUSIVE', 'YY_INDEX_START', 'YY_INDEX_END', - 'YY_INDEX_SOAK', 'YY_INDEX_PROTO', 'YY_OBJECT_START', 'YY_OBJECT_END', - 'YY_FUNC_EXIST', 'YY_THIS', 'YY_AT_SIGN', 'YY_ARRAY_START', - 'YY_ARRAY_END', 'YY_RANGE_INCLUSIVE', 'YY_TRY', 'YY_FINALLY', - 'YY_CATCH', 'YY_PAREN_START', 'YY_PAREN_END', 'YY_OWN', - 'YY_SWITCH', 'YY_LEADING_WHEN', 'error', 'root', - 'body', 'block', 'line', 'expression', - 'statement', 'return', 'throw', 'comment', - 'value', 'invocation', 'code', 'operation', - 'assign', 'if', 'try', 'while', - 'for', 'switch', 'class', 'identifier', - 'alphanumeric', 'literal', 'assignable', 'assignObj', - 'objAssignable', 'thisProperty', 'paramList', 'funcGlyph', - 'optComma', 'param', 'paramVar', 'array', - 'object', 'splat', 'simpleAssignable', 'accessor', - 'parenthetical', 'range', 'this', 'index', - 'indexValue', 'slice', 'assignList', 'optFuncExist', - 'arguments', 'argList', 'rangeDots', 'arg', - 'simpleArgs', 'catch', 'whileSource', 'loop', - 'forBody', 'forStart', 'forSource', 'forVariables', - 'forValue', 'whens', 'when', 'ifBlock', - ); - - /** - * For tracing reduce actions, the names of all rules are required. - * @var array - */ - static public $yyRuleName = array( - /* 0 */ "root ::=", - /* 1 */ "root ::= body", - /* 2 */ "root ::= block YY_TERMINATOR", - /* 3 */ "body ::= line", - /* 4 */ "body ::= body YY_TERMINATOR line", - /* 5 */ "body ::= body YY_TERMINATOR", - /* 6 */ "line ::= expression", - /* 7 */ "line ::= statement", - /* 8 */ "statement ::= return", - /* 9 */ "statement ::= throw", - /* 10 */ "statement ::= comment", - /* 11 */ "statement ::= YY_STATEMENT", - /* 12 */ "expression ::= value", - /* 13 */ "expression ::= invocation", - /* 14 */ "expression ::= code", - /* 15 */ "expression ::= operation", - /* 16 */ "expression ::= assign", - /* 17 */ "expression ::= if", - /* 18 */ "expression ::= try", - /* 19 */ "expression ::= while", - /* 20 */ "expression ::= for", - /* 21 */ "expression ::= switch", - /* 22 */ "expression ::= class", - /* 23 */ "block ::= YY_INDENT YY_OUTDENT", - /* 24 */ "block ::= YY_INDENT body YY_OUTDENT", - /* 25 */ "identifier ::= YY_IDENTIFIER", - /* 26 */ "alphanumeric ::= YY_NUMBER", - /* 27 */ "alphanumeric ::= YY_STRING", - /* 28 */ "literal ::= alphanumeric", - /* 29 */ "literal ::= YY_JS", - /* 30 */ "literal ::= YY_REGEX", - /* 31 */ "literal ::= YY_BOOL", - /* 32 */ "assign ::= assignable YY_EQUALS expression", - /* 33 */ "assign ::= assignable YY_EQUALS YY_INDENT expression YY_OUTDENT", - /* 34 */ "assignObj ::= objAssignable", - /* 35 */ "assignObj ::= objAssignable YY_COLON expression", - /* 36 */ "assignObj ::= objAssignable YY_COLON YY_INDENT expression YY_OUTDENT", - /* 37 */ "assignObj ::= comment", - /* 38 */ "objAssignable ::= identifier", - /* 39 */ "objAssignable ::= alphanumeric", - /* 40 */ "objAssignable ::= thisProperty", - /* 41 */ "return ::= YY_RETURN expression", - /* 42 */ "return ::= YY_RETURN", - /* 43 */ "comment ::= YY_HERECOMMENT", - /* 44 */ "code ::= YY_PARAM_START paramList YY_PARAM_END funcGlyph block", - /* 45 */ "code ::= funcGlyph block", - /* 46 */ "funcGlyph ::= YY_FUNC", - /* 47 */ "funcGlyph ::= YY_BOUND_FUNC", - /* 48 */ "optComma ::=", - /* 49 */ "optComma ::= YY_COMMA", - /* 50 */ "paramList ::=", - /* 51 */ "paramList ::= param", - /* 52 */ "paramList ::= paramList YY_COMMA param", - /* 53 */ "param ::= paramVar", - /* 54 */ "param ::= paramVar YY_RANGE_EXCLUSIVE", - /* 55 */ "param ::= paramVar YY_EQUALS expression", - /* 56 */ "paramVar ::= identifier", - /* 57 */ "paramVar ::= thisProperty", - /* 58 */ "paramVar ::= array", - /* 59 */ "paramVar ::= object", - /* 60 */ "splat ::= expression YY_RANGE_EXCLUSIVE", - /* 61 */ "simpleAssignable ::= identifier", - /* 62 */ "simpleAssignable ::= value accessor", - /* 63 */ "simpleAssignable ::= invocation accessor", - /* 64 */ "simpleAssignable ::= thisProperty", - /* 65 */ "assignable ::= simpleAssignable", - /* 66 */ "assignable ::= array", - /* 67 */ "assignable ::= object", - /* 68 */ "value ::= assignable", - /* 69 */ "value ::= literal", - /* 70 */ "value ::= parenthetical", - /* 71 */ "value ::= range", - /* 72 */ "value ::= this", - /* 73 */ "accessor ::= YY_ACCESSOR identifier", - /* 74 */ "accessor ::= YY_EXISTENTIAL_ACCESSOR identifier", - /* 75 */ "accessor ::= YY_PROTOTYPE identifier", - /* 76 */ "accessor ::= YY_PROTOTYPE", - /* 77 */ "accessor ::= index", - /* 78 */ "index ::= YY_INDEX_START indexValue YY_INDEX_END", - /* 79 */ "index ::= YY_INDEX_SOAK index", - /* 80 */ "index ::= YY_INDEX_PROTO index", - /* 81 */ "indexValue ::= expression", - /* 82 */ "indexValue ::= slice", - /* 83 */ "object ::= YY_OBJECT_START assignList optComma YY_OBJECT_END", - /* 84 */ "assignList ::=", - /* 85 */ "assignList ::= assignObj", - /* 86 */ "assignList ::= assignList YY_COMMA assignObj", - /* 87 */ "assignList ::= assignList optComma YY_TERMINATOR assignObj", - /* 88 */ "assignList ::= assignList optComma YY_INDENT assignList optComma YY_OUTDENT", - /* 89 */ "class ::= YY_CLASS", - /* 90 */ "class ::= YY_CLASS block", - /* 91 */ "class ::= YY_CLASS YY_EXTENDS value", - /* 92 */ "class ::= YY_CLASS YY_EXTENDS value block", - /* 93 */ "class ::= YY_CLASS simpleAssignable", - /* 94 */ "class ::= YY_CLASS simpleAssignable block", - /* 95 */ "class ::= YY_CLASS simpleAssignable YY_EXTENDS value", - /* 96 */ "class ::= YY_CLASS simpleAssignable YY_EXTENDS value block", - /* 97 */ "invocation ::= value optFuncExist arguments", - /* 98 */ "invocation ::= invocation optFuncExist arguments", - /* 99 */ "invocation ::= YY_SUPER", - /* 100 */ "invocation ::= YY_SUPER arguments", - /* 101 */ "optFuncExist ::=", - /* 102 */ "optFuncExist ::= YY_FUNC_EXIST", - /* 103 */ "arguments ::= YY_CALL_START YY_CALL_END", - /* 104 */ "arguments ::= YY_CALL_START argList optComma YY_CALL_END", - /* 105 */ "this ::= YY_THIS", - /* 106 */ "this ::= YY_AT_SIGN", - /* 107 */ "thisProperty ::= YY_AT_SIGN identifier", - /* 108 */ "array ::= YY_ARRAY_START YY_ARRAY_END", - /* 109 */ "array ::= YY_ARRAY_START argList optComma YY_ARRAY_END", - /* 110 */ "rangeDots ::= YY_RANGE_INCLUSIVE", - /* 111 */ "rangeDots ::= YY_RANGE_EXCLUSIVE", - /* 112 */ "range ::= YY_ARRAY_START expression rangeDots expression YY_ARRAY_END", - /* 113 */ "slice ::= expression rangeDots expression", - /* 114 */ "slice ::= expression rangeDots", - /* 115 */ "slice ::= rangeDots expression", - /* 116 */ "argList ::= arg", - /* 117 */ "argList ::= argList YY_COMMA arg", - /* 118 */ "argList ::= argList optComma YY_TERMINATOR arg", - /* 119 */ "argList ::= YY_INDENT argList optComma YY_OUTDENT", - /* 120 */ "argList ::= argList optComma YY_INDENT argList optComma YY_OUTDENT", - /* 121 */ "arg ::= expression", - /* 122 */ "arg ::= splat", - /* 123 */ "simpleArgs ::= expression", - /* 124 */ "simpleArgs ::= simpleArgs YY_COMMA expression", - /* 125 */ "try ::= YY_TRY block", - /* 126 */ "try ::= YY_TRY block catch", - /* 127 */ "try ::= YY_TRY block YY_FINALLY block", - /* 128 */ "try ::= YY_TRY block catch YY_FINALLY block", - /* 129 */ "catch ::= YY_CATCH identifier block", - /* 130 */ "throw ::= YY_THROW expression", - /* 131 */ "parenthetical ::= YY_PAREN_START body YY_PAREN_END", - /* 132 */ "parenthetical ::= YY_PAREN_START YY_INDENT body YY_OUTDENT YY_PAREN_END", - /* 133 */ "whileSource ::= YY_WHILE expression", - /* 134 */ "whileSource ::= YY_WHILE expression YY_WHEN expression", - /* 135 */ "whileSource ::= YY_UNTIL expression", - /* 136 */ "whileSource ::= YY_UNTIL expression YY_WHEN expression", - /* 137 */ "while ::= whileSource block", - /* 138 */ "while ::= statement whileSource", - /* 139 */ "while ::= expression whileSource", - /* 140 */ "while ::= loop", - /* 141 */ "loop ::= YY_LOOP block", - /* 142 */ "loop ::= YY_LOOP expression", - /* 143 */ "for ::= statement forBody", - /* 144 */ "for ::= expression forBody", - /* 145 */ "for ::= forBody block", - /* 146 */ "forBody ::= YY_FOR range", - /* 147 */ "forBody ::= forStart forSource", - /* 148 */ "forStart ::= YY_FOR forVariables", - /* 149 */ "forStart ::= YY_FOR YY_OWN forVariables", - /* 150 */ "forValue ::= identifier", - /* 151 */ "forValue ::= array", - /* 152 */ "forValue ::= object", - /* 153 */ "forVariables ::= forValue", - /* 154 */ "forVariables ::= forValue YY_COMMA forValue", - /* 155 */ "forSource ::= YY_FORIN expression", - /* 156 */ "forSource ::= YY_FOROF expression", - /* 157 */ "forSource ::= YY_FORIN expression YY_WHEN expression", - /* 158 */ "forSource ::= YY_FOROF expression YY_WHEN expression", - /* 159 */ "forSource ::= YY_FORIN expression YY_BY expression", - /* 160 */ "forSource ::= YY_FORIN expression YY_WHEN expression YY_BY expression", - /* 161 */ "forSource ::= YY_FORIN expression YY_BY expression YY_WHEN expression", - /* 162 */ "switch ::= YY_SWITCH expression YY_INDENT whens YY_OUTDENT", - /* 163 */ "switch ::= YY_SWITCH expression YY_INDENT whens YY_ELSE block YY_OUTDENT", - /* 164 */ "switch ::= YY_SWITCH YY_INDENT whens YY_OUTDENT", - /* 165 */ "switch ::= YY_SWITCH YY_INDENT whens YY_ELSE block YY_OUTDENT", - /* 166 */ "whens ::= when", - /* 167 */ "whens ::= whens when", - /* 168 */ "when ::= YY_LEADING_WHEN simpleArgs block", - /* 169 */ "when ::= YY_LEADING_WHEN simpleArgs block YY_TERMINATOR", - /* 170 */ "ifBlock ::= YY_IF expression block", - /* 171 */ "ifBlock ::= ifBlock YY_ELSE YY_IF expression block", - /* 172 */ "if ::= ifBlock", - /* 173 */ "if ::= ifBlock YY_ELSE block", - /* 174 */ "if ::= statement YY_POST_IF expression", - /* 175 */ "if ::= expression YY_POST_IF expression", - /* 176 */ "operation ::= YY_UNARY expression", - /* 177 */ "operation ::= YY_MINUS expression", - /* 178 */ "operation ::= YY_PLUS expression", - /* 179 */ "operation ::= YY_DECREMENT simpleAssignable", - /* 180 */ "operation ::= YY_INCREMENT simpleAssignable", - /* 181 */ "operation ::= simpleAssignable YY_DECREMENT", - /* 182 */ "operation ::= simpleAssignable YY_INCREMENT", - /* 183 */ "operation ::= expression YY_EXISTENTIAL", - /* 184 */ "operation ::= expression YY_PLUS expression", - /* 185 */ "operation ::= expression YY_MINUS expression", - /* 186 */ "operation ::= expression YY_MATH expression", - /* 187 */ "operation ::= expression YY_SHIFT expression", - /* 188 */ "operation ::= expression YY_COMPARE expression", - /* 189 */ "operation ::= expression YY_LOGIC expression", - /* 190 */ "operation ::= expression YY_RELATION expression", - /* 191 */ "operation ::= simpleAssignable YY_COMPOUND_ASSIGN expression", - /* 192 */ "operation ::= simpleAssignable YY_COMPOUND_ASSIGN YY_INDENT expression YY_OUTDENT", - /* 193 */ "operation ::= simpleAssignable YY_EXTENDS expression", - ); - - /** - * This function returns the symbolic name associated with a token - * value. - * @param int - * @return string - */ - static function tokenName($tokenType) - { - if ($tokenType === 0) { - return 'End of Input'; - } - if ($tokenType > 0 && $tokenType < count(self::$yyTokenName)) { - return self::$yyTokenName[$tokenType]; - } else { - return "Unknown"; - } - } - - /** - * The following function deletes the value associated with a - * symbol. The symbol can be either a terminal or nonterminal. - * @param int the symbol code - * @param mixed the symbol's value - */ - static function yy_destructor($yymajor, $yypminor) - { - switch ($yymajor) { - /* Here is inserted the actions which take place when a - ** terminal or non-terminal is destroyed. This can happen - ** when the symbol is popped from the stack during a - ** reduce or during error processing or when a parser is - ** being destroyed before it is finished parsing. - ** - ** Note: during a reduce, the only symbols destroyed are those - ** which appear on the RHS of the rule, but which are not used - ** inside the C code. - */ - default: break; /* If no destructor action specified: do nothing */ - } - } - - /** - * Pop the parser's stack once. - * - * If there is a destructor routine associated with the token which - * is popped from the stack, then call it. - * - * Return the major token number for the symbol popped. - * @param yyParser - * @return int - */ - function yy_pop_parser_stack() - { - if (!count($this->yystack)) { - return; - } - $yytos = array_pop($this->yystack); - if (self::$yyTraceFILE && $this->yyidx >= 0) { - fwrite(self::$yyTraceFILE, - self::$yyTracePrompt . 'Popping ' . self::tokenName($yytos->major) . - "\n"); - } - $yymajor = $yytos->major; - self::yy_destructor($yymajor, $yytos->minor); - $this->yyidx--; - return $yymajor; - } - - /** - * Deallocate and destroy a parser. Destructors are all called for - * all stack elements before shutting the parser down. - */ - function __destruct() - { - while ($this->yyidx >= 0) { - $this->yy_pop_parser_stack(); - } - if (is_resource(self::$yyTraceFILE)) { - fclose(self::$yyTraceFILE); - } - } - - /** - * Based on the current state and parser stack, get a list of all - * possible lookahead tokens - * @param int - * @return array - */ - function yy_get_expected_tokens($token) - { - $state = $this->yystack[$this->yyidx]->stateno; - $expected = self::$yyExpectedTokens[$state]; - if (in_array($token, self::$yyExpectedTokens[$state], true)) { - return $expected; - } - $stack = $this->yystack; - $yyidx = $this->yyidx; - do { - $yyact = $this->yy_find_shift_action($token); - if ($yyact >= self::YYNSTATE && $yyact < self::YYNSTATE + self::YYNRULE) { - // reduce action - $done = 0; - do { - if ($done++ == 100) { - $this->yyidx = $yyidx; - $this->yystack = $stack; - // too much recursion prevents proper detection - // so give up - return array_unique($expected); - } - $yyruleno = $yyact - self::YYNSTATE; - $this->yyidx -= self::$yyRuleInfo[$yyruleno]['rhs']; - $nextstate = $this->yy_find_reduce_action( - $this->yystack[$this->yyidx]->stateno, - self::$yyRuleInfo[$yyruleno]['lhs']); - if (isset(self::$yyExpectedTokens[$nextstate])) { - $expected += self::$yyExpectedTokens[$nextstate]; - if (in_array($token, - self::$yyExpectedTokens[$nextstate], true)) { - $this->yyidx = $yyidx; - $this->yystack = $stack; - return array_unique($expected); - } - } - if ($nextstate < self::YYNSTATE) { - // we need to shift a non-terminal - $this->yyidx++; - $x = new yyStackEntry; - $x->stateno = $nextstate; - $x->major = self::$yyRuleInfo[$yyruleno]['lhs']; - $this->yystack[$this->yyidx] = $x; - continue 2; - } elseif ($nextstate == self::YYNSTATE + self::YYNRULE + 1) { - $this->yyidx = $yyidx; - $this->yystack = $stack; - // the last token was just ignored, we can't accept - // by ignoring input, this is in essence ignoring a - // syntax error! - return array_unique($expected); - } elseif ($nextstate === self::YY_NO_ACTION) { - $this->yyidx = $yyidx; - $this->yystack = $stack; - // input accepted, but not shifted (I guess) - return $expected; - } else { - $yyact = $nextstate; - } - } while (true); - } - break; - } while (true); - return array_unique($expected); - } - - /** - * Based on the parser state and current parser stack, determine whether - * the lookahead token is possible. - * - * The parser will convert the token value to an error token if not. This - * catches some unusual edge cases where the parser would fail. - * @param int - * @return bool - */ - function yy_is_expected_token($token) - { - if ($token === 0) { - return true; // 0 is not part of this - } - $state = $this->yystack[$this->yyidx]->stateno; - if (in_array($token, self::$yyExpectedTokens[$state], true)) { - return true; - } - $stack = $this->yystack; - $yyidx = $this->yyidx; - do { - $yyact = $this->yy_find_shift_action($token); - if ($yyact >= self::YYNSTATE && $yyact < self::YYNSTATE + self::YYNRULE) { - // reduce action - $done = 0; - do { - if ($done++ == 100) { - $this->yyidx = $yyidx; - $this->yystack = $stack; - // too much recursion prevents proper detection - // so give up - return true; - } - $yyruleno = $yyact - self::YYNSTATE; - $this->yyidx -= self::$yyRuleInfo[$yyruleno]['rhs']; - $nextstate = $this->yy_find_reduce_action( - $this->yystack[$this->yyidx]->stateno, - self::$yyRuleInfo[$yyruleno]['lhs']); - if (isset(self::$yyExpectedTokens[$nextstate]) && - in_array($token, self::$yyExpectedTokens[$nextstate], true)) { - $this->yyidx = $yyidx; - $this->yystack = $stack; - return true; - } - if ($nextstate < self::YYNSTATE) { - // we need to shift a non-terminal - $this->yyidx++; - $x = new yyStackEntry; - $x->stateno = $nextstate; - $x->major = self::$yyRuleInfo[$yyruleno]['lhs']; - $this->yystack[$this->yyidx] = $x; - continue 2; - } elseif ($nextstate == self::YYNSTATE + self::YYNRULE + 1) { - $this->yyidx = $yyidx; - $this->yystack = $stack; - if (!$token) { - // end of input: this is valid - return true; - } - // the last token was just ignored, we can't accept - // by ignoring input, this is in essence ignoring a - // syntax error! - return false; - } elseif ($nextstate === self::YY_NO_ACTION) { - $this->yyidx = $yyidx; - $this->yystack = $stack; - // input accepted, but not shifted (I guess) - return true; - } else { - $yyact = $nextstate; - } - } while (true); - } - break; - } while (true); - $this->yyidx = $yyidx; - $this->yystack = $stack; - return true; - } - - /** - * Find the appropriate action for a parser given the terminal - * look-ahead token iLookAhead. - * - * If the look-ahead token is YYNOCODE, then check to see if the action is - * independent of the look-ahead. If it is, return the action, otherwise - * return YY_NO_ACTION. - * @param int The look-ahead token - */ - function yy_find_shift_action($iLookAhead) - { - $stateno = $this->yystack[$this->yyidx]->stateno; - - /* if ($this->yyidx < 0) return self::YY_NO_ACTION; */ - if (!isset(self::$yy_shift_ofst[$stateno])) { - // no shift actions - return self::$yy_default[$stateno]; - } - $i = self::$yy_shift_ofst[$stateno]; - if ($i === self::YY_SHIFT_USE_DFLT) { - return self::$yy_default[$stateno]; - } - if ($iLookAhead == self::YYNOCODE) { - return self::YY_NO_ACTION; - } - $i += $iLookAhead; - if ($i < 0 || $i >= self::YY_SZ_ACTTAB || - self::$yy_lookahead[$i] != $iLookAhead) { - if (count(self::$yyFallback) && $iLookAhead < count(self::$yyFallback) - && ($iFallback = self::$yyFallback[$iLookAhead]) != 0) { - if (self::$yyTraceFILE) { - fwrite(self::$yyTraceFILE, self::$yyTracePrompt . "FALLBACK " . - self::tokenName($iLookAhead) . " => " . - self::tokenName($iFallback) . "\n"); - } - return $this->yy_find_shift_action($iFallback); - } - return self::$yy_default[$stateno]; - } else { - return self::$yy_action[$i]; - } - } - - /** - * Find the appropriate action for a parser given the non-terminal - * look-ahead token $iLookAhead. - * - * If the look-ahead token is self::YYNOCODE, then check to see if the action is - * independent of the look-ahead. If it is, return the action, otherwise - * return self::YY_NO_ACTION. - * @param int Current state number - * @param int The look-ahead token - */ - function yy_find_reduce_action($stateno, $iLookAhead) - { - /* $stateno = $this->yystack[$this->yyidx]->stateno; */ - - if (!isset(self::$yy_reduce_ofst[$stateno])) { - return self::$yy_default[$stateno]; - } - $i = self::$yy_reduce_ofst[$stateno]; - if ($i == self::YY_REDUCE_USE_DFLT) { - return self::$yy_default[$stateno]; - } - if ($iLookAhead == self::YYNOCODE) { - return self::YY_NO_ACTION; - } - $i += $iLookAhead; - if ($i < 0 || $i >= self::YY_SZ_ACTTAB || - self::$yy_lookahead[$i] != $iLookAhead) { - return self::$yy_default[$stateno]; - } else { - return self::$yy_action[$i]; - } - } - - /** - * Perform a shift action. - * @param int The new state to shift in - * @param int The major token to shift in - * @param mixed the minor token to shift in - */ - function yy_shift($yyNewState, $yyMajor, $yypMinor, $generated = FALSE) - { - $this->yyidx++; - if ($this->yyidx >= self::YYSTACKDEPTH) { - $this->yyidx--; - if (self::$yyTraceFILE) { - fprintf(self::$yyTraceFILE, "%sStack Overflow!\n", self::$yyTracePrompt); - } - while ($this->yyidx >= 0) { - $this->yy_pop_parser_stack(); - } - /* Here code is inserted which will execute if the parser - ** stack ever overflows */ - return; - } - $yytos = new yyStackEntry; - $yytos->stateno = $yyNewState; - $yytos->major = $yyMajor; - $yytos->minor = $yypMinor; - $yytos->generated = $generated; - array_push($this->yystack, $yytos); - if (self::$yyTraceFILE && $this->yyidx > 0) { - fprintf(self::$yyTraceFILE, "%sShift %d\n", self::$yyTracePrompt, - $yyNewState); - fprintf(self::$yyTraceFILE, "%sStack:", self::$yyTracePrompt); - for ($i = 1; $i <= $this->yyidx; $i++) { - fprintf(self::$yyTraceFILE, " %s", - self::tokenName($this->yystack[$i]->major)); - } - fwrite(self::$yyTraceFILE,"\n"); - } - } - - /** - * The following table contains information about every rule that - * is used during the reduce. - * - * <pre> - * array( - * array( - * int $lhs; Symbol on the left-hand side of the rule - * int $nrhs; Number of right-hand side symbols in the rule - * ),... - * ); - * </pre> - */ - static public $yyRuleInfo = array( - array( 'lhs' => 75, 'rhs' => 0 ), - array( 'lhs' => 75, 'rhs' => 1 ), - array( 'lhs' => 75, 'rhs' => 2 ), - array( 'lhs' => 76, 'rhs' => 1 ), - array( 'lhs' => 76, 'rhs' => 3 ), - array( 'lhs' => 76, 'rhs' => 2 ), - array( 'lhs' => 78, 'rhs' => 1 ), - array( 'lhs' => 78, 'rhs' => 1 ), - array( 'lhs' => 80, 'rhs' => 1 ), - array( 'lhs' => 80, 'rhs' => 1 ), - array( 'lhs' => 80, 'rhs' => 1 ), - array( 'lhs' => 80, 'rhs' => 1 ), - array( 'lhs' => 79, 'rhs' => 1 ), - array( 'lhs' => 79, 'rhs' => 1 ), - array( 'lhs' => 79, 'rhs' => 1 ), - array( 'lhs' => 79, 'rhs' => 1 ), - array( 'lhs' => 79, 'rhs' => 1 ), - array( 'lhs' => 79, 'rhs' => 1 ), - array( 'lhs' => 79, 'rhs' => 1 ), - array( 'lhs' => 79, 'rhs' => 1 ), - array( 'lhs' => 79, 'rhs' => 1 ), - array( 'lhs' => 79, 'rhs' => 1 ), - array( 'lhs' => 79, 'rhs' => 1 ), - array( 'lhs' => 77, 'rhs' => 2 ), - array( 'lhs' => 77, 'rhs' => 3 ), - array( 'lhs' => 95, 'rhs' => 1 ), - array( 'lhs' => 96, 'rhs' => 1 ), - array( 'lhs' => 96, 'rhs' => 1 ), - array( 'lhs' => 97, 'rhs' => 1 ), - array( 'lhs' => 97, 'rhs' => 1 ), - array( 'lhs' => 97, 'rhs' => 1 ), - array( 'lhs' => 97, 'rhs' => 1 ), - array( 'lhs' => 88, 'rhs' => 3 ), - array( 'lhs' => 88, 'rhs' => 5 ), - array( 'lhs' => 99, 'rhs' => 1 ), - array( 'lhs' => 99, 'rhs' => 3 ), - array( 'lhs' => 99, 'rhs' => 5 ), - array( 'lhs' => 99, 'rhs' => 1 ), - array( 'lhs' => 100, 'rhs' => 1 ), - array( 'lhs' => 100, 'rhs' => 1 ), - array( 'lhs' => 100, 'rhs' => 1 ), - array( 'lhs' => 81, 'rhs' => 2 ), - array( 'lhs' => 81, 'rhs' => 1 ), - array( 'lhs' => 83, 'rhs' => 1 ), - array( 'lhs' => 86, 'rhs' => 5 ), - array( 'lhs' => 86, 'rhs' => 2 ), - array( 'lhs' => 103, 'rhs' => 1 ), - array( 'lhs' => 103, 'rhs' => 1 ), - array( 'lhs' => 104, 'rhs' => 0 ), - array( 'lhs' => 104, 'rhs' => 1 ), - array( 'lhs' => 102, 'rhs' => 0 ), - array( 'lhs' => 102, 'rhs' => 1 ), - array( 'lhs' => 102, 'rhs' => 3 ), - array( 'lhs' => 105, 'rhs' => 1 ), - array( 'lhs' => 105, 'rhs' => 2 ), - array( 'lhs' => 105, 'rhs' => 3 ), - array( 'lhs' => 106, 'rhs' => 1 ), - array( 'lhs' => 106, 'rhs' => 1 ), - array( 'lhs' => 106, 'rhs' => 1 ), - array( 'lhs' => 106, 'rhs' => 1 ), - array( 'lhs' => 109, 'rhs' => 2 ), - array( 'lhs' => 110, 'rhs' => 1 ), - array( 'lhs' => 110, 'rhs' => 2 ), - array( 'lhs' => 110, 'rhs' => 2 ), - array( 'lhs' => 110, 'rhs' => 1 ), - array( 'lhs' => 98, 'rhs' => 1 ), - array( 'lhs' => 98, 'rhs' => 1 ), - array( 'lhs' => 98, 'rhs' => 1 ), - array( 'lhs' => 84, 'rhs' => 1 ), - array( 'lhs' => 84, 'rhs' => 1 ), - array( 'lhs' => 84, 'rhs' => 1 ), - array( 'lhs' => 84, 'rhs' => 1 ), - array( 'lhs' => 84, 'rhs' => 1 ), - array( 'lhs' => 111, 'rhs' => 2 ), - array( 'lhs' => 111, 'rhs' => 2 ), - array( 'lhs' => 111, 'rhs' => 2 ), - array( 'lhs' => 111, 'rhs' => 1 ), - array( 'lhs' => 111, 'rhs' => 1 ), - array( 'lhs' => 115, 'rhs' => 3 ), - array( 'lhs' => 115, 'rhs' => 2 ), - array( 'lhs' => 115, 'rhs' => 2 ), - array( 'lhs' => 116, 'rhs' => 1 ), - array( 'lhs' => 116, 'rhs' => 1 ), - array( 'lhs' => 108, 'rhs' => 4 ), - array( 'lhs' => 118, 'rhs' => 0 ), - array( 'lhs' => 118, 'rhs' => 1 ), - array( 'lhs' => 118, 'rhs' => 3 ), - array( 'lhs' => 118, 'rhs' => 4 ), - array( 'lhs' => 118, 'rhs' => 6 ), - array( 'lhs' => 94, 'rhs' => 1 ), - array( 'lhs' => 94, 'rhs' => 2 ), - array( 'lhs' => 94, 'rhs' => 3 ), - array( 'lhs' => 94, 'rhs' => 4 ), - array( 'lhs' => 94, 'rhs' => 2 ), - array( 'lhs' => 94, 'rhs' => 3 ), - array( 'lhs' => 94, 'rhs' => 4 ), - array( 'lhs' => 94, 'rhs' => 5 ), - array( 'lhs' => 85, 'rhs' => 3 ), - array( 'lhs' => 85, 'rhs' => 3 ), - array( 'lhs' => 85, 'rhs' => 1 ), - array( 'lhs' => 85, 'rhs' => 2 ), - array( 'lhs' => 119, 'rhs' => 0 ), - array( 'lhs' => 119, 'rhs' => 1 ), - array( 'lhs' => 120, 'rhs' => 2 ), - array( 'lhs' => 120, 'rhs' => 4 ), - array( 'lhs' => 114, 'rhs' => 1 ), - array( 'lhs' => 114, 'rhs' => 1 ), - array( 'lhs' => 101, 'rhs' => 2 ), - array( 'lhs' => 107, 'rhs' => 2 ), - array( 'lhs' => 107, 'rhs' => 4 ), - array( 'lhs' => 122, 'rhs' => 1 ), - array( 'lhs' => 122, 'rhs' => 1 ), - array( 'lhs' => 113, 'rhs' => 5 ), - array( 'lhs' => 117, 'rhs' => 3 ), - array( 'lhs' => 117, 'rhs' => 2 ), - array( 'lhs' => 117, 'rhs' => 2 ), - array( 'lhs' => 121, 'rhs' => 1 ), - array( 'lhs' => 121, 'rhs' => 3 ), - array( 'lhs' => 121, 'rhs' => 4 ), - array( 'lhs' => 121, 'rhs' => 4 ), - array( 'lhs' => 121, 'rhs' => 6 ), - array( 'lhs' => 123, 'rhs' => 1 ), - array( 'lhs' => 123, 'rhs' => 1 ), - array( 'lhs' => 124, 'rhs' => 1 ), - array( 'lhs' => 124, 'rhs' => 3 ), - array( 'lhs' => 90, 'rhs' => 2 ), - array( 'lhs' => 90, 'rhs' => 3 ), - array( 'lhs' => 90, 'rhs' => 4 ), - array( 'lhs' => 90, 'rhs' => 5 ), - array( 'lhs' => 125, 'rhs' => 3 ), - array( 'lhs' => 82, 'rhs' => 2 ), - array( 'lhs' => 112, 'rhs' => 3 ), - array( 'lhs' => 112, 'rhs' => 5 ), - array( 'lhs' => 126, 'rhs' => 2 ), - array( 'lhs' => 126, 'rhs' => 4 ), - array( 'lhs' => 126, 'rhs' => 2 ), - array( 'lhs' => 126, 'rhs' => 4 ), - array( 'lhs' => 91, 'rhs' => 2 ), - array( 'lhs' => 91, 'rhs' => 2 ), - array( 'lhs' => 91, 'rhs' => 2 ), - array( 'lhs' => 91, 'rhs' => 1 ), - array( 'lhs' => 127, 'rhs' => 2 ), - array( 'lhs' => 127, 'rhs' => 2 ), - array( 'lhs' => 92, 'rhs' => 2 ), - array( 'lhs' => 92, 'rhs' => 2 ), - array( 'lhs' => 92, 'rhs' => 2 ), - array( 'lhs' => 128, 'rhs' => 2 ), - array( 'lhs' => 128, 'rhs' => 2 ), - array( 'lhs' => 129, 'rhs' => 2 ), - array( 'lhs' => 129, 'rhs' => 3 ), - array( 'lhs' => 132, 'rhs' => 1 ), - array( 'lhs' => 132, 'rhs' => 1 ), - array( 'lhs' => 132, 'rhs' => 1 ), - array( 'lhs' => 131, 'rhs' => 1 ), - array( 'lhs' => 131, 'rhs' => 3 ), - array( 'lhs' => 130, 'rhs' => 2 ), - array( 'lhs' => 130, 'rhs' => 2 ), - array( 'lhs' => 130, 'rhs' => 4 ), - array( 'lhs' => 130, 'rhs' => 4 ), - array( 'lhs' => 130, 'rhs' => 4 ), - array( 'lhs' => 130, 'rhs' => 6 ), - array( 'lhs' => 130, 'rhs' => 6 ), - array( 'lhs' => 93, 'rhs' => 5 ), - array( 'lhs' => 93, 'rhs' => 7 ), - array( 'lhs' => 93, 'rhs' => 4 ), - array( 'lhs' => 93, 'rhs' => 6 ), - array( 'lhs' => 133, 'rhs' => 1 ), - array( 'lhs' => 133, 'rhs' => 2 ), - array( 'lhs' => 134, 'rhs' => 3 ), - array( 'lhs' => 134, 'rhs' => 4 ), - array( 'lhs' => 135, 'rhs' => 3 ), - array( 'lhs' => 135, 'rhs' => 5 ), - array( 'lhs' => 89, 'rhs' => 1 ), - array( 'lhs' => 89, 'rhs' => 3 ), - array( 'lhs' => 89, 'rhs' => 3 ), - array( 'lhs' => 89, 'rhs' => 3 ), - array( 'lhs' => 87, 'rhs' => 2 ), - array( 'lhs' => 87, 'rhs' => 2 ), - array( 'lhs' => 87, 'rhs' => 2 ), - array( 'lhs' => 87, 'rhs' => 2 ), - array( 'lhs' => 87, 'rhs' => 2 ), - array( 'lhs' => 87, 'rhs' => 2 ), - array( 'lhs' => 87, 'rhs' => 2 ), - array( 'lhs' => 87, 'rhs' => 2 ), - array( 'lhs' => 87, 'rhs' => 3 ), - array( 'lhs' => 87, 'rhs' => 3 ), - array( 'lhs' => 87, 'rhs' => 3 ), - array( 'lhs' => 87, 'rhs' => 3 ), - array( 'lhs' => 87, 'rhs' => 3 ), - array( 'lhs' => 87, 'rhs' => 3 ), - array( 'lhs' => 87, 'rhs' => 3 ), - array( 'lhs' => 87, 'rhs' => 3 ), - array( 'lhs' => 87, 'rhs' => 5 ), - array( 'lhs' => 87, 'rhs' => 3 ), - ); - - /** - * The following table contains a mapping of reduce action to method name - * that handles the reduction. - * - * If a rule is not set, it has no handler. - */ - static public $yyReduceMap = array( - 0 => 0, - 23 => 0, - 1 => 1, - 6 => 1, - 7 => 1, - 8 => 1, - 9 => 1, - 10 => 1, - 12 => 1, - 13 => 1, - 14 => 1, - 15 => 1, - 16 => 1, - 17 => 1, - 18 => 1, - 19 => 1, - 20 => 1, - 21 => 1, - 22 => 1, - 28 => 1, - 37 => 1, - 38 => 1, - 39 => 1, - 40 => 1, - 49 => 1, - 56 => 1, - 57 => 1, - 58 => 1, - 59 => 1, - 64 => 1, - 65 => 1, - 68 => 1, - 72 => 1, - 77 => 1, - 121 => 1, - 122 => 1, - 123 => 1, - 140 => 1, - 148 => 1, - 150 => 1, - 166 => 1, - 172 => 1, - 2 => 2, - 5 => 2, - 24 => 2, - 78 => 2, - 3 => 3, - 4 => 4, - 11 => 11, - 25 => 11, - 26 => 11, - 27 => 11, - 29 => 11, - 30 => 11, - 31 => 31, - 32 => 32, - 33 => 33, - 34 => 34, - 61 => 34, - 66 => 34, - 67 => 34, - 69 => 34, - 70 => 34, - 71 => 34, - 151 => 34, - 152 => 34, - 35 => 35, - 36 => 36, - 41 => 41, - 42 => 42, - 43 => 43, - 44 => 44, - 45 => 45, - 46 => 46, - 47 => 47, - 48 => 48, - 50 => 50, - 84 => 50, - 103 => 50, - 51 => 51, - 85 => 51, - 116 => 51, - 153 => 51, - 52 => 52, - 117 => 52, - 53 => 53, - 54 => 54, - 55 => 55, - 60 => 60, - 62 => 62, - 63 => 63, - 73 => 73, - 74 => 74, - 75 => 75, - 76 => 76, - 79 => 79, - 80 => 80, - 81 => 81, - 82 => 82, - 83 => 83, - 86 => 86, - 87 => 87, - 88 => 88, - 120 => 88, - 89 => 89, - 90 => 90, - 91 => 91, - 92 => 92, - 93 => 93, - 94 => 94, - 95 => 95, - 96 => 96, - 97 => 97, - 98 => 97, - 99 => 99, - 100 => 100, - 101 => 101, - 102 => 102, - 104 => 104, - 119 => 104, - 105 => 105, - 106 => 105, - 107 => 107, - 108 => 108, - 109 => 109, - 110 => 110, - 111 => 111, - 112 => 112, - 113 => 113, - 114 => 114, - 115 => 115, - 118 => 118, - 124 => 124, - 154 => 124, - 125 => 125, - 126 => 126, - 127 => 127, - 128 => 128, - 129 => 129, - 130 => 130, - 131 => 131, - 132 => 132, - 133 => 133, - 134 => 134, - 135 => 135, - 136 => 136, - 137 => 137, - 138 => 138, - 139 => 138, - 141 => 141, - 142 => 142, - 143 => 143, - 144 => 143, - 145 => 145, - 146 => 146, - 147 => 147, - 149 => 149, - 155 => 155, - 156 => 156, - 157 => 157, - 158 => 158, - 159 => 159, - 160 => 160, - 161 => 161, - 162 => 162, - 163 => 163, - 164 => 164, - 165 => 165, - 167 => 167, - 168 => 168, - 169 => 169, - 170 => 170, - 171 => 171, - 173 => 173, - 174 => 174, - 175 => 174, - 176 => 176, - 179 => 176, - 180 => 176, - 177 => 177, - 178 => 177, - 181 => 181, - 182 => 181, - 183 => 183, - 184 => 184, - 185 => 184, - 186 => 184, - 187 => 184, - 188 => 184, - 189 => 184, - 190 => 190, - 191 => 191, - 192 => 192, - 193 => 193, - ); - /* Beginning here are the reduction cases. A typical example - ** follows: - ** #line <lineno> <grammarfile> - ** function yy_r0($yymsp){ ... } // User supplied code - ** #line <lineno> <thisfile> - */ -#line 28 "/var/www/coffeescript-php/grammar.y" - function yy_r0(){ $this->_retvalue = yy('Block'); } -#line 2653 "/var/www/coffeescript-php/grammar.php" -#line 29 "/var/www/coffeescript-php/grammar.y" - function yy_r1(){ $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor; } -#line 2656 "/var/www/coffeescript-php/grammar.php" -#line 30 "/var/www/coffeescript-php/grammar.y" - function yy_r2(){ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor; } -#line 2659 "/var/www/coffeescript-php/grammar.php" -#line 32 "/var/www/coffeescript-php/grammar.y" - function yy_r3(){ $this->_retvalue = yy_Block::wrap(array($this->yystack[$this->yyidx + 0]->minor)); } -#line 2662 "/var/www/coffeescript-php/grammar.php" -#line 33 "/var/www/coffeescript-php/grammar.y" - function yy_r4(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor->push($this->yystack[$this->yyidx + 0]->minor); } -#line 2665 "/var/www/coffeescript-php/grammar.php" -#line 42 "/var/www/coffeescript-php/grammar.y" - function yy_r11(){ $this->_retvalue = yy('Literal', $this->yystack[$this->yyidx + 0]->minor); } -#line 2668 "/var/www/coffeescript-php/grammar.php" -#line 67 "/var/www/coffeescript-php/grammar.y" - function yy_r31(){ $val = yy('Literal', $this->yystack[$this->yyidx + 0]->minor); - $val->is_undefined($this->yystack[$this->yyidx + 0]->minor === 'undefined'); - $this->_retvalue = $val; } -#line 2673 "/var/www/coffeescript-php/grammar.php" -#line 71 "/var/www/coffeescript-php/grammar.y" - function yy_r32(){ $this->_retvalue = yy('Assign', $this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + 0]->minor); } -#line 2676 "/var/www/coffeescript-php/grammar.php" -#line 72 "/var/www/coffeescript-php/grammar.y" - function yy_r33(){ $this->_retvalue = yy('Assign', $this->yystack[$this->yyidx + -4]->minor, $this->yystack[$this->yyidx + -1]->minor); } -#line 2679 "/var/www/coffeescript-php/grammar.php" -#line 74 "/var/www/coffeescript-php/grammar.y" - function yy_r34(){ $this->_retvalue = yy('Value', $this->yystack[$this->yyidx + 0]->minor); } -#line 2682 "/var/www/coffeescript-php/grammar.php" -#line 75 "/var/www/coffeescript-php/grammar.y" - function yy_r35(){ $this->_retvalue = yy('Assign', yy('Value', $this->yystack[$this->yyidx + -2]->minor), $this->yystack[$this->yyidx + 0]->minor, 'object'); } -#line 2685 "/var/www/coffeescript-php/grammar.php" -#line 76 "/var/www/coffeescript-php/grammar.y" - function yy_r36(){ $this->_retvalue = yy('Assign', yy('Value', $this->yystack[$this->yyidx + -4]->minor), $this->yystack[$this->yyidx + -1]->minor, 'object'); } -#line 2688 "/var/www/coffeescript-php/grammar.php" -#line 83 "/var/www/coffeescript-php/grammar.y" - function yy_r41(){ $this->_retvalue = yy('Return', $this->yystack[$this->yyidx + 0]->minor); } -#line 2691 "/var/www/coffeescript-php/grammar.php" -#line 84 "/var/www/coffeescript-php/grammar.y" - function yy_r42(){ $this->_retvalue = yy('Return'); } -#line 2694 "/var/www/coffeescript-php/grammar.php" -#line 86 "/var/www/coffeescript-php/grammar.y" - function yy_r43(){ $this->_retvalue = yy('Comment', $this->yystack[$this->yyidx + 0]->minor); } -#line 2697 "/var/www/coffeescript-php/grammar.php" -#line 88 "/var/www/coffeescript-php/grammar.y" - function yy_r44(){ $this->_retvalue = yy('Code', $this->yystack[$this->yyidx + -3]->minor, $this->yystack[$this->yyidx + 0]->minor, $this->yystack[$this->yyidx + -1]->minor); } -#line 2700 "/var/www/coffeescript-php/grammar.php" -#line 89 "/var/www/coffeescript-php/grammar.y" - function yy_r45(){ $this->_retvalue = yy('Code', array(), $this->yystack[$this->yyidx + 0]->minor, $this->yystack[$this->yyidx + -1]->minor); } -#line 2703 "/var/www/coffeescript-php/grammar.php" -#line 91 "/var/www/coffeescript-php/grammar.y" - function yy_r46(){ $this->_retvalue = 'func'; } -#line 2706 "/var/www/coffeescript-php/grammar.php" -#line 92 "/var/www/coffeescript-php/grammar.y" - function yy_r47(){ $this->_retvalue = 'boundfunc'; } -#line 2709 "/var/www/coffeescript-php/grammar.php" -#line 94 "/var/www/coffeescript-php/grammar.y" - function yy_r48(){ $this->_retvalue = ''; } -#line 2712 "/var/www/coffeescript-php/grammar.php" -#line 97 "/var/www/coffeescript-php/grammar.y" - function yy_r50(){ $this->_retvalue = array(); } -#line 2715 "/var/www/coffeescript-php/grammar.php" -#line 98 "/var/www/coffeescript-php/grammar.y" - function yy_r51(){ $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor); } -#line 2718 "/var/www/coffeescript-php/grammar.php" -#line 99 "/var/www/coffeescript-php/grammar.y" - function yy_r52(){ $this->_retvalue = array_merge($this->yystack[$this->yyidx + -2]->minor, array($this->yystack[$this->yyidx + 0]->minor)); } -#line 2721 "/var/www/coffeescript-php/grammar.php" -#line 101 "/var/www/coffeescript-php/grammar.y" - function yy_r53(){ $this->_retvalue = yy('Param', $this->yystack[$this->yyidx + 0]->minor); } -#line 2724 "/var/www/coffeescript-php/grammar.php" -#line 102 "/var/www/coffeescript-php/grammar.y" - function yy_r54(){ $this->_retvalue = yy('Param', $this->yystack[$this->yyidx + -1]->minor, NULL, TRUE); } -#line 2727 "/var/www/coffeescript-php/grammar.php" -#line 103 "/var/www/coffeescript-php/grammar.y" - function yy_r55(){ $this->_retvalue = yy('Param', $this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + 0]->minor); } -#line 2730 "/var/www/coffeescript-php/grammar.php" -#line 110 "/var/www/coffeescript-php/grammar.y" - function yy_r60(){ $this->_retvalue = yy('Splat', $this->yystack[$this->yyidx + -1]->minor); } -#line 2733 "/var/www/coffeescript-php/grammar.php" -#line 113 "/var/www/coffeescript-php/grammar.y" - function yy_r62(){ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor->push($this->yystack[$this->yyidx + 0]->minor); } -#line 2736 "/var/www/coffeescript-php/grammar.php" -#line 114 "/var/www/coffeescript-php/grammar.y" - function yy_r63(){ $this->_retvalue = yy('Value', $this->yystack[$this->yyidx + -1]->minor, array($this->yystack[$this->yyidx + 0]->minor)); } -#line 2739 "/var/www/coffeescript-php/grammar.php" -#line 127 "/var/www/coffeescript-php/grammar.y" - function yy_r73(){ $this->_retvalue = yy('Access', $this->yystack[$this->yyidx + 0]->minor); } -#line 2742 "/var/www/coffeescript-php/grammar.php" -#line 128 "/var/www/coffeescript-php/grammar.y" - function yy_r74(){ $this->_retvalue = yy('Access', $this->yystack[$this->yyidx + 0]->minor, 'soak'); } -#line 2745 "/var/www/coffeescript-php/grammar.php" -#line 129 "/var/www/coffeescript-php/grammar.y" - function yy_r75(){ $this->_retvalue = yy('Access', $this->yystack[$this->yyidx + 0]->minor, 'proto'); } -#line 2748 "/var/www/coffeescript-php/grammar.php" -#line 130 "/var/www/coffeescript-php/grammar.y" - function yy_r76(){ $this->_retvalue = yy('Access', yy('Literal', 'prototype')); } -#line 2751 "/var/www/coffeescript-php/grammar.php" -#line 134 "/var/www/coffeescript-php/grammar.y" - function yy_r79(){ $this->_retvalue = extend($this->yystack[$this->yyidx + 0]->minor, array('soak' => TRUE)); } -#line 2754 "/var/www/coffeescript-php/grammar.php" -#line 135 "/var/www/coffeescript-php/grammar.y" - function yy_r80(){ $this->_retvalue = extend($this->yystack[$this->yyidx + 0]->minor, array('proto' => TRUE)); } -#line 2757 "/var/www/coffeescript-php/grammar.php" -#line 137 "/var/www/coffeescript-php/grammar.y" - function yy_r81(){ $this->_retvalue = yy('Index', $this->yystack[$this->yyidx + 0]->minor); } -#line 2760 "/var/www/coffeescript-php/grammar.php" -#line 138 "/var/www/coffeescript-php/grammar.y" - function yy_r82(){ $this->_retvalue = yy('Slice', $this->yystack[$this->yyidx + 0]->minor); } -#line 2763 "/var/www/coffeescript-php/grammar.php" -#line 140 "/var/www/coffeescript-php/grammar.y" - function yy_r83(){ $this->_retvalue = yy('Obj', $this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx - 3]->generated); } -#line 2766 "/var/www/coffeescript-php/grammar.php" -#line 144 "/var/www/coffeescript-php/grammar.y" - function yy_r86(){ $this->yystack[$this->yyidx + -2]->minor[] = $this->yystack[$this->yyidx + 0]->minor; $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor; } -#line 2769 "/var/www/coffeescript-php/grammar.php" -#line 145 "/var/www/coffeescript-php/grammar.y" - function yy_r87(){ $this->yystack[$this->yyidx + -3]->minor[] = $this->yystack[$this->yyidx + 0]->minor; $this->_retvalue = $this->yystack[$this->yyidx + -3]->minor; } -#line 2772 "/var/www/coffeescript-php/grammar.php" -#line 146 "/var/www/coffeescript-php/grammar.y" - function yy_r88(){ $this->_retvalue = array_merge($this->yystack[$this->yyidx + -5]->minor, $this->yystack[$this->yyidx + -2]->minor); } -#line 2775 "/var/www/coffeescript-php/grammar.php" -#line 148 "/var/www/coffeescript-php/grammar.y" - function yy_r89(){ $this->_retvalue = yy('Class'); } -#line 2778 "/var/www/coffeescript-php/grammar.php" -#line 149 "/var/www/coffeescript-php/grammar.y" - function yy_r90(){ $this->_retvalue = yy('Class', NULL, NULL, $this->yystack[$this->yyidx + 0]->minor); } -#line 2781 "/var/www/coffeescript-php/grammar.php" -#line 150 "/var/www/coffeescript-php/grammar.y" - function yy_r91(){ $this->_retvalue = yy('Class', NULL, $this->yystack[$this->yyidx + 0]->minor); } -#line 2784 "/var/www/coffeescript-php/grammar.php" -#line 151 "/var/www/coffeescript-php/grammar.y" - function yy_r92(){ $this->_retvalue = yy('Class', NULL, $this->yystack[$this->yyidx + -1]->minor, $this->yystack[$this->yyidx + 0]->minor); } -#line 2787 "/var/www/coffeescript-php/grammar.php" -#line 152 "/var/www/coffeescript-php/grammar.y" - function yy_r93(){ $this->_retvalue = yy('Class', $this->yystack[$this->yyidx + 0]->minor); } -#line 2790 "/var/www/coffeescript-php/grammar.php" -#line 153 "/var/www/coffeescript-php/grammar.y" - function yy_r94(){ $this->_retvalue = yy('Class', $this->yystack[$this->yyidx + -1]->minor, NULL, $this->yystack[$this->yyidx + 0]->minor); } -#line 2793 "/var/www/coffeescript-php/grammar.php" -#line 154 "/var/www/coffeescript-php/grammar.y" - function yy_r95(){ $this->_retvalue = yy('Class', $this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + 0]->minor); } -#line 2796 "/var/www/coffeescript-php/grammar.php" -#line 155 "/var/www/coffeescript-php/grammar.y" - function yy_r96(){ $this->_retvalue = yy('Class', $this->yystack[$this->yyidx + -3]->minor, $this->yystack[$this->yyidx + -1]->minor, $this->yystack[$this->yyidx + 0]->minor); } -#line 2799 "/var/www/coffeescript-php/grammar.php" -#line 157 "/var/www/coffeescript-php/grammar.y" - function yy_r97(){ $this->_retvalue = yy('Call', $this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + 0]->minor, $this->yystack[$this->yyidx + -1]->minor); } -#line 2802 "/var/www/coffeescript-php/grammar.php" -#line 159 "/var/www/coffeescript-php/grammar.y" - function yy_r99(){ $this->_retvalue = yy('Call', 'super', array(yy('Splat', yy('Literal', 'arguments')))); } -#line 2805 "/var/www/coffeescript-php/grammar.php" -#line 160 "/var/www/coffeescript-php/grammar.y" - function yy_r100(){ $this->_retvalue = yy('Call', 'super', $this->yystack[$this->yyidx + 0]->minor); } -#line 2808 "/var/www/coffeescript-php/grammar.php" -#line 162 "/var/www/coffeescript-php/grammar.y" - function yy_r101(){ $this->_retvalue = FALSE; } -#line 2811 "/var/www/coffeescript-php/grammar.php" -#line 163 "/var/www/coffeescript-php/grammar.y" - function yy_r102(){ $this->_retvalue = TRUE; } -#line 2814 "/var/www/coffeescript-php/grammar.php" -#line 166 "/var/www/coffeescript-php/grammar.y" - function yy_r104(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor; } -#line 2817 "/var/www/coffeescript-php/grammar.php" -#line 168 "/var/www/coffeescript-php/grammar.y" - function yy_r105(){ $this->_retvalue = yy('Value', yy('Literal', 'this')); } -#line 2820 "/var/www/coffeescript-php/grammar.php" -#line 171 "/var/www/coffeescript-php/grammar.y" - function yy_r107(){ $this->_retvalue = yy('Value', yy('Literal', 'this'), array(yy('Access', $this->yystack[$this->yyidx + 0]->minor)), 'this'); } -#line 2823 "/var/www/coffeescript-php/grammar.php" -#line 173 "/var/www/coffeescript-php/grammar.y" - function yy_r108(){ $this->_retvalue = yy('Arr', array()); } -#line 2826 "/var/www/coffeescript-php/grammar.php" -#line 174 "/var/www/coffeescript-php/grammar.y" - function yy_r109(){ $this->_retvalue = yy('Arr', $this->yystack[$this->yyidx + -2]->minor); } -#line 2829 "/var/www/coffeescript-php/grammar.php" -#line 176 "/var/www/coffeescript-php/grammar.y" - function yy_r110(){ $this->_retvalue = 'inclusive'; } -#line 2832 "/var/www/coffeescript-php/grammar.php" -#line 177 "/var/www/coffeescript-php/grammar.y" - function yy_r111(){ $this->_retvalue = 'exclusive'; } -#line 2835 "/var/www/coffeescript-php/grammar.php" -#line 179 "/var/www/coffeescript-php/grammar.y" - function yy_r112(){ $this->_retvalue = yy('Range', $this->yystack[$this->yyidx + -3]->minor, $this->yystack[$this->yyidx + -1]->minor, $this->yystack[$this->yyidx + -2]->minor); } -#line 2838 "/var/www/coffeescript-php/grammar.php" -#line 181 "/var/www/coffeescript-php/grammar.y" - function yy_r113(){ $this->_retvalue = yy('Range', $this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + 0]->minor, $this->yystack[$this->yyidx + -1]->minor); } -#line 2841 "/var/www/coffeescript-php/grammar.php" -#line 182 "/var/www/coffeescript-php/grammar.y" - function yy_r114(){ $this->_retvalue = yy('Range', $this->yystack[$this->yyidx + -1]->minor, NULL, $this->yystack[$this->yyidx + 0]->minor); } -#line 2844 "/var/www/coffeescript-php/grammar.php" -#line 183 "/var/www/coffeescript-php/grammar.y" - function yy_r115(){ $this->_retvalue = yy('Range', NULL, $this->yystack[$this->yyidx + 0]->minor, $this->yystack[$this->yyidx + -1]->minor); } -#line 2847 "/var/www/coffeescript-php/grammar.php" -#line 187 "/var/www/coffeescript-php/grammar.y" - function yy_r118(){ $this->_retvalue = array_merge($this->yystack[$this->yyidx + -3]->minor, array($this->yystack[$this->yyidx + 0]->minor)); } -#line 2850 "/var/www/coffeescript-php/grammar.php" -#line 195 "/var/www/coffeescript-php/grammar.y" - function yy_r124(){ $this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + 0]->minor); } -#line 2853 "/var/www/coffeescript-php/grammar.php" -#line 197 "/var/www/coffeescript-php/grammar.y" - function yy_r125(){ $this->_retvalue = yy('Try', $this->yystack[$this->yyidx + 0]->minor); } -#line 2856 "/var/www/coffeescript-php/grammar.php" -#line 198 "/var/www/coffeescript-php/grammar.y" - function yy_r126(){ $this->_retvalue = yy('Try', $this->yystack[$this->yyidx + -1]->minor, $this->yystack[$this->yyidx + 0]->minor[0], $this->yystack[$this->yyidx + 0]->minor[1]); } -#line 2859 "/var/www/coffeescript-php/grammar.php" -#line 199 "/var/www/coffeescript-php/grammar.y" - function yy_r127(){ $this->_retvalue = yy('Try', $this->yystack[$this->yyidx + -2]->minor, NULL, NULL, $this->yystack[$this->yyidx + 0]->minor); } -#line 2862 "/var/www/coffeescript-php/grammar.php" -#line 200 "/var/www/coffeescript-php/grammar.y" - function yy_r128(){ $this->_retvalue = yy('Try', $this->yystack[$this->yyidx + -3]->minor, $this->yystack[$this->yyidx + -2]->minor[0], $this->yystack[$this->yyidx + -2]->minor[1], $this->yystack[$this->yyidx + 0]->minor); } -#line 2865 "/var/www/coffeescript-php/grammar.php" -#line 202 "/var/www/coffeescript-php/grammar.y" - function yy_r129(){ $this->_retvalue = array($this->yystack[$this->yyidx + -1]->minor, $this->yystack[$this->yyidx + 0]->minor); } -#line 2868 "/var/www/coffeescript-php/grammar.php" -#line 204 "/var/www/coffeescript-php/grammar.y" - function yy_r130(){ $this->_retvalue = yy('Throw', $this->yystack[$this->yyidx + 0]->minor); } -#line 2871 "/var/www/coffeescript-php/grammar.php" -#line 206 "/var/www/coffeescript-php/grammar.y" - function yy_r131(){ $this->_retvalue = yy('Parens', $this->yystack[$this->yyidx + -1]->minor); } -#line 2874 "/var/www/coffeescript-php/grammar.php" -#line 207 "/var/www/coffeescript-php/grammar.y" - function yy_r132(){ $this->_retvalue = yy('Parens', $this->yystack[$this->yyidx + -2]->minor); } -#line 2877 "/var/www/coffeescript-php/grammar.php" -#line 209 "/var/www/coffeescript-php/grammar.y" - function yy_r133(){ $this->_retvalue = yy('While', $this->yystack[$this->yyidx + 0]->minor); } -#line 2880 "/var/www/coffeescript-php/grammar.php" -#line 210 "/var/www/coffeescript-php/grammar.y" - function yy_r134(){ $this->_retvalue = yy('While', $this->yystack[$this->yyidx + -2]->minor, array('guard' => $this->yystack[$this->yyidx + 0]->minor)); } -#line 2883 "/var/www/coffeescript-php/grammar.php" -#line 211 "/var/www/coffeescript-php/grammar.y" - function yy_r135(){ $this->_retvalue = yy('While', $this->yystack[$this->yyidx + 0]->minor, array('invert' => TRUE)); } -#line 2886 "/var/www/coffeescript-php/grammar.php" -#line 212 "/var/www/coffeescript-php/grammar.y" - function yy_r136(){ $this->_retvalue = yy('While', $this->yystack[$this->yyidx + -2]->minor, array('invert' => TRUE, 'guard' => $this->yystack[$this->yyidx + 0]->minor)); } -#line 2889 "/var/www/coffeescript-php/grammar.php" -#line 214 "/var/www/coffeescript-php/grammar.y" - function yy_r137(){ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor->add_body($this->yystack[$this->yyidx + 0]->minor); } -#line 2892 "/var/www/coffeescript-php/grammar.php" -#line 215 "/var/www/coffeescript-php/grammar.y" - function yy_r138(){ $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor->add_body(yy_Block::wrap(array($this->yystack[$this->yyidx + -1]->minor))); } -#line 2895 "/var/www/coffeescript-php/grammar.php" -#line 219 "/var/www/coffeescript-php/grammar.y" - function yy_r141(){ $this->_retvalue = yy('While', yy('Literal', 'true')); $this->_retvalue->add_body($this->yystack[$this->yyidx + 0]->minor); } -#line 2898 "/var/www/coffeescript-php/grammar.php" -#line 220 "/var/www/coffeescript-php/grammar.y" - function yy_r142(){ $this->_retvalue = yy('While', yy('Literal', 'true')); $this->_retvalue->add_body(yy_Block::wrap($this->yystack[$this->yyidx + 0]->minor)); } -#line 2901 "/var/www/coffeescript-php/grammar.php" -#line 222 "/var/www/coffeescript-php/grammar.y" - function yy_r143(){ $this->_retvalue = yy('For', $this->yystack[$this->yyidx + -1]->minor, $this->yystack[$this->yyidx + 0]->minor); } -#line 2904 "/var/www/coffeescript-php/grammar.php" -#line 224 "/var/www/coffeescript-php/grammar.y" - function yy_r145(){ $this->_retvalue = yy('For', $this->yystack[$this->yyidx + 0]->minor, $this->yystack[$this->yyidx + -1]->minor); } -#line 2907 "/var/www/coffeescript-php/grammar.php" -#line 226 "/var/www/coffeescript-php/grammar.y" - function yy_r146(){ $this->_retvalue = array('source' => yy('Value', $this->yystack[$this->yyidx + 0]->minor)); } -#line 2910 "/var/www/coffeescript-php/grammar.php" -#line 227 "/var/www/coffeescript-php/grammar.y" - function yy_r147(){ $this->yystack[$this->yyidx + 0]->minor['own'] = isset($this->yystack[$this->yyidx + -1]->minor['own']) ? $this->yystack[$this->yyidx + -1]->minor['own'] : NULL; $this->yystack[$this->yyidx + 0]->minor['name'] = $this->yystack[$this->yyidx + -1]->minor[0]; $this->yystack[$this->yyidx + 0]->minor['index'] = isset($this->yystack[$this->yyidx + -1]->minor[1]) ? $this->yystack[$this->yyidx + -1]->minor[1] : NULL; $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor; } -#line 2913 "/var/www/coffeescript-php/grammar.php" -#line 230 "/var/www/coffeescript-php/grammar.y" - function yy_r149(){ $this->yystack[$this->yyidx + 0]->minor['own'] = TRUE; $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor; } -#line 2916 "/var/www/coffeescript-php/grammar.php" -#line 239 "/var/www/coffeescript-php/grammar.y" - function yy_r155(){ $this->_retvalue = array('source' => $this->yystack[$this->yyidx + 0]->minor); } -#line 2919 "/var/www/coffeescript-php/grammar.php" -#line 240 "/var/www/coffeescript-php/grammar.y" - function yy_r156(){ $this->_retvalue = array('source' => $this->yystack[$this->yyidx + 0]->minor, 'object' => TRUE); } -#line 2922 "/var/www/coffeescript-php/grammar.php" -#line 241 "/var/www/coffeescript-php/grammar.y" - function yy_r157(){ $this->_retvalue = array('source' => $this->yystack[$this->yyidx + -2]->minor, 'guard' => $this->yystack[$this->yyidx + 0]->minor); } -#line 2925 "/var/www/coffeescript-php/grammar.php" -#line 242 "/var/www/coffeescript-php/grammar.y" - function yy_r158(){ $this->_retvalue = array('source' => $this->yystack[$this->yyidx + -2]->minor, 'guard' => $this->yystack[$this->yyidx + 0]->minor, 'object' => TRUE); } -#line 2928 "/var/www/coffeescript-php/grammar.php" -#line 243 "/var/www/coffeescript-php/grammar.y" - function yy_r159(){ $this->_retvalue = array('source' => $this->yystack[$this->yyidx + -2]->minor, 'step' => $this->yystack[$this->yyidx + 0]->minor); } -#line 2931 "/var/www/coffeescript-php/grammar.php" -#line 244 "/var/www/coffeescript-php/grammar.y" - function yy_r160(){ $this->_retvalue = array('source' => $this->yystack[$this->yyidx + -4]->minor, 'guard' => $this->yystack[$this->yyidx + -2]->minor, 'step' => $this->yystack[$this->yyidx + 0]->minor); } -#line 2934 "/var/www/coffeescript-php/grammar.php" -#line 245 "/var/www/coffeescript-php/grammar.y" - function yy_r161(){ $this->_retvalue = array('source' => $this->yystack[$this->yyidx + -4]->minor, 'step' => $this->yystack[$this->yyidx + -2]->minor, 'guard' => $this->yystack[$this->yyidx + 0]->minor); } -#line 2937 "/var/www/coffeescript-php/grammar.php" -#line 247 "/var/www/coffeescript-php/grammar.y" - function yy_r162(){ $this->_retvalue = yy('Switch', $this->yystack[$this->yyidx + -3]->minor, $this->yystack[$this->yyidx + -1]->minor); } -#line 2940 "/var/www/coffeescript-php/grammar.php" -#line 248 "/var/www/coffeescript-php/grammar.y" - function yy_r163(){ $this->_retvalue = yy('Switch', $this->yystack[$this->yyidx + -5]->minor, $this->yystack[$this->yyidx + -3]->minor, $this->yystack[$this->yyidx + -1]->minor); } -#line 2943 "/var/www/coffeescript-php/grammar.php" -#line 249 "/var/www/coffeescript-php/grammar.y" - function yy_r164(){ $this->_retvalue = yy('Switch', NULL, $this->yystack[$this->yyidx + -1]->minor); } -#line 2946 "/var/www/coffeescript-php/grammar.php" -#line 250 "/var/www/coffeescript-php/grammar.y" - function yy_r165(){ $this->_retvalue = yy('Switch', NULL, $this->yystack[$this->yyidx + -3]->minor, $this->yystack[$this->yyidx + -1]->minor); } -#line 2949 "/var/www/coffeescript-php/grammar.php" -#line 253 "/var/www/coffeescript-php/grammar.y" - function yy_r167(){ $this->_retvalue = array_merge($this->yystack[$this->yyidx + -1]->minor, $this->yystack[$this->yyidx + 0]->minor); } -#line 2952 "/var/www/coffeescript-php/grammar.php" -#line 255 "/var/www/coffeescript-php/grammar.y" - function yy_r168(){ $this->_retvalue = array(array($this->yystack[$this->yyidx + -1]->minor, $this->yystack[$this->yyidx + 0]->minor)); } -#line 2955 "/var/www/coffeescript-php/grammar.php" -#line 256 "/var/www/coffeescript-php/grammar.y" - function yy_r169(){ $this->_retvalue = array(array($this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + -1]->minor)); } -#line 2958 "/var/www/coffeescript-php/grammar.php" -#line 258 "/var/www/coffeescript-php/grammar.y" - function yy_r170(){ $this->_retvalue = yy('If', $this->yystack[$this->yyidx + -1]->minor, $this->yystack[$this->yyidx + 0]->minor, array('type' => $this->yystack[$this->yyidx + -2]->minor)); } -#line 2961 "/var/www/coffeescript-php/grammar.php" -#line 259 "/var/www/coffeescript-php/grammar.y" - function yy_r171(){ $this->_retvalue = $this->yystack[$this->yyidx + -4]->minor->add_else(yy('If', $this->yystack[$this->yyidx + -1]->minor, $this->yystack[$this->yyidx + 0]->minor, array('type' => $this->yystack[$this->yyidx + -2]->minor))); } -#line 2964 "/var/www/coffeescript-php/grammar.php" -#line 262 "/var/www/coffeescript-php/grammar.y" - function yy_r173(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor->add_else($this->yystack[$this->yyidx + 0]->minor); } -#line 2967 "/var/www/coffeescript-php/grammar.php" -#line 263 "/var/www/coffeescript-php/grammar.y" - function yy_r174(){ $this->_retvalue = yy('If', $this->yystack[$this->yyidx + 0]->minor, yy_Block::wrap(array($this->yystack[$this->yyidx + -2]->minor)), array('type' => $this->yystack[$this->yyidx + -1]->minor, 'statement' => TRUE)); } -#line 2970 "/var/www/coffeescript-php/grammar.php" -#line 266 "/var/www/coffeescript-php/grammar.y" - function yy_r176(){ $this->_retvalue = yy('Op', $this->yystack[$this->yyidx + -1]->minor, $this->yystack[$this->yyidx + 0]->minor); } -#line 2973 "/var/www/coffeescript-php/grammar.php" -#line 267 "/var/www/coffeescript-php/grammar.y" - function yy_r177(){ $this->_retvalue = yy('Op', $this->yystack[$this->yyidx + -1]->minor, $this->yystack[$this->yyidx + 0]->minor); /* prec: 'UNARY'; */ } -#line 2976 "/var/www/coffeescript-php/grammar.php" -#line 271 "/var/www/coffeescript-php/grammar.y" - function yy_r181(){ $this->_retvalue = yy('Op', $this->yystack[$this->yyidx + 0]->minor, $this->yystack[$this->yyidx + -1]->minor, NULL, TRUE); } -#line 2979 "/var/www/coffeescript-php/grammar.php" -#line 273 "/var/www/coffeescript-php/grammar.y" - function yy_r183(){ $this->_retvalue = yy('Existence', $this->yystack[$this->yyidx + -1]->minor); } -#line 2982 "/var/www/coffeescript-php/grammar.php" -#line 274 "/var/www/coffeescript-php/grammar.y" - function yy_r184(){ $this->_retvalue = yy('Op', $this->yystack[$this->yyidx + -1]->minor, $this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + 0]->minor); } -#line 2985 "/var/www/coffeescript-php/grammar.php" -#line 280 "/var/www/coffeescript-php/grammar.y" - function yy_r190(){ if ($this->yystack[$this->yyidx + -1]->minor{0} === '!') { $this->_retvalue = yy('Op', substr($this->yystack[$this->yyidx + -1]->minor, 1), $this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + 0]->minor); $this->_retvalue->invert(); } else { $this->_retvalue = yy('Op', $this->yystack[$this->yyidx + -1]->minor, $this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + 0]->minor); } } -#line 2988 "/var/www/coffeescript-php/grammar.php" -#line 281 "/var/www/coffeescript-php/grammar.y" - function yy_r191(){ $this->_retvalue = yy('Assign', $this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + 0]->minor, $this->yystack[$this->yyidx + -1]->minor); } -#line 2991 "/var/www/coffeescript-php/grammar.php" -#line 282 "/var/www/coffeescript-php/grammar.y" - function yy_r192(){ $this->_retvalue = yy('Assign', $this->yystack[$this->yyidx + -4]->minor, $this->yystack[$this->yyidx + -1]->minor, $this->yystack[$this->yyidx + -3]->minor); } -#line 2994 "/var/www/coffeescript-php/grammar.php" -#line 283 "/var/www/coffeescript-php/grammar.y" - function yy_r193(){ $this->_retvalue = yy('Extends', $this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + 0]->minor); } -#line 2997 "/var/www/coffeescript-php/grammar.php" - - /** - * placeholder for the left hand side in a reduce operation. - * - * For a parser with a rule like this: - * <pre> - * rule(A) ::= B. { A = 1; } - * </pre> - * - * The parser will translate to something like: - * - * <code> - * function yy_r0(){$this->_retvalue = 1;} - * </code> - */ - private $_retvalue; - - /** - * Perform a reduce action and the shift that must immediately - * follow the reduce. - * - * For a rule such as: - * - * <pre> - * A ::= B blah C. { dosomething(); } - * </pre> - * - * This function will first call the action, if any, ("dosomething();" in our - * example), and then it will pop three states from the stack, - * one for each entry on the right-hand side of the expression - * (B, blah, and C in our example rule), and then push the result of the action - * back on to the stack with the resulting state reduced to (as described in the .out - * file) - * @param int Number of the rule by which to reduce - */ - function yy_reduce($yyruleno) - { - //int $yygoto; /* The next state */ - //int $yyact; /* The next action */ - //mixed $yygotominor; /* The LHS of the rule reduced */ - //yyStackEntry $yymsp; /* The top of the parser's stack */ - //int $yysize; /* Amount to pop the stack */ - $yymsp = $this->yystack[$this->yyidx]; - if (self::$yyTraceFILE && $yyruleno >= 0 - && $yyruleno < count(self::$yyRuleName)) { - fprintf(self::$yyTraceFILE, "%sReduce (%d) [%s].\n", - self::$yyTracePrompt, $yyruleno, - self::$yyRuleName[$yyruleno]); - } - - $this->_retvalue = $yy_lefthand_side = null; - if (array_key_exists($yyruleno, self::$yyReduceMap)) { - // call the action - $this->_retvalue = null; - $this->{'yy_r' . self::$yyReduceMap[$yyruleno]}(); - $yy_lefthand_side = $this->_retvalue; - } - $yygoto = self::$yyRuleInfo[$yyruleno]['lhs']; - $yysize = self::$yyRuleInfo[$yyruleno]['rhs']; - $this->yyidx -= $yysize; - for ($i = $yysize; $i; $i--) { - // pop all of the right-hand side parameters - array_pop($this->yystack); - } - $yyact = $this->yy_find_reduce_action($this->yystack[$this->yyidx]->stateno, $yygoto); - if ($yyact < self::YYNSTATE) { - /* If we are not debugging and the reduce action popped at least - ** one element off the stack, then we can push the new element back - ** onto the stack here, and skip the stack overflow test in yy_shift(). - ** That gives a significant speed improvement. */ - if (!self::$yyTraceFILE && $yysize) { - $this->yyidx++; - $x = new yyStackEntry; - $x->stateno = $yyact; - $x->major = $yygoto; - $x->minor = $yy_lefthand_side; - $this->yystack[$this->yyidx] = $x; - } else { - $this->yy_shift($yyact, $yygoto, $yy_lefthand_side); - } - } elseif ($yyact == self::YYNSTATE + self::YYNRULE + 1) { - $this->yy_accept(); - } - } - - /** - * The following code executes when the parse fails - * - * Code from %parse_fail is inserted here - */ - function yy_parse_failed() - { - if (self::$yyTraceFILE) { - fprintf(self::$yyTraceFILE, "%sFail!\n", self::$yyTracePrompt); - } - while ($this->yyidx >= 0) { - $this->yy_pop_parser_stack(); - } - /* Here code is inserted which will be executed whenever the - ** parser fails */ - } - - /** - * The following code executes when a syntax error first occurs. - * - * %syntax_error code is inserted here - * @param int The major type of the error token - * @param mixed The minor type of the error token - */ - function yy_syntax_error($yymajor, $TOKEN) - { -#line 4 "/var/www/coffeescript-php/grammar.y" - - throw new SyntaxError( - 'unexpected '.$this->tokenName($yymajor).' in '.self::$FILE.':' - . (self::$LINE + 1).'.' - ); -#line 3116 "/var/www/coffeescript-php/grammar.php" - } - - /** - * The following is executed when the parser accepts - * - * %parse_accept code is inserted here - */ - function yy_accept() - { - if (self::$yyTraceFILE) { - fprintf(self::$yyTraceFILE, "%sAccept!\n", self::$yyTracePrompt); - } - while ($this->yyidx >= 0) { - $stack = $this->yy_pop_parser_stack(); - } - /* Here code is inserted which will be executed whenever the - ** parser accepts */ - } - - /** - * The main parser program. - * - * The first argument is the major token number. The second is - * the token value string as scanned from the input. - * - * @param int $yymajor the token number - * @param mixed $yytokenvalue the token value - * @param mixed ... any extra arguments that should be passed to handlers - * - * @return void - */ - function parse($token) - { - list($yymajor, $yytokenvalue, ) = $token ? $token : array(0, 0); - self::$LINE = isset($token[2]) ? $token[2] : -1; - - // See rewriter.php\add_implicit_braces() and grammar.y. - $generated = isset($token['generatedValue']) ? $token['generatedValue'] : FALSE; - -// $yyact; /* The parser action. */ -// $yyendofinput; /* True if we are at the end of input */ - $yyerrorhit = 0; /* True if yymajor has invoked an error */ - - /* (re)initialize the parser, if necessary */ - if ($this->yyidx === null || $this->yyidx < 0) { - /* if ($yymajor == 0) return; // not sure why this was here... */ - $this->yyidx = 0; - $this->yyerrcnt = -1; - $x = new yyStackEntry; - $x->stateno = 0; - $x->major = 0; - $x->generated = FALSE; - $this->yystack = array(); - array_push($this->yystack, $x); - } - $yyendofinput = ($yymajor==0); - - if (self::$yyTraceFILE) { - fprintf( - self::$yyTraceFILE, - "%sInput %s\n", - self::$yyTracePrompt, - self::tokenName($yymajor) - ); - } - - do { - $yyact = $this->yy_find_shift_action($yymajor); - if ($yymajor < self::YYERRORSYMBOL - && !$this->yy_is_expected_token($yymajor) - ) { - // force a syntax error - $yyact = self::YY_ERROR_ACTION; - } - if ($yyact < self::YYNSTATE) { - $this->yy_shift($yyact, $yymajor, $yytokenvalue, $generated); - $this->yyerrcnt--; - if ($yyendofinput && $this->yyidx >= 0) { - $yymajor = 0; - } else { - $yymajor = self::YYNOCODE; - } - } elseif ($yyact < self::YYNSTATE + self::YYNRULE) { - $this->yy_reduce($yyact - self::YYNSTATE); - } elseif ($yyact == self::YY_ERROR_ACTION) { - if (self::$yyTraceFILE) { - fprintf( - self::$yyTraceFILE, - "%sSyntax Error!\n", - self::$yyTracePrompt - ); - } - if (self::YYERRORSYMBOL) { - /* A syntax error has occurred. - ** The response to an error depends upon whether or not the - ** grammar defines an error token "ERROR". - ** - ** This is what we do if the grammar does define ERROR: - ** - ** * Call the %syntax_error function. - ** - ** * Begin popping the stack until we enter a state where - ** it is legal to shift the error symbol, then shift - ** the error symbol. - ** - ** * Set the error count to three. - ** - ** * Begin accepting and shifting new tokens. No new error - ** processing will occur until three tokens have been - ** shifted successfully. - ** - */ - if ($this->yyerrcnt < 0) { - $this->yy_syntax_error($yymajor, $yytokenvalue); - } - $yymx = $this->yystack[$this->yyidx]->major; - if ($yymx == self::YYERRORSYMBOL || $yyerrorhit ) { - if (self::$yyTraceFILE) { - fprintf( - self::$yyTraceFILE, - "%sDiscard input token %s\n", - self::$yyTracePrompt, - self::tokenName($yymajor) - ); - } - $this->yy_destructor($yymajor, $yytokenvalue); - $yymajor = self::YYNOCODE; - } else { - while ($this->yyidx >= 0 - && $yymx != self::YYERRORSYMBOL - && ($yyact = $this->yy_find_shift_action(self::YYERRORSYMBOL)) >= self::YYNSTATE - ) { - $this->yy_pop_parser_stack(); - } - if ($this->yyidx < 0 || $yymajor==0) { - $this->yy_destructor($yymajor, $yytokenvalue); - $this->yy_parse_failed(); - $yymajor = self::YYNOCODE; - } elseif ($yymx != self::YYERRORSYMBOL) { - $u2 = 0; - $this->yy_shift($yyact, self::YYERRORSYMBOL, $u2, $generated); - } - } - $this->yyerrcnt = 3; - $yyerrorhit = 1; - } else { - /* YYERRORSYMBOL is not defined */ - /* This is what we do if the grammar does not define ERROR: - ** - ** * Report an error message, and throw away the input token. - ** - ** * If the input token is $, then fail the parse. - ** - ** As before, subsequent error messages are suppressed until - ** three input tokens have been successfully shifted. - */ - if ($this->yyerrcnt <= 0) { - $this->yy_syntax_error($yymajor, $yytokenvalue); - } - $this->yyerrcnt = 3; - $this->yy_destructor($yymajor, $yytokenvalue); - if ($yyendofinput) { - $this->yy_parse_failed(); - } - $yymajor = self::YYNOCODE; - } - } else { - $this->yy_accept(); - $yymajor = self::YYNOCODE; - } - } while ($yymajor != self::YYNOCODE && $this->yyidx >= 0); - - if ($token === NULL) - { - return $this->_retvalue; - } - } -} diff --git a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/rewriter.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/rewriter.php deleted file mode 100755 index bcffa235..00000000 --- a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/rewriter.php +++ /dev/null @@ -1,641 +0,0 @@ -<?php - -namespace CoffeeScript; - -class Rewriter -{ - static $BALANCED_PAIRS = array( - array('(', ')'), - array('[', ']'), - array('{', '}'), - array('INDENT', 'OUTDENT'), - array('CALL_START', 'CALL_END'), - array('PARAM_START', 'PARAM_END'), - array('INDEX_START', 'INDEX_END'), - ); - - static $INVERSES = array(); - - static $EXPRESSION_START = array(); - static $EXPRESSION_END = array(); - - static $EXPRESSION_CLOSE = array('CATCH', 'WHEN', 'ELSE', 'FINALLY'); - - static $IMPLICIT_FUNC = array('IDENTIFIER', 'SUPER', ')', 'CALL_END', ']', 'INDEX_END', '@', 'THIS'); - - static $IMPLICIT_CALL = array( - 'IDENTIFIER', 'NUMBER', 'STRING', 'JS', 'REGEX', 'NEW', 'PARAM_START', 'CLASS', - 'IF', 'TRY', 'SWITCH', 'THIS', 'BOOL', 'UNARY', 'SUPER', - '@', '->', '=>', '[', '(', '{', '--', '++' - ); - - static $IMPLICIT_UNSPACED_CALL = array('+', '-'); - - static $IMPLICIT_BLOCK = array('->', '=>', '{', '[', ','); - - static $IMPLICIT_END = array('POST_IF', 'FOR', 'WHILE', 'UNTIL', 'WHEN', 'BY', 'LOOP', 'TERMINATOR', 'INDENT'); - - static $SINGLE_LINERS = array('ELSE', '->', '=>', 'TRY', 'FINALLY', 'THEN'); - static $SINGLE_CLOSERS = array('TERMINATOR', 'CATCH', 'FINALLY', 'ELSE', 'OUTDENT', 'LEADING_WHEN'); - - static $LINEBREAKS = array('TERMINATOR', 'INDENT', 'OUTDENT'); - - function __construct($tokens) - { - $this->tokens = $tokens; - } - - function add_implicit_braces() - { - $stack = array(); - $start = NULL; - $start_indent = 0; - - $self = $this; - - $condition = function( & $token, $i) use ( & $self) - { - $list = array(); - - for ($j = 0; $j < 3; $j++) - { - $k = ($i + 1) + $j; - $list[$j] = isset($self->tokens[$k]) ? $self->tokens[$k] : array(NULL, NULL); - } - - list($one, $two, $three) = $list; - - if ($one[0] === t('HERECOMMENT')) - { - return FALSE; - } - - $tag = $token[0]; - - return - (in_array($tag, t('TERMINATOR', 'OUTDENT')) && - ! ($two[0] === t(':') || $one[0] === t('@') && $three[0] === t(':')) ) || - ($tag === t(',') && ! is_null($one[0]) && - ! in_array($one[0], t('IDENTIFIER', 'NUMBER', 'STRING', '@', 'TERMINATOR', 'OUTDENT'))); - }; - - $action = function( & $token, $i) use ( & $self) - { - $tok = array(t('}'), '}', $token[2], 'generated' => TRUE); - array_splice($self->tokens, $i, 0, array($tok)); - }; - - $this->scan_tokens(function( & $token, $i, & $tokens) use ( & $self, & $stack, & $start, & $start_indent, & $condition, & $action) - { - if (in_array(($tag = $token[0]), t(Rewriter::$EXPRESSION_START))) - { - $stack[] = array( ($tag === t('INDENT') && $self->tag($i - 1) === t('{')) ? t('{') : $tag, $i ); - return 1; - } - - if (in_array($tag, t(Rewriter::$EXPRESSION_END))) - { - $start = array_pop($stack); - return 1; - } - - $len = count($stack) - 1; - - if ( ! ($tag === t(':') && (($ago = $self->tag($i - 2)) === t(':') || ( ! isset($stack[$len]) || $stack[$len][0] !== t('{'))) )) - { - return 1; - } - - $stack[] = array(t('{')); - $idx = $ago === t('@') ? $i - 2 : $i - 1; - - while ($self->tag($idx - 2) === t('HERECOMMENT')) - { - $idx -= 2; - } - - // This doesn't really work in PHP, so we assign 'generatedValue' to the - // token and handle it in the actual parser (see Lempar.php\Parser\ - // parse()). This is pretty hacky, but it works. (Maybe...) - // - // TODO: In the future change this to use the wrap() function as it seems - // to work without any problems. - - $value = wrap('{'); - $value->generated = TRUE; - - $tok = array(t('{'), $value, $token[2], 'generated' => TRUE, 'generatedValue' => TRUE); - - array_splice($tokens, $idx, 0, array($tok)); - - $self->detect_end($i + 2, $condition, $action); - - return 2; - }); - } - - function add_implicit_indentation() - { - $self = $this; - - $this->scan_tokens(function( & $token, $i, & $tokens) use ( & $self) - { - $tag = $token[0]; - - if ($tag === t('TERMINATOR') && $self->tag($i + 1) === t('THEN')) - { - array_splice($tokens, $i, 1); - return 0; - } - - if ($tag === t('ELSE') && $self->tag($i - 1) !== t('OUTDENT')) - { - array_splice($tokens, $i, 0, $self->indentation($token)); - return 2; - } - - if ($tag === t('CATCH') && in_array($self->tag($i + 2), t('OUTDENT', 'TERMINATOR', 'FINALLY'))) - { - array_splice($tokens, $i + 2, 0, $self->indentation($token)); - return 4; - } - - if (in_array($tag, t(Rewriter::$SINGLE_LINERS)) && $self->tag($i + 1) !== t('INDENT') && - ! ($tag === t('ELSE') && $self->tag($i + 1) === t('IF'))) - { - $starter = $tag; - list($indent, $outdent) = $self->indentation($token); - - if ($starter === t('THEN')) - { - $indent['fromThen'] = TRUE; - } - - $indent['generated'] = $outdent['generated'] = TRUE; - - array_splice($tokens, $i + 1, 0, array($indent)); - - $condition = function($token, $i) use ($starter) - { - return $token[1] !== ';' && in_array($token[0], t(Rewriter::$SINGLE_CLOSERS)) && - ! ($token[0] === t('ELSE') && ! in_array($starter, t('IF', 'THEN'))); - }; - - $action = function( & $token, $i) use ( & $self, $outdent) - { - array_splice($self->tokens, ($self->tag($i - 1) === t(',') ? $i - 1 : $i), 0, array($outdent)); - }; - - $self->detect_end($i + 2, $condition, $action); - - if ($tag === t('THEN')) - { - array_splice($tokens, $i, 1); - } - - return 1; - } - - return 1; - }); - } - - function add_implicit_parentheses() - { - $no_call = FALSE; - $self = $this; - - $action = function( & $token, $i) use ( & $self) - { - $idx = ($token[0] === t('OUTDENT')) ? $i + 1 : $i; - $tok = array(t('CALL_END'), ')'); - - if (isset($token[2])) - { - $tok[2] = $token[2]; - } - - array_splice($self->tokens, $idx, 0, array($tok)); - }; - - $this->scan_tokens(function( & $token, $i, & $tokens) use ( & $action, & $no_call, & $self ) - { - $tag = $token[0]; - - if (in_array($tag, t('CLASS', 'IF'))) - { - $no_call = TRUE; - } - - $prev = NULL; - - if (isset($tokens[$i - 1])) - { - $prev = & $tokens[$i - 1]; - } - - $current = $tokens[$i]; - $next = isset($tokens[$i + 1]) ? $tokens[$i + 1] : NULL; - - $call_object = ! $no_call && $tag === t('INDENT') && - $next && (isset($next['generated']) && $next['generated']) && $next[0] === t('{') && - $prev && in_array($prev[0], t(Rewriter::$IMPLICIT_FUNC)); - - $seen_single = FALSE; - $seen_control = FALSE; - - if (in_array($tag, t(Rewriter::$LINEBREAKS))) - { - $no_call = FALSE; - } - - if ($prev && ! (isset($prev['spaced']) && $prev['spaced']) && $tag === t('?')) - { - $token['call'] = TRUE; - } - - if (isset($token['fromThen']) && $token['fromThen']) - { - return 1; - } - - if ( ! ($call_object || ($prev && (isset($prev['spaced']) && $prev['spaced'])) && - ( (isset($prev['call']) && $prev['call']) || in_array($prev[0], t(Rewriter::$IMPLICIT_FUNC)) ) && - ( in_array($tag, t(Rewriter::$IMPLICIT_CALL)) || ! ( (isset($token['spaced']) && $token['spaced']) || - (isset($token['newLine']) && $token['newLine']) ) && - in_array($tag, t(Rewriter::$IMPLICIT_UNSPACED_CALL)) ) - )) - { - return 1; - } - - array_splice($tokens, $i, 0, array(array(t('CALL_START'), '(', $token[2]))); - - $self->detect_end($i + 1, function($token, $i) use ( & $seen_control, & $seen_single, & $self) - { - $tag = $token[0]; - - if ( ! $seen_single && (isset($token['fromThen']) && $token['fromThen'])) - { - return TRUE; - } - - if (in_array($tag, t('IF', 'ELSE', '->', '=>'))) - { - $seen_single = TRUE; - } - - if (in_array($tag, t('IF', 'ELSE', 'SWITCH', 'TRY'))) - { - $seen_control = TRUE; - } - - if (in_array($tag, t('.', '?.', '::')) && $self->tag($i - 1) === t('OUTDENT')) - { - return TRUE; - } - - return - ! (isset($token['generated']) && $token['generated']) && $self->tag($i - 1) !== t(',') && - (in_array($tag, t(Rewriter::$IMPLICIT_END))) && - ($tag !== t('INDENT') || - ( $self->tag($i - 2) !== t('CLASS') && - ! in_array($self->tag($i - 1), t(Rewriter::$IMPLICIT_BLOCK)) && - ! ( (isset($self->tokens[$i + 1]) && ($post = $self->tokens[$i + 1])) && - (isset($post['generated']) && $post['generated']) && $post[0] === t('{') ) - )); - }, - $action); - - if ($prev[0] === t('?')) - { - $prev[0] = t('FUNC_EXIST'); - } - - return 2; - }); - } - - function close_open_calls() - { - $self = $this; - - $condition = function($token, $i) use ( & $self) - { - return in_array($token[0], t(')', 'CALL_END')) || $token[0] === t('OUTDENT') && - $self->tag($i - 1) === t(')'); - }; - - $action = function($token, $i) use ( & $self) - { - $self->tokens[($token[0] === t('OUTDENT') ? $i - 1 : $i)][0] = t('CALL_END'); - }; - - $this->scan_tokens(function($token, $i) use ( & $self, $condition, $action) - { - if ($token[0] === t('CALL_START')) - { - $self->detect_end($i + 1, $condition, $action); - } - - return 1; - }); - } - - function close_open_indexes() - { - $condition = function($token, $i) - { - return in_array($token[0], t(']', 'INDEX_END')); - }; - - $action = function( & $token, $i) - { - $token[0] = t('INDEX_END'); - }; - - $self = $this; - - $this->scan_tokens(function($token, $i) use ( & $self, $condition, $action) - { - if ($token[0] === t('INDEX_START')) - { - $self->detect_end($i + 1, $condition, $action); - } - - return 1; - }); - } - - function detect_end($i, $condition, $action) - { - $tokens = & $this->tokens; - $levels = 0; - - while (isset($tokens[$i])) - { - $token = & $tokens[$i]; - - if ($levels === 0 && $condition($token, $i)) - { - return $action($token, $i); - } - - if ( ! $token || $levels < 0) - { - return $action($token, $i - 1); - } - - if (in_array($token[0], t(Rewriter::$EXPRESSION_START))) - { - $levels++; - } - else if (in_array($token[0], t(Rewriter::$EXPRESSION_END))) - { - $levels--; - } - - $i++; - } - - return $i - 1; - } - - function ensure_balance($pairs) - { - $levels = array(); - $open_line = array(); - - foreach ($this->tokens as $token) - { - $tag = $token[0]; - - foreach ($pairs as $pair) - { - list($open, $close) = $pair; - - if ( ! isset($levels[$open])) - { - $levels[$open] = 0; - } - - if ($tag === t($open)) - { - if ($levels[$open]++ === 0) - { - $open_line[$open] = $token[2]; - } - } - else if ($tag === t($close) && --$levels[$open] < 0) - { - throw new Error('too many '.$token[1].' on line '.($token[2] + 1)); - } - } - } - - foreach ($levels as $open => $level) - { - if ($level > 0) - { - throw new Error('unclosed '.$open.' on line '.($open_line[$open] + 1)); - } - } - - return $this; - } - - function indentation($token) - { - return array( array(t('INDENT'), 2, $token[2]), array(t('OUTDENT'), 2, $token[2]) ); - } - - static function init() - { - foreach (self::$BALANCED_PAIRS as $pair) - { - list($left, $rite) = $pair; - - self::$EXPRESSION_START[] = self::$INVERSES[$rite] = $left; - self::$EXPRESSION_END[] = self::$INVERSES[$left] = $rite; - } - - self::$EXPRESSION_CLOSE = array_merge(self::$EXPRESSION_CLOSE, self::$EXPRESSION_END); - } - - function remove_leading_newlines() - { - $key = 0; - - foreach ($this->tokens as $k => $token) - { - $key = $k; - $tag = $token[0]; - - if ($tag !== t('TERMINATOR')) - { - break; - } - } - - if ($key) - { - array_splice($this->tokens, 0, $key); - } - } - - function remove_mid_expression_newlines() - { - $self = $this; - - $this->scan_tokens(function( & $token, $i, & $tokens) use ( & $self) - { - if ( ! ($token[0] === t('TERMINATOR') && in_array($self->tag($i + 1), t(Rewriter::$EXPRESSION_CLOSE)))) - { - return 1; - } - - array_splice($tokens, $i, 1); - return 0; - }); - } - - function rewrite() - { - $this->remove_leading_newlines(); - $this->remove_mid_expression_newlines(); - $this->close_open_calls(); - $this->close_open_indexes(); - $this->add_implicit_indentation(); - $this->tag_postfix_conditionals(); - $this->add_implicit_braces(); - $this->add_implicit_parentheses(); - //$this->ensure_balance(self::$BALANCED_PAIRS); - $this->rewrite_closing_parens(); - - return $this->tokens; - } - - function rewrite_closing_parens() - { - $stack = array(); - $debt = array(); - - // Need to change to an associative array of numeric constants, rather - // than the string names. - $inverses = array(); - - foreach (Rewriter::$INVERSES as $k => $v) - { - $inverses[t($k)] = $v; - } - - foreach ($inverses as $k => $v) - { - $debt[$k] = 0; - } - - $self = $this; - - $this->scan_tokens(function( & $token, $i, & $tokens) use ( & $self, & $stack, & $debt, $inverses) - { - if (in_array(($tag = $token[0]), t(Rewriter::$EXPRESSION_START))) - { - $stack[] = $token; - return 1; - } - - if ( ! (in_array($tag, t(Rewriter::$EXPRESSION_END)))) - { - return 1; - } - - if ($debt[ ($inv = t($inverses[$tag])) ] > 0) - { - $debt[$inv]--; - array_splice($tokens, $i, 1); - return 0; - } - - $match = array_pop($stack); - $mtag = $match[0]; - $oppos = $inverses[$mtag]; - - if ($tag === t($oppos)) - { - return 1; - } - - $debt[$mtag]++; - - $val = array(t($oppos), $mtag === t('INDENT') ? $match[1] : $oppos); - - //if ($oppos === 'INDEX_END') - //{ - // $val[1] = ']'; - //} - - if ($self->tag($i + 2) === $mtag) - { - array_splice($tokens, $i + 3, 0, array($val)); - $stack[] = $match; - } - else - { - array_splice($tokens, $i, 0, array($val)); - } - - return 1; - }); - } - - function scan_tokens($block) - { - $i = 0; - - while (isset($this->tokens[$i])) - { - $i += $block($this->tokens[$i], $i, $this->tokens); - } - - return TRUE; - } - - function tag($i) - { - return isset($this->tokens[$i]) ? $this->tokens[$i][0] : NULL; - } - - function tag_postfix_conditionals() - { - $condition = function($token, $i) - { - return in_array($token[0], t('TERMINATOR', 'INDENT')); - }; - - $self = $this; - - $this->scan_tokens(function( & $token, $i) use ( & $condition, & $self) - { - if ( ! ($token[0] === t('IF'))) - { - return 1; - } - - $original = & $token; - - $self->detect_end($i + 1, $condition, function($token, $i) use ( & $original) - { - if ($token[0] !== t('INDENT')) - { - $original[0] = t('POST_IF'); // 'POST_'.$original[0]; - } - }); - - return 1; - }); - } -} - -Rewriter::init(); - -?> diff --git a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/scope.php b/src/vitis/vas/rest/class/vmlib/coffeescript/classes/scope.php deleted file mode 100755 index abfbff6f..00000000 --- a/src/vitis/vas/rest/class/vmlib/coffeescript/classes/scope.php +++ /dev/null @@ -1,189 +0,0 @@ -<?php - -namespace CoffeeScript; - -require_once 'helpers.php'; - -/** - * Lexical scope manager. - */ -class Scope -{ - static $root = NULL; - - public $shared = FALSE; - private $has_assignments = FALSE; - - function __construct($parent, $expressions, $method) - { - $this->parent = $parent; - $this->expressions = $expressions; - $this->method = $method; - - $this->variables = array( - array('name' => 'arguments', 'type' => 'arguments') - ); - - $this->positions = array(); - - if ( ! $this->parent) - { - self::$root = $this; - } - } - - function add($name, $type, $immediate = FALSE) - { - if ($this->shared && ! $immediate) - { - return $this->parent->add($name, $type, $immediate); - } - - if (isset($this->positions[$name]) && is_numeric($pos = $this->positions[$name])) - { - $this->variables[$pos]['type'] = $type; - } - else - { - $this->variables[] = array('name' => $name, 'type' => $type); - $this->positions[$name] = count($this->variables) - 1; - } - } - - function assign($name, $value) - { - $this->add($name, array('value' => $value, 'assigned' => TRUE)); - $this->has_assignments = TRUE; - } - - function assigned_variables() - { - $tmp = array(); - - foreach ($this->variables as $v) - { - $type = $v['type']; - - if (is_array($type) && isset($type['assigned']) && $type['assigned']) - { - $tmp[] = "{$v['name']} = {$v['type']['value']}"; - } - } - - return $tmp; - } - - function check($name, $immediate = FALSE) - { - $found = !! $this->type($name); - - if ($found || $immediate) - { - return $found; - } - - return $this->parent ? $this->parent->check($name) : FALSE; - } - - function declared_variables() - { - $real_vars = array(); - $temp_vars = array(); - - foreach ($this->variables as $v) - { - if ($v['type'] === 'var') - { - if ($v['name']{0} === '_') - { - $temp_vars[] = $v['name']; - } - else - { - $real_vars[] = $v['name']; - } - } - } - - asort($real_vars); - asort($temp_vars); - - return array_merge($real_vars, $temp_vars); - } - - function find($name, $options = array()) - { - if ($this->check($name, $options)) - { - return TRUE; - } - - $this->add($name, 'var'); - - return FALSE; - } - - function free_variable($type) - { - $index = 0; - - while ($this->check(($temp = $this->temporary($type, $index)))) - { - $index++; - } - - $this->add($temp, 'var', TRUE); - - return $temp; - } - - function has_assignments() - { - return $this->has_assignments; - } - - function has_declarations() - { - return !! count($this->declared_variables()); - } - - function parameter($name) - { - if ($this->shared && $this->parent->check($name, TRUE)) - { - return; - } - - $this->add($name, 'param'); - } - - function temporary($name, $index) - { - if (strlen($name) > 1) - { - return '_'.$name.($index > 1 ? $index : ''); - } - else - { - $val = strval(base_convert($index + intval($name, 36), 10, 36)); - $val = preg_replace('/\d/', 'a', $val); - - return '_'.$val; - } - } - - function type($name) - { - foreach ($this->variables as $v) - { - if ($v['name'] === $name) - { - return $v['type']; - } - } - - return NULL; - } -} - -?> diff --git a/src/vitis/vas/rest/class/vmlib/coffeescript/coffeescript.php b/src/vitis/vas/rest/class/vmlib/coffeescript/coffeescript.php deleted file mode 100755 index bbfd9705..00000000 --- a/src/vitis/vas/rest/class/vmlib/coffeescript/coffeescript.php +++ /dev/null @@ -1,37 +0,0 @@ -<?php -namespace CoffeeScript; - -require_once 'classes/lexer.php'; -require_once 'classes/parser.php'; - -/** - * Compile some CoffeeScript. - * - * @param $code The source CoffeeScript code. - * @param $options Compiler options. - */ -function compile($code, $options = array(), & $tokens = NULL) -{ - $lexer = new Lexer($code, $options); - - if (isset($options['file'])) - { - Parser::$FILE = $options['file']; - } - - if (isset($options['trace'])) - { - Parser::Trace(fopen($options['trace'], 'w', TRUE), '> '); - } - - $parser = new Parser(); - - foreach (($tokens = $lexer->tokenize()) as $token) - { - $parser->parse($token); - } - - return $parser->parse(NULL)->compile($options); -} - -?> diff --git a/src/vitis/vas/rest/class/vmlib/coffeescript/jsmaker.php b/src/vitis/vas/rest/class/vmlib/coffeescript/jsmaker.php deleted file mode 100755 index 3b912e88..00000000 --- a/src/vitis/vas/rest/class/vmlib/coffeescript/jsmaker.php +++ /dev/null @@ -1,16 +0,0 @@ -<?php -ini_set('display_errors', 1); -error_reporting(0); -header('Content-Type: application/javascript', true); -if(isset($_GET['f'])) -{ - include 'class.jstocoffee.php'; - $JsToCoffee = new JsToCoffee; - $JsToCoffee->setCacheDir(__DIR__ . '/cache/'); - $JsToCoffee->setAllowedCoffeeDir(__DIR__ . '/../../coffee/'); - echo $JsToCoffee->makeJavascript($_GET['f']); -} -else -{ - echo ''; -} \ No newline at end of file diff --git a/src/vitis/vas/rest/class/vmlib/context/covage.inc b/src/vitis/vas/rest/class/vmlib/context/covage.inc deleted file mode 100755 index 54b64883..00000000 --- a/src/vitis/vas/rest/class/vmlib/context/covage.inc +++ /dev/null @@ -1,12 +0,0 @@ -<?php - -// Corps du message -$properties['businessobject.bo_id']['value'] = $this->aObjects["oBusinessObject"]->get('bo_id'); -$properties['businessobject.bo_id']['fr'] = "Corps du message"; -$properties['businessobject.bo_id']['en'] = "Corps du message"; - -// Nom du demandeur -$properties['businessobject.user.name']['value'] = $this->aObjects["oBusinessObject"]->getUser('admin_framework')->aFields['name']; -$properties['businessobject.user.name']['fr'] = "Nom du demandeur"; -$properties['businessobject.user.name']['en'] = "Nom du demandeur"; -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/vmlib/context/gtf.inc b/src/vitis/vas/rest/class/vmlib/context/gtf.inc deleted file mode 100755 index 9239727b..00000000 --- a/src/vitis/vas/rest/class/vmlib/context/gtf.inc +++ /dev/null @@ -1,62 +0,0 @@ -<?php - -// Adresse email du demandeur -$properties['order.user.email']['value'] = $this->aObjects["oOrder"]->getUser()->aFields['email']; -$properties['order.user.email']['fr'] = "Adresse email du demandeur"; -$properties['order.user.email']['en'] = "Adresse email du demandeur"; - -// Nom du demandeur du traitement -$properties['order.user.name']['value'] = $this->aObjects["oOrder"]->getUser()->aFields['name']; -$properties['order.user.name']['fr'] = "Nom du demandeur du traitement"; -$properties['order.user.name']['en'] = "Nom du demandeur du traitement"; - -// Compte de connexion du demandeur du traitement -$properties['order.user.login']['value'] = $this->aObjects["oOrder"]->getUser()->aFields['login']; -$properties['order.user.login']['fr'] = "Compte du demandeur du traitement"; -$properties['order.user.login']['en'] = "Compte du demandeur du traitement"; - -// Date et heure de la demande -$properties['order.order_date']['value'] = $this->aObjects["oOrder"]->aFields['order_date']; -$properties['order.order_date']['fr'] = "Date et heure de la demande de traitement"; -$properties['order.order_date']['en'] = "Date et heure de la demande de traitement"; - -// Url de téléchargement du résultat -$properties['order.result_url']['value'] = $this->aObjects["oOrder"]->aFields['result_url']; -$properties['order.result_url']['fr'] = "Url de téléchargement du résultat"; -$properties['order.result_url']['en'] = "Url de téléchargement du résultat"; - -// Url de téléchargement du log -$properties['order.log_url']['value'] = $this->aObjects["oOrder"]->aFields['log_url']; -$properties['order.log_url']['fr'] = "Url de téléchargement du fichier de log"; -$properties['order.log_url']['en'] = "Url de téléchargement du fichier de log"; - -// Identifiant de la demande de traitement -$properties['order.order_id']['value'] = $this->aObjects["oOrder"]->aFields['order_id']; -$properties['order.order_id']['fr'] = "Identifiant de la demande de traitement"; -$properties['order.order_id']['en'] = "Identifiant de la demande de traitement"; - -// Nom du traitement -$properties['order.workspace.name']['value'] = $this->aObjects["oOrder"]->getWorkspace()->aFields['name']; -$properties['order.workspace.name']['fr'] = "Nom du traitement"; -$properties['order.workspace.name']['en'] = "Nom du traitement"; - -// Catégorie du traitement -$properties['order.workspace.category.name']['value'] = $this->aObjects["oOrder"]->getWorkspace()->getCategory()->aFields['name']; -$properties['order.workspace.category.name']['fr'] = "Catégorie du traitement"; -$properties['order.workspace.category.name']['en'] = "Catégorie du traitement"; - -// Durée du traitement -$properties['order.length_sec']['value'] = $this->aObjects["oOrder"]->aFields['length_sec']; -$properties['order.length_sec']['fr'] = "Durée du traitement en secondes"; -$properties['order.length_sec']['en'] = "Durée du traitement"; - -// Date et heure de fin de traitement -$properties['order.execution_date']['value'] = $this->aObjects["oOrder"]->aFields['execution_date']; -$properties['order.execution_date']['fr'] = "Date et heure de fin de traitement"; -$properties['order.execution_date']['en'] = "Date et heure de fin de traitement"; - -//Adresse mail du destinataire en copie -$properties['order.email_notifications']['value'] = $this->aObjects["oOrder"]->aFields['email_notifications']; -$properties['order.email_notifications']['fr'] = "Adresse email du destinataire en copie du mail"; -$properties['order.email_notifications']['en'] = "Adresse email du destinataire en copie du mail"; -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/vmlib/context/message.inc b/src/vitis/vas/rest/class/vmlib/context/message.inc deleted file mode 100755 index 40b060d3..00000000 --- a/src/vitis/vas/rest/class/vmlib/context/message.inc +++ /dev/null @@ -1,12 +0,0 @@ -<?php - -// Corps du message -$properties['message.email_body']['value'] = $this->aObjects["oMessage"]->getBody('email_body'); -$properties['message.email_body']['fr'] = "Corps du message"; -$properties['message.email_body']['en'] = "Corps du message"; - -// Id de la demande -$properties['message.order_id']['value'] = $this->aObjects["oMessage"]->getBody('order_id'); -$properties['message.order_id']['fr'] = "Id de la demande"; -$properties['message.order_id']['en'] = "Order Id"; -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/vmlib/cryptUtil.inc b/src/vitis/vas/rest/class/vmlib/cryptUtil.inc deleted file mode 100755 index f0cdd11c..00000000 --- a/src/vitis/vas/rest/class/vmlib/cryptUtil.inc +++ /dev/null @@ -1,302 +0,0 @@ -<?php - -/* - * - * cryptUtil.inc : fonction de Cryptage et decryptage de texte en fonction d'une clef priv�e - * - */ - -//this takes the key, the message, and whether to encrypt or decrypt -function des($key, $message, $encrypt, $mode, $iv = null, $padding = "") { - //declaring this locally speeds things up a bit - $spfunction1 = array(0x1010400, 0, 0x10000, 0x1010404, 0x1010004, 0x10404, 0x4, 0x10000, 0x400, 0x1010400, 0x1010404, 0x400, 0x1000404, 0x1010004, 0x1000000, 0x4, 0x404, 0x1000400, 0x1000400, 0x10400, 0x10400, 0x1010000, 0x1010000, 0x1000404, 0x10004, 0x1000004, 0x1000004, 0x10004, 0, 0x404, 0x10404, 0x1000000, 0x10000, 0x1010404, 0x4, 0x1010000, 0x1010400, 0x1000000, 0x1000000, 0x400, 0x1010004, 0x10000, 0x10400, 0x1000004, 0x400, 0x4, 0x1000404, 0x10404, 0x1010404, 0x10004, 0x1010000, 0x1000404, 0x1000004, 0x404, 0x10404, 0x1010400, 0x404, 0x1000400, 0x1000400, 0, 0x10004, 0x10400, 0, 0x1010004); - $spfunction2 = array(-0x7fef7fe0, -0x7fff8000, 0x8000, 0x108020, 0x100000, 0x20, -0x7fefffe0, -0x7fff7fe0, -0x7fffffe0, -0x7fef7fe0, -0x7fef8000, -0x80000000, -0x7fff8000, 0x100000, 0x20, -0x7fefffe0, 0x108000, 0x100020, -0x7fff7fe0, 0, -0x80000000, 0x8000, 0x108020, -0x7ff00000, 0x100020, -0x7fffffe0, 0, 0x108000, 0x8020, -0x7fef8000, -0x7ff00000, 0x8020, 0, 0x108020, -0x7fefffe0, 0x100000, -0x7fff7fe0, -0x7ff00000, -0x7fef8000, 0x8000, -0x7ff00000, -0x7fff8000, 0x20, -0x7fef7fe0, 0x108020, 0x20, 0x8000, -0x80000000, 0x8020, -0x7fef8000, 0x100000, -0x7fffffe0, 0x100020, -0x7fff7fe0, -0x7fffffe0, 0x100020, 0x108000, 0, -0x7fff8000, 0x8020, -0x80000000, -0x7fefffe0, -0x7fef7fe0, 0x108000); - $spfunction3 = array(0x208, 0x8020200, 0, 0x8020008, 0x8000200, 0, 0x20208, 0x8000200, 0x20008, 0x8000008, 0x8000008, 0x20000, 0x8020208, 0x20008, 0x8020000, 0x208, 0x8000000, 0x8, 0x8020200, 0x200, 0x20200, 0x8020000, 0x8020008, 0x20208, 0x8000208, 0x20200, 0x20000, 0x8000208, 0x8, 0x8020208, 0x200, 0x8000000, 0x8020200, 0x8000000, 0x20008, 0x208, 0x20000, 0x8020200, 0x8000200, 0, 0x200, 0x20008, 0x8020208, 0x8000200, 0x8000008, 0x200, 0, 0x8020008, 0x8000208, 0x20000, 0x8000000, 0x8020208, 0x8, 0x20208, 0x20200, 0x8000008, 0x8020000, 0x8000208, 0x208, 0x8020000, 0x20208, 0x8, 0x8020008, 0x20200); - $spfunction4 = array(0x802001, 0x2081, 0x2081, 0x80, 0x802080, 0x800081, 0x800001, 0x2001, 0, 0x802000, 0x802000, 0x802081, 0x81, 0, 0x800080, 0x800001, 0x1, 0x2000, 0x800000, 0x802001, 0x80, 0x800000, 0x2001, 0x2080, 0x800081, 0x1, 0x2080, 0x800080, 0x2000, 0x802080, 0x802081, 0x81, 0x800080, 0x800001, 0x802000, 0x802081, 0x81, 0, 0, 0x802000, 0x2080, 0x800080, 0x800081, 0x1, 0x802001, 0x2081, 0x2081, 0x80, 0x802081, 0x81, 0x1, 0x2000, 0x800001, 0x2001, 0x802080, 0x800081, 0x2001, 0x2080, 0x800000, 0x802001, 0x80, 0x800000, 0x2000, 0x802080); - $spfunction5 = array(0x100, 0x2080100, 0x2080000, 0x42000100, 0x80000, 0x100, 0x40000000, 0x2080000, 0x40080100, 0x80000, 0x2000100, 0x40080100, 0x42000100, 0x42080000, 0x80100, 0x40000000, 0x2000000, 0x40080000, 0x40080000, 0, 0x40000100, 0x42080100, 0x42080100, 0x2000100, 0x42080000, 0x40000100, 0, 0x42000000, 0x2080100, 0x2000000, 0x42000000, 0x80100, 0x80000, 0x42000100, 0x100, 0x2000000, 0x40000000, 0x2080000, 0x42000100, 0x40080100, 0x2000100, 0x40000000, 0x42080000, 0x2080100, 0x40080100, 0x100, 0x2000000, 0x42080000, 0x42080100, 0x80100, 0x42000000, 0x42080100, 0x2080000, 0, 0x40080000, 0x42000000, 0x80100, 0x2000100, 0x40000100, 0x80000, 0, 0x40080000, 0x2080100, 0x40000100); - $spfunction6 = array(0x20000010, 0x20400000, 0x4000, 0x20404010, 0x20400000, 0x10, 0x20404010, 0x400000, 0x20004000, 0x404010, 0x400000, 0x20000010, 0x400010, 0x20004000, 0x20000000, 0x4010, 0, 0x400010, 0x20004010, 0x4000, 0x404000, 0x20004010, 0x10, 0x20400010, 0x20400010, 0, 0x404010, 0x20404000, 0x4010, 0x404000, 0x20404000, 0x20000000, 0x20004000, 0x10, 0x20400010, 0x404000, 0x20404010, 0x400000, 0x4010, 0x20000010, 0x400000, 0x20004000, 0x20000000, 0x4010, 0x20000010, 0x20404010, 0x404000, 0x20400000, 0x404010, 0x20404000, 0, 0x20400010, 0x10, 0x4000, 0x20400000, 0x404010, 0x4000, 0x400010, 0x20004010, 0, 0x20404000, 0x20000000, 0x400010, 0x20004010); - $spfunction7 = array(0x200000, 0x4200002, 0x4000802, 0, 0x800, 0x4000802, 0x200802, 0x4200800, 0x4200802, 0x200000, 0, 0x4000002, 0x2, 0x4000000, 0x4200002, 0x802, 0x4000800, 0x200802, 0x200002, 0x4000800, 0x4000002, 0x4200000, 0x4200800, 0x200002, 0x4200000, 0x800, 0x802, 0x4200802, 0x200800, 0x2, 0x4000000, 0x200800, 0x4000000, 0x200800, 0x200000, 0x4000802, 0x4000802, 0x4200002, 0x4200002, 0x2, 0x200002, 0x4000000, 0x4000800, 0x200000, 0x4200800, 0x802, 0x200802, 0x4200800, 0x802, 0x4000002, 0x4200802, 0x4200000, 0x200800, 0, 0x2, 0x4200802, 0, 0x200802, 0x4200000, 0x800, 0x4000002, 0x4000800, 0x800, 0x200002); - $spfunction8 = array(0x10001040, 0x1000, 0x40000, 0x10041040, 0x10000000, 0x10001040, 0x40, 0x10000000, 0x40040, 0x10040000, 0x10041040, 0x41000, 0x10041000, 0x41040, 0x1000, 0x40, 0x10040000, 0x10000040, 0x10001000, 0x1040, 0x41000, 0x40040, 0x10040040, 0x10041000, 0x1040, 0, 0, 0x10040040, 0x10000040, 0x10001000, 0x41040, 0x40000, 0x41040, 0x40000, 0x10041000, 0x1000, 0x40, 0x10040040, 0x1000, 0x41040, 0x10001000, 0x40, 0x10000040, 0x10040000, 0x10040040, 0x10000000, 0x40000, 0x10001040, 0, 0x10041040, 0x40040, 0x10000040, 0x10040000, 0x10001000, 0x10001040, 0, 0x10041040, 0x41000, 0x41000, 0x1040, 0x1040, 0x40040, 0x10000000, 0x10041000); - $masks = array(4294967295, 2147483647, 1073741823, 536870911, 268435455, 134217727, 67108863, 33554431, 16777215, 8388607, 4194303, 2097151, 1048575, 524287, 262143, 131071, 65535, 32767, 16383, 8191, 4095, 2047, 1023, 511, 255, 127, 63, 31, 15, 7, 3, 1, 0); - - //create the 16 or 48 subkeys we will need - $keys = des_createKeys($key); - $m = 0; - $len = strlen($message); - $chunk = 0; - //set up the loops for single and triple des - $iterations = ((count($keys) == 32) ? 3 : 9); //single or triple des - if ($iterations == 3) { - $looping = (($encrypt) ? array(0, 32, 2) : array(30, -2, -2)); - } else { - $looping = (($encrypt) ? array(0, 32, 2, 62, 30, -2, 64, 96, 2) : array(94, 62, -2, 32, 64, 2, 30, -2, -2)); - } - - //pad the message depending on the padding parameter - if ($padding == 2) - $message .= " "; //pad the message with spaces - else if ($padding == 1) { - $temp = 8 - ($len % 8); - $message .= chr($temp) . chr($temp) . chr($temp) . chr($temp) . chr($temp) . chr($temp) . chr($temp) . chr($temp); - if ($temp == 8) - $len+=8; - } //PKCS7 padding - else if ($padding == "") - $message .= (chr(0) . chr(0) . chr(0) . chr(0) . chr(0) . chr(0) . chr(0) . chr(0)); //pad the message out with null bytes - - -//store the result here - $result = ""; - $tempresult = ""; - - if ($mode == 1) { //CBC mode - $cbcleft = (ord($iv{$m++}) << 24) | (ord($iv{$m++}) << 16) | (ord($iv{$m++}) << 8) | ord($iv{$m++}); - $cbcright = (ord($iv{$m++}) << 24) | (ord($iv{$m++}) << 16) | (ord($iv{$m++}) << 8) | ord($iv{$m++}); - $m = 0; - } - - //loop through each 64 bit chunk of the message - while ($m < $len) { - $left = (ord($message{$m++}) << 24) | (ord($message{$m++}) << 16) | (ord($message{$m++}) << 8) | ord($message{$m++}); - $right = (ord($message{$m++}) << 24) | (ord($message{$m++}) << 16) | (ord($message{$m++}) << 8) | ord($message{$m++}); - - //for Cipher Block Chaining mode, xor the message with the previous result - if ($mode == 1) { - if ($encrypt) { - $left ^= $cbcleft; - $right ^= $cbcright; - } else { - $cbcleft2 = $cbcleft; - $cbcright2 = $cbcright; - $cbcleft = $left; - $cbcright = $right; - } - } - - //first each 64 but chunk of the message must be permuted according to IP - $temp = (($left >> 4 & $masks[4]) ^ $right) & 0x0f0f0f0f; - $right ^= $temp; - $left ^= ($temp << 4); - $temp = (($left >> 16 & $masks[16]) ^ $right) & 0x0000ffff; - $right ^= $temp; - $left ^= ($temp << 16); - $temp = (($right >> 2 & $masks[2]) ^ $left) & 0x33333333; - $left ^= $temp; - $right ^= ($temp << 2); - $temp = (($right >> 8 & $masks[8]) ^ $left) & 0x00ff00ff; - $left ^= $temp; - $right ^= ($temp << 8); - $temp = (($left >> 1 & $masks[1]) ^ $right) & 0x55555555; - $right ^= $temp; - $left ^= ($temp << 1); - - $left = (($left << 1) | ($left >> 31 & $masks[31])); - $right = (($right << 1) | ($right >> 31 & $masks[31])); - - //do this either 1 or 3 times for each chunk of the message - for ($j = 0; $j < $iterations; $j+=3) { - $endloop = $looping[$j + 1]; - $loopinc = $looping[$j + 2]; - //now go through and perform the encryption or decryption - for ($i = $looping[$j]; $i != $endloop; $i+=$loopinc) { //for efficiency - $right1 = $right ^ $keys[$i]; - $right2 = (($right >> 4 & $masks[4]) | ($right << 28 & 0xffffffff)) ^ $keys[$i + 1]; - //the result is attained by passing these bytes through the S selection functions - $temp = $left; - $left = $right; - $right = $temp ^ ($spfunction2[($right1 >> 24 & $masks[24]) & 0x3f] | $spfunction4[($right1 >> 16 & $masks[16]) & 0x3f] | $spfunction6[($right1 >> 8 & $masks[8]) & 0x3f] | $spfunction8[$right1 & 0x3f] | $spfunction1[($right2 >> 24 & $masks[24]) & 0x3f] | $spfunction3[($right2 >> 16 & $masks[16]) & 0x3f] | $spfunction5[($right2 >> 8 & $masks[8]) & 0x3f] | $spfunction7[$right2 & 0x3f]); - } - $temp = $left; - $left = $right; - $right = $temp; //unreverse left and right - } //for either 1 or 3 iterations - //move then each one bit to the right - $left = (($left >> 1 & $masks[1]) | ($left << 31)); - $right = (($right >> 1 & $masks[1]) | ($right << 31)); - - //now perform IP-1, which is IP in the opposite direction - $temp = (($left >> 1 & $masks[1]) ^ $right) & 0x55555555; - $right ^= $temp; - $left ^= ($temp << 1); - $temp = (($right >> 8 & $masks[8]) ^ $left) & 0x00ff00ff; - $left ^= $temp; - $right ^= ($temp << 8); - $temp = (($right >> 2 & $masks[2]) ^ $left) & 0x33333333; - $left ^= $temp; - $right ^= ($temp << 2); - $temp = (($left >> 16 & $masks[16]) ^ $right) & 0x0000ffff; - $right ^= $temp; - $left ^= ($temp << 16); - $temp = (($left >> 4 & $masks[4]) ^ $right) & 0x0f0f0f0f; - $right ^= $temp; - $left ^= ($temp << 4); - - //for Cipher Block Chaining mode, xor the message with the previous result - if ($mode == 1) { - if ($encrypt) { - $cbcleft = $left; - $cbcright = $right; - } else { - $left ^= $cbcleft2; - $right ^= $cbcright2; - } - } - $tempresult .= (chr($left >> 24 & $masks[24]) . chr(($left >> 16 & $masks[16]) & 0xff) . chr(($left >> 8 & $masks[8]) & 0xff) . chr($left & 0xff) . chr($right >> 24 & $masks[24]) . chr(($right >> 16 & $masks[16]) & 0xff) . chr(($right >> 8 & $masks[8]) & 0xff) . chr($right & 0xff)); - - $chunk += 8; - if ($chunk == 512) { - $result .= $tempresult; - $tempresult = ""; - $chunk = 0; - } - } //for every 8 characters, or 64 bits in the message - //return the result as an array - return ($result . $tempresult); -} - -//end of des -//des_createKeys -//this takes as input a 64 bit key (even though only 56 bits are used) -//as an array of 2 integers, and returns 16 48 bit keys -function des_createKeys($key) { - //declaring this locally speeds things up a bit - $pc2bytes0 = array(0, 0x4, 0x20000000, 0x20000004, 0x10000, 0x10004, 0x20010000, 0x20010004, 0x200, 0x204, 0x20000200, 0x20000204, 0x10200, 0x10204, 0x20010200, 0x20010204); - $pc2bytes1 = array(0, 0x1, 0x100000, 0x100001, 0x4000000, 0x4000001, 0x4100000, 0x4100001, 0x100, 0x101, 0x100100, 0x100101, 0x4000100, 0x4000101, 0x4100100, 0x4100101); - $pc2bytes2 = array(0, 0x8, 0x800, 0x808, 0x1000000, 0x1000008, 0x1000800, 0x1000808, 0, 0x8, 0x800, 0x808, 0x1000000, 0x1000008, 0x1000800, 0x1000808); - $pc2bytes3 = array(0, 0x200000, 0x8000000, 0x8200000, 0x2000, 0x202000, 0x8002000, 0x8202000, 0x20000, 0x220000, 0x8020000, 0x8220000, 0x22000, 0x222000, 0x8022000, 0x8222000); - $pc2bytes4 = array(0, 0x40000, 0x10, 0x40010, 0, 0x40000, 0x10, 0x40010, 0x1000, 0x41000, 0x1010, 0x41010, 0x1000, 0x41000, 0x1010, 0x41010); - $pc2bytes5 = array(0, 0x400, 0x20, 0x420, 0, 0x400, 0x20, 0x420, 0x2000000, 0x2000400, 0x2000020, 0x2000420, 0x2000000, 0x2000400, 0x2000020, 0x2000420); - $pc2bytes6 = array(0, 0x10000000, 0x80000, 0x10080000, 0x2, 0x10000002, 0x80002, 0x10080002, 0, 0x10000000, 0x80000, 0x10080000, 0x2, 0x10000002, 0x80002, 0x10080002); - $pc2bytes7 = array(0, 0x10000, 0x800, 0x10800, 0x20000000, 0x20010000, 0x20000800, 0x20010800, 0x20000, 0x30000, 0x20800, 0x30800, 0x20020000, 0x20030000, 0x20020800, 0x20030800); - $pc2bytes8 = array(0, 0x40000, 0, 0x40000, 0x2, 0x40002, 0x2, 0x40002, 0x2000000, 0x2040000, 0x2000000, 0x2040000, 0x2000002, 0x2040002, 0x2000002, 0x2040002); - $pc2bytes9 = array(0, 0x10000000, 0x8, 0x10000008, 0, 0x10000000, 0x8, 0x10000008, 0x400, 0x10000400, 0x408, 0x10000408, 0x400, 0x10000400, 0x408, 0x10000408); - $pc2bytes10 = array(0, 0x20, 0, 0x20, 0x100000, 0x100020, 0x100000, 0x100020, 0x2000, 0x2020, 0x2000, 0x2020, 0x102000, 0x102020, 0x102000, 0x102020); - $pc2bytes11 = array(0, 0x1000000, 0x200, 0x1000200, 0x200000, 0x1200000, 0x200200, 0x1200200, 0x4000000, 0x5000000, 0x4000200, 0x5000200, 0x4200000, 0x5200000, 0x4200200, 0x5200200); - $pc2bytes12 = array(0, 0x1000, 0x8000000, 0x8001000, 0x80000, 0x81000, 0x8080000, 0x8081000, 0x10, 0x1010, 0x8000010, 0x8001010, 0x80010, 0x81010, 0x8080010, 0x8081010); - $pc2bytes13 = array(0, 0x4, 0x100, 0x104, 0, 0x4, 0x100, 0x104, 0x1, 0x5, 0x101, 0x105, 0x1, 0x5, 0x101, 0x105); - $masks = array(4294967295, 2147483647, 1073741823, 536870911, 268435455, 134217727, 67108863, 33554431, 16777215, 8388607, 4194303, 2097151, 1048575, 524287, 262143, 131071, 65535, 32767, 16383, 8191, 4095, 2047, 1023, 511, 255, 127, 63, 31, 15, 7, 3, 1, 0); - - //how many iterations (1 for des, 3 for triple des) - $iterations = ((strlen($key) > 8) ? 3 : 1); //changed by Paul 16/6/2007 to use Triple DES for 9+ byte keys - //stores the return keys - $keys = array(); // size = 32 * iterations but you don't specify this in php - //now define the left shifts which need to be done - $shifts = array(0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0); - //other variables - $m = 0; - $n = 0; - - for ($j = 0; $j < $iterations; $j++) { //either 1 or 3 iterations - //$left = (ord($key{$m++}) << 24) | (ord($key{$m++}) << 16) | (ord($key{$m++}) << 8) | ord($key{$m++}); - $v = (isset($key{$m})) ? $key{$m} : ''; - $left = (ord($v) << 24); - $m++; - $v = (isset($key{$m})) ? $key{$m} : ''; - $left |= (ord($v) << 16); - $m++; - $v = (isset($key{$m})) ? $key{$m} : ''; - $left |= (ord($v) << 8); - $m++; - $v = (isset($key{$m})) ? $key{$m} : ''; - $left |= ord($v); - $m++; - - //$right = (ord($key{$m++}) << 24) | (ord($key{$m++}) << 16) | (ord($key{$m++}) << 8) | ord($key{$m++}); - $v = (isset($key{$m})) ? $key{$m} : ''; - $right = (ord($v) << 24); - $m++; - $v = (isset($key{$m})) ? $key{$m} : ''; - $right |= (ord($v) << 16); - $m++; - $v = (isset($key{$m})) ? $key{$m} : ''; - $right |= (ord($v) << 8); - $m++; - $v = (isset($key{$m})) ? $key{$m} : ''; - $right |= ord($v); - $m++; - - $temp = (($left >> 4 & $masks[4]) ^ $right) & 0x0f0f0f0f; - $right ^= $temp; - $left ^= ($temp << 4); - $temp = (($right >> 16 & $masks[16]) ^ $left) & 0x0000ffff; - $left ^= $temp; - $right ^= ($temp << 16); - $temp = (($left >> 2 & $masks[2]) ^ $right) & 0x33333333; - $right ^= $temp; - $left ^= ($temp << 2); - $temp = (($right >> 16 & $masks[16]) ^ $left) & 0x0000ffff; - $left ^= $temp; - $right ^= ($temp << 16); - $temp = (($left >> 1 & $masks[1]) ^ $right) & 0x55555555; - $right ^= $temp; - $left ^= ($temp << 1); - $temp = (($right >> 8 & $masks[8]) ^ $left) & 0x00ff00ff; - $left ^= $temp; - $right ^= ($temp << 8); - $temp = (($left >> 1 & $masks[1]) ^ $right) & 0x55555555; - $right ^= $temp; - $left ^= ($temp << 1); - - //the right side needs to be shifted and to get the last four bits of the left side - $temp = ($left << 8) | (($right >> 20 & $masks[20]) & 0x000000f0); - //left needs to be put upside down - $left = ($right << 24) | (($right << 8) & 0xff0000) | (($right >> 8 & $masks[8]) & 0xff00) | (($right >> 24 & $masks[24]) & 0xf0); - $right = $temp; - - //now go through and perform these shifts on the left and right keys - for ($i = 0; $i < count($shifts); $i++) { - //shift the keys either one or two bits to the left - if ($shifts[$i] > 0) { - $left = (($left << 2) | ($left >> 26 & $masks[26])); - $right = (($right << 2) | ($right >> 26 & $masks[26])); - } else { - $left = (($left << 1) | ($left >> 27 & $masks[27])); - $right = (($right << 1) | ($right >> 27 & $masks[27])); - } - $left = $left & -0xf; - $right = $right & -0xf; - - //now apply PC-2, in such a way that E is easier when encrypting or decrypting - //this conversion will look like PC-2 except only the last 6 bits of each byte are used - //rather than 48 consecutive bits and the order of lines will be according to - //how the S selection functions will be applied: S2, S4, S6, S8, S1, S3, S5, S7 - $lefttemp = $pc2bytes0[$left >> 28 & $masks[28]] | $pc2bytes1[($left >> 24 & $masks[24]) & 0xf] | $pc2bytes2[($left >> 20 & $masks[20]) & 0xf] | $pc2bytes3[($left >> 16 & $masks[16]) & 0xf] | $pc2bytes4[($left >> 12 & $masks[12]) & 0xf] | $pc2bytes5[($left >> 8 & $masks[8]) & 0xf] | $pc2bytes6[($left >> 4 & $masks[4]) & 0xf]; - $righttemp = $pc2bytes7[$right >> 28 & $masks[28]] | $pc2bytes8[($right >> 24 & $masks[24]) & 0xf] | $pc2bytes9[($right >> 20 & $masks[20]) & 0xf] | $pc2bytes10[($right >> 16 & $masks[16]) & 0xf] | $pc2bytes11[($right >> 12 & $masks[12]) & 0xf] | $pc2bytes12[($right >> 8 & $masks[8]) & 0xf] | $pc2bytes13[($right >> 4 & $masks[4]) & 0xf]; - $temp = (($righttemp >> 16 & $masks[16]) ^ $lefttemp) & 0x0000ffff; - $keys[$n++] = $lefttemp ^ $temp; - $keys[$n++] = $righttemp ^ ($temp << 16); - } - } //for each iterations - //return the keys we've created - return $keys; -} - -//end of des_createKeys -////////////////////////////// TEST ////////////////////////////// -function stringToHex($s) { - $r = "0x"; - $hexes = array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"); - for ($i = 0; $i < strlen($s); $i++) { - $r .= ($hexes [(ord($s{$i}) >> 4)] . $hexes [(ord($s{$i}) & 0xf)]); - } - return $r; -} - -function hexToString($h) { - $r = ""; - for ($i = (substr($h, 0, 2) == "0x") ? 2 : 0; $i < strlen($h); $i+=2) { - $r .= chr(base_convert(substr($h, $i, 2), 16, 10)); - } - return $r; -} - -//Exemple d'utilisation -/* echo "<PRE>"; - $key = "this is a 24 byte key !!"; - $message = "This is a test message"; - $ciphertext = des ($key, $message, 1, 0, null); - echo "DES Test Encrypted: " . stringToHex ($ciphertext); - $recovered_message = des ($key, $ciphertext, 0, 0, null); - echo "\n"; - echo "DES Test Decrypted: " . $recovered_message; */ -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/vmlib/dateUtil.class.inc b/src/vitis/vas/rest/class/vmlib/dateUtil.class.inc deleted file mode 100755 index 1eec84c0..00000000 --- a/src/vitis/vas/rest/class/vmlib/dateUtil.class.inc +++ /dev/null @@ -1,260 +0,0 @@ -<?php - -/** - * \file dateUtil.class.inc - * \brief dateUtil.class.inc \n \n Ce fichier contient la classe php dateOp. - * - * Cette classe � �t� �labor�e par Dorian Constant. - * Fonctions de calcul de dates : addition, soustraction et comparaison. - * - * \author Alf05. - */ - -/** - * \class dateOp - * \brief dateOp Class \n \n Cette classe totalement g�n�rique permet de faire des calcules sur les dates. - * - * Cette classe � �t� �labor�e par Dorian Constant. Tous les param�tres li�s � la cr�ation de formulaires - * Fonctions de calcul de dates : addition, soustraction et comparaison. - * - * Exemples : - * $madate=new dateOp("18/06/2008 12:00","jj/mm/aaaa hh:ii"); - * ou - * $madate=new dateOp("18.6.08 12:00","jj.m.aa h:ii"); - * - * Addition et soustraction - * $madate->AjouteJours(5); - * $madate->AjouteJours(-9); - * $madate->AjouteMois(5); - * $madate->AjouteMois(-9); - * $madate->AjouteAnnees(5); - * $madate->AjouteAnnees(-9); - * $madate->AjouteHeures(5); - * $madate->AjouteHeures(-9); - * $madate->AjouteMinutes(5); - * $madate->AjouteMinutes(-9); - * $madate->AjouteSecondes(5); - * $madate->AjouteSecondes(-9); - * - * Comparaison - * $difference=$madate->DiffenrenceEntreDate('11/04/2000','jj/mm/aaaa'); - * - * Affichage - * echo $madate->GetDate('h:i:s jj/mm/aaaa'); // r�sultat = "12:30:00 18/06/2008" - * - * D�finition du format de date - * 'j' repr�sente les jours ('jj' pour avoir le zero initial) - * 'm' repr�sente les mois ('mm' pour avoir le zero initial) - * 'aa' repr�sente les ann�es ('aaaa' pour avoir l'ann�e sur 4 chiffres) - * 'h' repr�sente les heures ('hh' pour avoir le zero initial) - * 'ii' repr�sente les minutes - * 'ss' repr�sente les secondes - * - * \author Alf05. - */ -class dateOp { - - /** - * Constructeur. - * \param $dat Date. - * \param $format Format de la date. - * \return Vrai. - - */ - /* - * Variable globale stockant le nom de dossier lib. - */ - var $sFolderLib = "vmlib"; - var $lang; - - function __construct($dat, $format = "jj/mm/aaaa hh:ii:ss", $lang = "fr") { - $this->lang = $lang; - loadLang($this->sFolderLib, $this->lang); - $this->errno = array(); - - if (strlen($dat) != strlen($format)) { - $this->_error(ERROR_DATE_FORMAT_INCOMPATIBLE); - return false; - } - - $this->dat['origine'] = $dat; - $this->format = strtolower($format); - return $this->_ExplodeDate($this->dat, $this->format); - } - - /** - * Ajoute un ou plusieurs jours . - * \param $nb nombre de jours - * \return Vrai. - */ - function AjouteJours($nb) { - $this->dat['jj']+=floatval($nb); - return true; - } - - /** - * Ajoute un ou plusieurs mois. - * \param $nb nombre de mois - * \return Vrai. - */ - function AjouteMois($nb) { - $this->dat['mm']+=floatval($nb); - return true; - } - - /** - * Ajoute une ou plusieurs ann�es. - * \param $nb nombre d'ann�e - * \return Vrai. - */ - function AjouteAnnees($nb) { - $this->dat['aaaa']+=floatval($nb); - return true; - } - - /** - * Ajoute un ou plusieurs heures. - * \param $nb nombre d'heures - * \return Vrai. - */ - function AjouteHeures($nb) { - $this->dat['hh']+=floatval($nb); - return true; - } - - /** - * Ajoute un ou plusieurs minutes. - * \param $nb nombre de minutes - * \return Vrai. - */ - function AjouteMinutes($nb) { - $this->dat['ii']+=floatval($nb); - return true; - } - - /** - * Ajoute une ou plusieurs secondes. - * \param $nb nombre de secondes - * \return Vrai. - */ - function AjouteSecondes($nb) { - $this->dat['ss']+=floatval($nb); - return true; - } - - /** - * Calcule la difference avec une date pass� en param�tre. - * \param $dat Date. - * \param $format Format de la date. - * \return Un tableau. - */ - function DiffenrenceEntreDate($dat, $format = "jj/mm/aaaa hh:ii:ss") { - if (strlen($dat) != strlen($format)) { - $this->_error(ERROR_DATE_FORMAT_INCOMPATIBLE); - return false; - } - $this->dat2['origine'] = $dat; - $this->format2 = strtolower($format); - $this->_ExplodeDate($this->dat2, $this->format2); - $d1 = mktime($this->dat['hh'], $this->dat['ii'], $this->dat['ss'], $this->dat['mm'], $this->dat['jj'], $this->dat['aaaa']); - $d2 = mktime($this->dat2['hh'], $this->dat2['ii'], $this->dat2['ss'], $this->dat2['mm'], $this->dat2['jj'], $this->dat2['aaaa']); - - if ($d2 > $d1) - $d = $d2 - $d1; - else - $d = $d1 - $d2; - - return array("ans" => date('Y', $d) - 1970, "mois" => date('m', $d) - 1, "jours" => date('d', $d) - 1, "joursTotal" => $d / 60 / 60 / 24, "heures" => date("G", $d) - 1, "minutes" => date("i", $d), "secondes" => date("s", $d)); - } - - /** - * Retourne la date dans un format pr�cis. - * \param $format Format de la date � renvoyer. - * \return Un tableau. - */ - function GetDate($format = "jj/mm/aaaa") { - $format = str_replace(array('jj', 'j', 'm', 'nn', 'aaaa', 'aa', 'hh', 'h', 'ii', 'ss'), array('d', 'D', 'n', 'm', 'Y', 'y', 'H', 'G', 'i', 's'), $format); - // - if (intval($this->dat['aaaa']) <= 1901 || intval($this->dat['aaaa']) >= 2038) { - $sDay = $this->dat['jj']; - $sMonth = $this->dat['mm']; - $sYear = $this->dat['aaaa']; - if (intval($sDay) <= 9) - $sDay = "0" . $sDay; - if (intval($sMonth) <= 9) - $sMonth = "0" . $sMonth; - if ($format == "d/m/Y") { - return $sDay . "/" . $sMonth . "/" . $sYear; - } - // TODO : Si besoin, g�rer tous les autres formats de dates possibles - } - // - return date($format, mktime($this->dat['hh'], $this->dat['ii'], $this->dat['ss'], $this->dat['mm'], $this->dat['jj'], $this->dat['aaaa'])); - } - - /** - * V�rifie si la date pass� en param�tre correspond au format pass� en param�tre. - * \param $dat Date. - * \param $format Format de la date. - * \return Vrai. - * \private - */ - function _ExplodeDate(&$dat, $format) { - $j[0] = 2; - if (($j[1] = strpos($format, 'jj')) === false) { - $j[0] = 1; - if (($j[1] = strpos($format, 'j')) === false) - $this->_error($format . " : " . ERROR_DAY_NOT_FOUND); - } - $m[0] = 2; - if (($m[1] = strpos($format, 'mm')) === false) - $m[0] = 1; - if (($m[1] = strpos($format, 'm')) === false) - $this->_error($format . " : " . ERROR_MONTH_NOT_FOUND); - $a[0] = 4; - if (($a[1] = strpos($format, 'aaaa')) === false) { - //cherche pour un aa au lieu de aaaa - $a[0] = 2; - if (($a[1] = strpos($format, 'aa')) === false) - $this->_error($format . " : " . ERROR_YEAR_NOT_FOUND); - } - $h[0] = 2; - if (($h[1] = strpos($format, 'hh')) === false) - $h[0] = 1; - if (($h[1] = strpos($format, 'h')) === false) - $this->_error($format . " : " . ERROR_HOUR_NOT_FOUND); - $i[0] = 2; - if (($i[1] = strpos($format, 'ii')) === false) - $i[0] = 1; - if (($i[1] = strpos($format, 'i')) === false) - $this->_error($format . " : " . ERROR_MINUTE_NOT_FOUND); - $s[0] = 2; - if (($s[1] = strpos($format, 'ss')) === false) - $s[0] = 1; - if (($s[1] = strpos($format, 's')) === false) - $this->_error($format . " : " . ERROR_SECOND_NOT_FOUND); - $dat['jj'] = ($j[1] !== false) ? floatval(substr($dat['origine'], $j[1], $j[0])) : 1; - $dat['mm'] = ($m[1] !== false) ? floatval(substr($dat['origine'], $m[1], $m[0])) : 1; - $dat['aaaa'] = ($a[1] !== false) ? floatval(substr($dat['origine'], $a[1], $a[0])) : 1970; - if ($a[0] == 2) - $dat['aaaa'] = floatval(substr(date('Y'), 0, 2) . $dat['aaaa']); - $dat['hh'] = ($h[1] !== false) ? floatval(substr($dat['origine'], $h[1], $h[0])) : 0; - $dat['ii'] = ($i[1] !== false) ? floatval(substr($dat['origine'], $i[1], $i[0])) : 0; - $dat['ss'] = ($s[1] !== false) ? floatval(substr($dat['origine'], $s[1], $s[0])) : 0; - return true; - } - - /** - * Stocke le message d'erreur. - * \param $str. - * \return Vrai. - * \private - */ - function _error($str) { - $this->errno[] = $str; - return true; - } - -} - -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/vmlib/dbUtil.inc b/src/vitis/vas/rest/class/vmlib/dbUtil.inc deleted file mode 100755 index fce87245..00000000 --- a/src/vitis/vas/rest/class/vmlib/dbUtil.inc +++ /dev/null @@ -1,400 +0,0 @@ -<?php - -/* - * - * dbUtil.inc : fonction de r�cup�ration de connexion BD d'apr�s les param�tres de session - * - */ - -/* - * Variable globale stockant le nom de dossier lib. - */ -require_once __DIR__ . '/error.inc'; -require_once __DIR__ .'/../Ldap.class.inc'; -$sFolderLib = "vmlib"; - -/** - DEPRECATED utiliser la fonction codePass2 - * Cette m�thode code une chaine. - * \param $sPass Chaine � crypt�e. - * \return la chaine cod�e. - */ -/* function codepass($sPass) { - $sCode .= chr(97+strlen($sPass)); - for($i = 0; $i < 20; $i++){ - if ($i < strlen($sPass)){ - $iChar = ord($sPass[$i]); - $sCode .= sprintf("%'04s", $iChar); - }else{ - $sCode .= sprintf("%'04s", rand(0,99)); - } - } - return $sCode; - } */ - -/** - * Cette m�thode code une chaine. - * \param $sKey Cl� de cryptage. - * \param $sCode Chaine � crypt�e. - * \return la chaine cod�e. - */ -function codePass2($sKey, $sCode) { - require_once(__DIR__ . "/cryptUtil.inc"); - $sCode = stringToHex(trim(des(rtrim($sKey), rtrim($sCode), 1, 0, null))); - return $sCode; -} - -/** - DEPRECATED utiliser la fonction decodePass2 - * Cette m�thode d�code une chaine. - * \param $sCode Chaine � traduire. - * \return la chaine d�cod�e. - */ -function decodepass($sCode) { - require_once(__DIR__ . "/cryptUtil.inc"); - $sCode = trim(des(rtrim($_SESSION["ses_Login"]), hexToString(rtrim($sCode)), 0, 0, null)); - return $sCode; -} - -/** - * Cette m�thode d�code une chaine. - * \param $sKey Cl� de cryptage. - * \param $sCode Chaine � traduire. - * \return la chaine d�cod�e. - */ -function decodePass2($sKey, $sCode) { - require_once(__DIR__ . "/cryptUtil.inc"); - $sCode = trim(des(rtrim($sKey), hexToString(rtrim($sCode)), 0, 0, null)); - return $sCode; -} - -/** - * Cette m�thode g�n�re une connexion � la base de donn�es. - * \param $sPageEncoding Encodage de la base de donn�e. - * \return un objet BD. - */ -function connectFromSessionV2($sPageEncoding = "LATIN1") { - global $properties, $sFolderLib; - require_once(__DIR__ . "/cryptUtil.inc"); - loadLang($sFolderLib, $properties["language"], $sFolderLib . "/"); - $oBd = new Vm($_SESSION["ses_Login"], utf8_encode(trim(des(rtrim(utf8_decode($_SESSION["ses_Login"])), hexToString(rtrim($_SESSION["ses_Password"])), 0, 0, null))), $properties["database"], $properties["server"], $properties["port"], $properties["sgbd"], $sPageEncoding); - if ($oBd->erreurRencontree) { - writeToErrorLog(ERROR_CONNECTION_PROBLEM); - writeToErrorLog($oBd->getBDMessage()); - } - return $oBd; -} - -/** - * Cette m�thode g�n�re une connexion � la base de donn�es. - * \param $sPageEncoding Encodage de la base de donn�e. - * \return un objet BD. - */ -function connectFromSession($sPageEncoding = "LATIN1") { - global $properties, $sFolderLib; - require_once(__DIR__ . "/cryptUtil.inc"); - $sPassword = decodePass2($_SESSION["ses_Login"], $_SESSION["ses_Password"]); - loadLang($sFolderLib, $properties["language"], $sFolderLib . "/"); - $oBd = new Vm($_SESSION["ses_Login"], $sPassword, $properties["database"], $properties["server"], $properties["port"], $properties["sgbd"], $sPageEncoding); - if ($oBd->erreurRencontree) { - writeToErrorLog(ERROR_CONNECTION_PROBLEM); - writeToErrorLog($oBd->getBDMessage()); - } - return $oBd; -} - -/** - * Cette m�thode g�n�re une connexion � une base de donn�es pass�e en param�tre. - * \param $sPageEncoding Encodage de la base de donn�e. - * \param $sDatabase Nom de la base de donn�es. - * \return un objet BD. - */ -function connectFromSessionOtherDatabase($sDatabase, $sPageEncoding = "LATIN1") { - global $properties, $sFolderLib; - require_once("vmlib/cryptUtil.inc"); - $sPassword = decodePass2($_SESSION["ses_Login"], $_SESSION["ses_Password"]); - loadLang($sFolderLib, $properties["language"], $sFolderLib . "/"); - $oBd = new Vm($_SESSION["ses_Login"], $sPassword, $sDatabase, $properties["server"], $properties["port"], $properties["sgbd"], $sPageEncoding); - if ($oBd->erreurRencontree) { - writeToErrorLog(ERROR_CONNECTION_PROBLEM); - writeToErrorLog($oBd->getBDMessage()); - } - return $oBd; -} - -/** - * Cette m�thode g�n�re une connexion � une base de donn�es pass�e en param�tre. - * \param $sPageEncoding Encodage de la base de donn�e. - * \param $sDatabase Nom de la base de donn�es. - * \return un objet BD. - */ -function connectFromSessionOtherDatabaseV2($sDatabase, $sPageEncoding = "LATIN1") { - global $properties, $sFolderLib; - require_once(__DIR__ . "/cryptUtil.inc"); - loadLang($sFolderLib, $properties["language"], $sFolderLib . "/"); - $oBd = new Vm($_SESSION["ses_Login"], utf8_encode(trim(des(rtrim(utf8_decode($_SESSION["ses_Login"])), hexToString(rtrim($_SESSION["ses_Password"])), 0, 0, null))), $sDatabase, $properties["server"], $properties["port"], $properties["sgbd"], $sPageEncoding); - if ($oBd->erreurRencontree) { - writeToErrorLog(ERROR_CONNECTION_PROBLEM); - writeToErrorLog($oBd->getBDMessage()); - } - return $oBd; -} - -/** - * ? - */ -function getUserGroupsEngines($sSessLogin, $oBd, $bRights, $sSessPassword = "") { - global $properties; - $sSql = "SELECT domain_id, user_id FROM " . $properties["schema_framework"] . ".user WHERE lower(login) = '" . utf8_encode(strToLower(utf8_decode($sSessLogin))) . "'"; - $oPDOresult = @$oBd->execute($sSql); - $sListGroupId = ""; - $aFields = $oBd->ligneSuivante($oPDOresult); - $oPDOresult = $oBd->fermeResultat(); - if ($aFields['domain_id'] == "" || $bRights) { - $sSql = "SELECT group_id FROM " . $properties["schema_framework"] . ".user_group WHERE user_id = " . $aFields['user_id']; - $oPDOresult = @$oBd->execute($sSql); - - while ($aLigne = $oBd->ligneSuivante($oPDOresult)) { - if ($sListGroupId == "") { - $sListGroupId = $aLigne["group_id"]; - } else { - $sListGroupId .= ", " . $aLigne["group_id"]; - } - } - $oPDOresult = $oBd->fermeResultat(); - } - if ($aFields['domain_id'] != "") { - $sSql = "SELECT * FROM " . $properties["schema_framework"] . ".domain WHERE domain.domain_id='" . $aFields['domain_id'] . "'"; - $resultat = $oBd->execute($sSql); - $aResultLdap = $oBd->objetSuivant($resultat); - $resultat = $oBd->fermeResultat(); - if ($aResultLdap) { - if ($aResultLdap->verify_rights == 1) { - // Informations de l'AD stock� dans un tableau - if ($sSessPassword == "") { - $sSessLogin2 = $aResultLdap->login; - $sSessPassword = $aResultLdap->password; - } else { - $sSessLogin2 = $sSessLogin; - $sSessPassword = $sSessPassword; - } - if ($_REQUEST['object'] == "person") { - $aLdap = array(sIdLdap => $aResultLdap->domain_id, sLdapName => $aResultLdap->domain, sType => $aResultLdap->type, sLoginLdap => utf8_encode(strToLower(utf8_decode($sSessLogin2))), sPwdLdap => $sSessPassword, sServer => $aResultLdap->server, sPort => $aResultLdap->port, sDnResearch => $aResultLdap->dn_search_user); - } else { - $aLdap = array(sIdLdap => $aResultLdap->domain_id, sLdapName => $aResultLdap->domain, sType => $aResultLdap->type, sLoginLdap => utf8_encode(strToLower(utf8_decode($sSessLogin2))), sPwdLdap => $sSessPassword, sServer => $aResultLdap->server, sPort => $aResultLdap->port, sDnResearch => $aResultLdap->dn_search_group); - } - $oLdap = new Ldap(serialize($aLdap)); - $sLdapConn = $oLdap->connectLdap(); - if (ldap_error($sLdapConn) == "Success") { - $aGroups = $oLdap->getGroup($sLdapConn, utf8_encode(strToLower(utf8_decode($sSessLogin)))); - $sListGroupName = ""; - foreach ($aGroups as $iGroupId) { - if ($sListGroupName == "") { - $sListGroupName = "'" . str_replace("'", "''", utf8_encode(strToLower(utf8_decode($iGroupId)))) . "'"; - } else { - $sListGroupName .= ", '" . str_replace("'", "''", utf8_encode(strToLower(utf8_decode($iGroupId)))) . "'"; - } - } - $sSql = "SELECT group_id FROM " . $properties["schema_framework"] . ".group WHERE LOWER(name) IN (" . $sListGroupName . ")"; - $oPDOresult = @$oBd->execute($sSql); - while ($aLigne = $oBd->ligneSuivante($oPDOresult)) { - if ($sListGroupId == "") { - $sListGroupId = $aLigne["group_id"]; - } else { - $sListGroupId .= ", " . $aLigne["group_id"]; - } - } - $oPDOresult = $oBd->fermeResultat(); - } else { - if (ldap_error($sLdapConn) == "Invalid credentials") - $sErrorMessage = ERROR_0033; - else if (ldap_error($sLdapConn) == "Can't contact LDAP server") - $sErrorMessage = TEXT_ERROR_CONTACT_DOMAIN; - else - $sErrorMessage = ldap_error($sLdapConn); - writeToErrorLog($sErrorMessage); - $aFormContent = $_REQUEST; - } - }else { - $sListGroupId = "0"; - } - } - } - if ($sListGroupId == "") { - $sListGroupId = "0"; - } - return $sListGroupId; -} - -/** - * ? - */ -function getUserGroups($sSessLogin, $oBd, $sSessPassword = "", $bRights, $sSchema) { - - $sSql = "SELECT domain_id, user_id FROM " . $sSchema . ".v_user WHERE lower(login) = '" . utf8_encode(strToLower(utf8_decode($sSessLogin))) . "'"; - $oPDOresult = @$oBd->execute($sSql); - - $aFields = $oBd->ligneSuivante($oPDOresult); - $oPDOresult = $oBd->fermeResultat(); - if ($aFields['domain_id'] == "" || $bRights) { - $sSql = "SELECT group_id FROM " . $sSchema . ".v_user_group WHERE user_id = " . $aFields['user_id']; - $oPDOresult = @$oBd->execute($sSql); - $sListGroupId = ""; - while ($aLigne = $oBd->ligneSuivante($oPDOresult)) { - if ($sListGroupId == "") { - $sListGroupId = $aLigne["group_id"]; - } else { - $sListGroupId .= ", " . $aLigne["group_id"]; - } - } - $oPDOresult = $oBd->fermeResultat(); - if ($sListGroupId == "") { - $sListGroupId = "0"; - } - } - if ($aFields['domain_id'] != "") { - $sSql = 'SELECT * FROM ' . $sSchema . '.domain WHERE domain.domain_id=\'' . $aFields['domain_id'] . '\''; - $resultat = $oBd->execute($sSql); - $aResultLdap = $oBd->objetSuivant($resultat); - $resultat = $oBd->fermeResultat(); - if ($aResultLdap) { - // Informations de l'AD stock� dans un tableau - if ($sSessPassword == "") { - $sSessLogin2 = $aResultLdap->login; - $sSessPassword = $aResultLdap->password; - } else { - $sSessLogin2 = $sSessLogin; - $sSessPassword = $sSessPassword; - } - if ($_REQUEST['object'] == "person") { - $aLdap = array(sIdLdap => $aResultLdap->domain_id, sLdapName => $aResultLdap->domain, sLoginLdap => utf8_encode(strToLower(utf8_decode($sSessLogin2))), sPwdLdap => $sSessPassword, sServer => $aResultLdap->server, sPort => $aResultLdap->port, sDnResearch => $aResultLdap->dn_search_user, sType => $aResultLdap->type); - } else { - $aLdap = array(sIdLdap => $aResultLdap->domain_id, sLdapName => $aResultLdap->domain, sLoginLdap => utf8_encode(strToLower(utf8_decode($sSessLogin2))), sPwdLdap => $sSessPassword, sServer => $aResultLdap->server, sPort => $aResultLdap->port, sDnResearch => $aResultLdap->dn_search_group, sType => $aResultLdap->type); - } - $oLdap = new Ldap(serialize($aLdap)); - $sLdapConn = $oLdap->connectLdap(); - if (ldap_error($sLdapConn) == "Success") { - $aGroups = $oLdap->getGroup($sLdapConn, $sSessLogin); - $sListGroupName = ""; - foreach ($aGroups as $iGroupId) { - if ($sListGroupName == "") { - $sListGroupName = "'" . str_replace("'", "''", utf8_encode(strToLower(utf8_decode($iGroupId)))) . "'"; - } else { - $sListGroupName .= ", '" . str_replace("'", "''", utf8_encode(strToLower(utf8_decode($iGroupId)))) . "'"; - } - } - $sSql = "SELECT group_id FROM " . $sSchema . ".group WHERE LOWER(name) IN (" . $sListGroupName . ")"; - $oPDOresult = @$oBd->execute($sSql); - - while ($aLigne = $oBd->ligneSuivante($oPDOresult)) { - if ($sListGroupId == "") { - $sListGroupId = $aLigne["group_id"]; - } else { - $sListGroupId .= ", " . $aLigne["group_id"]; - } - } - $oPDOresult = $oBd->fermeResultat(); - } else { - if (ldap_error($sLdapConn) == "Invalid credentials") - $sErrorMessage = ERROR_0033; - else if (ldap_error($sLdapConn) == "Can't contact LDAP server") - $sErrorMessage = TEXT_ERROR_CONTACT_DOMAIN; - else - $sErrorMessage = ldap_error($sLdapConn); - writeToErrorLog($sErrorMessage); - $aFormContent = $_REQUEST; - } - } - } - if ($sListGroupId == "") { - $sListGroupId = "0"; - } - return $sListGroupId; -} - -function getUserGroups2($sSessLogin, $oBd, $bRights, $sSchema) { - $sListGroupIdBd = ""; - $sListGroupIdAd = ""; - - $sSql = "SELECT domain_id, user_id FROM " . $sSchema . ".v_user WHERE lower(login) = '" . utf8_encode(strToLower(utf8_decode($sSessLogin))) . "'"; - $oPDOresult = $oBd->execute($sSql); - if ($oBd->erreurRencontree) { - writeToErrorLog($oBd->getBDMessage()); - } else { - $aFields = $oBd->ligneSuivante($oPDOresult); - - $oPDOresult = $oBd->fermeResultat(); - if ($aFields['domain_id'] == "" || $bRights) { - $sSql = "SELECT group_id FROM " . $sSchema . ".v_user_group WHERE user_id = " . $aFields['user_id']; - $oPDOresult = @$oBd->execute($sSql); - while ($aLigne = $oBd->ligneSuivante($oPDOresult)) { - if ($sListGroupIdBd == "") { - $sListGroupIdBd = $aLigne["group_id"]; - } else { - $sListGroupIdBd .= ", " . $aLigne["group_id"]; - } - } - $oPDOresult = $oBd->fermeResultat(); - } - if ($aFields['domain_id'] != "") { - $sSql = 'SELECT * FROM ' . $sSchema . '.domain WHERE domain.domain_id=\'' . $aFields['domain_id'] . '\''; - $resultat = $oBd->execute($sSql); - $aResultLdap = $oBd->objetSuivant($resultat); - $resultat = $oBd->fermeResultat(); - if ($aResultLdap) { - // Informations de l'AD stock� dans un tableau - if ($sSessPassword == "") { - $sSessLogin2 = $aResultLdap->login; - //$sSessPassword = stringToHex (des ($sSessLogin2, $aResultLdap->password, 1, 0, null)); - $sSessPassword = $aResultLdap->password; - //writeToErrorLog($aResultLdap->password); - } else { - $sSessLogin2 = $_SESSION['']; - $sSessPassword = utf8_encode(trim(des(rtrim(utf8_decode($_SESSION[''])), hexToString(rtrim($_SESSION[''])), 0, 0, null))); - } - // if ($_REQUEST['object'] == "person"){ - $aLdap = array(sIdLdap => $aResultLdap->domain_id, sLdapName => $aResultLdap->domain, sLoginLdap => utf8_encode(strToLower(utf8_decode($sSessLogin2))), sPwdLdap => $sSessPassword, sServer => $aResultLdap->server, sPort => $aResultLdap->port, sDnResearch => $aResultLdap->dn_search_user, sType => $aResultLdap->type); - // }else{ - // $aLdap = array(sIdLdap=>$aResultLdap->domain_id,sLoginLdap=>strtolower($sSessLogin2),sPwdLdap=> $sSessPassword,sServer=>$aResultLdap->server,sPort=>$aResultLdap->port,sDnResearch=>$aResultLdap->dn_search_group); - // } - $oLdap = new Ldap(serialize($aLdap)); - $sLdapConn = $oLdap->connectLdap(); - if (ldap_error($sLdapConn) == "Success") { - $aGroups = $oLdap->getGroup($sLdapConn, utf8_encode(strToLower(utf8_decode($sSessLogin)))); - $sListGroupName = ""; - foreach ($aGroups as $iGroupId) { - if ($sListGroupName == "") { - $sListGroupName = "'" . utf8_encode(strToLower(utf8_decode($iGroupId))) . "'"; - } else { - $sListGroupName .= ", '" . utf8_encode(strToLower(utf8_decode($iGroupId))) . "'"; - } - } - $sSql = "SELECT name FROM " . $sSchema . ".group WHERE LOWER(name) IN (" . $sListGroupName . ")"; - $oPDOresult = @$oBd->execute($sSql); - $sListGroupIdAd = ""; - while ($aLigne = $oBd->ligneSuivante($oPDOresult)) { - if ($sListGroupIdAd == "") { - $sListGroupIdAd = $aLigne["name"]; - } else { - $sListGroupIdAd .= ", " . $aLigne["name"]; - } - } - $oPDOresult = $oBd->fermeResultat(); - } else { - if (ldap_error($sLdapConn) == "Invalid credentials") - $sErrorMessage = ERROR_0033; - else if (ldap_error($sLdapConn) == "Can't contact LDAP server") - $sErrorMessage = TEXT_ERROR_CONTACT_DOMAIN; - else - $sErrorMessage = ldap_error($sLdapConn); - writeToErrorLog($sErrorMessage); - $aFormContent = $_REQUEST; - } - } - } - } - $aGroupList = array("bd" => $sListGroupIdBd, "ad" => $sListGroupIdAd); - return $aGroupList; -} - -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/vmlib/error.inc b/src/vitis/vas/rest/class/vmlib/error.inc deleted file mode 100644 index 13db7b08..00000000 --- a/src/vitis/vas/rest/class/vmlib/error.inc +++ /dev/null @@ -1,70 +0,0 @@ -<?php - -// gtf.engines/engine.php -define('ERROR_0001', 'Impossible de récupérer les noms des moteurs GTF et FME'); - -// gtf_lib/DbClass.class.inc -define('ERROR_0002', 'The order creation has failed. -- '); -define('ERROR_0003', 'The order update [order_id] has failed. -- '); -define('ERROR_0004', 'The suppression order [order_id] has failed. -- '); - -// gtf_object/Ldap.class.inc -define('ERROR_0005', 'Could not connect to LDAP server.'); - -// gtf_object/Order.class.inc -define('ERROR_0006', "ATTENTION - Le tag du traitement n°[iOrderId] n'est associé à aucun moteur. Le tag default est utilisé pour définir le numéro de moteur."); -define('ERROR_0007', "ATTENTION - Le tag du traitement n'est associé à aucun moteur. Le tag default n'est pas non plus associé à un moteur. Parmi la liste des moteurs disponibles, le moteur n°[aGtfEngineList[0]] a été affecté à la demande de traitement n°[iOrderId]"); -define('ERROR_0008', "ERROR - Aucune méthode n'a permis d'affecté un moteur au traitement. le moteur n°1 a été affecté à la demande de traitement n°[iOrderId]."); -// define('ERROR_0026', 'ERROR - Parmi la liste des moteurs disponibles, le moteur n°[aGtfEngineList[0]] a été affecté à la demande de traitement n°[iOrderId]'); -// define('ERROR_0009', "ERROR - L'algorithme ne permet pas de retourner un numéro de moteur exploitable. Le numéro de moteur retourné n'est pas de type entier. Type de la valeur retournée par la méthode : "); -// define('ERROR_0010', "ERROR - Le numéro du moteur retourné par l'algorithme n'existe pas dans la liste des moteurs disponible dans GTF."); -define('ERROR_0011', "Erreur Le fichier [_FILES[sNomObjet][name]] n'est pas téléchargé sur le serveur"); -define('ERROR_0035', "Erreur de la suppression d'un processus d'une demande stoppée"); -define('ERROR_0036', "Erreur de la commande d'information d'un processus d'une demande stoppée"); -define('ERROR_0037', "Erreur pendant l'arrêt de la demande sur Fme Desktop."); -define('ERROR_0038', "Erreur pendant l'arrêt de la demande sur Fme Server."); - -// veremap/DownloadMaj.class.inc -define('ERROR_0012', "Unable to write file"); -define('ERROR_0013', 'Unable to download file'); -define('ERROR_0014', 'Error downloading binaries'); -define('ERROR_0015', "Une erreur s'est produite lors du telechargment de la mise à jour"); -define('ERROR_0016', 'Unable to unzip the file '); - -// veremap/FopTemplate.class.inc -define('ERROR_0017', 'Error Pdf generation'); -define('ERROR_0018', 'Command : '); -define('ERROR_0019', 'aCommand array '); -define('ERROR_0020', 'Erreur lors de la génération du Fichier Jpeg [sNameJpg] dans [sDirDestination]'); -define('ERROR_0021', 'Command : '); -define('ERROR_0022', 'aCommand array '); - -// vmlib\Email.class.inc -define('ERROR_0023', 'Failed sending email to the following address : '); - -// vmlib\EmailTemplate.class.inc -define('ERROR_0024', 'The e-mail template (id=[iEmailTemplateId]) does not exist...'); - -// gtf.engines\subscription.php -define('ERROR_0025', 'Error creating directory '); - -// configuration\getLicense.phtml -define('ERROR_0027', "Failed to send the mail to the following address : "); - -// configuration\properties.phtml -define('ERROR_0028', "Error writing file properties.inc"); -define('ERROR_0029', 'Le formulaire de properties passé en paramètre est vide!'); - -// forms\widget.phtml -define('ERROR_0030', 'invalid token.'); - -// workspace\importWorkspaces.phtml -define('ERROR_0031', 'Erreur lors de la copie du fichier FMW : '); -define('ERROR_0032', "Le fichier SubForm.class.inc du traitement [sLabelName] n'a pas été généré."); - -// vmlib\dbUtil.inc -define('ERROR_0033', 'Invalid credentials'); // -> TEXT_INVALID_CREDENTIALS - -// vitis/vitis.class.inc -define('ERROR_0034', 'Invalid filter'); -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/vmlib/lang_vmlib/en-lang.inc b/src/vitis/vas/rest/class/vmlib/lang_vmlib/en-lang.inc deleted file mode 100755 index 44a182f3..00000000 --- a/src/vitis/vas/rest/class/vmlib/lang_vmlib/en-lang.inc +++ /dev/null @@ -1,114 +0,0 @@ -<?php - -define('USER_LABEL', 'User: '); -define('ERROR_LABEL', '<br>Error: '); - -//logUtil -define('ERROR_IMPOSSIBLE_WRITE', 'Impossible to write in the file '); -define('ERROR_RIGHTS_ON_FILE', ': the application does not arrange rights in writing on the file'); -define('ERROR_WRITING_FILE', ': failure of the writing'); -define('ERROR_REQUEST_ERROR', 'SQL Error, more information in the application logs'); - -//BD.class -define('ERROR_INCORRECT_SGBD', 'The dbms is not correct.\n Connection to the database impossible.'); -define('ERROR_ACCESS_SERVER', 'Access to the server impossible for:'); -define('ERROR_CONNECT_SERVER', 'Connection to the server impossible\n'); -define('ERROR_SGBD_UNDEFINED', 'You have not specified the dbms.\n Connection to the database impossible.'); -define('ERROR_REQUEST_IMPOSSIBLE', 'Execution of the request impossible: '); -define('RETURN_BD_LABEL', 'The server return: '); -define('ATTRIBUT_POSITION_BD_LABEL', '"There is not attribute in order $position'); -define('UNKNOWN_BD_LABEL', 'Unknown'); - -//dateUtil -define('ERROR_DATE_FORMAT_INCOMPATIBLE', 'Format of date incompatible with supplied date'); -define('ERROR_DAY_NOT_FOUND', 'Days were not found... Days must be specified by \'jj\' or by \'j\' (ex: jj/mm/aaaa)'); -define('ERROR_MONTH_NOT_FOUND', 'Monthes were not found... Monthes must be specified by \'mm\' or by \'m\' (ex: jj/mm/aaaa)'); -define('ERROR_YEAR_NOT_FOUND', 'Years were not found... Years must be specified by \'aaaa\' or by \'aa\' (ex: jj/mm/aaaa)'); -define('ERROR_HOUR_NOT_FOUND', 'Hours were not found... Hours must be specified by \'hh\' or by \'h\' (ex: jj/mm/aaaa hh:ii:ss)'); -define('ERROR_MINUTE_NOT_FOUND', 'Minutes were not found... Minutes must be specified by \'ii\' or by \'i\' (ex: jj/mm/aaaa hh:ii:ss)'); -define('ERROR_SECOND_NOT_FOUND', 'Seconds were not found... Seconds must be specified by \'ss\' or by \'s\' (ex: jj/mm/aaaa hh:ii:ss)'); - -//dbUtil -define('ERROR_DECODE_EMPTY_STRING', 'Error: The string to be decoded is empty'); -define('ERROR_CONNECTION_PROBLEM', 'Problem of connection:'); - -//Formulaire -define('ENLARGE_INPUT_FORMULAIRE_LABEL', 'Enlarge the input field'); -define('DECREASE_INPUT_FORMULAIRE_LABEL', 'Decrease the input field'); -define('PALLET_FORMULAIRE_LABEL', 'pallet'); -define('SYMBOL_FORMULAIRE_LABEL', 'symbols'); -define('FONT_FORMULAIRE_LABEL', 'fonts'); -define('ASSISTANT_FORMULAIRE_LABEL', 'assistant'); -define('MOVE_RIGHT_FORMULAIRE_LABEL', 'Move to the right'); -define('MOVE_LEFT_FORMULAIRE_LABEL', 'Move to the left'); -define('ERROR_UNKNOWN_TYPE', 'ERROR: $pType is an unknown type\n'); -define('DELETE_FORMULAIRE_LABEL', 'Delete'); -define('ADD_FORMULAIRE_LABEL', 'Add'); -define('SHOW_CALENDAR_FORMULAIRE_LABEL', 'Show calendar'); -define('CALENDAR_FORMULAIRE_LABEL', 'Calendar'); -define('VALIDATE_FORMULAIRE_LABEL', 'Validate'); -define('CANCEL_FORMULAIRE_LABEL', 'Cancel'); -define('NO_DOCUMENT_FORMULAIRE_LABEL', 'No document'); - -//formVerif -define('INPUT_FORMVERIF_LABEL', 'The field'); -define('NOT_NULL_FORMVERIF_LABEL', 'must not be \"NULL\".'); -define('NOT_CORRESPOND_FORMVERIF_LABEL', 'does not correspond at '); -define('NOT_NUMERIC_FORMVERIF_LABEL', 'must be numeric.'); -define('NOT_INTEGER_FORMVERIF_LABEL', 'must be an integer.'); -define('NOT_DECIMAL_FORMVERIF_LABEL', 'must be a decimal.'); -define('NOT_DATE_FORMVERIF_LABEL', 'must ba a date '); -define('NOT_SPACE_FORMVERIF_LABEL', 'does not have to contain of spaces or special characters (accepted \'point\').'); -define('NOT_EXTENSION_FORMVERIF_LABEL', 'forbids the upload of files of extension '); -define('NOT_CONTAINS_FORMVERIF_LABEL', 'does not have to contain: '); - -//ldap -define('ERROR_USER_NOT_FOUND_LDAP', 'Refused connection. The user [LOGIN] was not found in Active Directory.'); -define('ERROR_CONNECT_LDAP', 'Impossible connection. Impossible to connect to the server of Active Directory.'); -define('ERROR_LDAP_FAILED', 'Failed connection LDAP'); - -//vm -define('NOT_RECORD_FOUND_VM', 'No recording of this type was found'); -define('WARNING_DELETE_VM_01', '\'Warning! The recording N '); -define('WARNING_DELETE_VM_02', ' is going to be deleted.'); - -//phpUtil -define('ERROR_DOWNLOAD_FILE', 'Erreur downloading file '); -define('ERROR_UPLOAD_MAX_FILE_SIZE', 'it exceeds the size of upload_max_filesize, configured in the php.ini'); -define('ERROR_MAX_FILE_SIZE', 'it exceeds the size of MAX_FILE_SIZE, which was specified in the HTML form.'); -define('ERROR_NO_FILE_DOWNLOADED', 'No file was downloaded.'); -define('ERROR_PARTIAL_DOWNLOAD', 'It had only partially downloaded.'); -define('ERROR_MISSING_TEMP_FOLDER', 'a temporary folder is missing.'); -define('ERROR_WRITING_DISK', 'Failure of the writing of the file on the disk.'); -define('ERROR_PHP_EXT_SEND', 'a PHP extension stopped the sending of file.'); -define('ERROR_FILE', 'Error the file '); -define('ERROr_NOT_FILE', ' is not a file '); -define('FILE_LABEL_PHPUTIL', 'The file '); -define('ERROR_VALID_FILE', ' valid.<br> The authorized formats are:'); -define('OF_LABEL_PHPUTIL', ' of '); -define('ERROR_EXCEED_MAX_SIZE', ' bytes exceeds the authorized maximal size'); -define('LABEL_BYTES_PHPUTIL', ' bytes'); -define('ERROR_EXCEED_MAX_SIZE_PHP', ' exceeds the authorized maximal size by the PHP configuration'); -define('ERROR_COPYING_FILE', 'Error during the file copy '); -define('ON_SERVER_PHPUTIL', ' on the server'); -define('ERROR_DOWNLOAD_SERVER', ' is not downloaded on the server'); -define('ERROR_CODE_PHPUTIL', 'Error code: '); -define('ERROR_DAY_CODE', 'The day code "'); -define('ERROR_CODE_NOT_VALID', 'is not valid'); -define('ERROR_NOT_INF', 'He was have to be lower in '); -define('ERROR_NOT_SUP', ' and supérior in '); -define('ERROR_DAY_WEEK', 'You cannot define one month and a day or a day of the week.'); -define('ERROR_MONTH_CODE', 'The month code "'); -define('ERROR_NUMBER_PHPUTIL', 'It can\'t be a number.'); -define('ERROR_WEEK_CODE', 'The day code of the week "'); -define('ERROR_CODE_3_VALUES', 'The code does not contain three values separated by a space.'); - -define('YES', 'Yes'); -define('NO', 'No'); - -define('SUCCESS_REQUEST', htmlentities("Request processed successfully")); -define('FAILED_REQUEST', htmlentities("Error during request processing. HTTP error:")); - -// genericTreeviewField() -define('HTMLFORM_GENERIC_TREEVIEW_FIELD_TITLE', htmlentities("Aperçu de votre sélection", ENT_COMPAT | ENT_HTML401, $encodage)); -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/vmlib/lang_vmlib/fr-lang.inc b/src/vitis/vas/rest/class/vmlib/lang_vmlib/fr-lang.inc deleted file mode 100755 index 36e37795..00000000 --- a/src/vitis/vas/rest/class/vmlib/lang_vmlib/fr-lang.inc +++ /dev/null @@ -1,114 +0,0 @@ -<?php - -define('USER_LABEL', 'Utilisateur : '); -define('ERROR_LABEL', '<br>Erreur : '); - -//logUtil -define('ERROR_IMPOSSIBLE_WRITE', 'Impossible d\'écrire dans le fichier '); -define('ERROR_RIGHTS_ON_FILE', ' : l\'application ne dispose pas de droits en écriture sur le fichier'); -define('ERROR_WRITING_FILE', ' : échec de l\'écriture'); -define('ERROR_REQUEST_ERROR', 'Une erreur SQl est survenue, plus d\'information dans les fichiers de log de l\'application, veuillez contacter votre administrateur'); - -//BD.class -define('ERROR_INCORRECT_SGBD', 'Le sgbd spécifié n\'est pas correct.\n Connexion à la base impossible.'); -define('ERROR_ACCESS_SERVER', 'Accès au serveur impossible pour :'); -define('ERROR_CONNECT_SERVER', 'Connexion au serveur impossible\n'); -define('ERROR_SGBD_UNDEFINED', 'Vous n\'avez pas spécifié votre sgbd.\n Connexion à la base impossible.'); -define('ERROR_REQUEST_IMPOSSIBLE', 'Impossible d\'exécuter la requête : '); -define('RETURN_BD_LABEL', 'Le serveur renvoit : '); -define('ATTRIBUT_POSITION_BD_LABEL', '"Il n\'y a pas d\'attribut en position $position'); -define('UNKNOWN_BD_LABEL', 'Inconnu'); - -//dateUtil -define('ERROR_DATE_FORMAT_INCOMPATIBLE', 'Format de date incompatible avec la date fournie'); -define('ERROR_DAY_NOT_FOUND', 'Les jours n\'ont pas été trouvés... Les jours doivent être précisés par \'jj\' ou par \'j\' (ex: jj/mm/aaaa)'); -define('ERROR_MONTH_NOT_FOUND', 'Les mois n\'ont pas été trouvés... Les mois doivent être précisés par \'mm\' ou par \'m\' (ex: jj/mm/aaaa)'); -define('ERROR_YEAR_NOT_FOUND', 'Les années n\'ont pas été trouvés... Les années doivent être précisés par \'aaaa\' ou par \'aa\' (ex: jj/mm/aaaa)'); -define('ERROR_HOUR_NOT_FOUND', 'Les heures n\'ont pas été trouvées... Les heures doivent être précisées par \'hh\' ou \'h\' (ex: jj/mm/aaaa hh:ii:ss)'); -define('ERROR_MINUTE_NOT_FOUND', 'Les minutes n\'ont pas été trouvées... Les minutes doivent être précisées par \'ii\' ou \'i\' (ex: jj/mm/aaaa hh:ii:ss)'); -define('ERROR_SECOND_NOT_FOUND', 'Les secondes n\'ont pas été trouvées... Les secondes doivent être précisés par \'ss\' ou \'s\' (ex: jj/mm/aaaa hh:ii:ss)'); - -//dbUtil -define('ERROR_DECODE_EMPTY_STRING', 'Erreur : La chaine à décoder est vide'); -define('ERROR_CONNECTION_PROBLEM', 'Problème de connexion :'); - -//Formulaire -define('ENLARGE_INPUT_FORMULAIRE_LABEL', 'Agrandir la zone de saisie'); -define('DECREASE_INPUT_FORMULAIRE_LABEL', 'Diminuer la zone de saisie'); -define('PALLET_FORMULAIRE_LABEL', 'palette'); -define('SYMBOL_FORMULAIRE_LABEL', 'symboles'); -define('FONT_FORMULAIRE_LABEL', 'polices'); -define('ASSISTANT_FORMULAIRE_LABEL', 'assistant'); -define('MOVE_RIGHT_FORMULAIRE_LABEL', 'Déplacer à droite'); -define('MOVE_LEFT_FORMULAIRE_LABEL', 'Déplacer à gauche'); -define('ERROR_UNKNOWN_TYPE', 'ERREUR: $pType est un type inconnu\n'); -define('DELETE_FORMULAIRE_LABEL', 'Supprimer'); -define('ADD_FORMULAIRE_LABEL', 'Ajouter'); -define('SHOW_CALENDAR_FORMULAIRE_LABEL', 'Afficher le calendrier'); -define('CALENDAR_FORMULAIRE_LABEL', 'Calendrier'); -define('VALIDATE_FORMULAIRE_LABEL', 'Valider'); -define('CANCEL_FORMULAIRE_LABEL', 'Annuler'); -define('NO_DOCUMENT_FORMULAIRE_LABEL', 'Aucun document'); - -//formVerif -define('INPUT_FORMVERIF_LABEL', 'Le champ'); -define('NOT_NULL_FORMVERIF_LABEL', 'ne doit pas être \"NULL\".'); -define('NOT_CORRESPOND_FORMVERIF_LABEL', 'ne correspond pas a '); -define('NOT_NUMERIC_FORMVERIF_LABEL', 'doit être de type numérique.'); -define('NOT_INTEGER_FORMVERIF_LABEL', 'doit être de type entier.'); -define('NOT_DECIMAL_FORMVERIF_LABEL', 'doit être de type entier décimal.'); -define('NOT_DATE_FORMVERIF_LABEL', 'doit être de type date '); -define('NOT_SPACE_FORMVERIF_LABEL', 'ne doit pas contenir d\'espaces ou de caractères spéciaux (\'point\' accepté).'); -define('NOT_EXTENSION_FORMVERIF_LABEL', 'interdit l\'upload de fichiers d\'extension '); -define('NOT_CONTAINS_FORMVERIF_LABEL', 'ne doit pas contenir : '); - -//ldap -define('ERROR_USER_NOT_FOUND_LDAP', 'Connexion refusée. L\'utilisateur [LOGIN] n\'a pas été trouvé dans l\'Active Directory.'); -define('ERROR_CONNECT_LDAP', 'Connexion impossible. Impossible de se connecter au serveur de l\'Active Directory.'); -define('ERROR_LDAP_FAILED', 'Connexion LDAP échouée'); - -//vm -define('NOT_RECORD_FOUND_VM', 'Aucun enregistrement de ce type n\'a été trouvé'); -define('WARNING_DELETE_VM_01', '\'Attention ! l\\\'enregistrement n° '); -define('WARNING_DELETE_VM_02', ' va être supprimé.'); - -//phpUtil -define('ERROR_DOWNLOAD_FILE', 'Erreur lors du téléchargement du fichier '); -define('ERROR_UPLOAD_MAX_FILE_SIZE', 'il excède la taille de upload_max_filesize, configurée dans le php.ini'); -define('ERROR_MAX_FILE_SIZE', 'il excède la taille de MAX_FILE_SIZE, qui a été spécifiée dans le formulaire HTML.'); -define('ERROR_NO_FILE_DOWNLOADED', 'Aucun fichier n\'a été téléchargé.'); -define('ERROR_PARTIAL_DOWNLOAD', 'il n\'a été que partiellement téléchargé.'); -define('ERROR_MISSING_TEMP_FOLDER', 'un dossier temporaire est manquant.'); -define('ERROR_WRITING_DISK', 'échec de l\'écriture du fichier sur le disque.'); -define('ERROR_PHP_EXT_SEND', 'une extension PHP a arrété l\'envoi de fichier.'); -define('ERROR_FILE', 'Erreur Le fichier '); -define('ERROR_NOT_FILE', ' n\'est pas un fichier '); -define('FILE_LABEL_PHPUTIL', 'Le fichier '); -define('ERROR_VALID_FILE', ' valide.<br> Les formats autorisés sont :'); -define('OF_LABEL_PHPUTIL', ' de '); -define('ERROR_EXCEED_MAX_SIZE', ' octets dépasse la taille maximale autorisée'); -define('LABEL_BYTES_PHPUTIL', ' octets'); -define('ERROR_EXCEED_MAX_SIZE_PHP', ' dépasse la taille maximale autorisée par la configuration PHP'); -define('ERROR_COPYING_FILE', 'Erreur lors de la copie du fichier '); -define('ON_SERVER_PHPUTIL', ' sur le serveur'); -define('ERROR_DOWNLOAD_SERVER', ' n\'est pas téléchargé sur le serveur'); -define('ERROR_CODE_PHPUTIL', 'Code erreur : '); -define('ERROR_DAY_CODE', 'Le code du jour "'); -define('ERROR_CODE_NOT_VALID', '" n\'est pas valide'); -define('ERROR_NOT_INF', 'Il ne doit pas être inférieure à '); -define('ERROR_NOT_SUP', ' et supérieure à '); -define('ERROR_DAY_WEEK', 'Vous ne pouvez pas définir un mois et un jour ou un jour de la semaine.'); -define('ERROR_MONTH_CODE', 'Le code du mois "'); -define('ERROR_NUMBER_PHPUTIL', 'Il ne peut pas être un nombre.'); -define('ERROR_WEEK_CODE', 'Le code du jour de la semaine "'); -define('ERROR_CODE_3_VALUES', 'Le code ne contient pas trois valeurs séparées par un espace.'); - -define('YES', 'Oui'); -define('NO', 'Non'); - -define('SUCCESS_REQUEST', htmlentities("Requête exécutée avec succés.")); -define('FAILED_REQUEST', htmlentities("Erreur lors de l'exécution de la requête. Erreur HTTP : ")); - -// genericTreeviewField() -define('HTMLFORM_GENERIC_TREEVIEW_FIELD_TITLE', htmlentities("Aperçu de votre sélection", ENT_COMPAT | ENT_HTML401, $encodage)); -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/vmlib/logUtil.inc b/src/vitis/vas/rest/class/vmlib/logUtil.inc deleted file mode 100644 index d7474ff3..00000000 --- a/src/vitis/vas/rest/class/vmlib/logUtil.inc +++ /dev/null @@ -1,198 +0,0 @@ -<?php - -/** - * \file logUtil.inc - * \brief - * - * Fonctions de mise en place de logs - * - * \author Olivier Gayte <olivier.gayte@veremes.com> - * \author Frédéric Mauro - */ -/* - * Variable globale stockant une erreur. - */ -$sMessageLogError = ""; - -/* - * Variable globale stockant le nom de dossier lib. - */ -$sFolderLib = "vmlib"; -/** - * Converti une chaine ISO-8859-1 en UTF-8 - * \param $sString Chaîne de caractères à convertir. - * \return une chaine encodée en UTF-8 - */ -/* function Latin1ToUtf8($sString){ - if( mb_detect_encoding($sString,"UTF-8, ISO-8859-1")!="UTF-8" ){ - return iconv("ISO-8859-1","UTF-8",$sString); - } - else{ - return $sString; - } - } - bfd - - - function baseEncoding_pageEncoding($sDatabaseEncoding,$sPageEncoding,$sString){ - return iconv($sDatabaseEncoding,$sPageEncoding,$sString); - } - */ - -require_once("phpUtil.inc"); - -/** - * Ajoute la cha�ne de caract�re au fichier de log $sFileName. - * \param $sString Cha�ne de caract�res. - * \param $sFileName Fichier dans lequel �crire la cha�ne. - * \return un bool�en, true si l'�criture a fonctionn� sinon false. - */ -function writeToLog($sString, $sFileName) { - if (empty($sFileName)) - return false; - global $properties, $sMessageLogError, $sFolderLib; - - // Si le répertoire de log n'existe pas : création - if (!is_dir(dirname($sFileName))) - mkdir(dirname($sFileName), 0777, true); - if (empty(pathinfo($sFileName, PATHINFO_EXTENSION))) - return false; - - // Add Date and User informations before writing message in log file - loadLang($sFolderLib, $properties["language"], $sFolderLib . "/"); - $sString = str_replace(chr(13), '[\n]', $sString); - $sString = str_replace(chr(10), '[\n]', $sString); - if(isset($_SESSION['ses_Login']) && isset($_SERVER['REMOTE_ADDR']) && isset($_SERVER['REMOTE_PORT'])){ - $sPrelog = date("d/n/Y H:i:s").' '.$_SESSION['ses_Login'].' '.$_SERVER['REMOTE_ADDR'] . ':' . $_SERVER['REMOTE_PORT']; - } else { - $sPrelog = date("d/n/Y H:i:s"); - } - - $sMessageLogtoWrite = $sPrelog . $properties["log_delim"] . $sString . CR . LF; - - // Rename old file if greater than porperties log_size (maximum log size to open it through app in Kb) - // Get size of Log file in bytes - $iLogFileSize = filesize($sFileName); - - if($iLogFileSize !== false){ - // get size of log message - $iMessageLength = strlen($sMessageLogtoWrite); - $iTotalSizeKb = ($iLogFileSize + $iMessageLength) / 1024; - // compare with porperties log_size (maximum log size to open it through app in Kb) - if($iTotalSizeKb >= $properties['log_size'] - 1){ - // Rename of the original file to split log and keep the possibility to read it through application - $sFileSplitName = str_replace(".log", "." . date("Y_m_d_U") . ".log", $sFileName); - if(!rename($sFileName, $sFileSplitName)){ - $sMessageLogError = ERROR_IMPOSSIBLE_WRITE . $sFileName . ERROR_RIGHTS_ON_FILE . " (" . $sString . ")."; - } - } - } - - // create if needed and open log file to write log message inside. - $handle = fopen($sFileName, 'a'); - if (fwrite($handle, $sMessageLogtoWrite) === false) { - fclose($handle); - if (is_writable($sFileName)) { - $sMessageLogError = ERROR_IMPOSSIBLE_WRITE . $sFileName . ERROR_RIGHTS_ON_FILE . " (" . $sString . ")."; - } else { - $sMessageLogError = ERROR_IMPOSSIBLE_WRITE . $sFileName . ERROR_WRITING_FILE . " (" . $sString . ")."; - } - return false; - } else { - fclose($handle); - $sMessageLogError = ""; - return true; - } -} - -/** - * Ajoute la cha�ne de caract�re au fichier des log SQL. - * \param $sString Cha�ne de caract�res. - */ -function writeToSqlLog($sString) { - global $properties; - if (isSet($properties["log_mode"])) { - if ($properties["log_mode"] == true) { - writeToLog($sString, $properties["sql_log_file"]); - } - } -} - -/** - * Ajoute la cha�ne de caract�re au fichier des log SQL. - * \param $sString Cha�ne de caract�res. - */ -function writeToSqlErrorLog($sString) { - global $properties; - if (isSet($properties["log_mode"])) { - if ($properties["log_mode"] == true) { - writeToLog($sString, $properties["sql_error_log_file"]); - } - } -} - -/** - * Ajoute la cha�ne de caract�re au fichier des log ERROR. - * \param $sString Cha�ne de caract�res. - */ -function writeToErrorLog($sString) { - global $properties; - if (isSet($properties["log_mode"])) { - if ($properties["log_mode"] == true) { - writeToLog($sString, $properties["error_log_file"]); - } - } -} - -/** - * Ajoute la cha�ne de caract�re au fichier des log Proxy. - * \param $sString Cha�ne de caract�res. - */ -function writeToProxyLog($sString) { - global $properties; - if (isSet($properties["log_mode"])) { - if ($properties["log_mode"] == true) { - writeToLog($sString, $properties["proxy_log_file"]); - } - } -} - -/** - * Ajoute la cha�ne de caract�re au fichier des log DEBUG. - * \param $sString Cha�ne de caract�res. - */ -function writeToDebugLog($sString) { - global $properties; - if (isSet($properties["debug_mode"])) { - if ($properties["debug_mode"] == true) { - writeToLog($sString, $properties["debug_log_file"]); - } - } -} - -/** - * Ajoute la cha�ne de caract�re au fichier $sFileName. - * \param $sString Cha�ne de caract�res. - * \param $sFileName Fichier dans lequel �crire la cha�ne. - * \return un bool�en, true si l'�criture a fonctionn� sinon false. - */ -function writeToFile($sString, $sFileName) { - global $properties, $sFolderLib; - loadLang($sFolderLib, $properties["language"], $sFolderLib . "/"); - $handle = fopen($sFileName, 'a'); - if (fwrite($handle, $sString . CR . LF)) { - fclose($handle); - if (is_writable($sFileName)) { - $sMessageLogError = ERROR_IMPOSSIBLE_WRITE . $sFileName . ERROR_RIGHTS_ON_FILE . " (" . $sString . ")."; - } else { - $sMessageLogError = ERROR_IMPOSSIBLE_WRITE . $sFileName . ERROR_WRITING_FILE . " (" . $sString . ")."; - } - return false; - } else { - fclose($handle); - $sMessageLogError = ""; - return true; - } -} - -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/vmlib/phpUtil.inc b/src/vitis/vas/rest/class/vmlib/phpUtil.inc deleted file mode 100755 index dee4b832..00000000 --- a/src/vitis/vas/rest/class/vmlib/phpUtil.inc +++ /dev/null @@ -1,744 +0,0 @@ -<?php - -/* - * @brief Fonctions php diverses - * - * @author Fabien Marty <fabien.marty@veremes.com> - */ -/* - * Variable globale stockant le nom de dossier lib. - */ -$sFolderLib = "vmlib"; - -/** - *This method remove all the backslashes of the element in an array. - *@file vmlib/phpUtil.inc - *@return $aString An array without the backlashes. - */ -function stripslashes_deep($aString) { - $aString = is_array($aString) ? - array_map('stripslashes_deep', $aString) : - stripslashes($aString); - - return $aString; -} - -/** - *This method allow to upload a file on a server. - *@file vmlib/phpUtil.inc - *@param $sNomObjet Name of the object. - *@param $sFileType Type of file needed. - *@param $sServerPath New path of the file. - *@param $sMaxSize Maximal size of the file. - *@return $sErrorMsg The error message. - */ -function uploadFile($sNomObjet, $sFileType, $sServerPath, $sMaxSize) { - global $properties, $sFolderLib; - loadLang($sFolderLib, $properties["language"], $sFolderLib . "/"); - $aExtensionPicture = array('gif', 'jpg', 'jpeg', 'png'); - $aExtensionPictureAndPdf = array('gif', 'jpg', 'jpeg', 'png', 'pdf'); - $aExtensionFile = array('pdf', 'gif', 'jpg', 'jpeg', 'png', 'txt'); - $aExtensionZip = array('zip', 'gex'); - $aExtensionFmw = array('fmw'); - $aForbiddenExtension = explode('|', str_replace("*.", "", $properties['forbidden_extension'])); - $sTmpFile = $_FILES[$sNomObjet]['tmp_name']; - // Si l'utilisateur n'a indiqué aucun fichier à uploader, il ne se passe rien - $sErrorMsg = ""; - - if ($sTmpFile == '') { - if ($_FILES[$sNomObjet]['name'] != "") { - switch ($_FILES[$sNomObjet]['error']) { - case "1" : - $sErrorMsg = ERROR_DOWNLOAD_FILE . $_FILES[$sNomObjet]['name'] . " : " . ERROR_UPLOAD_MAX_FILE_SIZE; - break; - case "2" : - $sErrorMsg = ERROR_DOWNLOAD_FILE . $_FILES[$sNomObjet]['name'] . " : " . ERROR_MAX_FILE_SIZE; - break; - case "3" : - $sErrorMsg = ERROR_DOWNLOAD_FILE . $_FILES[$sNomObjet]['name'] . " : " . ERROR_PARTIAL_DOWNLOAD; - break; - case "4" : - $sErrorMsg = ERROR_NO_FILE_DOWNLOADED; - break; - case "6" : - $sErrorMsg = ERROR_DOWNLOAD_FILE . $_FILES[$sNomObjet]['name'] . " : " . ERROR_MISSING_TEMP_FOLDER; - break; - case "7" : - $sErrorMsg = ERROR_DOWNLOAD_FILE . $_FILES[$sNomObjet]['name'] . " : " . ERROR_WRITING_DISK; - break; - case "8" : - $sErrorMsg = ERROR_DOWNLOAD_FILE . $_FILES[$sNomObjet]['name'] . " : " . ERROR_PHP_EXT_SEND; - break; - } - writeToErrorLog($sErrorMsg); - } - return $sErrorMsg; - } - $aTemp = explode("\\", $sServerPath); - if (is_uploaded_file($sTmpFile)) { - if (!in_array(extension($aTemp[count($aTemp) - 1]), $aForbiddenExtension)) { - //Teste si le fichier correspont au format voulu. - $bAllowUpload = false; - $sFormat = ""; - switch ($sFileType) { - case "image" : - if (in_array(extension($aTemp[count($aTemp) - 1]), $aExtensionPicture)) { - $bAllowUpload = true; - } else { - foreach ($aExtensionPicture as $sValue) { - $sFormat .= " " . $sValue; - } - writeToErrorLog(ERROR_FILE . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType); - $sErrorMsg = FILE_LABEL_PHPUTIL . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType . ERROR_VALID_FILE . $sFormat . '.'; - } - break; - case "image-pdf" : - if (in_array(extension($aTemp[count($aTemp) - 1]), $aExtensionPictureAndPdf)) { - $bAllowUpload = true; - } else { - foreach ($aExtensionPictureAndPdf as $sValue) { - $sFormat .= " " . $sValue; - } - writeToErrorLog(ERROR_FILE . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType); - $sErrorMsg = FILE_LABEL_PHPUTIL . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType . ERROR_VALID_FILE . $sFormat . '.'; - } - break; - case "document" : - if (in_array(extension($aTemp[count($aTemp) - 1]), $aExtensionFile)) { - $bAllowUpload = true; - } else { - foreach ($aExtensionFile as $sValue) { - $sFormat .= " " . $sValue; - } - writeToErrorLog(ERROR_FILE . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType); - $sErrorMsg = FILE_LABEL_PHPUTIL . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType . ERROR_VALID_FILE . $sFormat . '.'; - } - break; - case "zip" : - if (in_array(extension($aTemp[count($aTemp) - 1]), $aExtensionZip)) { - $bAllowUpload = true; - } else { - foreach ($aExtensionZip as $sValue) { - $sFormat .= " " . $sValue; - } - writeToErrorLog(ERROR_FILE . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType); - $sErrorMsg = FILE_LABEL_PHPUTIL . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType . ERROR_VALID_FILE . $sFormat . '.'; - } - break; - case "fmw" : - if (in_array(extension($aTemp[count($aTemp) - 1]), $aExtensionFmw)) { - $bAllowUpload = true; - } else { - foreach ($aExtensionFmw as $sValue) { - $sFormat .= " " . $sValue; - } - writeToErrorLog(ERROR_FILE . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType); - $sErrorMsg = FILE_LABEL_PHPUTIL . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType . ERROR_VALID_FILE . $sFormat . '.'; - } - break; - default : - - $bAllowUpload = true; - - break; - } - - //Teste si le fichier n'est pas de trop grande taille. - if ($_FILES[$sNomObjet]['size'] > $sMaxSize || $_FILES[$sNomObjet]['error'] == 1) { - $bAllowUpload = false; - if ($_FILES[$sNomObjet]['size'] > $sMaxSize) - $sErrorMsg .= FILE_LABEL_PHPUTIL . $_FILES[$sNomObjet]['name'] . OF_LABEL_PHPUTIL . $_FILES[$sNomObjet]['size'] . ERROR_EXCEED_MAX_SIZE . ' (' . $sMaxSize . LABEL_BYTES_PHPUTIL . ').'; - if ($_FILES[$sNomObjet]['error'] > $sMaxSize) - $sErrorMsg .= FILE_LABEL_PHPUTIL . $_FILES[$sNomObjet]['name'] . ERROR_EXCEED_MAX_SIZE_PHP . ' (' . $sMaxSize . LABEL_BYTES_PHPUTIL . ').'; - } - //Lance l'upload. - if ($bAllowUpload) { - if (!copy($sTmpFile, $sServerPath)) { - writeToErrorLog(ERROR_COPYING_FILE . $_FILES[$sNomObjet]['name'] . ON_SERVER_PHPUTIL . ', ' . $sTmpFile . ', ' . $sServerPath); - $sErrorMsg = ERROR_COPYING_FILE . $_FILES[$sNomObjet]['name'] . ON_SERVER_PHPUTIL . '.'; - } - unlink($sTmpFile); - //chmod($sServerPath,755); - } - } else { - writeToErrorLog(ERROR_FILE . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType); - $sErrorMsg = FILE_LABEL_PHPUTIL . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType . ERROR_VALID_FILE . $sFormat . '.'; - } - } else { - writeToErrorLog(ERROR_FILE . $_FILES[$sNomObjet]['name'] . ERROR_DOWNLOAD_SERVER); - $sErrorMsg = FILE_LABEL_PHPUTIL . $_FILES[$sNomObjet]['name'] . ERROR_DOWNLOAD_SERVER . ' (' . ERROR_CODE_PHPUTIL . $_FILES[$sNomObjet]['error'] . ').'; - } - - return $sErrorMsg; -} - -/** - *This method return the extension of a file. - *@file vmlib/phpUtil.inc - *@param $sString Full name of a file. - *@return Retourne une chaine. - */ -function extension($sString) { - $aTemp = explode(".", $sString); - $sString = strtolower($aTemp[count($aTemp) - 1]); - - return $sString; -} - -/** - *This method return the name of a file from its full path. - *@file vmlib/phpUtil.inc - *@param $sFullFileName Full path of a file. - *@return $aTemp2 The file name. - */ -function getFileName($sFullFileName) { - $aTemp = explode("/", $sFullFileName); - $aTemp2 = explode("\\", $aTemp[(count($aTemp) - 1)]); - - return $aTemp2[(count($aTemp2) - 1)]; -} - -/** - *Creates a compressed zip file - *@file vmlib/phpUtil.inc - *@param string $sFolder - *@param string $sDestination - *@param string $sPassword - *@return boolean - */ -function createZip($sFolder, $sDestination, $sExtensionToExclude = '', $sPassword = '', $bDeleteFiles = false) { - if (!empty($sExtensionToExclude)) { - $aExtensionToExclude = explode('|', $sExtensionToExclude); - } else { - $aExtensionToExclude = array(); - } - $sFolder = rtrim($sFolder, "/"); - - $zip = new ZipArchive(); - - if ($zip->open($sDestination, ZipArchive::CREATE | ZipArchive::OVERWRITE) !== TRUE) { - die("An error occurred creating your ZIP file."); - } - - $files = new RecursiveIteratorIterator( - new RecursiveDirectoryIterator($sFolder), RecursiveIteratorIterator::LEAVES_ONLY - ); - $aCompressedFiles = array(); - foreach ($files as $name => $file) { - if (!$file->isDir()) { - $filePath = $file->getRealPath(); - - // Récupération de l'extension - $oFileInfo = new SplFileInfo($filePath); - $sExtension = $oFileInfo->getExtension(); - - $relativePath = substr($filePath, strlen($sFolder) + 1); - if (in_array($sExtension, $aExtensionToExclude)) { - continue; - } - if ($zip->addFile($filePath, $relativePath)) - $aCompressedFiles[] = $filePath; - // Mot de passe. - if (!empty($sPassword)) - $zip->setEncryptionName($oFileInfo->getFilename(), ZipArchive::EM_AES_256, $sPassword); - } - } - - if ($zip->close()) { - // Suppression des fichiers compressés. - if ($bDeleteFiles) { - foreach ($aCompressedFiles as $sFilePath) { - if (file_exists($sFilePath)) - unlink($sFilePath); - } - } - } - return file_exists($sDestination); -} - -/** - *Unzip a compressed zip file - *@file vmlib/phpUtil.inc - *@param string $sZipFile - *@param string $sDestination - */ -function unZip($sZipFile, $sDestination) { - $zip = new ZipArchive; - $res = $zip->open($sZipFile); - if ($res === TRUE) { - // extract it to the path we determined above - $zip->extractTo($sDestination); - $zip->close(); - return file_exists($sDestination); - } else { - return false; - } -} - -/** - *@file vmlib/phpUtil.inc - *@brief Teste un code pour savoir si il correspond à une fréquence. - * Ce code est d'un jour (de 1 à 31), d'un mois (de 1 à 12) et d'un type de jour de la semaine (de 1 à 7). - * Ces éléments doivent être définis ainsi : * défini tout le temps et / défini une répétition. - *@param $sCode Code of the frequency. - *@return $sReturn Return nothing if the code is good else return an error message. - */ -function TesteCode($sCode) { - $bIsCorrecte = true; - $sErrorMessage = ""; - $aCode = explode(" ", $sCode); - if (count($aCode) == 3) { - $aCode = Array('jour' => $aCode[0], 'mois' => $aCode[1], 'jour_semaine' => $aCode[2]); - - //Teste sur le jour - if ($aCode['jour'] != "*") { - if (($aCode['mois'] == "*" || is_numeric($aCode['mois'])) && $aCode['jour_semaine'] == "*") { - if (is_numeric($aCode['jour'])) { - if ($aCode['jour'] >= 32 && $aCode['jour'] <= 0) { - $sErrorMessage = ERROR_DAY_CODE . $aCode['jour'] . ERROR_CODE_NOT_VALID . ERROR_NOT_INF . "1" . ERROR_NOT_SUP . '31.'; - $bIsCorrecte = false; - } - } else { - if (substr($aCode['jour'], 0, 2) != '*/' || !is_numeric(substr($aCode['jour'], 2, 2))) { - $sErrorMessage = ERROR_DAY_CODE . $aCode['jour'] . ERROR_CODE_NOT_VALID; - $bIsCorrecte = false; - } else { - if (substr($aCode['jour'], 2, 1) >= 31 && substr($aCode['jour'], 2, 2) <= 0) { - $sErrorMessage = ERROR_DAY_CODE . $aCode['jour'] . ERROR_CODE_NOT_VALID . ERROR_NOT_INF . '1' . ERROR_NOT_SUP . '30.'; - $bIsCorrecte = false; - } - } - } - } else { - $sErrorMessage = ERROR_DAY_WEEK; - $bIsCorrecte = false; - } - } - - //Teste sur le mois - if ($aCode['mois'] != "*" && $bIsCorrecte == true) { - if (($aCode['jour'] == "*" || is_numeric($aCode['jour']) ) && $aCode['jour_semaine'] == "*") { - if (is_numeric($aCode['mois'])) { - if ($aCode['mois'] >= 13 && $aCode['mois'] <= 0) { - $sErrorMessage = ERROR_MONTH_CODE . $aCode['mois'] . ERROR_CODE_NOT_VALID . ERROR_NOT_INF . '1' . ERROR_NOT_SUP . '12.'; - $bIsCorrecte = false; - } - } else { - if (substr($aCode['mois'], 0, 2) != '*/' || !is_numeric(substr($aCode['mois'], 2, 2))) { - $sErrorMessage = ERROR_MONTH_CODE . $aCode['mois'] . ERROR_CODE_NOT_VALID; - $bIsCorrecte = false; - } else { - if (substr($aCode['mois'], 2, 1) >= 13 && substr($aCode['mois'], 2, 2) <= 0) { - $sErrorMessage = ERROR_MONTH_CODE . $aCode['mois'] . ERROR_CODE_NOT_VALID . ERROR_CODE_NOT_VALID . ERROR_NOT_INF . '1' . ERROR_NOT_SUP . '12.'; - $bIsCorrecte = false; - } - } - } - } else { - $sErrorMessage = ERROR_DAY_WEEK; - $bIsCorrecte = false; - } - } - - //Teste sur le jour de la semaine - if ($aCode['jour_semaine'] != "*" && $bIsCorrecte == true) { - if ($aCode['jour'] == "*" && $aCode['mois'] == "*") { - if (is_numeric($aCode['jour_semaine'])) { - $sErrorMessage = ERROR_WEEK_CODE . $aCode['jour_semaine'] . ERROR_CODE_NOT_VALID . ERROR_NUMBER_PHPUTIL; - $bIsCorrecte = false; - } else { - if (substr($aCode['jour_semaine'], 0, 2) != '*/' || !is_numeric(substr($aCode['jour_semaine'], 2, 2))) { - $sErrorMessage = ERROR_WEEK_CODE . $aCode['jour_semaine'] . ERROR_CODE_NOT_VALID; - $bIsCorrecte = false; - } else { - if (substr($aCode['jour_semaine'], 2, 2) >= 13 && substr($aCode['jour_semaine'], 2, 2) <= 0) { - $sErrorMessage = ERROR_WEEK_CODE . $aCode['jour_semaine'] . ERROR_CODE_NOT_VALID . ERROR_CODE_NOT_VALID . ERROR_NOT_INF . '1' . ERROR_NOT_SUP . '12.'; - $bIsCorrecte = false; - } - } - } - } else { - $sErrorMessage = ERROR_DAY_WEEK; - $bIsCorrecte = false; - } - } - } else { - $sErrorMessage = ERROR_CODE_3_VALUES; - $bIsCorrecte = false; - } - - $sReturn = $sErrorMessage; - - return $sReturn; -} - -/** - * Cette méthode permet de générer un nom de fichier unique. - * \return une chaîne de caractères. - */ -function UniqFileName() { - $sUniqFileName = date('YmdHis') . rand(1, 100000); - return $sUniqFileName; -} - -/* - * function html2rgb - * \brief Ce code convertit les couleurs HTML (codées en hexa), en RGB . - * \param $color chaine correspondant à la couleur - * \return un tableau correspondant à la couleur en rgb - */ - -function html2rgb($color) { - // gestion du #... - if (substr($color, 0, 1) == "#") - $color = substr($color, 1, 6); - $aTableau[0] = hexdec(substr($color, 0, 2)); - $aTableau[1] = hexdec(substr($color, 2, 2)); - $aTableau[2] = hexdec(substr($color, 4, 2)); - return $aTableau; -} - -/* - * function rgb2html - * \brief La réciproque exacte de la fonction html2rgb. - * \param $aTableau tableau correspondant à la couleur en rgb - * \return un chaine correspondant à la couleur - */ - -function rgb2html($aTableau) { - for ($i = 0; $i <= 2; $i++) { - $aTableau[$i] = bornes($aTableau[$i], 0, 255); - } - // Le str_pad permet de remplir avec des 0 - // parce que sinon rgb2html(Array(0,255,255)) retournerai #0ffff<=manque un 0 ! - return "#" . str_pad(dechex(($aTableau[0] << 16) | ($aTableau[1] << 8) | $aTableau[2]), 6, "0", STR_PAD_LEFT); -} - -/* - * function rgb2html - * \brief Une petite fonction utile pour borner les nombres entre 0 et 255. - */ - -function bornes($nb, $min, $max) { - if ($nb < $min) - $nb = $min; // $nb est borné bas - if ($nb > $max) - $nb = $max; // $nb est Borné haut - return $nb; -} - -/* - * function verifyFolder - * \brief vérifie l'existance d'un répertoire - * \param $sFolder : chemin du répertoire - * \return $bFolderExist : booleen , true si le répertoire existe sinon false - */ - -function verifyFolder($sFolder) { - @$bFolderExist = dir($sFolder); - return (@$bFolderExist); -} - -/** - * Cette fonction permet de supprimer un dossier sur le serveur. - * \param $sDossier Dossier à supprimer. - * return un booleen. - */ -function clearDir($sDossier) { - $ouverture = @opendir($sDossier); - if (!$ouverture) - return; - while ($sFichier = readdir($ouverture)) { - - if ($sFichier == '.' || $sFichier == '..') - continue; - if (is_dir($sDossier . "/" . $sFichier)) { - $bCleared = clearDir($sDossier . "/" . $sFichier); - if (!$bCleared) - return false; - } - else { - $bCleared = @unlink($sDossier . "/" . $sFichier); - if (!$bCleared) - return false; - } - } - closedir($ouverture); - $bCleared = @rmdir($sDossier); - if (!$bCleared) - return false; - return true; -} - -/* - * function loadLang - * charge le fichier de lang - */ - -function loadLang($folderExt, $lang = "fr", $folderRoot = "", $encodage = "UTF-8") { - if ($lang == "") { - $lang = "fr"; - } - if ($folderExt != "") { - include_once($folderRoot . 'lang_' . $folderExt . '/' . $lang . '-lang.inc'); - } else { - include_once($folderRoot . 'lang/' . $lang . '-lang.inc'); - } -} - -/** - * Cette fonction retourne le contenu d'un fichier dans une variable. - * \param $sFilePath chaine Nom complet du fichier. - * \return une chaine contenant le contenu du fichier, rien si le fichier n'existe pas. - */ -function getFileContent($sFilePath) { - $sFileContent = ""; - if (file_exists($sFilePath)) { - ob_start(); - include($sFilePath); - $sFileContent = ob_get_contents(); - ob_end_clean(); - } - return $sFileContent; -} - -/** - * ? - */ -function convert($value_in = false, $source_base = 10, $target_base = 32) { - // We use these values for our conversions - $values = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '-', '_'); - $characters = array_flip($values); - $string_out = ''; - // Easy answers - if ($source_base == $target_base) { - return $value_in; - } - $len = strlen($value_in); - $sum = array(); - if ($source_base > $target_base) { - for ($i = 0; $i < $len; $i++) { - $char = substr($value_in, $len - $i - 1, 1); - $sum[$i] = $characters[$char] * pow($source_base, $i); - } - } else { - if ($source_base != 10) { - $value = convert($value_in, $source_base, 10); - } else { - $value = $value_in; - } - $cnt = 0; - while ($value > 0) { - $times = $value / $target_base; - $sum[] = mod($value, $target_base); - $value = floor2($times); // get rid of our remainder - } - for ($i = count($sum); $i > 0; $i--) { - $string_out .= $values[$sum[$i - 1]]; - } - return $string_out; - } - if ($target_base == 10) { - return array_sum($sum); - } - return implode($sum); -} - -function mod($val, $mod) { - return $val - floor2($val / $mod) * $mod; -} - -function floor2($val) { - $bits = explode('.', $val); - return $bits[0]; -} - -/** - * Send a websocket message - * @param string $webSocketServer - * @param string $webSocketPort - * @param string $webSocketAlias - * @param array $aPlayload array to convent JSON and send - */ -function sendWebsocketMessage($webSocketServer, $webSocketPort, $webSocketAlias, $aPlayload) { - require_once 'vmlib/class.websocket_client.php'; - - $client = new WebsocketClient; - $client->connect($webSocketServer, $webSocketPort, '/' . $webSocketAlias); - - $sPayload = json_encode($aPlayload); - - // Check each 10ms if the server is yet connected and send the data via the websocket - for ($index = 0; $index < 100; $index++) { - if ($client->isConnected() === true) { - $client->sendData($sPayload); - break; - } else { - usleep(10000); - } - } - - usleep(5000); -} - -/** - * \class array2xml - * \brief array2xml Class \n \n Cette classe totalement générique permet de générer du XML à partir d'un tableau PHP - */ -class array2xml extends DomDocument { - - private $xpath; - private $sRoot; - private $sNodeName; - - /** - * Constructeur - * \param $sRoot Nom du premier noeud (string) - * \param $sNodeName The name numeric keys are called (string) - */ - public function __construct($sRoot = 'root', $sNodeName = 'node') { - parent::__construct(); - //$this->encoding = "ISO-8859-1"; - $this->encoding = "utf-8"; - $this->formatOutput = true; - $this->sNodeName = $sNodeName; - $this->sRoot = $this->appendChild($this->createElement($sRoot)); - $this->xpath = new DomXPath($this); - } - - /* - * Crée le XML à partir du tableau - * \param $aValueXml Le tableau à convertir - * \param $sNode Nom du noeud dans lequelle inlure les valeurs (string) - */ - - public function createNode($aValueXml, $sNode = null) { - if (is_null($sNode)) { - $sNode = $this->sRoot; - } - foreach ($aValueXml as $element => $value) { - $element = is_numeric($element) ? $this->sNodeName : $element; - $child = $this->createElement($element, (is_array($value) ? null : utf8_encode($value))); - $sNode->appendChild($child); - if (is_array($value)) { - self::createNode($value, $child); - } - } - } - - /* - * Retourne le XML généré sous forme de chaine - * return le XML (string) - */ - - public function __toString() { - return $this->saveXML(); - } - - /* - * Perform an XPath query on the XML representation of the array - * \param str $query - query to perform - * return mixed - */ - - public function query($query) { - return $this->xpath->evaluate($query); - } - -} - -/** - * Generate an unique id - */ -function vitisUniqId() { - return uniqid(rand(10000, 99999)); -} - -/** - * Generate an unique id - * @param {integer} $iLength length og the random string before hash it - * @return string random string generated by hashing a random string concatenated with current timestamp - */ -function getUniqRandomId($iLength = 64){ - $sCharacters = 'abcdefghijklmnopqrstuvwxyz0123456789'; - $sString = ''; - $iMax = strlen($sCharacters) - 1; - - for ($i = 0; $i < $iLength; $i++) { - $sString .= $sCharacters[(mt_rand(0, $iMax*10) % $iMax)]; - } - - $sString .= time(); - - return sha1($sString, false); - } - -/** - * Copie un dossier ainsi que son contenu - * @param {string} $src Source - * @param {string} $dst Destination - */ -function copyDirectory($src,$dst) { - $dir = opendir($src); - @mkdir($dst); - while(false !== ( $file = readdir($dir)) ) { - if (( $file != '.' ) && ( $file != '..' )) { - if ( is_dir($src . '/' . $file) ) { - copyDirectory($src . '/' . $file,$dst . '/' . $file); - } - else { - copy($src . '/' . $file,$dst . '/' . $file); - } - } - } - closedir($dir); -} - -// end of class - -/** - * Get a date format - * @param string $sUserDateFormat - * @param string $sDateType - * \return date pattern - */ -function getDatePattern($sUserDateFormat, $sDateType) { - $Pattern= ""; - switch ($sDateType) { - case "year" : - $Pattern= "YYYY"; - break; - case "month" : - $Pattern= "MM"; - break; - case "day" : - $Pattern= "DD"; - break; - case "yeartomonth" : - $Pattern= "YYYY-DD"; - break; - case "yeartoday" : - $Pattern= substr($sUserDateFormat, 10); - break; - case "yeartominute" : - $Pattern= str_replace("[FORMATDATE]", $sUserDateFormat, "[FORMATDATE] HH24:MI:SS"); - break; - case "hourtosecond" : - $Pattern= 'HH24:MI:SS'; - break; - case "yeartosecond" : - $Pattern= str_replace("[FORMATDATE]", $sUserDateFormat, "[FORMATDATE] HH24:MI:SS"); - break; - case "yeartosecondtz" : - $Pattern= str_replace("[FORMATDATE]", $sUserDateFormat, "[FORMATDATE] HH24:MI:SStz"); - break; - case "yeartomillisecond" : - $Pattern= str_replace("[FORMATDATE]", $sUserDateFormat, "[FORMATDATE] HH24:MI:SS.ms"); - break; - case "yeartomillisecondtz" : - $Pattern= str_replace("[FORMATDATE]", $sUserDateFormat, "[FORMATDATE] HH24:MI:SS.mstz"); - break; - } - return $Pattern; -} -?> diff --git a/src/vitis/vas/rest/class/vmlib/stringUtil.inc b/src/vitis/vas/rest/class/vmlib/stringUtil.inc deleted file mode 100755 index f1ebb959..00000000 --- a/src/vitis/vas/rest/class/vmlib/stringUtil.inc +++ /dev/null @@ -1,149 +0,0 @@ -<?php - -/* - * stringUtil.inc : fonctions sur les cha�nes de caract�res - */ - -function addDelimitedAttribute($sMain, $sAdded, $sDelim, $sProtectField) { - // renvoie la concat�nation des cha�nes $main et $added en ajoutant le d�limiteur $sDelim - if ($sMain == "") - $sMain = $sProtectField . $sAdded . $sProtectField; - else - $sMain .= $sDelim . $sProtectField . $sAdded . $sProtectField; - return $sMain; -} - -function addDelimitedString($sMain, $sAdded, $sDelim) { - // renvoie la concat�nation des cha�nes $main et $added en ajoutant le d�limiteur $sDelim - if ($sMain == "") - $sMain = $sAdded; - else - $sMain .= $sDelim . $sAdded; - return $sMain; -} - -// Convertit une chaine geometrique type veremes (x@y x@y) en wkt -function vm2wkt($sGeom, $sType) { - - switch ($sType) { - - case 'point' : - $aPointCoord = array(); - $aPointCoord = split("@", $sGeom); - $sWkt = "POINT ("; - - $aPointCoordxy[0]["x"] = $aPointCoord[0]; - $aPointCoordxy[0]["y"] = $aPointCoord[1]; - - $sWkt = $sWkt . $aPointCoordxy[0]["x"] . " " . $aPointCoordxy[0]["y"] . ")"; - - break; - - case 'line' : - $aLineCoord = array(); - $aPoint = array(); - $aLineCoord = split(" ", $sGeom); - - $sWkt = "LINESTRING ("; - $i = 0; - - while ($aLineCoord[$i]) { - $aPoint = split("@", $aLineCoord[$i]); - $aLineCoordxy[$i]["x"] = $aPoint[0]; - $aLineCoordxy[$i]["y"] = $aPoint[1]; - $i++; - } - - $i = 0; - while ($aLineCoordxy[$i]) { - $sWkt = $sWkt . $aLineCoordxy[$i]["x"] . " " . $aLineCoordxy[$i]["y"] . ","; - $i++; - } - $sWkt = rtrim($sWkt, ','); - $sWkt = $sWkt . ")"; - break; - - case 'polygon': - - $sWkt = "POLYGON (("; - $aShapeCoord = array(); - $aShapeCoord = split(" ", $aRequest["mf_selectShape"]); - - $i = 0; - while ($aShapeCoord[$i]) { - $aPoint = split("@", $aShapeCoord[$i]); - $aShapeCoordxy[$i]["x"] = $aPoint[0]; - $aShapeCoordxy[$i]["y"] = $aPoint[1]; - $i++; - } - - $i = 0; - while ($aShapeCoord[$i]) { - $sWkt = $sWkt . $aShapeCoordxy[$i]["x"] . " " . $aShapeCoordxy[$i]["y"] . ","; - $i++; - } - $sWkt = rtrim($sWkt, ','); - $sWkt = $sWkt . "))"; - - break; - } - return $sWkt; -} - -function wkt2vm($sWkt) { - - $sWkt = ltrim($sWkt, 'POLYGON('); - $sWkt = rtrim($sWkt, ')'); - $sWkt = str_replace(" ", "@", $sWkt); - $sWkt = str_replace(",", " ", $sWkt); - - return $sWkt; -} - -/* - * Fonction qui permet de prendre une chaine de caractere - * De la d�couper selon un d�limiter choisi en permettant de mettre des caract�res de protections - */ - -function stringExplode($sValue, $cDelimiter, $cProtectDeb, $cProtectFin) { - $iArray = 0; - $iChar = 0; - $iLength = strlen($sValue); - $aPart = array(); - while ($iChar < $iLength) { - if ($sValue[$iChar] == $cDelimiter) { - $iArray++; - $iChar++; - } else { // Caract�re diff�rent de $cDelimiter - if ($sValue[$iChar] == $cProtectDeb) { // Le caract�re est �gal � $cProtectDeb - $aPart[$iArray].=$sValue[$iChar]; - $iChar++; - while ($sValue[$iChar] != $cProtectFin) { // On boucle jusqu'� la trouver $cProtectFin - $aPart[$iArray].=$sValue[$iChar]; - $iChar++; - } - } - $aPart[$iArray].=$sValue[$iChar]; - $iChar++; - } - } //while - return $aPart; -} - -/* - * Fonction qui normalise une chaine de caract�re - * En remplacant tout les caract�res sp�ciaux par des _ - */ - -function normalizeString($sString) { - - $sString = str_replace(" ", "_", $sString); - $sString = str_replace(":", "_", $sString); - $sString = str_replace("/", "_", $sString); - $sString = str_replace("\\", "_", $sString); - $sString = str_replace("*", "_", $sString); - - return $sString; -} - -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/class/wab_lib/BusinessObject.class.inc b/src/vitis/vas/rest/class/wab_lib/BusinessObject.class.inc deleted file mode 100755 index 36ae854e..00000000 --- a/src/vitis/vas/rest/class/wab_lib/BusinessObject.class.inc +++ /dev/null @@ -1,390 +0,0 @@ -<?php - -//Par défaut il faudra inclure la lib de log pour pouvoir logger -//D’autres lib pourront être chargées ici en fonction des besoins - -require_once("vmlib/logUtil.inc"); -require_once("vmlib/Email.class.inc"); -require_once("vmlib/phpUtil.inc"); -require_once("gtf_lib/gtf_object/User.class.inc"); - -class WabBusinessObject { - - protected $bo_id; - protected $className; - private $status; - protected $history; - protected $oBd; - public $aValues = array(); - protected $aTableInfo = array(); - protected $aProperties = array(); - protected $aSql = array(); - protected $bNoError = true; - protected $sErrorMessage; - - /* * **************************************************** - Class constructor - \oBd : Connection object. - \aProperties : Array of properties. - - * **************************************************** */ - - public function __construct($oBd, $aTableInfo, $aValues, $aProperties, $className, $iId = null) { - require 'BusinessObject.class.sql.inc'; - //$this->aTableInfo = $aTableInfo; - $this->oBd = $oBd; - $this->aValues = $aValues; - $this->aProperties = $aProperties; - $this->className = $className; - $this->bo_id = $iId; - $this->history = ""; - } - - /* * **************************************************** - Sauve l'action réalisé par l'utilisateur - \sEvent : action réalisé (changement de statut...) - * **************************************************** */ - - private function addHistoryEvent($sEvent) { - $this->history .= date('d/m/Y H:i') . ' | ' . $_SESSION['ses_Login'] . ' | ' . $sEvent . PHP_EOL; - } - - /* * **************************************************** - Change le statut - \sStatus : statut - * **************************************************** */ -/* - protected function setStatus($sStatus) { - // Mode insertion ? - if (!empty($this->iId)) - $this->bo_id = $this->iId; - // - $this->status = $sStatus; - $this->addHistoryEvent($this->status); - $this->save(); - } -*/ - public function wabSetStatus($sSchema, $sTable, $sBoNameField, $mBoIdValue, $sStatusName, $sView = '') { - require 'BusinessObject.class.sql.inc'; - - if($sView === ''){ - $sView = $sTable; - } - - // get status Id avec le StatusName - $aParams = array( - "SCHEMA"=> array("value"=> $sSchema, "type"=>'column_name'), - "TABLE"=> array("value"=> $sTable, "type"=>'column_name'), - "STATUS_NAME"=> array("value"=> $sStatusName, "type"=>'string') - ); - $oResultat = $this->oBd->executeWithParams($aSQL["getStatusId"], $aParams); - - $this->status = $this->oBd->objetSuivant($oResultat)->status_id; - // ajout historique - $this->addHistoryEvent($this->status); - // UPDATE dans la table avec le boName - $sSql = $aSQL["updateStatus"]; - $aParams = array( - "SCHEMA" => array("value"=> $sSchema, "type"=> 'column_name'), - "TABLE" => array("value"=> $sView, "type"=> 'column_name'), - "STATUS_ID" => array("value"=> $this->status, "type"=> 'number'), - "BOIDFIELD" => array("value"=> $sBoNameField, "type"=> 'column_name'), - "BOID" => array("value"=> $mBoIdValue, "type"=> 'number') - ); - - $this->oBd->executeWithParams($sSql, $aParams); - } - - public function wabGetStatus($sSchema, $sTable, $sBoNameField, $mBoIdValue) { - require 'BusinessObject.class.sql.inc'; - // GET Status name - $sSql = $aSQL["getStatusName"]; - $aParams = array( - "SCHEMA" => array("value"=> $sSchema, "type"=> 'column_name'), - "TABLE" => array("value"=> $sTable, "type"=> 'column_name'), - "BOIDFIELD" => array("value"=> $sBoNameField, "type"=> 'column_name'), - "BOID" => array("value"=> $mBoIdValue, "type"=> 'number') - ); - - $oResultat = $this->oBd->executeWithParams($sSql, $aParams); - return $this->oBd->objetSuivant($oResultat)->name; - } - /* * ******************************************************************** - Ajoute une note - \sLineAttribute : Champ de form. contenant la note à ajouter - \sNoteAttribute : Champ de form. contenant l'historique des notes - * ******************************************************************** */ - - protected function addNote($sLineAttribute, $sNoteAttribute) { - if (!empty($this->aValues[$sLineAttribute])) { - // Mode insertion ? - if (!empty($this->iId)) - $this->bo_id = $this->iId; - // - $note = preg_replace('/^<br>/', '', $this->aValues[$sNoteAttribute]); - $note .= date('d/m/Y H:i') . ' | ' . $_SESSION['ses_Login'] . ' | ' . $this->aValues[$sLineAttribute] . PHP_EOL; - $this->aValues[$sNoteAttribute] = $note; - $this->save(); - } - } - - /* * ********************************************* - Retourne toutes les infos d'une méthode pour - la transition - \sMethodName : Nom de la méthode - * ********************************************* */ - /* function getMethodParameters($sMethodName) { - $sSql = $this->aSql[$this->oBd->sgbd]['getMethodParameters']; - $sSql = str_replace('[methodName]', $sMethodName , $sSql); - $sSql = str_replace('[schema_gpm]', $this->aProperties['schema_gpm'] , $sSql); - $sSql = str_replace('[className]', $this->className , $sSql); - $result = $this->oBd->execute($sSql); - if(!$oBd->erreurRencontree) { - $oMethodParameters = $this->oBd->objetSuivant($result); - } - return $oMethodParameters; - } */ - - /* * ********************************************** - Exécute le processus de transition par défaut. - \sMethodName : Nom de la méthode - * ********************************************** */ - /* function setTransition($sMethodName) { - $oMethodParameters = $this->getMethodParameters($sMethodName . '()'); - // Before script - if (!empty($oMethodParameters->before_transition_code)) - eval($oMethodParameters->before_transition_code); - // Mise à jour du status - if ($this->bNoError) { - $this->setStatus($oMethodParameters->transition_to_status); - // After script - if (!empty($oMethodParameters->after_transition_code)) - eval($oMethodParameters->after_transition_code); - } - - } */ - - /* * ************************************************************ - Vérifie si la méthode appelée inexistante est une méthode de - transition. - \$sMethodName : Nom de la méthode inexistante - \$aMethodArguments : Arguments de la méthode - /Retour : Tableau avec un message si erreur. - * ************************************************************ */ - /* public function __call($sMethodName, $aMethodArguments) { - $sSql = $this->aSql[$this->oBd->sgbd]['isTransitionMethod']; - $sSql = str_replace('[methodName]', $sMethodName . '()' , $sSql); - $sSql = str_replace('[schema_gpm]', $this->aProperties['schema_gpm'] , $sSql); - $sSql = str_replace('[className]', $this->className , $sSql); - $oResult = $this->oBd->execute($sSql); - if(!$oBd->erreurRencontree) { - if ($this->oBd->nombreLigne ($oResult) > 0) { - $this->setTransition($sMethodName); - } - } - if ($this->bNoError) { - $aReturn = array('sStatus' => 0); - $bFinishCreateWorkspace = true; - } else { - $aReturn = array('sStatus' => 1, 'sMessage' => $this->sErrorMessage); - $bFinishCreateWorkspace = false; - } - return array('bFinishCreateWorkspace' => $bFinishCreateWorkspace, 'aReturn' => $aReturn); - } */ - - /* * ******************************************************************** - Modifie un paramètre de la classe - \sParameterName : nom du paramètre à modifier - \sValue : Nouvelle valeur - * ******************************************************************** */ - - function set($sParameterName, $sValue) { - if (property_exists($this, $sParameterName)) - $this->$sParameterName = $sValue; - else - $this->aValues[$sParameterName] = $sValue; - } - - /* * ******************************************************************** - Retourne un paramètre de la classe - \sParameterName : nom du paramètre à retourner - /Retour : Valeur du paramètre (si il existe) - * ******************************************************************** */ - - function get($sParameterName) { - if (property_exists($this, $sParameterName)) - return $this->$sParameterName; - } - - /* * ******************************************************************** - Sauve tous les paramètres de la classe - * ******************************************************************** */ - - function save() { - $aValues = $this->getClassParameters(); - $this->oBd->update($this->aTableInfo['schema_name'], str_replace($this->aTableInfo["module"] . "_", "", $this->aTableInfo['name']), $aValues, $this->aTableInfo['id_field'], $this->bo_id, $this->aTableInfo['id_field_type']); - } - - /* * ******************************************************************** - Fusionne les propriétés de l'objet et le tableau aValues - /Return : tableau - * ******************************************************************** */ - - function getClassParameters() { - foreach (get_object_vars($this) as $sIndex => $value) { - if (!is_array($value) && !is_object($value)) - $aClassParameters[$sIndex] = $value; - } - return array_merge($this->aValues, $aClassParameters); - } - - /* * ******************************************************************** - Insère une demande pour un projet FME - \$sWorkspaceKey : Clé du projet FME - \$sWkParams : Paramètres de la demande - \$iPriorityId : Priority level - \$iEmailOptionId : Identifier for email option - \$sEmailNotifications : Notificiation email address - \$sXslStyleSheet : Stylesheet path - /Retour : booléen (T:ok, F:erreur) - * ******************************************************************** */ - - function insertOrder($sWorkspaceKey, $sWkParams, $iPriorityId = 1, $iEmailOptionId = 3, $sEmailNotifications = null, $sXslStyleSheet = '') { - - $bNoError = true; - - if($properties['web_server_name'] === "[HTTP_HOST]"){ - $properties['web_server_name'] = "https://localhost"; - } - - // Get token - $sToken = $this->getToken(); - - if ($sToken !== false) { - - //get workspace id - $sSQL = "SELECT workspace_id FROM [SCHEMA_GTF].workspace WHERE key = [WK_KEY];"; - $aParams = array( - "SCHEMA_GTF" => array('value'=> $this->aProperties["schema_gtf"], 'type' => 'column_name'), - "WK_KEY" => array('value'=> $sWorkspaceKey, 'type' => 'string'), - ); - $oWK = $this->oBd->executeWithParams($sSQL, $aParams); - // oBd en erreur - $iWKid = $this->oBd->objetSuivant ($oWK)->workspace_id; - // Insertion de la demande - $sUrl = $this->aProperties['web_server_name'] . '/' . $this->aProperties['services_alias'] . '/gtf/userorders'; - $postfields = array( - 'token'=>$sToken, - 'order_date' => date('Y-m-d'), - 'workspace_id'=>$iWKid, - 'priority_id'=>$iPriorityId, - 'email_option_id'=>$iEmailOptionId, - 'wk_params'=>$sWkParams, - 'xslstylesheet'=>$sXslStyleSheet - ); - - if ( $sEmailNotifications != null){ - $postfields['email_notifications'] = $sEmailNotifications; - } - - $oReturn = $this->postCurlRequest ($sUrl, $postfields); - - } else - $sErrorMsg = 'Error while performing a cURL session (' . __METHOD__ . ' (get token))'; - - if ($sErrorMsg != '') { - writeToErrorLog($sErrorMsg); - $bNoError = false; - $this->sErrorMessage = $sErrorMsg; - } - $this->bNoError = $bNoError; - return $bNoError; - } - - /* * ******************************************************************** - Envoi un email - \$iEmailTemplateId : Id du modèle d'email. - /Retour : Message - * ******************************************************************** */ - - function sendMail($iEmailTemplateId = null) { - $sMessage = ''; - $aObjects = array('oBusinessObject' => $this); - if (empty($iEmailTemplateId)) - $iEmailTemplateId = $this->aProperties['default_mail_model']; - $oEmail = new Email($this->oBd, $iEmailTemplateId, $this->aProperties, $aObjects); - //if(!empty($sValuesKey)){ - //$oEmail->aValues = $this->aValues; - //} - if (!empty($oEmail->oEmailTemplate->name)) - $sMessage = $oEmail->send(); - return $sMessage; - } - - /* * ******************************************************************** - Retourne un objet de la classe "User". - \$sUserLogin : Login d'un utilisateur - /Retour : Objet de la classe User - * ******************************************************************** */ - - function getUser($sUserLogin) { - $sSql = $this->aSql[$this->oBd->sgbd]['getUserId']; - //$sSql = str_replace('[login]', $this->aValues[$sUserLogin], $sSql); - //$sSql = str_replace('[schema_framework]', $this->aProperties['schema_framework'], $sSql); - $aParams = array( - "login"=>array("value"=>$this->aValues[$sUserLogin], "type"=>"string"), - "schema_framework"=>array("value"=>$this->aProperties['schema_framework'], "type"=>"column_name"), - ); - $oResult = $this->oBd->executeWithParams($sSql, $aParams); - if (!$this->oBd->erreurRencontree) { - if ($this->oBd->nombreLigne($oResult) > 0) { - $oUser = new User($this->oBd, $this->oBd->objetSuivant($oResult)->user_id, $this->aProperties); - return $oUser; - } - } - } - - /* * ******************************************************************** - Récupére un token de session utilisateur. - /Retour : string token - * ******************************************************************** */ - - function getToken () { - - if($this->aProperties['web_server_name'] === "[HTTP_HOST]"){ - $this->aProperties['web_server_name'] = "https://localhost"; - } - $sUrl = $this->aProperties['web_server_name'] . '/' . $this->aProperties['services_alias'] . '/vitis/privatetoken'; - - if(!empty($_SESSION["ses_Login"])){ - $sUserPassword = trim(des(rtrim(utf8_decode($_SESSION['ses_Login'])), hexToString(rtrim($_SESSION['ses_Password'])), 0, 0, null)); - $postfields = array('user'=>$_SESSION["ses_Login"], 'password'=>$sUserPassword); - } else { - $postfields = array('user'=>$this->aProperties["login_bot"], 'password'=>$this->aProperties["pass_bot"]); - } - - $oToken = json_decode($this->postCurlRequest ($sUrl, $postfields)); - return $oToken->token; - } - - /* * ******************************************************************** - envoi une requete curl en POST - \$sUrl : Url pour envoyer la requete - \$postfields : array contenant les paramètres à envoyer - /Retour : string token - * ******************************************************************** */ - function postCurlRequest ($sUrl, $postfields) { - $ch = curl_init($sUrl); - curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); - curl_setopt($ch, CURLOPT_HTTPHEADER, array("Accept: application/json")); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); - curl_setopt($ch, CURLOPT_POST, 1); - curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); - curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields); - curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); - return curl_exec($ch); - } - -} - -?> diff --git a/src/vitis/vas/rest/class/wab_lib/BusinessObject.class.sql.inc b/src/vitis/vas/rest/class/wab_lib/BusinessObject.class.sql.inc deleted file mode 100755 index bf02e36d..00000000 --- a/src/vitis/vas/rest/class/wab_lib/BusinessObject.class.sql.inc +++ /dev/null @@ -1,5 +0,0 @@ -<?php - $aSQL["getStatusId"] = 'SELECT * FROM [SCHEMA].rt_[TABLE]_status WHERE name = [STATUS_NAME]'; - $aSQL["updateStatus"] = 'UPDATE [SCHEMA].v_[TABLE] SET status_id=[STATUS_ID] WHERE v_[TABLE].[BOIDFIELD]=[BOID]'; - $aSQL["getStatusName"] = 'SELECT name FROM [SCHEMA].rt_[TABLE]_status WHERE status_id = (SELECT status_id FROM [SCHEMA].[TABLE] WHERE [TABLE].[BOIDFIELD]=[BOID])'; -?> \ No newline at end of file diff --git a/src/vitis/vas/rest/ws/vitis/Accounts.class.mail.inc b/src/vitis/vas/rest/ws/vitis/Accounts.class.mail.inc deleted file mode 100755 index fef01a79..00000000 --- a/src/vitis/vas/rest/ws/vitis/Accounts.class.mail.inc +++ /dev/null @@ -1,622 +0,0 @@ -<?php - -$aMail["newUserTitle"] = "Un nouvel utilisateur vient juste de s'inscrire"; -$aMail["newUserTitleAutomated"] = "Vérification de votre adresse mail"; -$aMail["newUserBody"] = '<!-- 1 Column Text + Button : BEGIN --> - <tr> - <td bgcolor="#ffffff" style="padding: 0px; text-align: center;background-color:#8c8c8c; height:50px; margin-bottom:10px;"> - <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #FFFFFF; font-weight: normal;">[TITLE]</h1> - </td> - </tr> - <tr> - <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; font-size: 15px; line-height: 20px; color: #000000; text-align: center;"> - <p style="width:100%; font-weight:bold; text-align: justify; font-size: 20px;">Bonjour [FULLNAME],</p> - <p style="width:100%; text-align: left;font-size: 18px;">Nous vous remercions d\'avoir créé votre compte sur <b>[HOSTNAME]</b>.</p> - <p style="width:100%; text-align: left;font-size: 18px;"><b>Informations sur votre compte :</b></p> - <p style="width:100%; text-align: left;font-size: 18px;">Identifiant : [USERNAME]</p> - <p style="width:100%; text-align: left;font-size: 18px;">Organisme : [COMPANY] </p> - <p style="width:100%; text-align: left;font-size: 18px;">Mail : [MAIL]</p> - <p style="width:100%; text-align: left;font-size: 18px;">Téléphone : [PHONE] </p> - <p style="width:100%; text-align: left;font-size: 18px;">Ip publique fixe : [PUBLIC_IP] </p> - <p style="width:100%; text-align: left;font-size: 18px;">Nom du demandeur : [DEMANDEUR] </p> - <p style="width:100%; text-align: left;font-size: 18px;">Adresse mail du demandeur : [MAIL_DEMANDEUR] </p> - <p style="width:100%; text-align: left;font-size: 18px;">Objet de l\'étude : [STUDY_OBJECT] </p> - <p style="width:100%; text-align: left;font-size: 18px;margin-top: 20px;">Cliquez sur le bouton ci-dessous pour finaliser votre inscription :</p> - </td> - </tr> - <tr> - <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; font-size: 20px; line-height: 20px; color: #555555;"> - <table role="presentation" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" style="margin: auto"> - <tr> - <td style="border-radius: 3px; background: #5cb85c; text-align: center;" class="button-td"> - <a href="[URL]" style="background: #5cb85c; border: 15px solid #5cb85c; font-family: sans-serif; font-size: 18px; line-height: 1.1; text-align: center; text-decoration: none; display: block; border-radius: 0px; font-weight: bold;" class="button-a"> - <span style="color:#ffffff;">Je confirme mon adresse mail</span> - </a> - </td> - </tr> - </table> - <!-- Button : END --> - </td> - </tr> - <tr> - <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; line-height: 20px; color: #000000; text-align: center;"> - <p style="width:100%; text-align: justify;font-size: 18px;">Si vous ne vous êtes pas inscrit(e) sur notre application <b>[HOSTNAME]</b>, ignorez simplement ce message.</p> - </td> - </tr> - <!-- 1 Column Text + Button : END -->'; - -$aMail["confirmationSignUpTitle"] = "Confirmation d'inscription"; -$aMail["genericBody"] = ' - <tr> - <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;"> - <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">[MESSAGE]</h1> - </td> - </tr>'; - -$aMail["SignUpOk"] = '<tr> - <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;"> - <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">L\'utilisateur a été ajouté, connectez vous sur la base de données pour lui donner des droits (Defaut: [ROLES])</h1> - </td> - </tr>'; -$aMail["SignUpError"] = '<tr> - <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;"> - <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">L\'utilisateur n\'a pas pu être ajouté consultez les fichiers de log pour plus d\'informations</h1> - </td> - </tr>'; - -$aMail["signUpConfirmation"] = '<tr> - <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;"> - <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal; margin-bottom: 15px;">Votre compte est maintenant activé, vous pouvez vous connecter. Pour avoir accès à plus de fonctionnalités contactez l\'administrateur</h1> - <a style="margin: 0; font-family: sans-serif; font-size: 22px; font-weight: normal;" href="[REDIRECTION]"> Retourner vers l\'application </a> - </td> - </tr>'; -$aMail["fpwdTitle"] = "Changez votre mot de passe"; -$aMail["fpwdUpdateOk"] = '<tr> - <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;"> - <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">Le mot de passe a été mis à jour</h1> - </td> - </tr>'; -$aMail["fpwdUpdateError"] = '<tr> - <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;"> - <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">Le mot de passe n\'a pas pu être mis à jour</h1> - </td> - </tr>'; -$aMail["alreadyUpdate"] = '<tr> - <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;"> - <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">Le mot de passe à déjà été changé</h1> - </td> - </tr>'; - -$aMail["fpwdBody"] = '<!-- 1 Column Text + Button : BEGIN --> - <tr> - <td bgcolor="#ffffff" style="padding: 0px; text-align: center;background-color:#8c8c8c; height:50px; margin-bottom:10px;"> - <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #FFFFFF; font-weight: normal;">Changez votre mot de passe</h1> - </td> - </tr> - <tr> - <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; font-size: 15px; line-height: 20px; color: #000000; text-align: center;"> - <p style="width:100%; font-weight:bold; text-align: left; font-size: 20px;">Bonjour [LOGIN],</p> - <p style="width:100%; text-align: left;font-size: 18px;">Une tentative de récupération de votre compte à été effectué sur le site <b>[HOSTNAME]</b>.</p> - <p style="width:100%; text-align: left;font-size: 18px;margin-top: 10px;">Cliquez sur le bouton ci-dessous pour changer votre mot de passe :</p> - </td> - </tr> - <tr> - <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; font-size: 15px; line-height: 20px; color: #555555;"> - <table role="presentation" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" style="margin: auto"> - <tr> - <td style="border-radius: 3px; background: #5cb85c; text-align: center;" class="button-td"> - <a href="[URL]" style="background: #5cb85c; border: 15px solid #5cb85c; font-family: sans-serif; font-size: 18px; line-height: 1.1; text-align: center; text-decoration: none; display: block; border-radius: 0px; font-weight: bold;" class="button-a"> - <span style="color:#ffffff;">Changer mon mot de passe</span> - </a> - </td> - </tr> - </table> - <!-- Button : END --> - </td> - </tr> - <tr> - <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; line-height: 20px; color: #000000; text-align: center;"> - <p style="width:100%; text-align: justify;font-size: 18px;">Si vous n\'avez pas perdu votre mot de passe pour vous connecter à notre application <b>[HOSTNAME]</b>, ignorez simplement ce message.</p> - </td> - </tr> - <!-- 1 Column Text + Button : END -->'; - -$aMail["fpwdForm"] = '<!-- 1 Column Text + Button : BEGIN --> - <tr> - <td bgcolor="#ffffff" style="padding: 0px; text-align: center;background-color:#8c8c8c; height:50px; margin-bottom:10px;"> - <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #FFFFFF; font-weight: normal;">Saisissez votre nouveau mot de passe</h1> - </td> - </tr> - <tr> - <td bgcolor="#ffffff" style="padding: 20px 40px 40px; font-family: sans-serif; font-size: 15px; line-height: 20px; color: #555555; text-align: center;"> - <form style="text-align:-webkit-right;"> - <div style="text-align:left;"> - <label for="password" style="font-weight: bold;">Nouveau mot de passe</label> - <input type="password" id="password" name="password" class="input-text-control" required/> - </div> - <div style="text-align:left;margin-top:10px;"> - <label for="password_confirm" style="font-weight: bold;">Confirmer votre nouveau mot de passe</label> - <input type="password" id="password_confirm" name="password_confirm" class="input-text-control" required/> - </div> - <div style="margin-top:20px;"> - <input type="hidden" name="token" value="[TOKEN]"/> - <input type="hidden" name="output" value="text/html"/> - <button style="background: #5cb85c; border: 15px solid #5cb85c; font-family: sans-serif; font-size: 15px; line-height: 1.1; text-align: center; text-decoration: none; display: block; border-radius: 0px; font-weight: bold;" class="button-a" type="button" onclick="sendRequest(\'[URL]\')"><span style="color:#ffffff;">Envoi</span></button> - </div> - </form> - </td> - </tr>'; - -$aMail["passwordScript"] = '<script> - var password = document.getElementById("password"), confirm_password = document.getElementById("password_confirm"); - - function validatePassword(){ - if(password.value != confirm_password.value) { - confirm_password.setCustomValidity("Les deux mots de passe doivent être identique"); - } else { - confirm_password.setCustomValidity(\'\'); - } - } - - password.onchange = validatePassword; - confirm_password.onkeyup = validatePassword; - - function sendRequest (sUrl){ - if(typeof(password.value)!== "undefined"){ - if(password.value != ""){ - var xhr = new XMLHttpRequest(); - xhr.open("PUT", sUrl); - sParams = JSON.stringify({"password": password.value}); - xhr.onreadystatechange = function (aEvt) { - if (xhr.readyState == 4) { - if (xhr.status == 200) { - var oJson = JSON.parse(xhr.responseText); - window.location.replace(oJson.sUrl); - } else { - //xhr.responseText; - } - } - } - xhr.send(sParams); - }else{console.log("saisissez un mot de passe2")} - }else{console.log("saisissez un mot de passe")} - } - </script>'; - -$aMail["mainBody"] = '<!DOCTYPE html> -<html lang="en"> -<head> - <meta charset="utf-8"> <!-- utf-8 works for most cases --> - <meta name="viewport" content="width=device-width"> <!-- Forcing initial-scale shouldn\'t be necessary --> - <meta http-equiv="X-UA-Compatible" content="IE=edge"> <!-- Use the latest (edge) version of IE rendering engine --> - <meta name="x-apple-disable-message-reformatting"> <!-- Disable auto-scale in iOS 10 Mail entirely --> - <title>VAM</title> <!-- The title tag shows in email notifications, like Android 4.4. --> - <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"> - <!-- Web Font / @font-face : BEGIN --> - <!-- NOTE: If web fonts are not required, lines 10 - 27 can be safely removed. --> - - <!-- Desktop Outlook chokes on web font references and defaults to Times New Roman, so we force a safe fallback font. --> - <!--[if mso]> - <style> - * { - font-family: sans-serif !important; - } - </style> - <![endif]--> - - <!-- All other clients get the webfont reference; some will render the font and others will silently fail to the fallbacks. More on that here: http://stylecampaign.com/blog/2015/02/webfont-support-in-email/ --> - <!--[if !mso]><!--> - <!-- insert web font reference, eg: <link href="https://fonts.googleapis.com/css?family=Roboto:400,700" rel="stylesheet" type="text/css"> --> - <!--<![endif]--> - - <!-- Web Font / @font-face : END --> - - <!-- CSS Reset --> - <style> - - /* What it does: Remove spaces around the email design added by some email clients. */ - /* Beware: It can remove the padding / margin and add a background color to the compose a reply window. */ - html, - body { - margin: 0 auto !important; - padding: 0 !important; - height: 100% !important; - width: 100% !important; - /*min-width: 600px;*/ - } - - /* What it does: Stops email clients resizing small text. */ - * { - -ms-text-size-adjust: 100%; - -webkit-text-size-adjust: 100%; -} - -/* What it does: Centers email on Android 4.4 */ -div[style*="margin: 16px 0"] { - margin:0 !important; -} - -/* What it does: Stops Outlook from adding extra spacing to tables. */ -table, -td { - mso-table-lspace: 0pt !important; - mso-table-rspace: 0pt !important; -} - -/* What it does: Fixes webkit padding issue. Fix for Yahoo mail table alignment bug. Applies table-layout to the first 2 tables then removes for anything nested deeper. */ -table { - border-spacing: 0 !important; - border-collapse: collapse !important; - table-layout: fixed !important; - margin: 0 auto !important; -} -table table table { - table-layout: auto; -} - -/* What it does: Uses a better rendering method when resizing images in IE. */ -img { - -ms-interpolation-mode:bicubic; -} - -/* What it does: A work-around for iOS meddling in triggered links. */ -*[x-apple-data-detectors] { - color: inherit !important; - text-decoration: none !important; -} - -/* What it does: A work-around for Gmail meddling in triggered links. */ -.x-gmail-data-detectors, -.x-gmail-data-detectors *, -.aBn { - border-bottom: 0 !important; - //cursor: default !important; -} - -/* What it does: Prevents Gmail from displaying an download button on large, non-linked images. */ -.a6S { - display: none !important; - opacity: 0.01 !important; -} -/* If the above doesn\'t work, add a .g-img class to any image in question. */ -img.g-img + div { - display:none !important; -} - -/* What it does: Prevents underlining the button text in Windows 10 */ -.button-link { - text-decoration: none !important; -} - -blockquote { - font-style:normal; - text-align:left; - //margin-left: 32px!important; - margin: 5px 5px 0px 32px!important; - //padding-top:10px; - //font-family:"Segoe Print","Times New Roman", Verdana; - padding-left: 7px; - min-height: 30px; - //background-color: #EFEFEF; - border-left: 2px solid #8c8c8c; -} - -blockquote > p { - margin:4.5px; -} - -.input-text-control{ - display: block; - width: 100%; - height: 14px; - padding: 4px 5px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; - color: #555; - background-color: #fff; - background-image: none; - border: 1px solid #ccc; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075); - box-shadow: inset 0 1px 1px rgba(0,0,0,.075); - -webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s; - -o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; - transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; -} - -/* What it does: Removes right gutter in Gmail iOS app: https://github.com/TedGoas/Cerberus/issues/89 */ -/* Create one of these media queries for each additional viewport size you\'d like to fix */ -/* Thanks to Eric Lepetit (@ericlepetitsf) for help troubleshooting */ -@media only screen and (min-device-width: 375px) and (max-device-width: 413px) { /* iPhone 6 and 6+ */ - .email-container { - min-width: 375px !important; - } -} - -</style> - -<!-- What it does: Makes background images in 72ppi Outlook render at correct size. --> - <!--[if gte mso 9]> - <xml> - <o:OfficeDocumentSettings> - <o:AllowPNG/> - <o:PixelsPerInch>96</o:PixelsPerInch> - </o:OfficeDocumentSettings> - </xml> -<![endif]--> - -<!-- Progressive Enhancements --> -<style> - -/* What it does: Hover styles for buttons */ -.button-td, -.button-a { - transition: all 100ms ease-in; -} -.button-td:hover, -.button-a:hover { - background: #449D44 !important; - border-color: #449D44 !important; -} - -.bottom-strip{ - width: 120px !important; - height: 10px !important; - float: left !important; -} - -.square-logo-layout{ - width: 40px; - float: left !important; - background-color: #FFF;//#24292E; - border-radius: 50%; - font-size: 30px; - padding: 7.5px; - margin-right: 0px; - //color: #FFF; - cursor:pointer !important; -} - -.square-logo-layout > svg{ - cursor:pointer!important; -} - - -/* Media Queries */ -@media screen and (max-width: 600px) { - - .email-container { - width: 100% !important; - margin: auto !important; - } - - /* What it does: Forces elements to resize to the full width of their container. Useful for resizing images beyond their max-width. */ - .fluid { - max-width: 100% !important; - height: auto !important; - margin-left: auto !important; - margin-right: auto !important; - } - - /* What it does: Forces table cells into full-width rows. */ - .stack-column, - .stack-column-center { - display: block !important; - width: 100% !important; - max-width: 100% !important; - direction: ltr !important; - } - /* And center justify these ones. */ - .stack-column-center { - text-align: center !important; - } - - /* What it does: Generic utility class for centering. Useful for images, buttons, and nested tables. */ - .center-on-narrow { - text-align: center !important; - display: block !important; - margin-left: auto !important; - margin-right: auto !important; - float: none !important; - } - table.center-on-narrow { - display: inline-block !important; - } - - .input-text-control{ - display: block; - width: 100%; - height: 14px; - padding: 4px 5px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; - color: #555; - background-color: #fff; - background-image: none; - border: 1px solid #ccc; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075); - box-shadow: inset 0 1px 1px rgba(0,0,0,.075); - -webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s; - -o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; - transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; - } - - /* What it does: Adjust typography on small screens to improve readability */ - .email-container p { - font-size: 17px !important; - line-height: 22px !important; - } - -} - -</style> - -</head> -<body width="100%" bgcolor="#E5E5E5" style="margin: 0px; mso-line-height-rule: exactly;"> - <center style="width: 600px; margin: auto; background: #FFFFFF; text-align: left;"> - <!-- Email Header : BEGIN --> - <table role="presentation" aria-hidden="true" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" width="600" style="margin: auto;" class="email-container"> - <tr> - <td style="padding: 20px 0px; text-align: center"> - <a href="http://www.veremes.com/" target="_blank"> - <svg version="1.1" id="Calque_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="335px" height="100px" viewBox="0 0 335 100" enable-background="new 0 0 335 100" xml:space="preserve"> - <g> - <rect fill="#FFFFFF" width="335" height="100"/> - <g> - <path fill="#1A171B" d="M308.774,60.788c-0.99-1.493-2.537-2.688-4.64-3.589c-0.533-0.224-1.577-0.57-3.142-1.042 - c-1.563-0.47-2.75-0.959-3.567-1.472c-0.893-0.547-1.532-1.161-1.916-1.841c-0.386-0.682-0.577-1.517-0.577-2.511 - c0-1.4,0.466-2.572,1.398-3.516c0.933-0.944,2.098-1.417,3.498-1.417c1.561,0,2.793,0.437,3.695,1.308 - c0.901,0.873,1.402,2.1,1.505,3.681h4.622c-0.12-2.909-1.026-5.178-2.72-6.806c-1.69-1.626-3.972-2.439-6.845-2.439 - c-2.71,0-5.016,0.916-6.921,2.744c-1.904,1.831-2.856,4.057-2.856,6.678c0,2.319,0.569,4.168,1.714,5.551 - c1.143,1.383,3.582,2.734,7.318,4.056c2.334,0.858,3.947,1.775,4.838,2.754c0.891,0.98,1.336,2.274,1.336,3.884 - c0,1.612-0.561,2.947-1.682,4.007c-1.121,1.063-2.526,1.592-4.219,1.592c-1.772,0-3.262-0.69-4.463-2.071 - c-1.202-1.379-1.802-3.12-1.802-5.228v-0.122h-4.502c0.103,3.535,1.114,6.344,3.039,8.431c1.922,2.085,4.466,3.127,7.637,3.127 - c3.108,0,5.674-0.952,7.698-2.853c2.025-1.899,3.038-4.301,3.038-7.205C310.261,64.182,309.764,62.279,308.774,60.788z - M118.462,41.021c-5.17,0-9.417,1.679-12.739,5.035c-3.32,3.357-4.979,7.607-4.979,12.742c0,4.912,1.693,9.118,5.084,12.617 - c3.389,3.502,7.535,5.252,12.438,5.252c3.694,0,6.947-0.998,9.756-2.988c2.808-1.994,4.988-4.849,6.542-8.569h-4.866 - c-1.103,2.332-2.666,4.151-4.688,5.459c-2.023,1.308-4.302,1.962-6.834,1.962c-3.575,0-6.558-1.131-8.947-3.394 - c-2.391-2.263-3.718-5.226-3.983-8.894h30.413v-0.318c0-5.604-1.601-10.154-4.797-13.655 - C127.662,42.771,123.529,41.021,118.462,41.021z M105.366,56.472c0.509-3.468,1.901-6.219,4.17-8.258 - c2.27-2.037,5.04-3.056,8.313-3.056c3.517,0,6.368,0.948,8.556,2.844c2.188,1.897,3.692,4.719,4.509,8.47H105.366z M99.054,31.046 - L84.898,69.101L72.402,35.38l0.007-0.047l-0.079-0.217c-0.401-1.095-0.841-2.3-1.34-3.546l-0.194-0.523h-0.021 - c-2.108-5.143-5.249-10.879-10.817-12.957c-5.541-2.069-12.762-0.675-17.169,3.314c-3.422,3.096-5.471,7.843-6.089,14.111 - c0-0.002-0.117,1.154-0.117,1.154c-0.239,2.31-0.481,4.665-0.354,7.034l0.047,0.874l0.875-0.048l2.31-0.124l0.876-0.046 - l-0.049-0.876c-0.113-2.069,0.115-4.268,0.335-6.396c0-0.001,0.12-1.172,0.12-1.172c0.517-5.235,2.121-9.103,4.771-11.499 - c3.349-3.03,8.825-4.09,13.024-2.522c4.294,1.604,6.994,6.964,8.88,11.717l1.387,3.688l0.208,0.57l0.005-0.004L83.24,75.692h3.407 - l16.788-44.646H99.054z M268.755,41.021c-5.171,0-9.418,1.679-12.738,5.035c-3.32,3.357-4.979,7.607-4.979,12.742 - c0,4.912,1.692,9.118,5.084,12.617c3.389,3.502,7.535,5.252,12.438,5.252c3.695,0,6.947-0.998,9.758-2.988 - c2.807-1.994,4.986-4.849,6.54-8.569h-4.866c-1.102,2.332-2.666,4.151-4.688,5.459c-2.022,1.308-4.302,1.962-6.835,1.962 - c-3.574,0-6.557-1.131-8.945-3.394c-2.392-2.263-3.72-5.226-3.984-8.894h30.415v-0.318c0-5.604-1.603-10.154-4.8-13.655 - C277.955,42.771,273.821,41.021,268.755,41.021z M255.658,56.472c0.51-3.468,1.901-6.219,4.171-8.258 - c2.27-2.037,5.039-3.056,8.314-3.056c3.516,0,6.367,0.948,8.555,2.844c2.187,1.897,3.692,4.719,4.509,8.47H255.658z - M148.164,42.625c-1.253,0.705-2.409,1.808-3.465,3.315v-3.946h-4.074v33.698h4.379V55.395c0-3.099,0.583-5.334,1.754-6.711 - c1.17-1.376,3.11-2.187,5.821-2.431l-0.032-4.744C150.878,41.549,149.417,41.922,148.164,42.625z M172.22,41.021 - c-5.171,0-9.418,1.679-12.738,5.035c-3.321,3.357-4.981,7.607-4.981,12.742c0,4.912,1.694,9.118,5.085,12.617 - c3.389,3.502,7.535,5.252,12.438,5.252c3.695,0,6.947-0.998,9.757-2.988c2.808-1.994,4.988-4.849,6.541-8.569h-4.866 - c-1.102,2.332-2.665,4.151-4.688,5.459c-2.023,1.308-4.303,1.962-6.834,1.962c-3.574,0-6.557-1.131-8.947-3.394 - c-2.391-2.263-3.718-5.226-3.984-8.894h30.414v-0.318c0-5.604-1.6-10.154-4.799-13.655 - C181.419,42.771,177.286,41.021,172.22,41.021z M159.124,56.472c0.51-3.468,1.901-6.219,4.17-8.258 - c2.271-2.037,5.04-3.056,8.313-3.056c3.517,0,6.369,0.948,8.556,2.844c2.188,1.897,3.692,4.719,4.51,8.47H159.124z - M232.864,41.264c-2.51,0-4.779,0.509-6.809,1.518c-2.03,1.012-3.73,2.49-5.097,4.43c-1.106-1.818-2.712-3.264-4.82-4.338 - c-2.108-1.072-4.441-1.61-7-1.61c-2.212,0-4.191,0.379-5.941,1.134c-1.748,0.756-3.27,1.88-4.558,3.372v-3.776h-4.258v33.698 - h4.258V59.274c0-2.927,0.105-4.978,0.321-6.154c0.215-1.177,0.586-2.227,1.119-3.147c0.856-1.473,2.026-2.604,3.509-3.391 - c1.481-0.787,3.203-1.182,5.165-1.182c3.248,0,5.66,0.926,7.233,2.777c1.573,1.852,2.36,4.722,2.36,8.61v18.905h4.136V59.274 - c0-2.927,0.112-4.978,0.338-6.154c0.223-1.177,0.59-2.227,1.1-3.147c0.854-1.473,2.012-2.604,3.467-3.391 - c1.457-0.787,3.143-1.182,5.06-1.182c3.318,0,5.711,0.947,7.178,2.84c1.469,1.894,2.202,5.07,2.202,9.529v17.923h4.137V58.658 - c0-6.093-1.043-10.516-3.122-13.268C240.76,42.64,237.436,41.264,232.864,41.264z"/> - <g> - <path fill="#1A171B" d="M36.791,43.727c4.5,3.508,3.856-8.518,5.095-10.445c-0.251,0.39,1.045-0.227,1.359-0.68 - c0.714-1.033,0.78-1.304,1.783-0.467c0.685,0.57,4.073-2.156,5.011-2.76c-0.206-0.223,0.68,1.338,0.68,0.764 - c0,4.354-0.253,0.671,2.42,1.401c1.206,0.329,2.179-0.847,3.269,0.893c-0.283,0.31-0.566,0.621-0.849,0.933 - c4.111,1.071,3.139,4.072,7.134,6.029c-1.239,0.545-2.304,1.363-2.463,2.803c1.169,0.267,2.366,0.422,3.566,0.424 - c-0.34,0.311-0.679,0.622-1.02,0.934c2.158,0.346,2.307,2.235,4.671,1.699c-0.891,1.669-4.83,4.51-1.274,5.094 - c-0.198,0.085-0.396,0.171-0.594,0.255c0.745,0.477,1.172,1.362,1.868,1.868c-0.946,0.11-1.794,0.679-2.802,0.68 - c0.04,1.611,1.581,1.87,2.717,2.124c-2.577,1.72,0.311,0.894,0.722,2.122c-0.165-0.493,1.154,1.254,0.807,0.977 - c-0.173-0.139-1.318,0.596-0.807,1.062c0.174,0.158,4.875,0.583,1.98,1.482c-1.714,0.534-4.447,0.456-3.679,2.763 - c-1.174-0.126-1.886,0.235-2.845-0.083c0.154,0.687-0.067,0.846,0.213,1.442c-1.335,0.382-2.595-0.269-3.695-1.061 - c-0.042,0.268-0.084,0.537-0.127,0.806c-0.368-0.325-0.736-0.649-1.104-0.976c0.016,0.536-0.255,1.096-0.212,1.656 - c-0.877-0.677-5.258-4.209-2.972-1.189c0.905,1.195,1.842,1.439,2.93,2.463c-1.363,0.366-0.2,5.027,1.91,4.627 - c-1.045,1.709-3.151-0.414-4.289,1.828c1.419,0.304,0.683,0.515,1.826,1.146c-0.596-0.139-1.35,0.109-1.996-0.043 - c0.058,0.606,1.302,2.911,1.104,3.185c-0.761,1.05-2.778-1.146-3.949-1.146c-0.209,0.18-0.252,0.392-0.126,0.636 - c1.264,0.254,0.742,0.52,0.976,1.698c-2.448-0.878-0.467,0.231-0.467,1.104c0,3.686-2.677-0.092-2.548,2.505 - c-0.269-0.014-0.537-0.027-0.806-0.041c0.263,2.893-2.243-0.257-2.845,3.056c0.048,0.018-3.298-0.522-3.333-0.488 - c-1.136,1.135-1.402-0.027-2.174,0.598c-1.87,1.514-1.024-1.807-1.552-1.998c-0.694-0.253-2.246,1.984-2.455,0.573 - c-0.207-1.396-0.55-3.131-1.463-1.656c-0.954-0.37-3.546,0.314-3.842-0.572c-0.223-0.67-2.252-3.619-0.871-4.078 - c-0.407,0.137-1.347,0.543-1.719,0.765c0.857-2.833-1.515-2.188-3.185-1.146c0.104-1.69,0.899-3.521-1.083-3.247 - c0.293-0.662,0.337-1.645,0.828-2.356c-0.382,0.084-0.764,0.17-1.146,0.254c0.059-0.477,4.984-10.382,5.223-10.382 - c-0.199-0.062-0.369-0.169-0.51-0.318c-1.236,3.129-3.048,5.804-5.095,8.534c0.046-0.52-0.061-1.008-0.318-1.464 - c-0.23,0-1.983,2.339-2.548,2.61c0-0.253,0-0.509,0-0.763c-0.231,0.366-1.444,2.675-1.783,2.675c-0.329,0,0.481-1.796-0.51-1.467 - c-0.944,0.315-1.458,0.54-2.292,0.701c0.99-1.181,1.719-2.432-0.446-1.783c0.204-0.955-0.191-1.231-0.191-1.974 - c-0.159,0.41-0.393,0.771-0.7,1.084c-0.23-1.254-0.242-6.138-0.383-6.138c-1.46,0,0.123-2.937,0.341-3.312 - c-0.17-0.142-0.341-0.282-0.51-0.425c0.05,1.16-0.433,1.305-0.764,2.293c-1.08-1.767,1.521-3.314-0.764-3.99 - c0.311-0.256,0.623-0.51,0.934-0.765c-0.199-0.198-0.396-0.396-0.595-0.595c-0.269,0.61-0.729,1.216-1.02,1.783 - c-0.154-0.479,0.034-2.888,0.51-2.888c-0.313-0.017-0.624-0.044-0.935-0.084c0.723-0.973,0.495-1.264,1.444-1.699 - c-0.17-0.51-0.339-1.019-0.509-1.529c0.17,0.058,0.339,0.114,0.509,0.171c0.149,0.083-0.41-0.829-0.68-0.424 - c0.503-0.754,1.123-1.223,1.868-1.614c-0.283-0.17-0.566-0.34-0.849-0.51c0.664-0.432,1.176-1.357,2.038-1.698 - c-0.566-1.104-0.674-1.464-1.868-1.784c-0.033-2.104,1.163-9.234,2.717-8.407c-0.049-0.578-0.062-0.699,0.509-0.765 - c-0.087-1.145-0.637-0.797,0.595-1.104c-0.979-4.102,1.847-2.083,3.651-1.104c0-0.341,0-0.68,0-1.02 - c0.534,0.116,1.853,0.641,2.177,0.085c0.109-0.188-0.92-0.513-1.073-0.594c1.126-0.569,0.975-1.844,0.17-3.143 - c1.503,0.075,3.008,0.738,3.482-0.594c0.613,0.591,1.188,0.584,1.697,1.358c0.284-0.481,0.566-0.963,0.85-1.443 - c0.53,0.646,1.549,2.504,2.59,1.983c0.223-0.111,1.486,0.661,1.486,0.394c0-1.159,0.588-2.121,1.529-2.717 - C35.584,34.716,35.005,38.027,36.791,43.727"/> - </g> - </g> - </g> - </svg> - </a> - </td> - </tr> -</table> -<!-- Email Header : END --> - -<!-- Email Body : BEGIN --> -<table role="presentation" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" width="600" style="margin: auto;" class="email-container"> - - [CONTENT] - -</table> -<!-- Email Body : END --> - -<!-- Email Footer : BEGIN --> -<table role="presentation" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" width="600" style="margin: auto;" class="email-container"> - <tr> - <td style="padding: 0px;width: 100%;" class="x-gmail-data-detectors"> - <div class="bottom-strip" style="background-color: #39468A;"></div> - <div class="bottom-strip" style="background-color: #E74F23;"></div> - <div class="bottom-strip" style="background-color: #923288;"></div> - <div class="bottom-strip" style="background-color: #1C9DB2;"></div> - <div class="bottom-strip" style="background-color: #E10759;"></div> - </td> - </tr> -</table> -<table role="presentation" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" width="600" style="margin: auto;" class="email-container"> - <tr> - <td style="padding: 10px;width: 50%;font-size: 12px; font-family: sans-serif; line-height:18px; text-align: center; color: #888888; cursor:pointer;" class="x-gmail-data-detectors"> - <a class="square-logo-layout" href="https://twitter.com/Veremes_Info" target="_blank" style="color: #24292E; cursor:pointer;"> - <!--<i class="fa fa-twitter" style=""></i>--> - <svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" style="fill: currentColor; cursor:pointer;"> - <title>Twitter</title> - <path d="M50,0a50,50,0,1,0,50,50A50,50,0,0,0,50,0ZM75.28,37c0,.56,0,1.12,0,1.68C75.32,56,62.2,75.83,38.21,75.83h0a37,37,0,0,1-20-5.86,24.62,24.62,0,0,0,3.11.18,26.13,26.13,0,0,0,16.2-5.58,13,13,0,0,1-12.18-9.06,12.34,12.34,0,0,0,2.45.24,13,13,0,0,0,3.44-.46A13,13,0,0,1,20.77,42.5v-.16A13.11,13.11,0,0,0,26.68,44a13.05,13.05,0,0,1-4-17.42A37,37,0,0,0,49.52,40.18a13.19,13.19,0,0,1-.34-3,13.05,13.05,0,0,1,22.57-8.92A26.11,26.11,0,0,0,80,25.12a13.08,13.08,0,0,1-5.73,7.22,26.23,26.23,0,0,0,7.49-2.06A26.49,26.49,0,0,1,75.28,37Z"/> - </svg> - </a> - <a class="square-logo-layout" href="https://www.linkedin.com/company/veremes/" target="_blank" style="color: #24292E; cursor:pointer;"> - <!--<i class="fa fa-linkedin" style=""></i>--> - <svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" style="fill: currentColor; cursor:pointer;"> - <title>LinkedIn</title> - <path d="M50,0a50,50,0,1,0,50,50A50,50,0,0,0,50,0ZM60.71,51a6.48,6.48,0,0,0-6.33,6.32V79.68H41.74V41.74H54.38v5a13.63,13.63,0,0,1,10.54-5.9A15,15,0,0,1,79.68,55.65v24H67V57.33A6.48,6.48,0,0,0,60.71,51ZM27,34.57A7.59,7.59,0,1,1,34.57,27,7.55,7.55,0,0,1,27,34.57Zm6.32,7.17V79.68H20.66V41.74Z"/> - </svg> - </a> - <a class="square-logo-layout" href="http://vm09.veremes.net/" target="_blank" style="color: #24292E; cursor:pointer;"> - <!--<i class="fa fa-github" style=""></i>--> - <svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" style="fill: currentColor; cursor:pointer;"> - <title>GitLab</title> - <path d="M50,0a50,50,0,1,0,50,50A50,50,0,0,0,50,0ZM75.18,15.1a1,1,0,0,1,2,0l9,27.81h-20Zm-52.34,0a1,1,0,0,1,2,0l9,27.81h-20ZM9.85,61A2.63,2.63,0,0,1,8.9,58l4.35-13.4L47.16,88.07Zm4.33-17h20l14.3,44Zm21.19,0H64.63L50,89Zm30.42,0h20L51.49,88ZM90.15,61,52.84,88.07,86.75,44.62,91.1,58A2.63,2.63,0,0,1,90.15,61Z"/> - </svg> - </a> - <a class="square-logo-layout" href="http://www.veremes.com/" target="_blank" style="color: #24292E; cursor:pointer;"> - <!--<i class="fa fa-globe" style=""></i>--> - <svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" style="fill: currentColor; cursor:pointer;"> - <defs> - <style>.cls-1{fill:none;}</style> - </defs> - <title>Veremes</title> - <path class="cls-1" d="M60.17,18.09h0S60.15,18.05,60.17,18.09Z"/> - <path class="cls-1" d="M48.39,26.38c.66-6.65,2.7-11.56,6.06-14.6a11.45,11.45,0,0,1,1.82-1.29A40.5,40.5,0,0,0,50,10l-1,0c-3.18,3.87-5.13,9.17-5.79,15.85l-.15,1.47c-.21,2.06-.42,4.16-.47,6.28-1.35-5.7-.83-9.69-1.1-15.87A4,4,0,0,0,39.6,21.2c0,.34-1.6-.64-1.88-.5-1.33.67-2.62-1.69-3.29-2.51L33.35,20c-.65-1-1.38-1-2.16-1.73-.6,1.69-2.51.85-4.42.76,1,1.65,1.21,3.26-.21,4,.19.1,1.5.51,1.36.75-.41.71-2.09,0-2.77-.11V25c-2.29-1.25-5.88-3.81-4.63,1.4-1.57.39-.87-.05-.76,1.4-.72.09-.71.24-.64,1-2-1.05-3.5,8-3.45,10.68,1.51.4,1.65.86,2.37,2.26-1.1.43-1.75,1.61-2.59,2.16l1.08.64a6,6,0,0,0-2.37,2c.34-.51,1.05.65.86.54l-.65-.22c.22.65.43,1.3.65,2-1.21.55-.92.92-1.83,2.15.39,0,.78.09,1.18.11-.6,0-.84,3.06-.65,3.67.37-.72,1-1.49,1.3-2.27l.75.76-1.18,1c2.9.86-.4,2.82,1,5.06.42-1.25,1-1.43,1-2.91l.65.54c-.28.48-2.29,4.21-.44,4.21.18,0,.2,6.2.49,7.79a4,4,0,0,0,.89-1.38c0,.95.5,1.3.24,2.51,2.75-.82,1.82.76.57,2.26a20.92,20.92,0,0,0,2.91-.89c1.26-.41.23,1.86.64,1.86s2-2.93,2.27-3.39v1c.72-.35,2.94-3.32,3.23-3.32a3.11,3.11,0,0,1,.41,1.86,46.51,46.51,0,0,0,6.47-10.83,1.46,1.46,0,0,0,.65.4c-.31,0-6.56,12.58-6.64,13.18l1.46-.32c-.63.9-.68,2.15-1,3,2.51-.35,1.5,2,1.37,4.13,2.12-1.33,5.14-2.15,4.05,1.45a15.73,15.73,0,0,1,2.18-1c-1.76.58.82,4.33,1.11,5.17.37,1.13,3.66.26,4.87.73,1.16-1.87,1.6.33,1.86,2.11s2.24-1,3.12-.73c.67.24-.4,4.46,2,2.53,1-.79,1.32.68,2.76-.75,0,0,4.29.64,4.23.62.77-4.21,3.94-.21,3.61-3.88l1,0c-.16-3.3,3.24,1.5,3.24-3.18,0-1.11-2.52-2.52.59-1.4-.29-1.5.37-1.84-1.24-2.16a.62.62,0,0,1,.16-.81c1.49,0,4,2.79,5,1.46.25-.35-1.33-3.28-1.4-4,.82.2,1.77-.12,2.53.06-1.45-.8-.52-1.07-2.32-1.46,1.45-2.84,4.12-.15,5.45-2.32C70.78,71.9,69.3,66,71,65.52c-1.38-1.3-2.57-1.61-3.72-3.13-2.9-3.83,2.66.65,3.78,1.51-.06-.71.28-1.42.27-2.1L72.76,63c0-.34.11-.69.16-1,1.4,1,3,1.83,4.69,1.35-.35-.76-.08-1-.27-1.83,1.22.4,2.12-.06,3.61.11-1-2.93,2.5-2.84,4.67-3.51,3.68-1.15-2.29-1.68-2.51-1.88-.65-.6.8-1.53,1-1.35.44.35-1.23-1.87-1-1.24-.52-1.56-4.19-.51-.92-2.7-1.44-.32-3.4-.65-3.45-2.69,1.28,0,2.36-.73,3.56-.87-.89-.64-1.43-1.76-2.37-2.37l.75-.32c-4.51-.74.49-4.35,1.62-6.47-3,.68-3.19-1.72-5.93-2.16l1.29-1.18a20.84,20.84,0,0,1-4.52-.54c.19-1.83,1.55-2.87,3.12-3.56-5.07-2.49-3.84-6.3-9.06-7.66L68.28,22c-1.38-2.21-2.62-.72-4.15-1.13-3.39-.93-3.07,3.75-3.07-1.78,0,.62-.81-.72-.89-1-1.22.8-5.47,4.21-6.34,3.49-1.27-1.06-1.35-.72-2.26.59-.4.58-2,1.36-1.73.87-.9,1.41-1,7.1-2.05,10.79,0-2,.25-4,.45-6Z"/> - <path d="M99.94,47.71l0-.64c0-.61-.08-1.23-.14-1.84,0-.16,0-.31,0-.46-.08-.74-.17-1.47-.28-2.2,0-.19-.06-.38-.1-.57q-.13-.86-.3-1.68l-.12-.64c-.15-.7-.31-1.39-.48-2.08,0-.15-.09-.3-.13-.45-.14-.56-.3-1.11-.46-1.65-.08-.24-.15-.49-.23-.73-.16-.51-.34-1-.52-1.54-.06-.17-.12-.35-.19-.53-.23-.62-.47-1.24-.73-1.85-.11-.27-.22-.53-.34-.8s-.35-.78-.53-1.17l-.38-.81c-.27-.56-.56-1.11-.85-1.66-.16-.3-.33-.59-.49-.88s-.35-.61-.53-.92-.37-.63-.57-.94L92,22.86q-.55-.86-1.14-1.68l-.45-.62c-.25-.35-.51-.69-.77-1-.13-.18-.27-.35-.41-.52q-1.36-1.74-2.9-3.35L86,15.35q-1.66-1.72-3.48-3.29L82.46,12a51.79,51.79,0,0,0-5.4-4h0a49.56,49.56,0,0,0-4.42-2.54h0A49.59,49.59,0,0,0,63.94,2h0c-1.56-.45-3.16-.83-4.78-1.13L58.49.73,57.21.52C56.59.43,56,.35,55.33.29L54.54.21,53,.1l-.73,0C51.51,0,50.76,0,50,0a50,50,0,1,0,50,50C100,49.23,100,48.47,99.94,47.71ZM49.84,23c-.31.49,1.33-.29,1.73-.87.91-1.31,1-1.65,2.26-.59.87.72,5.12-2.69,6.34-3.49,0,0,0-.06,0,0h0c.08.24.89,1.58.89,1,0,5.53-.32.85,3.07,1.78,1.53.41,2.77-1.08,4.15,1.13L67.2,23.14c5.22,1.36,4,5.17,9.06,7.66-1.57.69-2.93,1.73-3.12,3.56a20.84,20.84,0,0,0,4.52.54l-1.29,1.18c2.74.44,2.92,2.84,5.93,2.16-1.13,2.12-6.13,5.73-1.62,6.47l-.75.32c.94.61,1.48,1.73,2.37,2.37-1.2.14-2.28.86-3.56.87.05,2,2,2.37,3.45,2.69-3.27,2.19.4,1.14.92,2.7-.21-.63,1.46,1.59,1,1.24-.22-.18-1.67.75-1,1.35.22.2,6.19.73,2.51,1.88-2.17.67-5.64.58-4.67,3.51-1.49-.17-2.39.29-3.61-.11.19.87-.08,1.07.27,1.83-1.7.48-3.29-.34-4.69-1.35,0,.34-.11.69-.16,1l-1.4-1.24c0,.68-.33,1.39-.27,2.1C70,63,64.41,58.56,67.31,62.39c1.15,1.52,2.34,1.83,3.72,3.13-1.73.46-.25,6.38,2.43,5.87-1.33,2.17-4-.52-5.45,2.32,1.8.39.87.66,2.32,1.46-.76-.18-1.71.14-2.53-.06.07.77,1.65,3.7,1.4,4-1,1.33-3.53-1.46-5-1.46a.62.62,0,0,0-.16.81c1.61.32,1,.66,1.24,2.16-3.11-1.12-.59.29-.59,1.4,0,4.68-3.4-.12-3.24,3.18l-1,0c.33,3.67-2.84-.33-3.61,3.88.06,0-4.19-.67-4.23-.62-1.44,1.43-1.78,0-2.76.75-2.37,1.93-1.3-2.29-2-2.53-.88-.32-2.86,2.52-3.12.73s-.7-4-1.86-2.11c-1.21-.47-4.5.4-4.87-.73-.29-.84-2.87-4.59-1.11-5.17a15.73,15.73,0,0,0-2.18,1c1.09-3.6-1.93-2.78-4.05-1.45.13-2.15,1.14-4.48-1.37-4.13.37-.84.42-2.09,1-3l-1.46.32c.08-.6,6.33-13.18,6.64-13.18a1.46,1.46,0,0,1-.65-.4,46.51,46.51,0,0,1-6.47,10.83A3.11,3.11,0,0,0,28,67.51c-.29,0-2.51,3-3.23,3.32v-1c-.3.46-1.83,3.39-2.27,3.39s.62-2.27-.64-1.86a20.92,20.92,0,0,1-2.91.89c1.25-1.5,2.18-3.08-.57-2.26.26-1.21-.24-1.56-.24-2.51a4,4,0,0,1-.89,1.38c-.29-1.59-.31-7.79-.49-7.79-1.85,0,.16-3.73.44-4.21l-.65-.54c.06,1.48-.55,1.66-1,2.91-1.37-2.24,1.93-4.2-1-5.06l1.18-1L15,52.47c-.34.78-.93,1.55-1.3,2.27-.19-.61,0-3.67.65-3.67-.4,0-.79-.06-1.18-.11.91-1.23.62-1.6,1.83-2.15-.22-.65-.43-1.3-.65-2l.65.22c.19.11-.52-1-.86-.54a6,6,0,0,1,2.37-2l-1.08-.64c.84-.55,1.49-1.73,2.59-2.16-.72-1.4-.86-1.86-2.37-2.26-.05-2.68,1.47-11.73,3.45-10.68-.07-.73-.08-.88.64-1-.11-1.45-.81-1,.76-1.4-1.25-5.21,2.34-2.65,4.63-1.4v-1.3c.68.15,2.36.82,2.77.11.14-.24-1.17-.65-1.36-.75,1.42-.73,1.23-2.34.21-4,1.91.09,3.82.93,4.42-.76C32,19,32.7,19,33.35,20l1.08-1.83c.67.82,2,3.18,3.29,2.51.28-.14,1.88.84,1.88.5a4,4,0,0,1,1.94-3.45c.27,6.18-.25,10.17,1.1,15.87,0-2.12.26-4.22.47-6.28l.15-1.47c.66-6.68,2.61-12,5.79-15.85l1,0a40.5,40.5,0,0,1,6.27.49,11.45,11.45,0,0,0-1.82,1.29c-3.36,3-5.4,8-6.06,14.6l-.15,1.49c-.2,2-.41,4-.45,6C48.82,30.14,48.94,24.45,49.84,23Z"/> - </svg> - </a> - </td> - <td style="padding: 10px;width: 50%;font-size: 20px; font-family: sans-serif; line-height:18px; text-align: center; color: #000000;" class="x-gmail-data-detectors"> - <div style="margin-bottom:10px;">Pour toute question :</div> - <div>support@veremes.com</div> - </td> - </tr> -</table> -<!-- Email Footer : END --> - -</center> -[SCRIPT] -</body> -</html>'; -?> \ No newline at end of file diff --git a/src/vitis/vas/sql/sqlQueries.xml b/src/vitis/vas/sql/sqlQueries.xml deleted file mode 100644 index 4e745ccc..00000000 --- a/src/vitis/vas/sql/sqlQueries.xml +++ /dev/null @@ -1,948 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<sqlQueries> - <title>Scripts d'installation et de mises à jour de la base du VAS</title> - <queriesCollection> - <query> - <type>init</type> - <version>2016.01.00</version> - <code> - <![CDATA[ - CREATE SCHEMA s_vitis; - CREATE OR REPLACE FUNCTION s_vitis.create_role_if_not_exists(rolename NAME, rights text) RETURNS TEXT AS $$ BEGIN IF NOT EXISTS (SELECT * FROM pg_roles WHERE rolname = rolename) THEN EXECUTE 'CREATE ROLE ' || rolename|| ' ' || rights; RETURN 'CREATE ROLE'; ELSE RETURN format('ROLE ''%I'' ALREADY EXISTS', rolename); END IF; END; $$ LANGUAGE plpgsql; - select s_vitis.create_role_if_not_exists('vitis_user', 'NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION'); - GRANT vitis_user TO u_vitis; - select s_vitis.create_role_if_not_exists('vitis_admin', 'NOSUPERUSER INHERIT NOCREATEDB CREATEROLE NOREPLICATION'); - GRANT vitis_user TO vitis_admin; - ALTER SCHEMA s_vitis OWNER TO u_vitis; - SET search_path = s_vitis, pg_catalog; - CREATE FUNCTION f_add_col(_tbl regclass, _col text, _type regtype, OUT success boolean) RETURNS boolean LANGUAGE plpgsql AS $$ BEGIN IF EXISTS (SELECT 1 FROM pg_attribute WHERE attrelid = _tbl AND attname = _col AND NOT attisdropped) THEN success := FALSE; ELSE EXECUTE 'ALTER TABLE ' || _tbl || ' ADD COLUMN ' || quote_ident(_col) || ' ' || _type; success := TRUE; END IF; END $$; - ALTER FUNCTION s_vitis.f_add_col(_tbl regclass, _col text, _type regtype, OUT success boolean) OWNER TO u_vitis; - CREATE FUNCTION f_add_unique_index(_schema text, _table text, _col text, _name text, OUT success boolean) RETURNS boolean LANGUAGE plpgsql AS $$ BEGIN IF EXISTS (SELECT 1 FROM pg_class c JOIN pg_namespace n ON n.oid = c.relnamespace WHERE c.relname = _name AND n.nspname = _schema ) THEN success := FALSE; ELSE EXECUTE ' CREATE UNIQUE INDEX ' || _name || ' ON ' || _schema || '.' || _table || ' (lower(' || _col || '));' ; success := TRUE; END IF; END $$; - ALTER FUNCTION s_vitis.f_add_unique_index(_schema text, _table text, _col text, _name text, OUT success boolean) OWNER TO u_vitis; - CREATE FUNCTION s2hms(integer) RETURNS character varying LANGUAGE plpgsql AS $_$ declare nDureeSeconde ALIAS for $1; sDureeChaine varchar(10) ; nHeures int ; nMinutes int ; nSecondes int ; nHeures2 varchar(2) ; nMinutes2 varchar(2) ; nSecondes2 varchar(2) ; BEGIN nHeures := nDureeSeconde / 3600 ; nMinutes := (nDureeSeconde %% 3600) / 60 ; nSecondes := nDureeSeconde %% 60 ; if nHeures < 10 then nHeures2:= 0 || cast(nHeures as text) ; else nHeures2:= cast(nHeures as text) ; end if; if nMinutes < 10 then nMinutes2:= 0 || cast(nMinutes as text) ; else nMinutes2:= cast(nMinutes as text) ; end if; if nSecondes < 10 then nSecondes2:= 0 || cast(nSecondes as text) ; else nSecondes2:= cast(nSecondes as text) ; end if; sDureeChaine := nHeures2 || ':' || nMinutes2 || ':' || nSecondes2; RETURN sDureeChaine; END; $_$; - ALTER FUNCTION s_vitis.s2hms(integer) OWNER TO u_vitis; - CREATE TABLE "user" (user_id integer NOT NULL,login character varying(50),name character varying(80),ip_constraint character varying(255), email character varying(100), company character varying(80),department character varying(80),last_connection timestamp without time zone, domain_id integer,restriction text); - ALTER TABLE "user" OWNER TO u_vitis; - CREATE TABLE vm_translation (translation_id character varying(60) NOT NULL, lang character varying(2) NOT NULL, translation text); - ALTER TABLE vm_translation OWNER TO u_vitis; - CREATE TABLE "group" (group_id integer NOT NULL, name character varying(50)); - ALTER TABLE "group" OWNER TO u_vitis; - COMMENT ON TABLE "group" IS 'User group having the same access rights to workspaces and inboxes'; - CREATE TABLE user_group (user_id integer, group_id integer); - ALTER TABLE user_group OWNER TO u_vitis; - CREATE SEQUENCE seq_common START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; - ALTER TABLE seq_common OWNER TO u_vitis; - CREATE TABLE domain (domain_id integer NOT NULL, domain character varying(50), alias character varying(50), server character varying(100), port integer, dn_search_user character varying(255), filter_user character varying(100), dn_search_group character varying(255), filter_group character varying(100), login character varying(50), password character varying(50), type character varying(10), verify_rights boolean DEFAULT true); - ALTER TABLE domain OWNER TO u_vitis; - COMMENT ON TABLE domain IS 'Ms Active Directory domain'; - COMMENT ON COLUMN domain.dn_search_user IS 'Distinguished Name for users root node '; - COMMENT ON COLUMN domain.dn_search_group IS 'Distinguished Name for groups root node '; - CREATE TABLE privileges ( rolname character varying(100) NOT NULL, description text); - ALTER TABLE privileges OWNER TO u_vitis; - CREATE SEQUENCE seq_translation START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; - ALTER TABLE seq_translation OWNER TO u_vitis; - CREATE SEQUENCE seq_vm START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; - ALTER TABLE seq_vm OWNER TO u_vitis; - CREATE VIEW v_group AS SELECT CASE WHEN (user_group.nb_members IS NULL) THEN (0)::bigint ELSE user_group.nb_members END AS nb_members, "group".group_id, "group".name FROM ("group" LEFT JOIN ( SELECT count(*) AS nb_members, user_group_1.group_id FROM user_group user_group_1 GROUP BY user_group_1.group_id) user_group ON (("group".group_id = user_group.group_id))); - ALTER TABLE v_group OWNER TO u_vitis; - CREATE TABLE vm_application_module ( application_name character varying(100) NOT NULL, module_name character varying(50) NOT NULL); - ALTER TABLE vm_application_module OWNER TO u_vitis; - CREATE TABLE vm_mode ( mode_id character varying(100) NOT NULL, module_id character varying(50)); - ALTER TABLE vm_mode OWNER TO u_vitis; - CREATE TABLE vm_mode_rolname ( index integer, mode_id character varying(100) NOT NULL, rolname character varying(100) NOT NULL); - ALTER TABLE vm_mode_rolname OWNER TO u_vitis; - CREATE VIEW v_mode AS SELECT DISTINCT vm_mode.mode_id, vm_application_module.application_name, vm_mode_rolname.index, vm_application_module.module_name FROM ((((vm_mode LEFT JOIN vm_application_module ON (((vm_mode.module_id)::text = (vm_application_module.module_name)::text))) LEFT JOIN vm_mode_rolname ON (((vm_mode.mode_id)::text = (vm_mode_rolname.mode_id)::text))) JOIN pg_group ON ((pg_group.groname = (vm_mode_rolname.rolname)::name))) JOIN pg_user ON (((pg_user.usesysid = ANY (pg_group.grolist)) AND ((pg_user.usename)::text = ("current_user"())::text)))); - ALTER TABLE v_mode OWNER TO u_vitis; - CREATE VIEW v_ra_members_group AS SELECT count(*) AS nb_members, user_group.group_id FROM user_group GROUP BY user_group.group_id; - ALTER TABLE v_ra_members_group OWNER TO u_vitis; - CREATE TABLE vm_section ( section_id integer DEFAULT nextval('seq_vm'::regclass) NOT NULL, label_id character varying(60), name character varying(50), index integer, event text, tab_id integer, template character varying(100), ressource_id character varying(100), module character varying(100)); - ALTER TABLE vm_section OWNER TO u_vitis; - CREATE TABLE vm_tab ( tab_id integer DEFAULT nextval('seq_vm'::regclass) NOT NULL, event character varying(255) NOT NULL, index integer DEFAULT 0 NOT NULL, mode_id character varying(100) NOT NULL, label_id character varying(60) NOT NULL, ressource_id character varying(100), edit_column character varying(255), show_column character varying(255), sorted_by character varying(100), sorted_dir character varying(4) DEFAULT 'ASC'::character varying, name character varying(100)); - ALTER TABLE vm_tab OWNER TO u_vitis; - CREATE VIEW v_section AS SELECT vm_section.tab_id, vm_section.section_id, vm_section.event, vm_section.index, vm_translation.translation AS label, vm_translation.lang, vm_section.name, vm_section.template, vm_section.ressource_id, vm_section.module AS module_name FROM s_vitis.vm_section LEFT JOIN s_vitis.vm_translation ON vm_section.label_id::text = vm_translation.translation_id::text LEFT JOIN s_vitis.vm_tab ON vm_section.tab_id::text = vm_tab.tab_id::text; - ALTER TABLE v_section OWNER TO u_vitis; - CREATE VIEW v_tab AS SELECT vm_tab.tab_id, vm_tab.event, vm_tab.index, vm_tab.mode_id, vm_translation.translation AS label, vm_translation.lang, vm_tab.ressource_id, vm_tab.edit_column, vm_tab.show_column, vm_tab.sorted_by, vm_tab.sorted_dir, vm_tab.name FROM (vm_tab LEFT JOIN vm_translation ON (((vm_tab.label_id)::text = (vm_translation.translation_id)::text))); - ALTER TABLE v_tab OWNER TO u_vitis; - CREATE VIEW v_user AS SELECT "user".user_id, "user".login, "user".name, "user".email, "user".company, "user".department, "user".ip_constraint, domain.domain, "user".domain_id, "user".last_connection, "user".restriction, CASE WHEN ((array_to_string(ARRAY( SELECT pg_group.groname FROM (pg_group JOIN pg_roles ON ((pg_roles.oid = ANY (pg_group.grolist)))) WHERE ((("user".login)::name = pg_roles.rolname) AND ((pg_group.groname = 'vitis_admin'::name) OR (pg_group.groname = 'vitis_user'::name)))), '|'::text) = 'vitis_user|vitis_admin'::text) OR (array_to_string(ARRAY( SELECT pg_group.groname FROM (pg_group JOIN pg_roles ON ((pg_roles.oid = ANY (pg_group.grolist)))) WHERE ((("user".login)::name = pg_roles.rolname) AND ((pg_group.groname = 'vitis_admin'::name) OR (pg_group.groname = 'vitis_user'::name)))), '|'::text) = 'vitis_admin|vitis_user'::text)) THEN 'admin'::text WHEN (array_to_string(ARRAY( SELECT pg_group.groname FROM (pg_group JOIN pg_roles ON ((pg_roles.oid = ANY (pg_group.grolist)))) WHERE ((("user".login)::name = pg_roles.rolname) AND ((pg_group.groname = 'vitis_admin'::name) OR (pg_group.groname = 'vitis_user'::name)))), '|'::text) = 'vitis_user'::text) THEN 'user'::text ELSE ''::text END AS role FROM ("user" LEFT JOIN domain ON (("user".domain_id = domain.domain_id))); - ALTER TABLE v_user OWNER TO u_vitis; - CREATE VIEW v_user_group AS SELECT user_group.group_id, user_group.user_id FROM ((user_group LEFT JOIN "user" ON ((user_group.user_id = "user".user_id))) LEFT JOIN "group" ON (("group".group_id = user_group.group_id))) WHERE ((("user".login)::name)::text = ("current_user"())::text); - ALTER TABLE v_user_group OWNER TO u_vitis; - CREATE TABLE version ( version character varying(10) NOT NULL, build integer NOT NULL, date timestamp with time zone NOT NULL, active boolean); - ALTER TABLE version OWNER TO u_vitis; - CREATE TABLE vm_application ( name character varying(100) NOT NULL); - ALTER TABLE vm_application OWNER TO u_vitis; - CREATE TABLE vm_module ( module_id character varying(50) NOT NULL, description text, version character varying(50) NOT NULL, label character varying(50), type character varying(3)); - ALTER TABLE vm_module OWNER TO u_vitis; - CREATE TABLE vm_string ( string text, string_id character varying(60) NOT NULL); - ALTER TABLE vm_string OWNER TO u_vitis; - CREATE TABLE vm_table_button ( button_class character varying(50), table_button_id integer DEFAULT nextval('seq_vm'::regclass) NOT NULL, event character varying(100) NOT NULL, label_id character varying(60), ressource_id character varying(100), tab_id integer); - ALTER TABLE vm_table_button OWNER TO u_vitis; - CREATE TABLE vm_table_field ( table_field_id integer DEFAULT nextval('seq_vm'::regclass) NOT NULL, name character varying(200) NOT NULL, sortable boolean DEFAULT true, resizeable boolean DEFAULT false, index integer, width integer, align character varying(6) DEFAULT 'left'::character varying NOT NULL, label_id character varying(60), module character varying(50), ressource_id character varying(100), template character varying(255), tab_id integer); - ALTER TABLE vm_table_field OWNER TO u_vitis; - INSERT INTO privileges (rolname, description) VALUES ('vitis_admin', E'rôle administrateur de vitis\nPermet d''accéder aux modes :\n - Utilisateur\n - Utilisateurs\n - Configuration\n - Logs'); - INSERT INTO privileges (rolname, description) VALUES ('vitis_user', E'rôle utilisateur de vitis\n\nPermet de se connecter à l''application'); - INSERT INTO vm_mode (mode_id, module_id) VALUES ('user', 'vitis'); - INSERT INTO vm_mode (mode_id, module_id) VALUES ('users', 'vitis'); - INSERT INTO vm_mode (mode_id, module_id) VALUES ('configuration', 'vitis'); - INSERT INTO vm_mode (mode_id, module_id) VALUES ('logs', 'vitis'); - INSERT INTO vm_mode (mode_id, module_id) VALUES ('help', 'vitis'); - INSERT INTO vm_mode_rolname (index, mode_id, rolname) VALUES (20, 'users', 'vitis_admin'); - INSERT INTO vm_mode_rolname (index, mode_id, rolname) VALUES (70, 'configuration', 'vitis_admin'); - INSERT INTO vm_mode_rolname (index, mode_id, rolname) VALUES (80, 'logs', 'vitis_admin'); - INSERT INTO vm_mode_rolname (index, mode_id, rolname) VALUES (10, 'user', 'vitis_user'); - INSERT INTO vm_mode_rolname (index, mode_id, rolname) VALUES (90, 'help', 'vitis_admin'); - INSERT INTO vm_module (module_id, description, version, label, type) VALUES ('vitis', 'module vitis veremes', '0.1', 'vitis', NULL); - INSERT INTO vm_string (string, string_id) VALUES ('Chaine de caractère nulle', 'vitis_1'); - INSERT INTO vm_string (string, string_id) VALUES ('onglet 2 du mode (Utilisateurs) utilisé dans la table vm_tab', 'vitis_2'); - INSERT INTO vm_string (string, string_id) VALUES ('Titre de la list correspondant à le vm_table 3 (v_user)', 'vitis_3'); - INSERT INTO vm_string (string, string_id) VALUES ('Titre Formulaire vm_table id 3 (v_user)', 'vitis_4'); - INSERT INTO vm_string (string, string_id) VALUES ('Button d''ajout de la table v_user table_button_id = 38', 'vitis_5'); - INSERT INTO vm_string (string, string_id) VALUES ('Button de suppression de la table v_user table_button_id =39', 'vitis_6'); - INSERT INTO vm_string (string, string_id) VALUES ('Button import AD de la table v_user table_button_id =40', 'vitis_7'); - INSERT INTO vm_string (string, string_id) VALUES ('Champ user_id correspondant au table field_id 1', 'vitis_8'); - INSERT INTO vm_string (string, string_id) VALUES ('Champ login correspondant au table field_id 11', 'vitis_9'); - INSERT INTO vm_string (string, string_id) VALUES ('Champ name correspondant au table field_id 12', 'vitis_10'); - INSERT INTO vm_string (string, string_id) VALUES ('Champ email correspondant au table field_id 13', 'vitis_11'); - INSERT INTO vm_string (string, string_id) VALUES ('Champ ip correspondant au table field_id 14', 'vitis_12'); - INSERT INTO vm_string (string, string_id) VALUES ('Champ company correspondant au table field_id 15', 'vitis_13'); - INSERT INTO vm_string (string, string_id) VALUES ('Champ domain_id de la table domain correspondant au table field_id 146', 'vitis_14'); - INSERT INTO vm_string (string, string_id) VALUES ('Champ Role de la table v_user pour connaitre si un utilisateur est administrateur ou pas', 'vitis_15'); - INSERT INTO vm_string (string, string_id) VALUES ('Champ department correspondant au table field_id 18', 'vitis_16'); - INSERT INTO vm_string (string, string_id) VALUES ('onglet 1 du mode administration (Annuaires) utilisé dans la table vm_tab', 'vitis_17'); - INSERT INTO vm_string (string, string_id) VALUES ('onglet 3 du mode administration (Groupes) utilisé dans la table vm_tab', 'vitis_18'); - INSERT INTO vm_string (string, string_id) VALUES ('Titre Formulaire vm_table id (group)', 'vitis_19'); - INSERT INTO vm_string (string, string_id) VALUES ('Titre de la list correspondant à le vm_table 1 (group)', 'vitis_20'); - INSERT INTO vm_string (string, string_id) VALUES ('Button d''ajout de la table group table_button_id = 9', 'vitis_21'); - INSERT INTO vm_string (string, string_id) VALUES ('Button de suppression de la table group table_button_id =10', 'vitis_22'); - INSERT INTO vm_string (string, string_id) VALUES ('Button import AD de la table group table_button_id =50', 'vitis_23'); - INSERT INTO vm_string (string, string_id) VALUES ('Champ id de la vue group correspondant au table field_id 154', 'vitis_24'); - INSERT INTO vm_string (string, string_id) VALUES ('Champ nom de la vue group correspondant au table field_id 135', 'vitis_25'); - INSERT INTO vm_string (string, string_id) VALUES ('Champ nb_members de la vue v_ra_members_group correspondant au champ Membres', 'vitis_26'); - INSERT INTO vm_string (string, string_id) VALUES ('Titre de la list correspondant à le vm_table 19 (domain)', 'vitis_27'); - INSERT INTO vm_string (string, string_id) VALUES ('Titre Formulaire vm_table domain', 'vitis_28'); - INSERT INTO vm_string (string, string_id) VALUES ('Button d''ajout de la table domain table_button_id = 7', 'vitis_29'); - INSERT INTO vm_string (string, string_id) VALUES ('Button de suppression de la table domain table_button_id =8', 'vitis_30'); - INSERT INTO vm_string (string, string_id) VALUES ('Champ domain_id de la table domain correspondant au table field_id 145', 'vitis_31'); - INSERT INTO vm_string (string, string_id) VALUES ('Champ domain de la table domain correspondant au table field_id 145', 'vitis_32'); - INSERT INTO vm_string (string, string_id) VALUES ('Champ server de la table domain correspondant au table field_id 147', 'vitis_33'); - INSERT INTO vm_string (string, string_id) VALUES ('Champ port de la table domain correspondant au table field_id 148', 'vitis_34'); - INSERT INTO vm_string (string, string_id) VALUES ('Champ alias correspondant au table field_id 139', 'vitis_35'); - INSERT INTO vm_string (string, string_id) VALUES ('"Champ name de la vue update correspondant au table_field_id 41"', 'vitis_37'); - INSERT INTO vm_string (string, string_id) VALUES ('"Champ from de la vue update correspondant au table_field_id 42"', 'vitis_38'); - INSERT INTO vm_string (string, string_id) VALUES ('"Champ to de la vue update correspondant au table_field_id 43"', 'vitis_39'); - INSERT INTO vm_string (string, string_id) VALUES ('"Champ publishing_date de la vue update correspondant au table_field_id 44"', 'vitis_40'); - INSERT INTO vm_string (string, string_id) VALUES ('"Champ status de la vue update correspondant au table_field_id 45"', 'vitis_41'); - INSERT INTO vm_string (string, string_id) VALUES ('"Champ telechargement de la vue update correspondant au table_field_id 46"', 'vitis_42'); - INSERT INTO vm_string (string, string_id) VALUES ('"Champ installation de la vue update correspondant au table_field_id 47"', 'vitis_43'); - INSERT INTO vm_string (string, string_id) VALUES ('"Champ log de la vue update correspondant au table_field_id 48"', 'vitis_44'); - INSERT INTO vm_string (string, string_id) VALUES ('"Champ error_log de la vue update correspondant au table_field_id 49"', 'vitis_45'); - INSERT INTO vm_string (string, string_id) VALUES ('status disponible de la table rt_update_status', 'vitis_46'); - INSERT INTO vm_string (string, string_id) VALUES ('status téléchargé de la table rt_update_status', 'vitis_47'); - INSERT INTO vm_string (string, string_id) VALUES ('status installé de la table rt_update_status', 'vitis_48'); - INSERT INTO vm_string (string, string_id) VALUES ('Champ update_id correspondant au table field_id 41', 'vitis_49'); - INSERT INTO vm_string (string, string_id) VALUES ('status erreur de la table rt_update_status', 'vitis_50'); - INSERT INTO vm_string (string, string_id) VALUES ('onglet 4 du mode administration (Privilèges) utilisé dans la table vm_tab', 'vitis_51'); - INSERT INTO vm_string (string, string_id) VALUES ('Titre Formulaire vm_table id (privileges)', 'vitis_52'); - INSERT INTO vm_string (string, string_id) VALUES ('Titre de la liste correspondant à le vm_table 1 (privileges)', 'vitis_53'); - INSERT INTO vm_string (string, string_id) VALUES ('Groupe d''utilisateurs', 'vitis_54'); - INSERT INTO vm_string (string, string_id) VALUES ('Description du groupe d''utilisateurs', 'vitis_55'); - INSERT INTO vm_string (string, string_id) VALUES ('Titre section general pour v_user', 'vitis_57'); - INSERT INTO vm_string (string, string_id) VALUES ('Titre section general pour group', 'vitis_58'); - INSERT INTO vm_string (string, string_id) VALUES ('Titre section general pour domain', 'vitis_59'); - INSERT INTO vm_string (string, string_id) VALUES ('Titre section general pour privileges', 'vitis_60'); - INSERT INTO vm_string (string, string_id) VALUES ('Champ last_connection correspondant à la table v_user', 'vitis_61'); - INSERT INTO vm_string (string, string_id) VALUES ('Champ alias correspondant à la table domain', 'vitis_62'); - INSERT INTO vm_string (string, string_id) VALUES ('Champ type correspondant à la table domain', 'vitis_63'); - INSERT INTO vm_string (string, string_id) VALUES ('Champ from de la vue update', 'vitis_64'); - INSERT INTO vm_string (string, string_id) VALUES ('Champ to de la vue update', 'vitis_65'); - INSERT INTO vm_string (string, string_id) VALUES ('Champ publishing_date de la vue update', 'vitis_66'); - INSERT INTO vm_string (string, string_id) VALUES ('Champ status de la vue update', 'vitis_67'); - INSERT INTO vm_string (string, string_id) VALUES ('Champ telechargement de la vue update', 'vitis_68'); - INSERT INTO vm_string (string, string_id) VALUES ('Champ installation de la vue update', 'vitis_69'); - INSERT INTO vm_string (string, string_id) VALUES ('Champ log de la vue update', 'vitis_70'); - INSERT INTO vm_string (string, string_id) VALUES ('Champ error_log de la vue update', 'vitis_71'); - INSERT INTO vm_string (string, string_id) VALUES ('Champ update_id de la vue update', 'vitis_72'); - INSERT INTO vm_string (string, string_id) VALUES ('Button de suppression de la table update', 'vitis_73'); - INSERT INTO vm_string (string, string_id) VALUES ('Champ name de la vue update', 'vitis_74'); - INSERT INTO vm_string (string, string_id) VALUES ('Titre section configuration pour configuration', 'vitis_75'); - INSERT INTO vm_string (string, string_id) VALUES ('Titre section version pour configuration', 'vitis_76'); - INSERT INTO vm_string (string, string_id) VALUES ('Titre section php info pour configuration', 'vitis_77'); - INSERT INTO vm_string (string, string_id) VALUES ('Titre section mises à jour pour configuration', 'vitis_78'); - INSERT INTO vm_string (string, string_id) VALUES ('Titre section installation pour configuration', 'vitis_79'); - INSERT INTO vm_string (string, string_id) VALUES ('Onglet Administration de l''objet vitis_help', 'vitis_291'); - INSERT INTO vm_string (string, string_id) VALUES ('Onglet Web service de l''objet vitis_help', 'vitis_80'); - INSERT INTO vm_tab (tab_id, event, index, mode_id, label_id, ressource_id, edit_column, show_column, sorted_by, sorted_dir, name) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'loadConfiguration()', 0, 'configuration', 'vitis_1', NULL, NULL, NULL, NULL, 'ASC', 'vitis_configuration'); - INSERT INTO vm_tab (tab_id, event, index, mode_id, label_id, ressource_id, edit_column, show_column, sorted_by, sorted_dir, name) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'loadHelp()', 0, 'help', 'vitis_1', NULL, NULL, NULL, NULL, 'ASC', 'vitis_help'); - INSERT INTO vm_tab (tab_id, event, index, mode_id, label_id, ressource_id, edit_column, show_column, sorted_by, sorted_dir, name) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'loadLogsJob()', 0, 'logs', 'vitis_1', NULL, NULL, NULL, NULL, 'ASC', 'vitis_log'); - INSERT INTO vm_tab (tab_id, event, index, mode_id, label_id, ressource_id, edit_column, show_column, sorted_by, sorted_dir, name) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'loadUser();', 0, 'user', 'vitis_1', 'vitis/users', NULL, NULL, NULL, 'ASC', 'vitis_user'); - INSERT INTO vm_tab (tab_id, event, index, mode_id, label_id, ressource_id, edit_column, show_column, sorted_by, sorted_dir, name) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'loadList()', 1, 'users', 'vitis_17', 'vitis/domains', 'editSectionForm', 'showSectionForm', 'domain_id', 'DESC', 'vitis_domain'); - INSERT INTO vm_tab (tab_id, event, index, mode_id, label_id, ressource_id, edit_column, show_column, sorted_by, sorted_dir, name) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'loadList()', 2, 'users', 'vitis_18', 'vitis/groups', 'editSectionForm', 'showSectionForm', 'group_id', 'DESC', 'vitis_group'); - INSERT INTO vm_tab (tab_id, event, index, mode_id, label_id, ressource_id, edit_column, show_column, sorted_by, sorted_dir, name) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'loadList()', 3, 'users', 'vitis_51', 'vitis/privileges', 'editSectionForm', 'showSectionForm', 'rolname', 'ASC', 'vitis_privilege'); - INSERT INTO vm_tab (tab_id, event, index, mode_id, label_id, ressource_id, edit_column, show_column, sorted_by, sorted_dir, name) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'loadList()', 0, 'users', 'vitis_2', 'vitis/users', 'editSectionForm', 'showSectionForm', 'user_id', 'DESC', 'vitis_users'); - INSERT INTO vm_section (section_id, label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'vitis_57', 'general', 1, 'javascript:loadSection', (select tab_id from s_vitis.vm_tab where name = 'vitis_users'), 'workspaceListTpl.html', NULL, 'vitis'); - INSERT INTO vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'nb_members', true, true, 3, 130, 'right', 'vitis_26', NULL, 'vitis/groups', NULL, (select tab_id from s_vitis.vm_tab where name = 'vitis_group')); - INSERT INTO vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'domain_id', true, true, 1, 30, 'right', 'vitis_31', NULL, 'vitis/domains', NULL, (select tab_id from s_vitis.vm_tab where name = 'vitis_domain')); - INSERT INTO vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'type', true, true, 2, 100, 'left', 'vitis_63', NULL, 'vitis/domains', NULL, (select tab_id from s_vitis.vm_tab where name = 'vitis_domain')); - INSERT INTO vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'alias', true, true, 3, 300, 'left', 'vitis_62', NULL, 'vitis/domains', NULL, (select tab_id from s_vitis.vm_tab where name = 'vitis_domain')); - INSERT INTO vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'domain', true, true, 4, 300, 'left', 'vitis_32', NULL, 'vitis/domains', NULL, (select tab_id from s_vitis.vm_tab where name = 'vitis_domain')); - INSERT INTO vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'server', true, true, 5, 150, 'left', 'vitis_33', NULL, 'vitis/domains', NULL, (select tab_id from s_vitis.vm_tab where name = 'vitis_domain')); - INSERT INTO vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'port', true, true, 6, 50, 'right', 'vitis_34', NULL, 'vitis/domains', NULL, (select tab_id from s_vitis.vm_tab where name = 'vitis_domain')); - INSERT INTO vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'group_id', true, true, 1, 40, 'right', 'vitis_24', NULL, 'vitis/groups', NULL, (select tab_id from s_vitis.vm_tab where name = 'vitis_group')); - INSERT INTO vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'rolname', true, true, 1, 200, 'left', 'vitis_54', NULL, 'vitis/privileges', NULL, (select tab_id from s_vitis.vm_tab where name = 'vitis_privilege')); - INSERT INTO vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'description', true, true, 2, 800, 'left', 'vitis_55', NULL, 'vitis/privileges', NULL, (select tab_id from s_vitis.vm_tab where name = 'vitis_privilege')); - INSERT INTO vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'name', true, true, 2, 200, 'left', 'vitis_25', NULL, 'vitis/groups', NULL, (select tab_id from s_vitis.vm_tab where name = 'vitis_group')); - INSERT INTO vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'name', true, true, 3, 150, 'left', 'vitis_10', NULL, 'vitis/users', NULL, (select tab_id from s_vitis.vm_tab where name = 'vitis_users')); - INSERT INTO vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'email', true, true, 6, 250, 'left', 'vitis_11', NULL, 'vitis/users', NULL, (select tab_id from s_vitis.vm_tab where name = 'vitis_users')); - INSERT INTO vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'user_id', true, true, 1, 30, 'right', 'vitis_8', NULL, 'vitis/users', NULL, (select tab_id from s_vitis.vm_tab where name = 'vitis_users')); - INSERT INTO vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'login', true, true, 2, 200, 'left', 'vitis_9', NULL, 'vitis/users', NULL, (select tab_id from s_vitis.vm_tab where name = 'vitis_users')); - INSERT INTO vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'ip_constraint', true, true, 9, 150, 'left', 'vitis_12', NULL, 'vitis/users', NULL, (select tab_id from s_vitis.vm_tab where name = 'vitis_users')); - INSERT INTO vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'company', true, true, 5, 130, 'left', 'vitis_13', NULL, 'vitis/users', NULL, (select tab_id from s_vitis.vm_tab where name = 'vitis_users')); - INSERT INTO vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'domain', true, true, 8, 200, 'left', 'vitis_14', NULL, 'vitis/users', NULL, (select tab_id from s_vitis.vm_tab where name = 'vitis_users')); - INSERT INTO vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'last_connection', true, true, 9, 170, 'left', 'vitis_61', NULL, 'vitis/users', '<div data-app-format-date-column="{{row.entity[col.field]}}"></div>', (select tab_id from s_vitis.vm_tab where name = 'vitis_users')); - INSERT INTO vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'role', true, true, 4, 40, 'center', 'vitis_15', NULL, 'vitis/users', '<div data-app-user-role-column="{{row.entity[col.field]}}"></div>', (select tab_id from s_vitis.vm_tab where name = 'vitis_users')); - INSERT INTO vm_section (section_id, label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'vitis_59', 'general', 1, 'javascript:loadSection', (select tab_id from s_vitis.vm_tab where name = 'vitis_domain'), 'workspaceListTpl.html', NULL, 'vitis'); - INSERT INTO vm_section (section_id, label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'vitis_60', 'general', 1, 'javascript:loadSection', (select tab_id from s_vitis.vm_tab where name = 'vitis_privilege'), 'workspaceListTpl.html', NULL, 'vitis'); - INSERT INTO vm_section (section_id, label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'vitis_1', 'general', 1, 'Javascript:reloadSectionForm', (select tab_id from s_vitis.vm_tab where name = 'vitis_user'), 'simpleFormTpl.html', NULL, 'vitis'); - INSERT INTO vm_section (section_id, label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'vitis_58', 'general', 1, 'javascript:loadSection', (select tab_id from s_vitis.vm_tab where name = 'vitis_group'), 'workspaceListTpl.html', NULL, 'vitis'); - INSERT INTO vm_section (section_id, label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'vitis_1', 'general', 1, 'Javascript:reloadSectionForm', (select tab_id from s_vitis.vm_tab where name = 'vitis_log'), 'doubleFormTpl.html', NULL, 'vitis'); - INSERT INTO vm_section (section_id, label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'vitis_76', 'version', 2, 'Javascript:reloadSectionForm', (select tab_id from s_vitis.vm_tab where name = 'vitis_configuration'), 'modules/vitis/templates/versionConfigurationTpl.html', NULL, 'vitis'); - INSERT INTO vm_section (section_id, label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'vitis_77', 'phpinfo', 3, 'Javascript:reloadSectionForm', (select tab_id from s_vitis.vm_tab where name = 'vitis_configuration'), 'modules/vitis/templates/phpInfoConfigurationTpl.html', NULL, 'vitis'); - INSERT INTO vm_section (section_id, label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'vitis_75', 'general', 1, 'setPropertiesFormValues', (select tab_id from s_vitis.vm_tab where name = 'vitis_configuration'), 'simpleFormTpl.html', NULL, 'vitis'); - INSERT INTO vm_section (section_id, label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'vitis_80', 'webService', 2, 'Javascript:reloadSectionForm', (select tab_id from s_vitis.vm_tab where name = 'vitis_help'), 'modules/vitis/templates/webServiceHelpTpl.html', NULL, 'vitis'); - INSERT INTO vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('add_smallFlexigrid', (select nextval('s_vitis.seq_vm'::regclass)), 'AddSectionForm', 'vitis_5', 'vitis/users', (select tab_id from s_vitis.vm_tab where name = 'vitis_users')); - INSERT INTO vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('deleteFlexigrid', (select nextval('s_vitis.seq_vm'::regclass)), 'deleteUsers()', 'vitis_6', 'vitis/users', (select tab_id from s_vitis.vm_tab where name = 'vitis_users')); - INSERT INTO vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('add_smallFlexigrid', (select nextval('s_vitis.seq_vm'::regclass)), 'AddSectionForm', 'vitis_29', 'vitis/domains', (select tab_id from s_vitis.vm_tab where name = 'vitis_domain')); - INSERT INTO vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('deleteFlexigrid', (select nextval('s_vitis.seq_vm'::regclass)), 'DeleteSelection', 'vitis_30', 'vitis/domains', (select tab_id from s_vitis.vm_tab where name = 'vitis_domain')); - INSERT INTO vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('add_smallFlexigrid', (select nextval('s_vitis.seq_vm'::regclass)), 'AddSectionForm', 'vitis_21', 'vitis/groups', (select tab_id from s_vitis.vm_tab where name = 'vitis_group')); - INSERT INTO vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('deleteFlexigrid', (select nextval('s_vitis.seq_vm'::regclass)), 'DeleteSelection', 'vitis_22', 'vitis/groups', (select tab_id from s_vitis.vm_tab where name = 'vitis_group')); - INSERT INTO vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('adImport', (select nextval('s_vitis.seq_vm'::regclass)), 'ImportFromAd("group")', 'vitis_23', 'vitis/groups', (select tab_id from s_vitis.vm_tab where name = 'vitis_group')); - INSERT INTO vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('adImport', (select nextval('s_vitis.seq_vm'::regclass)), 'ImportFromAd("person")', 'vitis_7', 'vitis/users', (select tab_id from s_vitis.vm_tab where name = 'vitis_users')); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_1', 'fr', NULL); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_1', 'en', NULL); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_2', 'fr', 'Utilisateurs'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_2', 'en', 'Users'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_3', 'fr', 'Utilisateurs'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_3', 'en', 'Users'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_4', 'fr', 'utilisateur'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_4', 'en', 'user'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_5', 'en', 'Add user'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_6', 'en', 'Delete users'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_6', 'fr', 'Supprimer les utilisateurs'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_7', 'fr', 'Importer de l''A.D.'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_7', 'en', 'Import from A.D.'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_8', 'fr', 'ID'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_8', 'en', 'ID'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_9', 'fr', 'Compte'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_9', 'en', 'Login'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_10', 'fr', 'Nom'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_10', 'en', 'Name'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_11', 'fr', 'Email'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_11', 'en', 'Email'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_12', 'en', 'Workstation IP'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_13', 'fr', 'Société'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_13', 'en', 'Company'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_14', 'fr', 'Domaine'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_14', 'en', 'Domain'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_15', 'fr', 'Rôle'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_15', 'en', 'Role'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_16', 'en', 'Department'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_16', 'fr', 'Service'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_17', 'fr', 'Domaines'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_17', 'en', 'Domains'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_18', 'fr', 'Groupes'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_18', 'en', 'Groups'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_19', 'fr', 'groupe'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_19', 'en', 'group'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_20', 'fr', 'Groupes'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_20', 'en', 'Groups'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_21', 'en', 'Add group'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_22', 'fr', 'Supprimer les groupes'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_22', 'en', 'Delete groups'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_23', 'fr', 'Importer de l''A.D.'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_23', 'en', 'Import from AD'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_24', 'fr', 'ID'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_24', 'en', 'ID'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_25', 'fr', 'Groupe'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_25', 'en', 'Group'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_28', 'en', 'domain'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_28', 'fr', 'domaine'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_27', 'en', 'Domains'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_27', 'fr', 'Domaines'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_29', 'en', 'Add domain'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_30', 'en', 'Delete domaines'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_30', 'fr', 'Supprimer les domaines'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_31', 'fr', 'ID'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_31', 'en', 'ID'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_32', 'fr', 'Domaine'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_32', 'en', 'Domain'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_33', 'fr', 'Serveur'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_33', 'en', 'Server'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_34', 'fr', 'Port'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_34', 'en', 'Port'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_35', 'fr', 'Supprimer mise à jour'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_35', 'en', 'Delete update'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_37', 'fr', 'Nom'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_37', 'en', 'Name'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_38', 'fr', 'De'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_38', 'en', 'From'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_39', 'fr', 'A'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_39', 'en', 'To'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_40', 'fr', 'Date de publication'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_40', 'en', 'Publishing date'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_41', 'fr', 'Statut'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_41', 'en', 'Status'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_42', 'fr', 'Téléchargement'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_42', 'en', 'Download'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_43', 'fr', 'Installation'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_43', 'en', 'Installation'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_44', 'fr', 'Log'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_44', 'en', 'Log'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_45', 'fr', 'Erreurs'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_45', 'en', 'Errors'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_46', 'fr', 'Disponible'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_46', 'en', 'Available'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_47', 'fr', 'Téléchargé'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_47', 'en', 'Downloaded'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_48', 'fr', 'Installé'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_48', 'en', 'Installed'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_49', 'fr', 'ID'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_49', 'en', 'ID'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_50', 'fr', 'Erreur'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_50', 'en', 'Error'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_51', 'fr', 'Privilèges'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_51', 'en', 'Privileges'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_52', 'fr', 'Privilèges'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_52', 'en', 'Privileges'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_53', 'fr', 'Privilèges'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_53', 'en', 'Privileges'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_54', 'fr', 'Groupes d''utilisateurs'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_54', 'en', 'User groups'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_55', 'fr', 'Description'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_55', 'en', 'Description'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_57', 'fr', 'Général'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_57', 'en', 'General'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_58', 'fr', 'Général'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_58', 'en', 'General'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_59', 'fr', 'Général'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_59', 'en', 'General'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_60', 'fr', 'Général'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_60', 'en', 'General'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_61', 'fr', 'Dernière connexion'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_61', 'en', 'Last connection'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_62', 'fr', 'Alias'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_62', 'en', 'Alias'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_63', 'fr', 'Type'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_63', 'en', 'Type'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_64', 'fr', 'De'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_64', 'en', 'From'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_65', 'fr', 'A'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_65', 'en', 'To'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_66', 'fr', 'Date de publication'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_26', 'fr', 'Nombre de membres'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_26', 'en', 'Number of members'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_66', 'en', 'Publishing date'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_67', 'fr', 'Statut'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_67', 'en', 'Status'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_68', 'fr', 'Téléchargement'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_68', 'en', 'Download'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_69', 'fr', 'Installation'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_69', 'en', 'Installation'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_70', 'fr', 'Log'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_70', 'en', 'Log'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_71', 'fr', 'Erreurs'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_71', 'en', 'Errors'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_72', 'fr', 'ID'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_72', 'en', 'ID'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_73', 'fr', 'Supprimer mise à jour'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_73', 'en', 'Delete update'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_74', 'fr', 'Nom'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_74', 'en', 'Name'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_75', 'fr', 'Configuration'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_75', 'en', 'Configuration'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_76', 'fr', 'Version'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_76', 'en', 'Version'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_77', 'fr', 'Php info'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_77', 'en', 'Php info'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_78', 'fr', 'Mises à jour'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_78', 'en', 'Mises à jour'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_79', 'fr', 'Installation'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_79', 'en', 'Installation'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_80', 'fr', 'Service Web'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_80', 'en', 'Web Service'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_21', 'fr', 'Ajouter un groupe'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_29', 'fr', 'Ajouter un domaine'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_5', 'fr', 'Ajouter un utilisateur'); - INSERT INTO vm_translation (translation_id, lang, translation) VALUES ('vitis_12', 'fr', 'IP du poste'); - ALTER TABLE ONLY vm_application_module ADD CONSTRAINT fk_application_module_name PRIMARY KEY (application_name, module_name); - ALTER TABLE ONLY domain ADD CONSTRAINT pk_domain_id PRIMARY KEY (domain_id); - ALTER TABLE ONLY "group" ADD CONSTRAINT pk_group_id PRIMARY KEY (group_id); - ALTER TABLE ONLY vm_application ADD CONSTRAINT pk_name PRIMARY KEY (name); - ALTER TABLE ONLY privileges ADD CONSTRAINT pk_privileges PRIMARY KEY (rolname); - ALTER TABLE ONLY vm_string ADD CONSTRAINT pk_string_id PRIMARY KEY (string_id); - ALTER TABLE ONLY vm_tab ADD CONSTRAINT pk_tab_id PRIMARY KEY (tab_id); - ALTER TABLE ONLY vm_table_button ADD CONSTRAINT pk_table_button_id PRIMARY KEY (table_button_id); - ALTER TABLE ONLY vm_table_field ADD CONSTRAINT pk_table_field_id PRIMARY KEY (table_field_id); - ALTER TABLE ONLY user_group ADD CONSTRAINT pk_user_group UNIQUE (group_id, user_id); - ALTER TABLE ONLY "user" ADD CONSTRAINT pk_user_id PRIMARY KEY (user_id); - ALTER TABLE ONLY vm_mode ADD CONSTRAINT pk_vm_mode PRIMARY KEY (mode_id); - ALTER TABLE ONLY vm_mode_rolname ADD CONSTRAINT pk_vm_mode_rolname PRIMARY KEY (rolname, mode_id); - ALTER TABLE ONLY vm_module ADD CONSTRAINT pk_vm_module PRIMARY KEY (module_id); - ALTER TABLE ONLY vm_section ADD CONSTRAINT pk_vm_section PRIMARY KEY (section_id); - ALTER TABLE ONLY vm_translation ADD CONSTRAINT pk_vm_translation PRIMARY KEY (translation_id, lang); - ALTER TABLE ONLY version ADD CONSTRAINT pk_version PRIMARY KEY (version); - ALTER TABLE ONLY vm_module ADD CONSTRAINT uk_label UNIQUE (label); - ALTER TABLE ONLY "user" ADD CONSTRAINT uk_user_login UNIQUE (login); - CREATE INDEX fki_login ON "user" USING btree (login); - CREATE INDEX fki_user_restriction ON "user" USING btree (restriction); - CREATE UNIQUE INDEX uk_domain ON domain USING btree (lower((domain)::text)); - CREATE UNIQUE INDEX uk_login ON "user" USING btree (lower((login)::text)); - CREATE UNIQUE INDEX uk_mode_id ON vm_mode_rolname USING btree (rolname, lower((mode_id)::text)); - CREATE UNIQUE INDEX uk_name_group ON "group" USING btree (lower((name)::text)); - ALTER TABLE s_vitis.vm_tab ADD CONSTRAINT uk_vm_tab_name UNIQUE (name); - CREATE RULE delete_v_group AS ON DELETE TO v_group DO INSTEAD DELETE FROM "group" WHERE ("group".group_id = old.group_id); - CREATE RULE delete_v_user AS ON DELETE TO v_user DO INSTEAD DELETE FROM "user" WHERE ("user".user_id = old.user_id); - CREATE RULE delete_v_user_group AS ON DELETE TO v_user_group DO INSTEAD DELETE FROM user_group WHERE (user_group.group_id = old.group_id); - CREATE RULE insert_v_group AS ON INSERT TO v_group DO INSTEAD INSERT INTO "group" (group_id, name) VALUES (new.group_id, new.name); - CREATE RULE insert_v_user AS ON INSERT TO v_user DO INSTEAD INSERT INTO "user" (user_id, login, domain_id, name, email, company, department, ip_constraint, restriction) VALUES (new.user_id, new.login, new.domain_id, new.name, new.email, new.company, new.department, new.ip_constraint, new.restriction); - CREATE RULE update_v_group AS ON UPDATE TO v_group DO INSTEAD UPDATE "group" SET name = new.name WHERE ("group".group_id = new.group_id); - CREATE RULE update_v_user AS ON UPDATE TO v_user DO INSTEAD UPDATE "user" SET name = new.name, email = new.email, company = new.company, department = new.department, ip_constraint = new.ip_constraint, restriction = new.restriction WHERE ("user".user_id = new.user_id); - ALTER TABLE ONLY vm_application_module ADD CONSTRAINT fk_application_name FOREIGN KEY (application_name) REFERENCES vm_application(name) ON UPDATE CASCADE ON DELETE CASCADE; - ALTER TABLE ONLY "user" ADD CONSTRAINT fk_domain_id FOREIGN KEY (domain_id) REFERENCES domain(domain_id) ON UPDATE CASCADE ON DELETE CASCADE; - ALTER TABLE ONLY user_group ADD CONSTRAINT fk_group_id_user FOREIGN KEY (group_id) REFERENCES "group"(group_id) ON DELETE CASCADE; - ALTER TABLE ONLY vm_table_field ADD CONSTRAINT fk_label_id FOREIGN KEY (label_id) REFERENCES vm_string(string_id); - ALTER TABLE ONLY vm_table_button ADD CONSTRAINT fk_label_id_button FOREIGN KEY (label_id) REFERENCES vm_string(string_id); - ALTER TABLE ONLY vm_mode_rolname ADD CONSTRAINT fk_mode_id FOREIGN KEY (mode_id) REFERENCES vm_mode(mode_id) ON DELETE CASCADE; - ALTER TABLE ONLY vm_tab ADD CONSTRAINT fk_mode_id_tab FOREIGN KEY (mode_id) REFERENCES vm_mode(mode_id) ON DELETE CASCADE; - ALTER TABLE ONLY vm_mode ADD CONSTRAINT fk_module_id FOREIGN KEY (module_id) REFERENCES vm_module(module_id) ON DELETE CASCADE; - ALTER TABLE ONLY vm_application_module ADD CONSTRAINT fk_module_name FOREIGN KEY (module_name) REFERENCES vm_module(module_id) ON UPDATE CASCADE ON DELETE CASCADE; - ALTER TABLE ONLY vm_mode_rolname ADD CONSTRAINT fk_rolname FOREIGN KEY (rolname) REFERENCES privileges(rolname) ON DELETE CASCADE; - ALTER TABLE ONLY vm_tab ADD CONSTRAINT fk_string_id_tab FOREIGN KEY (label_id) REFERENCES vm_string(string_id); - ALTER TABLE ONLY vm_translation ADD CONSTRAINT fk_string_id_translation FOREIGN KEY (translation_id) REFERENCES vm_string(string_id) ON DELETE CASCADE; - ALTER TABLE ONLY vm_section ADD CONSTRAINT fk_string_section FOREIGN KEY (label_id) REFERENCES vm_string(string_id); - ALTER TABLE ONLY user_group ADD CONSTRAINT fk_user_id_group FOREIGN KEY (user_id) REFERENCES "user"(user_id) ON DELETE CASCADE; - ALTER TABLE ONLY vm_table_button ADD CONSTRAINT fk_vm_tab_button FOREIGN KEY (tab_id) REFERENCES vm_tab(tab_id); - ALTER TABLE ONLY vm_table_field ADD CONSTRAINT fk_vm_tab_button FOREIGN KEY (tab_id) REFERENCES vm_tab(tab_id); - ALTER TABLE ONLY vm_section ADD CONSTRAINT fk_vm_tab_section FOREIGN KEY (tab_id) REFERENCES vm_tab(tab_id); - ALTER TABLE ONLY vm_section ADD CONSTRAINT fk_module_vm_section FOREIGN KEY (module) REFERENCES vm_module (module_id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION; - REVOKE ALL ON SCHEMA s_vitis FROM PUBLIC; - REVOKE ALL ON SCHEMA s_vitis FROM u_vitis; - GRANT ALL ON SCHEMA s_vitis TO u_vitis; - GRANT USAGE ON SCHEMA s_vitis TO vitis_admin; - GRANT USAGE ON SCHEMA s_vitis TO vitis_user; - REVOKE ALL ON TABLE "user" FROM PUBLIC; - REVOKE ALL ON TABLE "user" FROM u_vitis; - GRANT ALL ON TABLE "user" TO u_vitis; - GRANT ALL ON TABLE "user" TO vitis_admin; - GRANT SELECT,UPDATE ON TABLE "user" TO vitis_user; - REVOKE ALL ON TABLE vm_translation FROM PUBLIC; - REVOKE ALL ON TABLE vm_translation FROM u_vitis; - GRANT ALL ON TABLE vm_translation TO u_vitis; - GRANT SELECT ON TABLE vm_translation TO vitis_user; - GRANT ALL ON TABLE vm_translation TO vitis_admin; - REVOKE ALL ON TABLE "group" FROM PUBLIC; - REVOKE ALL ON TABLE "group" FROM u_vitis; - GRANT ALL ON TABLE "group" TO u_vitis; - GRANT ALL ON TABLE "group" TO vitis_admin; - GRANT SELECT ON TABLE "group" TO vitis_user; - REVOKE ALL ON TABLE user_group FROM PUBLIC; - REVOKE ALL ON TABLE user_group FROM u_vitis; - GRANT ALL ON TABLE user_group TO u_vitis; - GRANT ALL ON TABLE user_group TO vitis_admin; - GRANT SELECT ON TABLE user_group TO vitis_user; - REVOKE ALL ON SEQUENCE seq_common FROM PUBLIC; - REVOKE ALL ON SEQUENCE seq_common FROM u_vitis; - GRANT ALL ON SEQUENCE seq_common TO u_vitis; - GRANT ALL ON SEQUENCE seq_common TO vitis_admin; - GRANT SELECT,UPDATE ON SEQUENCE seq_common TO vitis_user; - REVOKE ALL ON TABLE domain FROM PUBLIC; - REVOKE ALL ON TABLE domain FROM u_vitis; - GRANT ALL ON TABLE domain TO u_vitis; - GRANT ALL ON TABLE domain TO vitis_admin; - GRANT SELECT ON TABLE domain TO vitis_user; - REVOKE ALL ON TABLE privileges FROM PUBLIC; - REVOKE ALL ON TABLE privileges FROM u_vitis; - GRANT ALL ON TABLE privileges TO u_vitis; - GRANT ALL ON TABLE privileges TO vitis_admin; - GRANT SELECT ON TABLE privileges TO vitis_user; - REVOKE ALL ON SEQUENCE seq_translation FROM PUBLIC; - REVOKE ALL ON SEQUENCE seq_translation FROM u_vitis; - GRANT ALL ON SEQUENCE seq_translation TO u_vitis; - GRANT ALL ON SEQUENCE seq_translation TO vitis_admin; - GRANT SELECT,UPDATE ON SEQUENCE seq_translation TO vitis_user; - REVOKE ALL ON SEQUENCE seq_vm FROM PUBLIC; - REVOKE ALL ON SEQUENCE seq_vm FROM u_vitis; - GRANT ALL ON SEQUENCE seq_vm TO u_vitis; - GRANT ALL ON SEQUENCE seq_vm TO vitis_admin; - GRANT SELECT,UPDATE ON SEQUENCE seq_vm TO vitis_user; - REVOKE ALL ON TABLE v_group FROM PUBLIC; - REVOKE ALL ON TABLE v_group FROM u_vitis; - GRANT ALL ON TABLE v_group TO u_vitis; - GRANT ALL ON TABLE v_group TO vitis_admin; - GRANT SELECT ON TABLE v_group TO vitis_user; - REVOKE ALL ON TABLE vm_application_module FROM PUBLIC; - REVOKE ALL ON TABLE vm_application_module FROM u_vitis; - GRANT ALL ON TABLE vm_application_module TO u_vitis; - GRANT ALL ON TABLE vm_application_module TO vitis_admin; - GRANT SELECT ON TABLE vm_application_module TO vitis_user; - REVOKE ALL ON TABLE vm_mode FROM PUBLIC; - REVOKE ALL ON TABLE vm_mode FROM u_vitis; - GRANT ALL ON TABLE vm_mode TO u_vitis; - GRANT ALL ON TABLE vm_mode TO vitis_admin; - GRANT SELECT ON TABLE vm_mode TO vitis_user; - REVOKE ALL ON TABLE vm_mode_rolname FROM PUBLIC; - REVOKE ALL ON TABLE vm_mode_rolname FROM u_vitis; - GRANT ALL ON TABLE vm_mode_rolname TO u_vitis; - GRANT SELECT ON TABLE vm_mode_rolname TO vitis_user; - GRANT ALL ON TABLE vm_mode_rolname TO vitis_admin; - REVOKE ALL ON TABLE v_mode FROM PUBLIC; - REVOKE ALL ON TABLE v_mode FROM u_vitis; - GRANT ALL ON TABLE v_mode TO u_vitis; - GRANT ALL ON TABLE v_mode TO vitis_admin; - GRANT SELECT ON TABLE v_mode TO vitis_user; - REVOKE ALL ON TABLE v_ra_members_group FROM PUBLIC; - REVOKE ALL ON TABLE v_ra_members_group FROM u_vitis; - GRANT ALL ON TABLE v_ra_members_group TO u_vitis; - GRANT ALL ON TABLE v_ra_members_group TO vitis_admin; - GRANT SELECT ON TABLE v_ra_members_group TO vitis_user; - REVOKE ALL ON TABLE vm_section FROM PUBLIC; - REVOKE ALL ON TABLE vm_section FROM u_vitis; - GRANT ALL ON TABLE vm_section TO u_vitis; - GRANT ALL ON TABLE vm_section TO vitis_admin; - GRANT SELECT ON TABLE vm_section TO vitis_user; - REVOKE ALL ON TABLE vm_tab FROM PUBLIC; - REVOKE ALL ON TABLE vm_tab FROM u_vitis; - GRANT ALL ON TABLE vm_tab TO u_vitis; - GRANT SELECT ON TABLE vm_tab TO vitis_user; - GRANT ALL ON TABLE vm_tab TO vitis_admin; - REVOKE ALL ON TABLE v_section FROM PUBLIC; - REVOKE ALL ON TABLE v_section FROM u_vitis; - GRANT ALL ON TABLE v_section TO u_vitis; - GRANT ALL ON TABLE v_section TO vitis_admin; - GRANT SELECT ON TABLE v_section TO vitis_user; - REVOKE ALL ON TABLE v_tab FROM PUBLIC; - REVOKE ALL ON TABLE v_tab FROM u_vitis; - GRANT ALL ON TABLE v_tab TO u_vitis; - GRANT ALL ON TABLE v_tab TO vitis_admin; - GRANT SELECT ON TABLE v_tab TO vitis_user; - REVOKE ALL ON TABLE v_user FROM PUBLIC; - REVOKE ALL ON TABLE v_user FROM u_vitis; - GRANT ALL ON TABLE v_user TO u_vitis; - GRANT ALL ON TABLE v_user TO vitis_admin; - GRANT SELECT,UPDATE ON TABLE v_user TO vitis_user; - REVOKE ALL ON TABLE v_user_group FROM PUBLIC; - REVOKE ALL ON TABLE v_user_group FROM u_vitis; - GRANT ALL ON TABLE v_user_group TO u_vitis; - GRANT ALL ON TABLE v_user_group TO vitis_admin; - GRANT SELECT ON TABLE v_user_group TO vitis_user; - REVOKE ALL ON TABLE vm_application FROM PUBLIC; - REVOKE ALL ON TABLE vm_application FROM u_vitis; - GRANT ALL ON TABLE vm_application TO u_vitis; - GRANT ALL ON TABLE vm_application TO vitis_admin; - GRANT SELECT ON TABLE vm_application TO vitis_user; - REVOKE ALL ON TABLE vm_module FROM PUBLIC; - REVOKE ALL ON TABLE vm_module FROM u_vitis; - GRANT ALL ON TABLE vm_module TO u_vitis; - GRANT ALL ON TABLE vm_module TO vitis_admin; - GRANT SELECT ON TABLE vm_module TO vitis_user; - REVOKE ALL ON TABLE vm_string FROM PUBLIC; - REVOKE ALL ON TABLE vm_string FROM u_vitis; - GRANT ALL ON TABLE vm_string TO u_vitis; - GRANT SELECT ON TABLE vm_string TO vitis_user; - GRANT ALL ON TABLE vm_string TO vitis_admin; - REVOKE ALL ON TABLE vm_table_button FROM PUBLIC; - REVOKE ALL ON TABLE vm_table_button FROM u_vitis; - GRANT ALL ON TABLE vm_table_button TO u_vitis; - GRANT SELECT ON TABLE vm_table_button TO vitis_user; - GRANT ALL ON TABLE vm_table_button TO vitis_admin; - REVOKE ALL ON TABLE vm_table_field FROM PUBLIC; - REVOKE ALL ON TABLE vm_table_field FROM u_vitis; - GRANT ALL ON TABLE vm_table_field TO u_vitis; - GRANT ALL ON TABLE vm_table_field TO vitis_user; - GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE vm_table_field TO vitis_admin; - ]]> - </code> - - </query> - <query> - <type>update</type> - <version>2016.02.00</version> - <code> - <![CDATA[ - -- Frédéric le 15/07/2016 15:21 - UPDATE s_vitis.vm_table_button SET event = 'deleteUsers()' WHERE tab_id = (select tab_id from s_vitis.vm_tab where name = 'vitis_users') AND label_id = 'vitis_6'; - ]]> - </code> - - </query> - <query> - <type>update</type> - <version>2016.03.00</version> - <code> - <![CDATA[ - ]]> - </code> - - </query> - <query> - <type>update</type> - <version>2016.04.00</version> - <code> - <![CDATA[ - ]]> - </code> - - </query> - <query> - <type>update</type> - <version>2016.05.00</version> - <code> - <![CDATA[ - ]]> - </code> - - </query> - <query> - <type>update</type> - <version>2017.01.00</version> - <code> - <![CDATA[ - -- Anthony le 24/01/2017 à 10:20 - CREATE OR REPLACE FUNCTION s_vitis.insertJointure(arrayJointure text, value1 varchar(100), tableSchema varchar(255),jointureTable varchar(255), key1 varchar(255), key2 varchar(255)) RETURNS VOID AS $BODY$ DECLARE item varchar(255); request text; BEGIN FOREACH item IN ARRAY string_to_array(arrayJointure, '|') LOOP request = 'INSERT INTO '|| tableSchema ||'.'|| jointureTable ||' ('|| key1 ||', '|| key2 ||')VALUES('; IF pg_typeof(value1)::text = 'integer' THEN request = request || value1 || ', '; ELSE request = request || '''' || value1 || ''', '; END IF; IF pg_typeof(item)::text = 'integer' THEN request = request || item || ');'; ELSE request = request || '''' || item || ''');'; END IF; EXECUTE request; END LOOP; RETURN; END $BODY$ LANGUAGE 'plpgsql'; - ALTER FUNCTION s_vitis.insertjointure(text, character varying, character varying, character varying, character varying, character varying) OWNER TO u_vitis; - CREATE OR REPLACE FUNCTION s_vitis.wabinsertstate( schemametier character varying, tablestatus character varying, statusname character varying, progress integer) RETURNS void AS $BODY$ DECLARE request text; rowData integer; Id integer; BEGIN EXECUTE 'SELECT status_id FROM ' || schemaMetier || '.' || tableStatus || ' WHERE name = '''||statusName||''';' INTO rowData; IF rowData IS NOT NULL THEN RAISE NOTICE '%', rowData;request = 'UPDATE ' || schemaMetier || '.' || tableStatus || ' SET progress = '|| progress ||' WHERE name = '''||statusName||''';'; ELSE EXECUTE 'SELECT MAX(status_id) FROM '||schemaMetier||'.'||tableStatus|| ';' INTO Id; IF Id IS NOT NULL THEN RAISE NOTICE '%', Id; Id:= Id + 1; else Id:=1; RAISE NOTICE '%', Id;end if;request = 'INSERT INTO ' || schemaMetier || '.' || tableStatus || ' (status_id, name, progress) VALUES (' || Id || ',''' || statusName|| ''', ' || progress || ');'; END IF; RAISE NOTICE '%', request;EXECUTE request; RETURN; END $BODY$ LANGUAGE plpgsql VOLATILE COST 100; - ALTER FUNCTION s_vitis.wabinsertstate(character varying, character varying, character varying, integer) OWNER TO u_vitis; - -- Armand le 30/01/2017 à 10:00 - CREATE OR REPLACE VIEW s_vitis.v_section AS SELECT vm_section.tab_id, vm_section.section_id, vm_section.event, vm_section.index, vm_translation.translation AS label, vm_translation.lang, vm_section.name, vm_section.template, vm_section.ressource_id, vm_section.module AS module_name, vm_tab.name AS tab_name, vm_tab.mode_id FROM s_vitis.vm_section LEFT JOIN s_vitis.vm_translation ON vm_section.label_id::text = vm_translation.translation_id::text LEFT JOIN s_vitis.vm_tab ON vm_section.tab_id::text = vm_tab.tab_id::text; - ALTER TABLE s_vitis.v_section OWNER TO u_vitis; - REVOKE ALL ON TABLE s_vitis.v_section FROM PUBLIC; - REVOKE ALL ON TABLE s_vitis.v_section FROM u_vitis; - GRANT ALL ON TABLE s_vitis.v_section TO u_vitis; - GRANT ALL ON TABLE s_vitis.v_section TO vitis_admin; - GRANT SELECT ON TABLE s_vitis.v_section TO vitis_user; - -- Sébastien le 01/02/2017 à 12:33 - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Section Mode du mode Configuration', 'vitis_81'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('vitis_81', 'fr', 'Modes'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('vitis_81', 'en', 'Modes'); - INSERT INTO s_vitis.vm_section (section_id, label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'vitis_81', 'modes', 2, 'loadModes', (select tab_id from s_vitis.vm_tab where name = 'vitis_configuration'), 'workspaceListTpl.html', 'vitis/modes', 'vitis'); - UPDATE s_vitis.vm_section SET index = 3 WHERE name = 'version' and label_id = 'vitis_76' and tab_id = (select tab_id from s_vitis.vm_tab where name = 'vitis_configuration'); - UPDATE s_vitis.vm_section SET index = 4 WHERE name = 'phpinfo' and label_id = 'vitis_77' and tab_id = (select tab_id from s_vitis.vm_tab where name = 'vitis_configuration'); - -- Armand le 15/02/2017 à 11:40 - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Titre section websocket pour configuration', 'vitis_82'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('vitis_82', 'fr', 'Websocket'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('vitis_82', 'en', 'Websocket'); - INSERT INTO s_vitis.vm_section (section_id, label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'vitis_82', 'websocket', 4, 'Javascript:reloadWebsocketStatus', (select tab_id from s_vitis.vm_tab where name = 'vitis_configuration'), 'modules/vitis/templates/websocketConfigurationTpl.html', NULL, 'vitis'); - -- Armand le 31/03/2017 à 11:40 - REVOKE ALL ON TABLE s_vitis.vm_table_field FROM vitis_user; - REVOKE ALL ON TABLE s_vitis.vm_table_field FROM vitis_admin; - GRANT SELECT ON TABLE s_vitis.vm_table_field TO vitis_user; - GRANT ALL ON TABLE s_vitis.vm_table_field TO vitis_admin; - ]]> - </code> - </query> - <query> - <type>update</type> - <version>2017.01.01</version> - <code> - <![CDATA[ - ]]> - </code> - </query> - <query> - <type>update</type> - <version>2017.01.02</version> - <code> - <![CDATA[ - ]]> - </code> - </query> - <query> - <type>update</type> - <version>2017.01.03</version> - <code> - <![CDATA[ - ]]> - </code> - </query> - <query> - <type>update</type> - <version>2017.01.04</version> - <code> - <![CDATA[ - -- Armand le 20/06/2017 à 18h ajout de la table feature_style - CREATE TABLE IF NOT EXISTS s_vitis.feature_style(feature_style_id SERIAL NOT NULL,draw_color VARCHAR(50),draw_outline_color VARCHAR(50),draw_size VARCHAR(50),draw_dash VARCHAR(50),draw_symbol VARCHAR(50),text_font VARCHAR(50),text_color VARCHAR(50),text_outline_color VARCHAR(50),text_size VARCHAR(50),text_outline_size VARCHAR(50),text_offset_x VARCHAR(50),text_offset_y VARCHAR(50),text_rotation VARCHAR(50),text_text VARCHAR(255),feature_type VARCHAR(255),PRIMARY KEY (feature_style_id)); - ALTER TABLE s_vitis.feature_style owner TO u_vitis; - GRANT ALL ON table s_vitis.feature_style TO u_vitis; - GRANT SELECT ON TABLE s_vitis.feature_style TO vitis_user; - GRANT ALL ON table s_vitis.feature_style TO vitis_admin; - -- Armand le 27/07/2017 à 18h restriction des droits de vitis_user pour des raisons de sécurité - REVOKE ALL ON TABLE s_vitis."user" FROM vitis_user; - REVOKE ALL ON TABLE s_vitis."user_group" FROM vitis_user; - CREATE OR REPLACE FUNCTION s_vitis.is_vitis_admin() RETURNS boolean AS $total$ declare total boolean; BEGIN SELECT(SELECT count(*) FROM information_schema.applicable_roles WHERE role_name='vitis_admin') > 0 INTO total; RETURN total; END; $total$ LANGUAGE plpgsql; - CREATE OR REPLACE VIEW s_vitis.v_user AS SELECT "user".user_id, "user".login, "user".name, "user".email, "user".company, "user".department, "user".ip_constraint, domain.domain, "user".domain_id, "user".last_connection, "user".restriction, CASE WHEN array_to_string(ARRAY( SELECT pg_group.groname FROM pg_group JOIN pg_roles ON pg_roles.oid = ANY (pg_group.grolist) WHERE "user".login::name = pg_roles.rolname AND (pg_group.groname = 'vitis_admin'::name OR pg_group.groname = 'vitis_user'::name)), '|'::text) = 'vitis_user|vitis_admin'::text OR array_to_string(ARRAY( SELECT pg_group.groname FROM pg_group JOIN pg_roles ON pg_roles.oid = ANY (pg_group.grolist) WHERE "user".login::name = pg_roles.rolname AND (pg_group.groname = 'vitis_admin'::name OR pg_group.groname = 'vitis_user'::name)), '|'::text) = 'vitis_admin|vitis_user'::text THEN 'admin'::text WHEN array_to_string(ARRAY( SELECT pg_group.groname FROM pg_group JOIN pg_roles ON pg_roles.oid = ANY (pg_group.grolist) WHERE "user".login::name = pg_roles.rolname AND (pg_group.groname = 'vitis_admin'::name OR pg_group.groname = 'vitis_user'::name)), '|'::text) = 'vitis_user'::text THEN 'user'::text ELSE ''::text END AS role FROM s_vitis."user" LEFT JOIN s_vitis.domain ON "user".domain_id = domain.domain_id WHERE "user".login = "current_user"() OR s_vitis.is_vitis_admin(); - CREATE OR REPLACE RULE delete_v_user AS ON DELETE TO s_vitis.v_user DO INSTEAD DELETE FROM s_vitis."user" WHERE "user".user_id = old.user_id; - CREATE OR REPLACE RULE insert_v_user AS ON INSERT TO s_vitis.v_user DO INSTEAD INSERT INTO s_vitis."user" (user_id, login, domain_id, name, email, company, department, ip_constraint, restriction) VALUES (new.user_id, new.login, new.domain_id, new.name, new.email, new.company, new.department, new.ip_constraint, new.restriction); - DROP RULE update_v_user ON s_vitis.v_user; - CREATE OR REPLACE RULE update_v_user_u AS ON UPDATE TO s_vitis.v_user DO INSTEAD UPDATE s_vitis."user" SET name = new.name, email = new.email, company = new.company, department = new.department WHERE (new.name = "current_user"() or s_vitis.is_vitis_admin()) AND "user".user_id = new.user_id; - CREATE OR REPLACE RULE update_v_user_a AS ON UPDATE TO s_vitis.v_user WHERE s_vitis.is_vitis_admin() DO INSTEAD UPDATE s_vitis."user" SET name = new.name, email = new.email, company = new.company, department = new.department, ip_constraint = new.ip_constraint, restriction = new.restriction WHERE (new.name = "current_user"() or s_vitis.is_vitis_admin()) AND "user".user_id = new.user_id; - CREATE OR REPLACE VIEW s_vitis.v_user_group_by_rights AS SELECT user_group.user_id, user_group.group_id FROM s_vitis.user_group LEFT JOIN s_vitis."user" ON user_group.user_id = "user".user_id LEFT JOIN s_vitis."group" ON "group".group_id = user_group.group_id WHERE "user".login::name::text = "current_user"()::text OR s_vitis.is_vitis_admin(); - ALTER TABLE s_vitis.v_user_group_by_rights OWNER TO u_vitis; - GRANT ALL ON TABLE s_vitis.v_user_group_by_rights TO u_vitis; - GRANT ALL ON TABLE s_vitis.v_user_group_by_rights TO vitis_admin; - GRANT SELECT ON TABLE s_vitis.v_user_group_by_rights TO vitis_user; - CREATE OR REPLACE RULE update_v_user_group_by_rights AS ON DELETE TO s_vitis.v_user_group_by_rights DO INSTEAD DELETE FROM s_vitis.user_group WHERE user_group.group_id = old.group_id; - CREATE OR REPLACE RULE insert_v_user_group_by_rights AS ON INSERT TO s_vitis.v_user_group_by_rights DO INSTEAD INSERT INTO s_vitis.user_group (user_id, group_id) VALUES (new.user_id, new.group_id); - DROP RULE IF EXISTS update_v_user_a ON s_vitis.v_user; - DROP RULE IF EXISTS update_v_user_u ON s_vitis.v_user; - CREATE OR REPLACE RULE update_v_user AS ON UPDATE TO s_vitis.v_user DO INSTEAD (UPDATE s_vitis."user" SET name = new.name, email = new.email, company = new.company, department = new.department WHERE NOT s_vitis.is_vitis_admin() AND new.login::name = "current_user"() AND "user".user_id = new.user_id; UPDATE s_vitis."user" SET name = new.name, email = new.email, company = new.company, department = new.department, ip_constraint = new.ip_constraint, restriction = new.restriction WHERE s_vitis.is_vitis_admin() AND "user".user_id = new.user_id); - -- Armand 02/08/2017: donne le droit d'édition sur last_connection - CREATE OR REPLACE RULE update_v_user AS ON UPDATE TO s_vitis.v_user DO INSTEAD (UPDATE s_vitis."user" SET name = new.name, email = new.email, company = new.company, department = new.department, last_connection = new.last_connection WHERE NOT s_vitis.is_vitis_admin() AND new.login::name = "current_user"() AND "user".user_id = new.user_id; UPDATE s_vitis."user" SET name = new.name, email = new.email, company = new.company, department = new.department, ip_constraint = new.ip_constraint, domain_id = new.domain_id, last_connection = new.last_connection, restriction = new.restriction WHERE s_vitis.is_vitis_admin() AND "user".user_id = new.user_id); - -- Armand 02/08/2017: correction bug: un utilisateur simple peut changer le nom, l'email la company, le departement et le last_connection d'un autre utilisateur si il passe un user_id dans les paramètres à changer - CREATE OR REPLACE RULE update_v_user AS ON UPDATE TO s_vitis.v_user DO INSTEAD( UPDATE s_vitis."user" SET name = new.name, email = new.email, company = new.company, department = new.department, last_connection = new.last_connection WHERE NOT s_vitis.is_vitis_admin() AND new.login::name = "current_user"() AND "user".user_id = (SELECT user_id FROM s_vitis."user" WHERE login = "current_user"()); UPDATE s_vitis."user" SET name = new.name, email = new.email, company = new.company, department = new.department, ip_constraint = new.ip_constraint, domain_id = new.domain_id, last_connection = new.last_connection, restriction = new.restriction WHERE s_vitis.is_vitis_admin() AND "user".user_id = new.user_id;); - ]]> - </code> - </query> - <query> - <type>update</type> - <version>2017.02.00</version> - <code> - <![CDATA[ - -- Laurent le 01/08/2017 à 12h Creation de fonction générique pour récupérer l'utilisateur qui créé ou met à jour un enregistrement - CREATE OR REPLACE FUNCTION s_vitis.insert_author_date() RETURNS trigger AS $BODY$ BEGIN NEW.author = current_user; NEW.create_date = now(); RETURN NEW; END; $BODY$ LANGUAGE plpgsql VOLATILE COST 100; - ALTER FUNCTION s_vitis.insert_author_date() OWNER TO u_vitis; - CREATE OR REPLACE FUNCTION s_vitis.update_modifier_date() RETURNS trigger AS $BODY$ BEGIN NEW.modifier = current_user; NEW.update_date = now(); RETURN NEW; END;$BODY$ LANGUAGE plpgsql VOLATILE COST 100; - ALTER FUNCTION s_vitis.update_modifier_date() OWNER TO u_vitis; - -- Armand 31/08/2017: correction bug: quand un administrateur met à jour les groupes d'un utilisateur, il pert lui même les groupes qu'il a enlevé à l'utilisateur - CREATE OR REPLACE RULE update_v_user_group_by_rights AS ON DELETE TO s_vitis.v_user_group_by_rights DO INSTEAD DELETE FROM s_vitis.user_group WHERE user_group.group_id = old.group_id AND user_group.user_id = old.user_id; - --Yoann 12/09/2017: attribution de la séquence s_vitis.seq_common aux champs user_id(table user) et group_id (table group) - ALTER TABLE s_vitis."user" ALTER COLUMN user_id SET DEFAULT nextval('s_vitis.seq_common'::regclass); - ALTER TABLE s_vitis."group" ALTER COLUMN group_id SET DEFAULT nextval('s_vitis.seq_common'::regclass); - ]]> - </code> - </query> - <query> - <type>update</type> - <version>2017.02.01</version> - <code> - <![CDATA[ - ]]> - </code> - </query> - <query> - <type>update</type> - <version>2017.02.02</version> - <code> - <![CDATA[ - ]]> - </code> - </query> - <query> - <type>update</type> - <version>2017.02.03</version> - <code> - <![CDATA[ - ]]> - </code> - </query> - <query> - <type>update</type> - <version>2017.02.04</version> - <code> - <![CDATA[ - ]]> - </code> - </query> - <query> - <type>update</type> - <version>2017.03.00</version> - <code> - <![CDATA[ - ]]> - </code> - </query> - <query> - <type>update</type> - <version>2017.04.00</version> - <code> - <![CDATA[ - ALTER FUNCTION s_vitis.is_vitis_admin() OWNER TO u_vitis; - ]]> - </code> - </query> - <query> - <type>update</type> - <version>2018.01.00</version> - <code> - <![CDATA[ - ALTER TABLE s_vitis."user" ADD CONSTRAINT check_u_vitis CHECK (name::text != 'u_vitis'::text) - ALTER TABLE s_vitis."user" ADD CONSTRAINT check_postgres CHECK (name::text != 'postgres'::text) - -- Armand 06/02/2018 15:31 - ALTER TABLE s_vitis.domain ALTER COLUMN password TYPE character varying(255); - ]]> - </code> - </query> - <query> - <type>update</type> - <version>2018.02.00</version> - <code> - <![CDATA[ - ]]> - </code> - </query> - <query> - <type>update</type> - <version>2018.02.01</version> - <code> - <![CDATA[ - ]]> - </code> - </query> - <query> - <type>update</type> - <version>2018.03.00</version> - <code> - <![CDATA[ - --anthony 05/04/2018 10:36 - DROP INDEX IF EXISTS s_vitis.index_vm_translation_lang; - CREATE INDEX index_vm_translation_lang ON s_vitis.vm_translation (lang); - DROP INDEX IF EXISTS s_vitis.index_vm_translation; - CREATE INDEX index_vm_translation ON s_vitis.vm_translation (translation_id); - -- Armand 13/06/2018 17h59 ajout de CREATEROLE à u_vitis pour que l'on puisse modifier les privilèges - ALTER USER u_vitis WITH CREATEROLE - ]]> - </code> - </query> - <query> - <type>update</type> - <version>2018.04.00</version> - <code> - <![CDATA[ - -- Frédéric 15/06/2018 09:15 - ALTER TABLE s_vitis.user ADD COLUMN dataencrypt boolean DEFAULT FALSE; - ALTER TABLE s_vitis.user ADD COLUMN secretkey character varying(100); - CREATE OR REPLACE VIEW s_vitis.v_user AS SELECT "user".user_id, "user".login, "user".name, "user".email, "user".company, "user".department, "user".ip_constraint, domain.domain, "user".domain_id, "user".last_connection, "user".restriction, CASE WHEN array_to_string(ARRAY( SELECT pg_group.groname FROM pg_group JOIN pg_roles ON pg_roles.oid = ANY (pg_group.grolist) WHERE "user".login::name = pg_roles.rolname AND (pg_group.groname = 'vitis_admin'::name OR pg_group.groname = 'vitis_user'::name)), '|'::text) = 'vitis_user|vitis_admin'::text OR array_to_string(ARRAY( SELECT pg_group.groname FROM pg_group JOIN pg_roles ON pg_roles.oid = ANY (pg_group.grolist) WHERE "user".login::name = pg_roles.rolname AND (pg_group.groname = 'vitis_admin'::name OR pg_group.groname = 'vitis_user'::name)), '|'::text) = 'vitis_admin|vitis_user'::text THEN 'admin'::text WHEN array_to_string(ARRAY( SELECT pg_group.groname FROM pg_group JOIN pg_roles ON pg_roles.oid = ANY (pg_group.grolist) WHERE "user".login::name = pg_roles.rolname AND (pg_group.groname = 'vitis_admin'::name OR pg_group.groname = 'vitis_user'::name)), '|'::text) = 'vitis_user'::text THEN 'user'::text ELSE ''::text END AS role, dataencrypt, secretkey FROM s_vitis."user" LEFT JOIN s_vitis.domain ON "user".domain_id = domain.domain_id WHERE "user".login::name = "current_user"() OR s_vitis.is_vitis_admin(); - CREATE OR REPLACE RULE insert_v_user AS ON INSERT TO s_vitis.v_user DO INSTEAD INSERT INTO s_vitis."user" (user_id, login, domain_id, name, email, company, department, ip_constraint, restriction, dataencrypt, secretkey) VALUES (new.user_id, new.login, new.domain_id, new.name, new.email, new.company, new.department, new.ip_constraint, new.restriction, new.dataencrypt, new.secretkey); - CREATE OR REPLACE RULE update_v_user AS ON UPDATE TO s_vitis.v_user DO INSTEAD ( UPDATE s_vitis."user" SET name = new.name, email = new.email, company = new.company, department = new.department, last_connection = new.last_connection WHERE NOT s_vitis.is_vitis_admin() AND new.login::name = "current_user"() AND "user".user_id = (( SELECT user_1.user_id FROM s_vitis."user" user_1 WHERE user_1.login::name = "current_user"())); UPDATE s_vitis."user" SET name = new.name, email = new.email, company = new.company, department = new.department, ip_constraint = new.ip_constraint, domain_id = new.domain_id, last_connection = new.last_connection, restriction = new.restriction, dataencrypt = new.dataencrypt, secretkey = new.secretkey WHERE s_vitis.is_vitis_admin() AND "user".user_id = new.user_id;); - -- Frédéric 21/06/2018 15:47 - CREATE TABLE s_vitis.billinggroup (billinggroup_id SERIAL NOT NULL, billinggroup character varying(50) NOT NULL, description text); - ALTER TABLE ONLY s_vitis.billinggroup ADD CONSTRAINT pk_billinggroup_id PRIMARY KEY (billinggroup_id); - ALTER TABLE s_vitis.billinggroup OWNER TO u_vitis; - GRANT ALL ON TABLE s_vitis.billinggroup TO u_vitis; - GRANT ALL ON TABLE s_vitis.billinggroup TO vitis_admin; - ALTER TABLE s_vitis.user ADD COLUMN billinggroup_id integer; - ALTER TABLE s_vitis."user" ALTER COLUMN billinggroup_id SET DEFAULT -1; - ALTER TABLE s_vitis.user ADD CONSTRAINT fk_billinggroup_id FOREIGN KEY (billinggroup_id) REFERENCES s_vitis.billinggroup (billinggroup_id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION; - -- Frédéric 21/06/2018 16:15 - CREATE OR REPLACE VIEW s_vitis.v_user AS SELECT "user".user_id, "user".login, "user".name, "user".email, "user".company, "user".department, "user".ip_constraint, domain.domain, "user".domain_id, "user".last_connection, "user".restriction, CASE WHEN array_to_string(ARRAY (SELECT pg_group.groname FROM pg_group JOIN pg_roles ON pg_roles.oid = ANY (pg_group.grolist) WHERE "user".login::name = pg_roles.rolname AND (pg_group.groname = 'vitis_admin'::name OR pg_group.groname = 'vitis_user'::name)), '|'::text) = 'vitis_user|vitis_admin'::text OR array_to_string(ARRAY (SELECT pg_group.groname FROM pg_group JOIN pg_roles ON pg_roles.oid = ANY (pg_group.grolist) WHERE "user".login::name = pg_roles.rolname AND (pg_group.groname = 'vitis_admin'::name OR pg_group.groname = 'vitis_user'::name)), '|'::text) = 'vitis_admin|vitis_user'::text THEN 'admin'::text WHEN array_to_string(ARRAY (SELECT pg_group.groname FROM pg_group JOIN pg_roles ON pg_roles.oid = ANY (pg_group.grolist) WHERE "user".login::name = pg_roles.rolname AND (pg_group.groname = 'vitis_admin'::name OR pg_group.groname = 'vitis_user'::name)), '|'::text) = 'vitis_user'::text THEN 'user'::text ELSE ''::text END AS ROLE, dataencrypt, secretkey, "user".billinggroup_id, billinggroup.billinggroup FROM s_vitis."user" LEFT JOIN s_vitis.domain ON "user".domain_id = domain.domain_id LEFT JOIN s_vitis.billinggroup ON "user".billinggroup_id = billinggroup.billinggroup_id WHERE "user".login::name = "current_user"() OR s_vitis.is_vitis_admin(); - CREATE OR REPLACE RULE insert_v_user AS ON INSERT TO s_vitis.v_user DO INSTEAD INSERT INTO s_vitis."user" (user_id, login, domain_id, name, email, company, department, ip_constraint, restriction, dataencrypt, secretkey, billinggroup_id) VALUES (new.user_id, new.login, new.domain_id, new.name, new.email, new.company, new.department, new.ip_constraint, new.restriction, new.dataencrypt, new.secretkey, new.billinggroup_id); - CREATE OR REPLACE RULE update_v_user AS ON UPDATE TO s_vitis.v_user DO INSTEAD ( UPDATE s_vitis."user" SET name = new.name, email = new.email, company = new.company, department = new.department, last_connection = new.last_connection WHERE NOT s_vitis.is_vitis_admin() AND new.login::name = "current_user"() AND "user".user_id = (( SELECT user_1.user_id FROM s_vitis."user" user_1 WHERE user_1.login::name = "current_user"())); UPDATE s_vitis."user" SET name = new.name, email = new.email, company = new.company, department = new.department, ip_constraint = new.ip_constraint, domain_id = new.domain_id, last_connection = new.last_connection, restriction = new.restriction, dataencrypt = new.dataencrypt, secretkey = new.secretkey, billinggroup_id = new.billinggroup_id WHERE s_vitis.is_vitis_admin() AND "user".user_id = new.user_id;); - -- Frédéric 22/06/2018 11:32 - CREATE OR REPLACE VIEW s_vitis.v_billinggroup AS SELECT billinggroup.billinggroup_id, billinggroup.billinggroup, billinggroup.description FROM s_vitis."billinggroup"; - ALTER TABLE s_vitis.v_billinggroup OWNER TO u_vitis; - GRANT ALL ON TABLE s_vitis.v_billinggroup TO vitis_admin; - GRANT SELECT ON TABLE s_vitis.v_billinggroup TO vitis_user; - CREATE OR REPLACE RULE delete_v_billinggroup AS ON DELETE TO s_vitis.v_billinggroup DO INSTEAD DELETE FROM s_vitis."billinggroup" WHERE "billinggroup".billinggroup_id = old.billinggroup_id; - CREATE OR REPLACE RULE insert_v_billinggroup AS ON INSERT TO s_vitis.v_billinggroup DO INSTEAD INSERT INTO s_vitis."billinggroup" (billinggroup_id, billinggroup, description) VALUES (new.billinggroup_id, new.billinggroup, new.description); - CREATE OR REPLACE RULE update_v_billinggroup AS ON UPDATE TO s_vitis.v_billinggroup DO INSTEAD UPDATE s_vitis."billinggroup" SET billinggroup = new.billinggroup, description = new.description WHERE "billinggroup".billinggroup_id = new.billinggroup_id; - -- Frédéric 22/06/2018 14:20 - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('onglet 4 du mode utilisateurs (users) utilisé dans la table vm_tab', 'vitis_83'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Titre section general pour billinggroup', 'vitis_84'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ billinggroup_id de la table billinggroup', 'vitis_85'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ billinggroup de la table billinggroup', 'vitis_86'); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Champ description de la table billinggroup', 'vitis_87'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('vitis_83', 'fr', 'Groupes de facturation'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('vitis_83', 'en', 'Billing Groups'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('vitis_84', 'fr', 'Général'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('vitis_84', 'en', 'General'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('vitis_85', 'fr', 'ID'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('vitis_85', 'en', 'ID'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('vitis_86', 'fr', 'Groupe'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('vitis_86', 'en', 'Group'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('vitis_87', 'fr', 'Description'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('vitis_87', 'en', 'Description'); - INSERT INTO s_vitis.vm_tab (tab_id, event, index, mode_id, label_id, ressource_id, edit_column, show_column, sorted_by, sorted_dir, name) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'loadList()', 4, 'users', 'vitis_83', 'vitis/billinggroups', 'editSectionForm', 'showSectionForm', 'billinggroup_id', 'DESC', 'vitis_billinggroup'); - INSERT INTO s_vitis.vm_section (section_id, label_id, name, index, event, tab_id, template, ressource_id, module) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'vitis_84', 'general', 1, 'javascript:loadSection', (select tab_id from s_vitis.vm_tab where name = 'vitis_billinggroup'), 'workspaceListTpl.html', NULL, 'vitis'); - INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'billinggroup_id', true, true, 1, 30, 'right', 'vitis_85', NULL, 'vitis/billinggroups', NULL, (select tab_id from s_vitis.vm_tab where name = 'vitis_billinggroup')); - INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'billinggroup', true, true, 2, 200, 'left', 'vitis_86', 'vitis', 'vitis/billinggroups', NULL, (select tab_id from s_vitis.vm_tab where name = 'vitis_billinggroup')); - INSERT INTO s_vitis.vm_table_field (table_field_id, name, sortable, resizeable, index, width, align, label_id, module, ressource_id, template, tab_id) VALUES ((select nextval('s_vitis.seq_vm'::regclass)), 'description', true, true, 3, 800, 'left', 'vitis_87', 'vitis', 'vitis/billinggroups', NULL, (select tab_id from s_vitis.vm_tab where name = 'vitis_billinggroup')); - -- Frédéric 22/06/2018 16:39 - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Button d''ajout de la table billing group', 'vitis_88'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('vitis_88', 'fr', 'Ajouter un groupe de facturation'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('vitis_88', 'en', 'Add a billing group'); - INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('add_smallFlexigrid', (select nextval('s_vitis.seq_vm'::regclass)), 'AddSectionForm', 'vitis_88', 'vitis/billinggroups', (select tab_id from s_vitis.vm_tab where name = 'vitis_billinggroup')); - INSERT INTO s_vitis.vm_string (string, string_id) VALUES ('Button de suppression de la table billing group', 'vitis_89'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('vitis_89', 'fr', 'Supprimer les groupes de facturation'); - INSERT INTO s_vitis.vm_translation (translation_id, lang, translation) VALUES ('vitis_89', 'en', 'Delete billing groups'); - INSERT INTO s_vitis.vm_table_button (button_class, table_button_id, event, label_id, ressource_id, tab_id) VALUES ('deleteFlexigrid', (select nextval('s_vitis.seq_vm'::regclass)), 'DeleteSelection', 'vitis_89', 'vitis/billinggroups', (select tab_id from s_vitis.vm_tab where name = 'vitis_billinggroup')); - -- Frédéric 25/06/2018 09:44 - CREATE OR REPLACE VIEW s_vitis.v_user AS SELECT "user".user_id, "user".login, "user".name, "user".email, "user".company, "user".department, "user".ip_constraint, domain.domain, "user".domain_id, "user".last_connection, "user".restriction, CASE WHEN array_to_string(ARRAY( SELECT pg_group.groname FROM pg_group JOIN pg_roles ON pg_roles.oid = ANY (pg_group.grolist) WHERE "user".login::name = pg_roles.rolname AND (pg_group.groname = 'vitis_admin'::name OR pg_group.groname = 'vitis_user'::name)), '|'::text) = 'vitis_user|vitis_admin'::text OR array_to_string(ARRAY( SELECT pg_group.groname FROM pg_group JOIN pg_roles ON pg_roles.oid = ANY (pg_group.grolist) WHERE "user".login::name = pg_roles.rolname AND (pg_group.groname = 'vitis_admin'::name OR pg_group.groname = 'vitis_user'::name)), '|'::text) = 'vitis_admin|vitis_user'::text THEN 'admin'::text WHEN array_to_string(ARRAY( SELECT pg_group.groname FROM pg_group JOIN pg_roles ON pg_roles.oid = ANY (pg_group.grolist) WHERE "user".login::name = pg_roles.rolname AND (pg_group.groname = 'vitis_admin'::name OR pg_group.groname = 'vitis_user'::name)), '|'::text) = 'vitis_user'::text THEN 'user'::text ELSE ''::text END AS role, dataencrypt, secretkey, "user".billinggroup_id,billinggroup.billinggroup FROM s_vitis."user" LEFT JOIN s_vitis.domain ON "user".domain_id = domain.domain_id LEFT JOIN s_vitis.billinggroup ON "user".billinggroup_id = billinggroup.billinggroup_id WHERE "user".login::name = "current_user"() OR s_vitis.is_vitis_admin(); - -- Frédéric 25/06/2018 11:05 - INSERT INTO s_vitis.billinggroup (billinggroup_id, billinggroup, description) VALUES (-1, 'default', ''); - - -- Frédéric le 20/07/2018 15:30 - ALTER TABLE s_vitis."user" ADD COLUMN timezone_id character varying(40) DEFAULT 'Europe/Paris' NOT NULL; - DROP VIEW s_vitis.v_user; - ALTER TABLE s_vitis.user ALTER COLUMN last_connection TYPE timestamp with time zone; - CREATE OR REPLACE VIEW s_vitis.v_user AS SELECT "user".user_id, "user".login, "user".name, "user".email, "user".company, "user".department, "user".ip_constraint, domain.domain, "user".domain_id, "user".last_connection, "user".restriction, CASE WHEN array_to_string(ARRAY( SELECT pg_group.groname FROM pg_group JOIN pg_roles ON pg_roles.oid = ANY (pg_group.grolist) WHERE "user".login::name = pg_roles.rolname AND (pg_group.groname = 'vitis_admin'::name OR pg_group.groname = 'vitis_user'::name)), '|'::text) = 'vitis_user|vitis_admin'::text OR array_to_string(ARRAY( SELECT pg_group.groname FROM pg_group JOIN pg_roles ON pg_roles.oid = ANY (pg_group.grolist) WHERE "user".login::name = pg_roles.rolname AND (pg_group.groname = 'vitis_admin'::name OR pg_group.groname = 'vitis_user'::name)), '|'::text) = 'vitis_admin|vitis_user'::text THEN 'admin'::text WHEN array_to_string(ARRAY( SELECT pg_group.groname FROM pg_group JOIN pg_roles ON pg_roles.oid = ANY (pg_group.grolist) WHERE "user".login::name = pg_roles.rolname AND (pg_group.groname = 'vitis_admin'::name OR pg_group.groname = 'vitis_user'::name)), '|'::text) = 'vitis_user'::text THEN 'user'::text ELSE ''::text END AS role, dataencrypt, secretkey, "user".billinggroup_id,billinggroup.billinggroup FROM s_vitis."user" LEFT JOIN s_vitis.domain ON "user".domain_id = domain.domain_id LEFT JOIN s_vitis.billinggroup ON "user".billinggroup_id = billinggroup.billinggroup_id WHERE "user".login::name = "current_user"() OR s_vitis.is_vitis_admin(); - ALTER TABLE s_vitis.v_user OWNER TO u_vitis; - GRANT ALL ON TABLE s_vitis.v_user TO vitis_admin; - GRANT SELECT, UPDATE ON TABLE s_vitis.v_user TO vitis_user; - CREATE OR REPLACE RULE delete_v_user AS ON DELETE TO s_vitis.v_user DO INSTEAD DELETE FROM s_vitis."user" WHERE "user".user_id = old.user_id; - CREATE OR REPLACE RULE insert_v_user AS ON INSERT TO s_vitis.v_user DO INSTEAD INSERT INTO s_vitis."user" (user_id, login, domain_id, name, email, company, department, ip_constraint, restriction, dataencrypt, secretkey, billinggroup_id) VALUES (new.user_id, new.login, new.domain_id, new.name, new.email, new.company, new.department, new.ip_constraint, new.restriction, new.dataencrypt, new.secretkey, new.billinggroup_id); - CREATE OR REPLACE RULE update_v_user AS ON UPDATE TO s_vitis.v_user DO INSTEAD ( UPDATE s_vitis."user" SET name = new.name, email = new.email, company = new.company, department = new.department, last_connection = new.last_connection WHERE NOT s_vitis.is_vitis_admin() AND new.login::name = "current_user"() AND "user".user_id = (( SELECT user_1.user_id FROM s_vitis."user" user_1 WHERE user_1.login::name = "current_user"())); UPDATE s_vitis."user" SET name = new.name, email = new.email, company = new.company, department = new.department, ip_constraint = new.ip_constraint, domain_id = new.domain_id, last_connection = new.last_connection, restriction = new.restriction, dataencrypt = new.dataencrypt, secretkey = new.secretkey, billinggroup_id = new.billinggroup_id WHERE s_vitis.is_vitis_admin() AND "user".user_id = new.user_id;); - - -- Frédéric le 20/07/2018 16:40 - CREATE TABLE s_vitis.rt_formatdate (formatdate_id character varying(11) NOT NULL, formatdate character varying(100)); - ALTER TABLE s_vitis.rt_formatdate OWNER TO u_vitis; - GRANT ALL ON TABLE s_vitis.rt_formatdate TO vitis_admin; - GRANT SELECT ON TABLE s_vitis.rt_formatdate TO vitis_user; - ALTER TABLE ONLY s_vitis.rt_formatdate ADD CONSTRAINT pk_formatdate_id PRIMARY KEY (formatdate_id); - INSERT INTO s_vitis.rt_formatdate (formatdate_id, formatdate) VALUES ('MM-DD-YYYY','Américain'); - INSERT INTO s_vitis.rt_formatdate (formatdate_id, formatdate) VALUES ('YYYY-MM-DDT','ISO 8601'); - INSERT INTO s_vitis.rt_formatdate (formatdate_id, formatdate) VALUES ('DD-MM-YYYY','Européen'); - - ALTER TABLE s_vitis.user ADD COLUMN formatdate_id character varying(11) DEFAULT 'YYYY-MM-DDT'; - ALTER TABLE s_vitis.user ADD CONSTRAINT fk_formatdate_id FOREIGN KEY (formatdate_id) REFERENCES s_vitis.rt_formatdate (formatdate_id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION; - - -- Anthony le 23/07/2018 09:20 - ALTER TABLE s_vitis.user ADD COLUMN phone varchar(50); - ALTER TABLE s_vitis.user ADD COLUMN acceptnotification boolean DEFAULT FALSE; - CREATE OR REPLACE VIEW s_vitis.v_user AS SELECT "user".user_id, "user".login, "user".name, "user".email, "user".company, "user".department, "user".ip_constraint, domain.domain, "user".domain_id, "user".last_connection, "user".restriction, CASE WHEN array_to_string(ARRAY( SELECT pg_group.groname FROM pg_group JOIN pg_roles ON pg_roles.oid = ANY (pg_group.grolist) WHERE "user".login::name = pg_roles.rolname AND (pg_group.groname = 'vitis_admin'::name OR pg_group.groname = 'vitis_user'::name)), '|'::text) = 'vitis_user|vitis_admin'::text OR array_to_string(ARRAY( SELECT pg_group.groname FROM pg_group JOIN pg_roles ON pg_roles.oid = ANY (pg_group.grolist) WHERE "user".login::name = pg_roles.rolname AND (pg_group.groname = 'vitis_admin'::name OR pg_group.groname = 'vitis_user'::name)), '|'::text) = 'vitis_admin|vitis_user'::text THEN 'admin'::text WHEN array_to_string(ARRAY( SELECT pg_group.groname FROM pg_group JOIN pg_roles ON pg_roles.oid = ANY (pg_group.grolist) WHERE "user".login::name = pg_roles.rolname AND (pg_group.groname = 'vitis_admin'::name OR pg_group.groname = 'vitis_user'::name)), '|'::text) = 'vitis_user'::text THEN 'user'::text ELSE ''::text END AS role, dataencrypt, secretkey, "user".billinggroup_id ,billinggroup.billinggroup, "user".phone, "user".acceptnotification FROM s_vitis."user" LEFT JOIN s_vitis.domain ON "user".domain_id = domain.domain_id LEFT JOIN s_vitis.billinggroup ON "user".billinggroup_id = billinggroup.billinggroup_id WHERE "user".login::name = "current_user"() OR s_vitis.is_vitis_admin(); - CREATE OR REPLACE RULE insert_v_user AS ON INSERT TO s_vitis.v_user DO INSTEAD INSERT INTO s_vitis."user" (user_id, login, domain_id, name, email, company, department, ip_constraint, restriction, dataencrypt, secretkey, billinggroup_id, phone, acceptnotification) VALUES (new.user_id, new.login, new.domain_id, new.name, new.email, new.company, new.department, new.ip_constraint, new.restriction, new.dataencrypt, new.secretkey, new.billinggroup_id, new.phone, new.acceptnotification); - CREATE OR REPLACE RULE update_v_user AS ON UPDATE TO s_vitis.v_user DO INSTEAD ( UPDATE s_vitis."user" SET name = new.name, email = new.email, company = new.company, department = new.department, last_connection = new.last_connection, phone = new.phone, acceptnotification = new.acceptnotification WHERE NOT s_vitis.is_vitis_admin() AND new.login::name = "current_user"() AND "user".user_id = (( SELECT user_1.user_id FROM s_vitis."user" user_1 WHERE user_1.login::name = "current_user"())); UPDATE s_vitis."user" SET name = new.name, email = new.email, phone = new.phone, acceptnotification = new.acceptnotification, company = new.company, department = new.department, ip_constraint = new.ip_constraint, domain_id = new.domain_id, last_connection = new.last_connection, restriction = new.restriction, dataencrypt = new.dataencrypt, secretkey = new.secretkey, billinggroup_id = new.billinggroup_id, phone = new.phone, acceptnotification = new.acceptnotification WHERE s_vitis.is_vitis_admin() AND "user".user_id = new.user_id; ); - - -- Frédéric le 23/07/2018 10:43 - CREATE OR REPLACE VIEW s_vitis.v_user AS SELECT "user".user_id, "user".login, "user".name, "user".email, "user".company, "user".department, "user".ip_constraint, domain.domain, "user".domain_id, "user".last_connection, "user".restriction, CASE WHEN array_to_string(ARRAY( SELECT pg_group.groname FROM pg_group JOIN pg_roles ON pg_roles.oid = ANY (pg_group.grolist) WHERE "user".login::name = pg_roles.rolname AND (pg_group.groname = 'vitis_admin'::name OR pg_group.groname = 'vitis_user'::name)), '|'::text) = 'vitis_user|vitis_admin'::text OR array_to_string(ARRAY( SELECT pg_group.groname FROM pg_group JOIN pg_roles ON pg_roles.oid = ANY (pg_group.grolist) WHERE "user".login::name = pg_roles.rolname AND (pg_group.groname = 'vitis_admin'::name OR pg_group.groname = 'vitis_user'::name)), '|'::text) = 'vitis_admin|vitis_user'::text THEN 'admin'::text WHEN array_to_string(ARRAY( SELECT pg_group.groname FROM pg_group JOIN pg_roles ON pg_roles.oid = ANY (pg_group.grolist) WHERE "user".login::name = pg_roles.rolname AND (pg_group.groname = 'vitis_admin'::name OR pg_group.groname = 'vitis_user'::name)), '|'::text) = 'vitis_user'::text THEN 'user'::text ELSE ''::text END AS role, dataencrypt, secretkey, "user".billinggroup_id ,billinggroup.billinggroup, "user".phone, "user".acceptnotification, "user".timezone_id, "user".formatdate_id FROM s_vitis."user" LEFT JOIN s_vitis.domain ON "user".domain_id = domain.domain_id LEFT JOIN s_vitis.billinggroup ON "user".billinggroup_id = billinggroup.billinggroup_id WHERE "user".login::name = "current_user"() OR s_vitis.is_vitis_admin(); - CREATE OR REPLACE RULE insert_v_user AS ON INSERT TO s_vitis.v_user DO INSTEAD INSERT INTO s_vitis."user" (user_id, login, domain_id, name, email, company, department, ip_constraint, restriction, dataencrypt, secretkey, billinggroup_id, phone, acceptnotification, timezone_id, formatdate_id) VALUES (new.user_id, new.login, new.domain_id, new.name, new.email, new.company, new.department, new.ip_constraint, new.restriction, new.dataencrypt, new.secretkey, new.billinggroup_id, new.phone, new.acceptnotification, new.timezone_id, new.formatdate_id); - CREATE OR REPLACE RULE update_v_user AS ON UPDATE TO s_vitis.v_user DO INSTEAD ( UPDATE s_vitis."user" SET name = new.name, email = new.email, company = new.company, department = new.department, last_connection = new.last_connection, phone = new.phone, acceptnotification = new.acceptnotification WHERE NOT s_vitis.is_vitis_admin() AND new.login::name = "current_user"() AND "user".user_id = (( SELECT user_1.user_id FROM s_vitis."user" user_1 WHERE user_1.login::name = "current_user"())); UPDATE s_vitis."user" SET name = new.name, email = new.email, phone = new.phone, acceptnotification = new.acceptnotification, company = new.company, department = new.department, ip_constraint = new.ip_constraint, domain_id = new.domain_id, last_connection = new.last_connection, restriction = new.restriction, dataencrypt = new.dataencrypt, secretkey = new.secretkey, billinggroup_id = new.billinggroup_id, phone = new.phone, acceptnotification = new.acceptnotification, timezone_id = new.timezone_id, formatdate_id = new.formatdate_id WHERE s_vitis.is_vitis_admin() AND "user".user_id = new.user_id; ); - - -- Frédéric le 23/07/2018 16:44 - UPDATE s_vitis.vm_table_field SET template = NULL WHERE tab_id = (select tab_id from s_vitis.vm_tab where name = 'vitis_users') AND name = 'last_connection'; - - -- Frédéric le 26/07/2018 10:25 - CREATE OR REPLACE VIEW s_vitis.v_user AS SELECT "user".user_id, "user".login, "user".name, "user".email, "user".company, "user".department, "user".ip_constraint, domain.domain, "user".domain_id, "user".last_connection, "user".restriction, CASE WHEN array_to_string(ARRAY( SELECT pg_group.groname FROM pg_group JOIN pg_roles ON pg_roles.oid = ANY (pg_group.grolist) WHERE "user".login::name = pg_roles.rolname AND (pg_group.groname = 'vitis_admin'::name OR pg_group.groname = 'vitis_user'::name)), '|'::text) = 'vitis_user|vitis_admin'::text OR array_to_string(ARRAY( SELECT pg_group.groname FROM pg_group JOIN pg_roles ON pg_roles.oid = ANY (pg_group.grolist) WHERE "user".login::name = pg_roles.rolname AND (pg_group.groname = 'vitis_admin'::name OR pg_group.groname = 'vitis_user'::name)), '|'::text) = 'vitis_admin|vitis_user'::text THEN 'admin'::text WHEN array_to_string(ARRAY( SELECT pg_group.groname FROM pg_group JOIN pg_roles ON pg_roles.oid = ANY (pg_group.grolist) WHERE "user".login::name = pg_roles.rolname AND (pg_group.groname = 'vitis_admin'::name OR pg_group.groname = 'vitis_user'::name)), '|'::text) = 'vitis_user'::text THEN 'user'::text ELSE ''::text END AS role, "user".dataencrypt, "user".secretkey, "user".billinggroup_id, billinggroup.billinggroup, "user".phone, "user".acceptnotification, "user".timezone_id, "user".formatdate_id, rt_formatdate.formatdate FROM s_vitis."user" LEFT JOIN s_vitis.domain ON "user".domain_id = domain.domain_id LEFT JOIN s_vitis.billinggroup ON "user".billinggroup_id = billinggroup.billinggroup_id LEFT JOIN s_vitis.rt_formatdate ON "user".formatdate_id = rt_formatdate.formatdate_id WHERE "user".login::name = "current_user"() OR s_vitis.is_vitis_admin(); - ]]> - </code> - </query> - <query> - <type>update</type> - <version>2018.04.01</version> - <code> - <![CDATA[ - -- Sofian le 30/08/2018 à 09:32 - CREATE OR REPLACE RULE update_v_user AS ON UPDATE TO s_vitis.v_user DO INSTEAD ( UPDATE s_vitis."user" SET name = new.name, email = new.email, company = new.company, department = new.department, last_connection = new.last_connection, phone = new.phone, acceptnotification = new.acceptnotification WHERE NOT s_vitis.is_vitis_admin() AND new.login::name = "current_user"() AND "user".user_id = ( (SELECT user_1.user_id FROM s_vitis."user" user_1 WHERE user_1.login::name = "current_user"())); UPDATE s_vitis."user" SET name = new.name, email = new.email, company = new.company, department = new.department, ip_constraint = new.ip_constraint, domain_id = new.domain_id, last_connection = new.last_connection, restriction = new.restriction, dataencrypt = new.dataencrypt, secretkey = new.secretkey, billinggroup_id = new.billinggroup_id, phone = new.phone, acceptnotification = new.acceptnotification, timezone_id = new.timezone_id, formatdate_id = new.formatdate_id WHERE s_vitis.is_vitis_admin() AND "user".user_id = new.user_id; ); - ]]> - </code> - </query> - <query> - <type>update</type> - <version>2018.05.00</version> - <code> - <![CDATA[ - -- Armand le 11/09/2018 à 11:35 création de la fonction s_vitis.format_date pour transformer un timestamp en fonction du format d'affichage des dates lié à l'utilisateur - CREATE OR REPLACE FUNCTION s_vitis.format_date(input_date TIMESTAMP) RETURNS TEXT AS $$ BEGIN RETURN to_char(input_date, (SELECT formatdate_id || ' HH24:MI:SS' as "formatdate" from s_vitis.user WHERE login = "current_user"())); END; $$ LANGUAGE PLPGSQL; - ALTER FUNCTION s_vitis.format_date(TIMESTAMP) OWNER TO u_vitis; - ]]> - </code> - </query> - </queriesCollection> -</sqlQueries> diff --git a/update.bat b/update.bat deleted file mode 100644 index 46ef323f..00000000 --- a/update.bat +++ /dev/null @@ -1,10 +0,0 @@ -@echo off -title Update Vitis App -echo Update Vitis App - -call utils/update_tree.bat - -cd client/conf -call grunt - -pause diff --git a/utils/copy_hooks.sh b/utils/copy_hooks.sh deleted file mode 100755 index f5bed2f2..00000000 --- a/utils/copy_hooks.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash -# -# -# Script de mise à jour des hooks client -# -# -# - - -if [ -d "githooks" ]; then - if [ -d "../.git/hooks" ]; then - cp -f githooks/* ../.git/hooks/ - fi -fi diff --git a/utils/get_deps.sh b/utils/get_deps.sh deleted file mode 100755 index 92b02739..00000000 --- a/utils/get_deps.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/bash -# -# Récupère l'ensemble des dépendances depuis conf/_install/dependency.xml -# Nécessite xmllint : sudo apt install libxml2-utils -# -# -# -# - - -if [ "../conf/_install/dependency.xml" ]; then - - let depsCount=$(xmllint --xpath 'count(//dependenciesCollection/dependency/name)' ../conf/_install/dependency.xml) - declare -A aDeps - vitisVersion=master - - for (( i=1; i <= $depsCount; i++ )); do - - sName="$(xmllint --xpath 'string(//dependenciesCollection/dependency['$i']/name)' ../conf/_install/dependency.xml)" - sVersion="$(xmllint --xpath 'string(//dependenciesCollection/dependency['$i']/version)' ../conf/_install/dependency.xml)" - sNature="$(xmllint --xpath 'string(//dependenciesCollection/dependency['$i']/nature)' ../conf/_install/dependency.xml)" - - if [ $sName == "vitis" ]; then - vitisVersion=$sVersion - fi - if [ $sNature == "modules" ] || [ $sNature == "web_services" ] || [ $sName == "vitis" ]; then - aDeps[$i, name]=$sName - aDeps[$i, version]=$sVersion - aDeps[$i, nature]=$sNature - fi - - done - - echo "[INFO] dependencies:" - echo "vitis : $vitisVersion" - for (( i=1; i <= $depsCount; i++ )); do - - echo "name: ${aDeps[$i, name]}" - echo "version: ${aDeps[$i, version]}" - - done - - export vitisVersion - export depsCount - export aDeps -else - echo "[ERROR] ../conf/_install/dependency.xml not found" -fi diff --git a/utils/githooks/post-merge b/utils/githooks/post-merge deleted file mode 100755 index 548e6ae5..00000000 --- a/utils/githooks/post-merge +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/sh -# -# Hook qui permet de pull toutes les dépendances -# quand on fait un pull sur l'application -# -# -# -# -# - -echo "****** Post-merge Hook ******" -echo "****** Pull subtrees ******" -echo "$(pwd)" - -if [ -d "$(pwd)/utils" ]; then - cd utils - ./pull_subtrees.sh -fi diff --git a/utils/githooks/pre-push b/utils/githooks/pre-push deleted file mode 100755 index 50401f9e..00000000 --- a/utils/githooks/pre-push +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh -# -# Hook qui permet de push toutes les dépendances -# quand on fait un push sur l'application -# -# -# -# -# - -remote="$1" -url="$2" -if [ $remote != $url ]; then - - echo "****** Pre-push Hook ******" - echo "****** Push subtrees ******" - if [ -d "$(pwd)/utils" ]; then - cd utils - ./push_subtrees.sh - fi -fi diff --git a/utils/init_subtrees.sh b/utils/init_subtrees.sh deleted file mode 100755 index 7f9c2abf..00000000 --- a/utils/init_subtrees.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/bash -# -# -# Script d'initialisation d'un dépot vMap versionné sous git -# Initislise l'ensemble des dépendances sous forme de subtrees -# -# Nécessite xmllint : sudo apt install libxml2-utils -# - - -APP_NAME="vmap" - -# Récupère la liste des dépendances -. ./get_deps.sh - -cd .. -if [ -d "$(pwd)/client" ]; then - rm client -fi -if [ -d "$(pwd)/vas" ]; then - rm vas -fi -if [ -d "$(pwd)/src" ]; then - git rm -r src - git commit -a -m "Reset sources" -fi -mkdir src - -if [[ $depsCount > 0 ]]; then - - # Vitis - echo "---- Init vitis ----" - git subtree add --squash -m "add subtree" --prefix src/vitis "git@gitlab.veremes.net:Development/vitis_apps/sources/vitis.git" $vitisVersion - - echo "---- Init conf ----" - git subtree add --squash -m "add subtree" --prefix src/closure "git@gitlab.veremes.net:Development/vitis_apps/sources/closure.git" master - - # Modules - for (( i=1; i <= $depsCount; i++ )); do - if [ ${aDeps[$i, nature]} == "modules" ]; then - echo "---- Init ${aDeps[$i, name]} : ${aDeps[$i, version]}----" - - # Ajoute le dépôt - git subtree add --squash -m "add subtree" --prefix src/${aDeps[$i, name]} "git@gitlab.veremes.net:Development/vitis_apps/sources/${aDeps[$i, name]}.git" ${aDeps[$i, version]} - fi - done - -fi diff --git a/utils/init_symlinks.sh b/utils/init_symlinks.sh deleted file mode 100755 index c98ed30e..00000000 --- a/utils/init_symlinks.sh +++ /dev/null @@ -1,129 +0,0 @@ -#!/bin/bash -# -# -# Script d'initialisation d'un dépot vMap versionné sous git -# -# Split repo -# git subtree split -P module/ -b module_split_branch -# -# Add subtree -# git subtree add --prefix vmap "git@gitlab.veremes.net:Development/vitis_apps/sources/Vitis.git" master -# -# - -echo -n "Existing app path (path/empty)? " -read APP_EXISTING_PATH - -# Récupère la liste des dépendances -. ./get_deps.sh - -cd .. - -# Vitis -echo "---- Link vitis ----" -if ! [ -e "$(pwd)/client" ]; then - echo "---- Link vitis 2 ----" - ln -rsf src/vitis/client client -fi -if ! [ -e "$(pwd)/vas" ]; then - ln -rsf src/vitis/vas vas -fi - -# Conf -echo "---- Link conf ----" -if ! [ -e "src/vitis/client/conf" ]; then - ln -rsf conf src/vitis/client/conf -fi -if ! [ -e "conf/closure" ]; then - ln -rsf src/closure/conf conf/closure -fi - -# Modules -if [[ $depsCount > 0 ]]; then - for (( i=1; i <= $depsCount; i++ )); do - if [ ${aDeps[$i, nature]} == "modules" ]; then - if [ ${aDeps[$i, name]:0:7} == "module_" ]; then - module=${aDeps[$i, name]:7} - echo "---- Link module_${module} ----" - if [ -d "$(pwd)/src/module_${module}/module" ]; then - if ! [ -e "src/vitis/client/modules/${module}" ]; then - ln -rsf src/module_${module}/module src/vitis/client/modules/${module} - fi - fi - if [ -d "$(pwd)/src/module_${module}/web_service/ws" ]; then - if ! [ -e "src/vitis/vas/rest/ws/${module}" ]; then - ln -rsf src/module_${module}/web_service/ws src/vitis/vas/rest/ws/${module} - fi - fi - if [ -d "$(pwd)/src/module_${module}/web_service/conf" ]; then - if ! [ -e "src/vitis/vas/rest/conf/${module}" ]; then - ln -rsf src/module_${module}/web_service/conf src/vitis/vas/rest/conf/${module} - fi - fi - if [ -d "$(pwd)/src/module_${module}/web_service/sql" ]; then - if ! [ -e "src/vitis/vas/sql/${module}" ]; then - ln -rsf src/module_${module}/web_service/sql src/vitis/vas/sql/${module} - fi - fi - if [ -d "$(pwd)/src/module_${module}/web_service/class" ]; then - for class_dir in $( ls "$(pwd)/src/module_${module}/web_service/class"); do - if [ -d "$(pwd)/src/module_${module}/web_service/class/${class_dir}" ]; then - echo "---- Link module_${module}/${class_dir} ----" - if ! [ -e "src/vitis/vas/rest/class/${class_dir}" ]; then - ln -rsf src/module_${module}/web_service/class/${class_dir} src/vitis/vas/rest/class/${class_dir} - fi - fi - done - fi - fi - fi - done - - # Utilisation d'une install déjà existante - if [ -d "${APP_EXISTING_PATH}" ]; then - echo "---- Link exixting app ${APP_EXISTING_PATH} ----" - - declare -a existing_folders_path=("vas/server" - "vas/log" - "vas/public" - "vas/shared" - "vas/tmp" - "vas/upload" - "vas/ws_data") - for folder_path in "${existing_folders_path[@]}"; do - if [ -d "${APP_EXISTING_PATH}/$folder_path" ]; then - echo "copy $folder_path" - cp -Rf "${APP_EXISTING_PATH}/$folder_path" "$(pwd)/$folder_path" - chmod 777 -R "$(pwd)/$folder_path" - fi - done - - declare -a existing_files_path=("client/conf/properties.json" - "vas/rest/conf/properties.inc" - "vas/rest/conf/properties_domain.inc" - "vas/rest/conf/properties_post.inc" - "vas/rest/conf/properties_server.inc" - "vas/rest/conf/version.inc" - "vas/rest/.htaccess") - for file_path in "${existing_files_path[@]}"; do - if [ -f "${APP_EXISTING_PATH}/$file_path" ]; then - echo "copy $file_path" - cp -f "${APP_EXISTING_PATH}/$file_path" "$(pwd)/$file_path" - fi - done - - for properties_dir in $( ls "${APP_EXISTING_PATH}/vas/rest/conf"); do - if [ -d "${APP_EXISTING_PATH}/vas/rest/conf/${properties_dir}" ]; then - if [ -d "$(pwd)/vas/rest/conf/${properties_dir}" ]; then - for properties_file in $( ls "${APP_EXISTING_PATH}/vas/rest/conf/${properties_dir}"); do - # if [ ${properties_file:0:10}=="properties" || ${properties_file}=="version.inc" ]; then - if [[ $properties_file == "properties"* ]] || [[ $properties_file == "version.inc" ]]; then - echo "copy vas/rest/conf/${properties_dir}/${properties_file}" - cp -f "${APP_EXISTING_PATH}/vas/rest/conf/${properties_dir}/${properties_file}" "$(pwd)/vas/rest/conf/${properties_dir}/${properties_file}" - fi - done - fi - fi - done - fi -fi diff --git a/utils/pull_subtrees.sh b/utils/pull_subtrees.sh deleted file mode 100755 index c2793f2e..00000000 --- a/utils/pull_subtrees.sh +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/bash -# -# -# Script d'initialisation d'un dépot vMap versionné sous git -# Initislise l'ensemble des dépendances sous forme de subtrees -# -# -# - - -APP_NAME="vmap" - -# Récupère la liste des dépendances -. ./get_deps.sh - -cd .. - -# Vitis -echo "---- Pull vitis ----" -git subtree pull --prefix src/vitis --squash -m "pull subtree" "git@gitlab.veremes.net:Development/vitis_apps/sources/vitis.git" master - -# fichiers à ignorer -git update-index --assume-unchanged conf/properties.json -git update-index --assume-unchanged conf/package.json -git update-index --assume-unchanged src/vitis/vas/rest/.htaccess -git update-index --assume-unchanged src/vitis/vas/rest/conf/properties.inc -git update-index --assume-unchanged src/vitis/vas/rest/conf/properties_domain.inc -git update-index --assume-unchanged src/vitis/vas/rest/conf/properties_post.inc -git update-index --assume-unchanged src/vitis/vas/rest/conf/properties_server.inc -git update-index --assume-unchanged src/vitis/vas/rest/conf/version.inc - -# Modules -if [[ $depsCount > 0 ]]; then - for (( i=1; i <= $depsCount; i++ )); do - if [ ${aDeps[$i, nature]} == "modules" ]; then - echo "---- Pull ${aDeps[$i, name]} ----" - - # Ajoute le dépôt - git subtree pull --prefix src/${aDeps[$i, name]} --squash -m "pull subtree" "git@gitlab.veremes.net:Development/vitis_apps/sources/${aDeps[$i, name]}.git" master - # fichiers à ignorer - git update-index --assume-unchanged src/${aDeps[$i, name]}/web_service/conf/properties.inc - git update-index --assume-unchanged src/${aDeps[$i, name]}/web_service/conf/properties_server.inc - git update-index --assume-unchanged src/${aDeps[$i, name]}/web_service/conf/version.inc - fi - done -fi diff --git a/utils/push_subtrees.sh b/utils/push_subtrees.sh deleted file mode 100755 index b4949ea2..00000000 --- a/utils/push_subtrees.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/bash -# -# -# Script d'initialisation d'un dépot vMap versionné sous git -# Initislise l'ensemble des dépendances sous forme de subtrees -# -# -# - - -APP_NAME="vmap" - -# Récupère la liste des dépendances -. ./get_deps.sh - -cd .. - -# Vitis -echo "---- Push vitis ----" -git subtree push --prefix src/vitis "git@gitlab.veremes.net:Development/vitis_apps/sources/vitis.git" master - -# Modules -if [[ $depsCount > 0 ]]; then - for (( i=1; i <= $depsCount; i++ )); do - if [ ${aDeps[$i, nature]} == "modules" ]; then - echo "---- Push ${aDeps[$i, name]} ----" - - # Push le dépôt - - { # 'try' block - git subtree push --prefix src/${aDeps[$i, name]} "git@gitlab.veremes.net:Development/vitis_apps/sources/${aDeps[$i, name]}.git" master - } || { # 'catch' block - echo "could not push ${aDeps[$i, name]}" - } - fi - done -fi diff --git a/utils/utils/copy_hooks.bat b/utils/utils/copy_hooks.bat deleted file mode 100644 index a24ac68b..00000000 --- a/utils/utils/copy_hooks.bat +++ /dev/null @@ -1,3 +0,0 @@ - - -robocopy "githooks" "../.git/hooks" /E /NFL /NDL /NJH /NJS /nc /ns /np diff --git a/utils/utils/copy_hooks.sh b/utils/utils/copy_hooks.sh deleted file mode 100755 index f5bed2f2..00000000 --- a/utils/utils/copy_hooks.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash -# -# -# Script de mise à jour des hooks client -# -# -# - - -if [ -d "githooks" ]; then - if [ -d "../.git/hooks" ]; then - cp -f githooks/* ../.git/hooks/ - fi -fi diff --git a/utils/utils/get_deps.sh b/utils/utils/get_deps.sh deleted file mode 100755 index 0a26177f..00000000 --- a/utils/utils/get_deps.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/bash -# -# Récupère l'ensemble des dépendances depuis conf/_install/dependency.xml -# -# -# -# - -if [ "../conf/_install/dependency.xml" ]; then - - declare -A aDeps - vitisVersion=master - depsCount=0 - dependencies=($(cat "../conf/_install/dependency.xml" | tr -d '\040\011\012\015' | grep -oP '<dependency>([\s\S]*?)<\/dependency>')) - - for i in ${!dependencies[*]}; do - - sName=$(grep -oP '(?<=name>)[^<]+' <<< ${dependencies[$i]}) - sVersion=$(grep -oP '(?<=version>)[^<]+' <<< ${dependencies[$i]}) - sNature=$(grep -oP '(?<=nature>)[^<]+' <<< ${dependencies[$i]}) - - if [ $sName == "vitis" ]; then - vitisVersion=$sVersion - fi - if [ $sNature == "modules" ] || [ $sNature == "web_services" ] || [ $sName == "vitis" ]; then - aDeps[$i, name]=$sName - aDeps[$i, version]=$sVersion - aDeps[$i, nature]=$sNature - let depsCount++ - fi - - done - - echo "[INFO] dependencies:" - echo "vitis : $vitisVersion" - for i in ${!dependencies[*]}; do - echo "(${aDeps[$i, nature]}) ${aDeps[$i, name]} : ${aDeps[$i, version]}" - done - echo "depsCount : ${depsCount}" - - export vitisVersion - export depsCount - export aDeps - -else - echo "[ERROR] ../conf/_install/dependency.xml not found" -fi diff --git a/utils/utils/githooks/post-merge b/utils/utils/githooks/post-merge deleted file mode 100755 index 45b38b21..00000000 --- a/utils/utils/githooks/post-merge +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh -# -# Hook qui permet de pull toutes les dépendances -# quand on fait un pull sur l'application -# -# -# -# -# - -echo "****** Post-merge Hook ******" -echo "****** Pull ******" -# echo "****** Pull subtrees ******" -# echo "$(pwd)" -# -# if [ -d "$(pwd)/utils" ]; then -# cd utils -# ./pull_subtrees.sh -# fi diff --git a/utils/utils/githooks/pre-push b/utils/utils/githooks/pre-push deleted file mode 100755 index c5e4e953..00000000 --- a/utils/utils/githooks/pre-push +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh -# -# Hook qui permet de push toutes les dépendances -# quand on fait un push sur l'application -# -# -# -# -# - -remote="$1" -url="$2" -if [ $remote != $url ]; then - - echo "****** Pre-push Hook ******" - echo "****** Push ******" - # echo "****** Push subtrees ******" - # if [ -d "$(pwd)/utils" ]; then - # cd utils - # ./push_subtrees.sh - # fi -fi diff --git a/utils/utils/init_subtrees.sh b/utils/utils/init_subtrees.sh deleted file mode 100755 index 7f9c2abf..00000000 --- a/utils/utils/init_subtrees.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/bash -# -# -# Script d'initialisation d'un dépot vMap versionné sous git -# Initislise l'ensemble des dépendances sous forme de subtrees -# -# Nécessite xmllint : sudo apt install libxml2-utils -# - - -APP_NAME="vmap" - -# Récupère la liste des dépendances -. ./get_deps.sh - -cd .. -if [ -d "$(pwd)/client" ]; then - rm client -fi -if [ -d "$(pwd)/vas" ]; then - rm vas -fi -if [ -d "$(pwd)/src" ]; then - git rm -r src - git commit -a -m "Reset sources" -fi -mkdir src - -if [[ $depsCount > 0 ]]; then - - # Vitis - echo "---- Init vitis ----" - git subtree add --squash -m "add subtree" --prefix src/vitis "git@gitlab.veremes.net:Development/vitis_apps/sources/vitis.git" $vitisVersion - - echo "---- Init conf ----" - git subtree add --squash -m "add subtree" --prefix src/closure "git@gitlab.veremes.net:Development/vitis_apps/sources/closure.git" master - - # Modules - for (( i=1; i <= $depsCount; i++ )); do - if [ ${aDeps[$i, nature]} == "modules" ]; then - echo "---- Init ${aDeps[$i, name]} : ${aDeps[$i, version]}----" - - # Ajoute le dépôt - git subtree add --squash -m "add subtree" --prefix src/${aDeps[$i, name]} "git@gitlab.veremes.net:Development/vitis_apps/sources/${aDeps[$i, name]}.git" ${aDeps[$i, version]} - fi - done - -fi diff --git a/utils/utils/init_symlinks.sh b/utils/utils/init_symlinks.sh deleted file mode 100755 index 562c7ddb..00000000 --- a/utils/utils/init_symlinks.sh +++ /dev/null @@ -1,159 +0,0 @@ -#!/bin/bash -# -# -# Script d'initialisation d'un dépot vMap versionné sous git -# -# Split repo -# git subtree split -P module/ -b module_split_branch -# -# Add subtree -# git subtree add --prefix vmap "git@gitlab.veremes.net:Development/vitis_apps/sources/Vitis.git" master -# -# - -echo -n "Existing app path (path/empty)? " -read APP_EXISTING_PATH - -# Récupère la liste des dépendances -. ./get_deps.sh - -cd .. - -# Supprime les anciens symlinks -if [ -d "client" ]; then - rm -Rf client -fi -if [ -d "vas" ]; then - rm -Rf vas -fi -find src/vitis/client -type l -delete -find src/vitis/vas/sql -type l -delete -find src/vitis/vas/rest -type l -delete - -# Vitis -echo "---- Link vitis ----" -if ! [ -e "$(pwd)/client" ]; then - - mkdir client - mkdir client/javascript - mkdir client/modules - ln -rsf src/vitis/client/css client/css - ln -rsf src/vitis/client/forms client/forms - ln -rsf src/vitis/client/images client/images - ln -rsf src/vitis/client/javascript/app client/javascript/app - ln -rsf src/vitis/client/javascript/externs client/javascript/externs - ln -rsf src/vitis/client/javascript/require client/javascript/require - ln -rsf src/vitis/client/lang client/lang - ln -rsf src/vitis/client/less client/less - ln -rsf src/vitis/client/modules/vitis client/modules/vitis - ln -rsf src/vitis/client/templates client/templates - ln -rsf src/vitis/client/.htaccess client/.htaccess - ln -rsf src/vitis/client/index.html client/index.html -fi -if ! [ -e "$(pwd)/vas" ]; then - - mkdir vas - mkdir vas/rest - mkdir vas/rest/ws - ln -rsf src/vitis/vas/doc vas/doc - ln -rsf src/vitis/vas/rest/class vas/rest/class - ln -rsf src/vitis/vas/rest/inc vas/rest/inc - ln -rsf src/vitis/vas/rest/ws/vitis vas/rest/ws/vitis - ln -rsf src/vitis/vas/rest/index.phtml vas/rest/index.phtml - ln -rsf src/vitis/vas/rest/index.vhtml vas/rest/index.vhtml - ln -rsf src/vitis/vas/sql vas/sql - ln -rsf src/vitis/vas/util vas/util -fi - -# Conf -echo "---- Link conf ----" -if ! [ -e "src/vitis/client/conf" ]; then - # ln -rsf conf client/conf - - mkdir client/conf - for elem in $( ls "conf"); do - if [[ $elem != 'properties.json' ]]; then - if [[ -d "conf/${elem}" || -f "conf/${elem}" ]]; then - echo "---- Link conf/$elem" - ln -rsf conf/$elem client/conf/$elem - fi - fi - done -fi -if ! [ -e "conf/closure" ]; then - ln -rsf src/closure/conf conf/closure -fi - -# Modules -if [[ $depsCount > 0 ]]; then - for (( i=1; i <= $depsCount; i++ )); do - if [ ${aDeps[$i, nature]} == "modules" ]; then - if [ ${aDeps[$i, name]:0:7} == "module_" ]; then - module=${aDeps[$i, name]:7} - echo "---- Link module_${module} ----" - if [ -d "$(pwd)/src/module_${module}/module" ]; then - if ! [ -e "src/vitis/client/modules/${module}" ]; then - ln -rsf src/module_${module}/module client/modules/${module} - fi - fi - if [ -d "$(pwd)/src/module_${module}/web_service/ws" ]; then - if ! [ -e "src/vitis/vas/rest/ws/${module}" ]; then - ln -rsf src/module_${module}/web_service/ws vas/rest/ws/${module} - fi - fi - if [ -d "$(pwd)/src/module_${module}/web_service/sql" ]; then - if ! [ -e "src/vitis/vas/sql/${module}" ]; then - ln -rsf src/module_${module}/web_service/sql vas/sql/${module} - fi - fi - if [ -d "$(pwd)/src/module_${module}/web_service/class" ]; then - for class_dir in $( ls "$(pwd)/src/module_${module}/web_service/class"); do - if [ -d "$(pwd)/src/module_${module}/web_service/class/${class_dir}" ]; then - echo "---- Link module_${module}/${class_dir} ----" - if ! [ -e "src/vitis/vas/rest/class/${class_dir}" ]; then - ln -rsf src/module_${module}/web_service/class/${class_dir} vas/rest/class/${class_dir} - fi - fi - done - fi - fi - fi - done - - # Utilisation d'une install déjà existante - if [ -d "${APP_EXISTING_PATH}" ]; then - echo "---- Link exixting app ${APP_EXISTING_PATH} ----" - - declare -a existing_folders_path=("vas/server" - "vas/rest/conf" - "vas/log" - "vas/public" - "vas/shared" - "vas/tmp" - "vas/upload" - "vas/ws_data") - for folder_path in "${existing_folders_path[@]}"; do - if [ -d "${APP_EXISTING_PATH}/$folder_path" ]; then - echo "copy $folder_path" - cp -Rf "${APP_EXISTING_PATH}/$folder_path" "$(pwd)/$folder_path" - chmod 777 -R "$(pwd)/$folder_path" - fi - done - - declare -a existing_files_path=("client/conf/properties.json" - "vas/rest/.htaccess") - for file_path in "${existing_files_path[@]}"; do - if [ -f "${APP_EXISTING_PATH}/$file_path" ]; then - echo "copy $file_path" - cp -f "${APP_EXISTING_PATH}/$file_path" "$(pwd)/$file_path" - fi - done - - for properties_dir in $( ls "${APP_EXISTING_PATH}/vas/rest/conf"); do - if [ -d "${APP_EXISTING_PATH}/vas/rest/conf/${properties_dir}" ]; then - echo "copy ${APP_EXISTING_PATH}/vas/rest/conf/${properties_dir}/ > $(pwd)/vas/rest/conf/" - cp -Rf "${APP_EXISTING_PATH}/vas/rest/conf/${properties_dir}/" "$(pwd)/vas/rest/conf/" - fi - done - fi -fi diff --git a/utils/utils/init_tree.bat b/utils/utils/init_tree.bat deleted file mode 100644 index d8e6956c..00000000 --- a/utils/utils/init_tree.bat +++ /dev/null @@ -1,99 +0,0 @@ -@echo off -title Install Vitis App -setlocal EnableDelayedExpansion - -cd .. - -set /p existing_path="Existing app path: " - -REM Client Dir -echo Create client directory -if exist "client" ( - rmdir /S /Q "client" -) -echo copy client -robocopy "src/vitis/client" "client" /E /NFL /NDL /NJH /NJS /nc /ns /np -echo copy client/conf -robocopy "conf" "client/conf" /E /NFL /NDL /NJH /NJS /nc /ns /np -echo copy client/conf/closure -robocopy "src/closure/conf" "client/conf/closure" /E /NFL /NDL /NJH /NJS /nc /ns /np - -echo Copy client modules -for /d %%g in ("src/module_*") do ( - set x=%%g - echo !x:~7! - if exist "src/%%g/module" ( - echo copy client/modules/!x:~7! - robocopy "src/%%g/module" "client/modules/!x:~7!" /E /NFL /NDL /NJH /NJS /nc /ns /np - ) -) - -REM VAS dir -echo Create vas directory -echo Create client directory -if exist "vas" ( - rmdir /S /Q "vas" -) -echo copy vas -robocopy "src/vitis/vas" "vas" /E /NFL /NDL /NJH /NJS /nc /ns /np - -echo Copy vas web_services -for /d %%g in ("src/module_*") do ( - set x=%%g - echo !x:~7! - if exist "src/%%g/web_service/conf" ( - echo copy vas/rest/conf/!x:~7! - robocopy "src/%%g/web_service/conf" "vas/rest/conf/!x:~7!" /E /NFL /NDL /NJH /NJS /nc /ns /np - ) - if exist "src/%%g/web_service/sql" ( - echo copy vas/sql/!x:~7! - robocopy "src/%%g/web_service/sql" "vas/sql/!x:~7!" /E /NFL /NDL /NJH /NJS /nc /ns /np - ) - if exist "src/%%g/web_service/ws" ( - echo copy vas/rest/ws/!x:~7! - robocopy "src/%%g/web_service/ws" "vas/rest/ws/!x:~7!" /E /NFL /NDL /NJH /NJS /nc /ns /np - ) - if exist "src/%%g/web_service/class" ( - echo copy vas/rest/class - robocopy "src/%%g/web_service/class" "vas/rest/class" /E /NFL /NDL /NJH /NJS /nc /ns /np - ) - if exist "src/%%g/web_service/ws_data" ( - echo copy vas/ws_data - robocopy "src/%%g/web_service/ws_data" "vas/ws_data" /E /NFL /NDL /NJH /NJS /nc /ns /np - ) - if exist "src/%%g/web_service/public" ( - echo copy vas/public - robocopy "src/%%g/web_service/public" "vas/public" /E /NFL /NDL /NJH /NJS /nc /ns /np - ) - if exist "src/%%g/web_service/upload" ( - echo copy vas/upload - robocopy "src/%%g/web_service/upload" "vas/upload" /E /NFL /NDL /NJH /NJS /nc /ns /np - ) -) - -REM Copy from existing path -if exist %existing_path% ( - echo copy properties from %existing_path% - - for %%G in (vas\server,vas\rest\conf,vas\log,vas\public,vas\shared,vas\tmp,vas\upload,vas\ws_data) do ( - echo %%G - if exist %existing_path%\%%G ( - echo copy %%G - robocopy "%existing_path%\%%G" "%%G" /E /NFL /NDL /NJH /NJS /nc /ns /np - ) - ) - - if exist %existing_path%\client\conf\properties.json ( - echo copy properties.json - robocopy "%existing_path%\client\conf" "client\conf" "properties.json" /NFL /NDL /NJH /NJS /nc /ns /np - ) - if exist %existing_path%\vas\rest\.htaccess ( - echo copy .htaccess - robocopy "%existing_path%\vas\rest" "vas\rest" ".htaccess" /NFL /NDL /NJH /NJS /nc /ns /np - ) - - if exist "%existing_path%\vas\rest\conf" ( - echo copy vas\rest\conf - robocopy "%existing_path%\vas\rest\conf" "vas\rest\conf" /E /NFL /NDL /NJH /NJS /nc /ns /np - ) -) diff --git a/utils/utils/pull_subtrees.sh b/utils/utils/pull_subtrees.sh deleted file mode 100755 index 5cac1ba0..00000000 --- a/utils/utils/pull_subtrees.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/bash -# -# -# Script d'initialisation d'un dépot vMap versionné sous git -# Initislise l'ensemble des dépendances sous forme de subtrees -# -# -# - - -APP_NAME="vmap" - -# Récupère la liste des dépendances -. ./get_deps.sh - -cd .. - -# Vitis -echo "---- Pull vitis ----" -git subtree pull --prefix src/vitis --squash -m "pull subtree" "git@gitlab.veremes.net:Development/vitis_apps/sources/vitis.git" $vitisVersion - -# Modules -if [[ $depsCount > 0 ]]; then - for (( i=1; i <= $depsCount; i++ )); do - if [ ${aDeps[$i, nature]} == "modules" ]; then - echo "---- Pull ${aDeps[$i, name]} ----" - - # Ajoute le dépôt - git subtree pull --prefix src/${aDeps[$i, name]} --squash -m "pull subtree" "git@gitlab.veremes.net:Development/vitis_apps/sources/${aDeps[$i, name]}.git" ${aDeps[$i, version]} - fi - done -fi diff --git a/utils/utils/push_subtrees.sh b/utils/utils/push_subtrees.sh deleted file mode 100755 index 18a9d3bd..00000000 --- a/utils/utils/push_subtrees.sh +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/bash -# -# -# Script d'initialisation d'un dépot vMap versionné sous git -# Initislise l'ensemble des dépendances sous forme de subtrees -# -# -# - - -APP_NAME="vmap" - -# Récupère la liste des dépendances -. ./get_deps.sh - -cd .. - -# Vitis -echo "---- Push vitis ----" -{ # 'try' block - git subtree push --prefix src/vitis "git@gitlab.veremes.net:Development/vitis_apps/sources/vitis.git" $vitisVersion -} || { # 'catch' block - echo "could not push vitis" -} - -# Modules -if [[ $depsCount > 0 ]]; then - for (( i=1; i <= $depsCount; i++ )); do - if [ ${aDeps[$i, nature]} == "modules" ]; then - echo "---- Push ${aDeps[$i, name]} ----" - - # Push le dépôt - - { # 'try' block - git subtree push --prefix src/${aDeps[$i, name]} "git@gitlab.veremes.net:Development/vitis_apps/sources/${aDeps[$i, name]}.git" ${aDeps[$i, version]} - } || { # 'catch' block - echo "could not push ${aDeps[$i, name]}" - } - fi - done -fi diff --git a/utils/utils/update_tree.bat b/utils/utils/update_tree.bat deleted file mode 100644 index 3c3c5dc3..00000000 --- a/utils/utils/update_tree.bat +++ /dev/null @@ -1,80 +0,0 @@ -@echo off -title Update Vitis tree -echo Update Vitis tree -setlocal EnableDelayedExpansion - -cd utils - -REM Pull repo -"C:\Program Files\Git\bin\sh.exe" --login -i -c "git pull" - -REM Pull subtrees -"C:\Program Files\Git\bin\sh.exe" --login -i -c "./pull_subtrees.sh" - -REM Save important files -if exist "../vas/rest/sql" ( - robocopy "../vas/rest/sql" "../vas/rest/sql_bak" /E /NFL /NDL /NJH /NJS /nc /ns /np -) -if exist "../vas/rest/conf" ( - robocopy "../vas/rest/conf" "../vas/rest/conf_bak" /E /NFL /NDL /NJH /NJS /nc /ns /np -) - -REM Replace Vitis files -for /d %%g in ("../src/vitis/client/*") do ( - set x=%%g - echo copy client/!x! - rmdir /S /Q "../client/!x!" - robocopy "../src/vitis/client/!x!" "../client/!x!" /E /NFL /NDL /NJH /NJS /nc /ns /np -) -for /d %%g in ("../src/vitis/vas/sql") do ( - echo copy vas/sql - rmdir /S /Q "../vas/sql" - robocopy "../src/vitis/vas/sql" "../vas/sql" /E /NFL /NDL /NJH /NJS /nc /ns /np -) -for /d %%g in ("../src/vitis/vas/rest/class") do ( - echo copy vas/rest/class - rmdir /S /Q "../vas/rest/class" - robocopy "../src/vitis/vas/rest/class" "../vas/rest/class" /E /NFL /NDL /NJH /NJS /nc /ns /np -) -for /d %%g in ("../src/vitis/vas/rest/conf") do ( - echo copy vas/rest/conf - robocopy "../src/vitis/vas/rest/conf" "../vas/rest/conf_veremes" /E /NFL /NDL /NJH /NJS /nc /ns /np -) -for /d %%g in ("../src/vitis/vas/rest/inc") do ( - echo copy vas/rest/inc - rmdir /S /Q "../vas/rest/inc" - robocopy "../src/vitis/vas/rest/inc" "../vas/rest/inc" /E /NFL /NDL /NJH /NJS /nc /ns /np -) -for /d %%g in ("../src/vitis/vas/rest/ws") do ( - echo copy vas/rest/ws - rmdir /S /Q "../vas/rest/ws" - robocopy "../src/vitis/vas/rest/ws" "../vas/rest/ws" /E /NFL /NDL /NJH /NJS /nc /ns /np -) - -REM Replace modules files -for /d %%g in ("../src/module_*") do ( - set x=%%g - if exist "../src/%%g/module" ( - echo copy client/modules/!x:~7! - robocopy "../src/%%g/module" "../client/modules/!x:~7!" /E /NFL /NDL /NJH /NJS /nc /ns /np - ) - if exist "../src/%%g/web_service/conf" ( - echo copy vas/rest/conf_veremes/!x:~7! - robocopy "../src/%%g/web_service/conf" "../vas/rest/conf_veremes/!x:~7!" /E /NFL /NDL /NJH /NJS /nc /ns /np - ) - if exist "../src/%%g/web_service/sql" ( - echo copy vas/sql/!x:~7! - robocopy "../src/%%g/web_service/sql" "../vas/sql/!x:~7!" /E /NFL /NDL /NJH /NJS /nc /ns /np - ) - if exist "../src/%%g/web_service/ws" ( - echo copy vas/rest/ws/!x:~7! - robocopy "../src/%%g/web_service/ws" "../vas/rest/ws/!x:~7!" /E /NFL /NDL /NJH /NJS /nc /ns /np - ) - if exist "../src/%%g/web_service/class" ( - echo copy vas/rest/class - robocopy "../src/%%g/web_service/class" "../vas/rest/class" /E /NFL /NDL /NJH /NJS /nc /ns /np - ) -) - - -cd .. diff --git a/src/vitis/vas/doc/composer.json b/vas/doc/composer.json similarity index 100% rename from src/vitis/vas/doc/composer.json rename to vas/doc/composer.json diff --git a/src/vitis/vas/doc/composer.lock b/vas/doc/composer.lock similarity index 100% rename from src/vitis/vas/doc/composer.lock rename to vas/doc/composer.lock diff --git a/src/vitis/vas/doc/css/reset.css b/vas/doc/css/reset.css similarity index 100% rename from src/vitis/vas/doc/css/reset.css rename to vas/doc/css/reset.css diff --git a/src/vitis/vas/doc/css/screen.css b/vas/doc/css/screen.css similarity index 100% rename from src/vitis/vas/doc/css/screen.css rename to vas/doc/css/screen.css diff --git a/src/vitis/vas/doc/css/style.css b/vas/doc/css/style.css similarity index 100% rename from src/vitis/vas/doc/css/style.css rename to vas/doc/css/style.css diff --git a/src/vitis/vas/doc/images/gtf_ws.png b/vas/doc/images/gtf_ws.png similarity index 100% rename from src/vitis/vas/doc/images/gtf_ws.png rename to vas/doc/images/gtf_ws.png diff --git a/src/vitis/vas/doc/images/order.png b/vas/doc/images/order.png similarity index 100% rename from src/vitis/vas/doc/images/order.png rename to vas/doc/images/order.png diff --git a/src/vitis/vas/doc/images/overview.png b/vas/doc/images/overview.png similarity index 100% rename from src/vitis/vas/doc/images/overview.png rename to vas/doc/images/overview.png diff --git a/src/vitis/vas/doc/images/rest.png b/vas/doc/images/rest.png similarity index 100% rename from src/vitis/vas/doc/images/rest.png rename to vas/doc/images/rest.png diff --git a/src/vitis/vas/doc/images/throbber.gif b/vas/doc/images/throbber.gif similarity index 100% rename from src/vitis/vas/doc/images/throbber.gif rename to vas/doc/images/throbber.gif diff --git a/src/vitis/vas/doc/images/token.png b/vas/doc/images/token.png similarity index 100% rename from src/vitis/vas/doc/images/token.png rename to vas/doc/images/token.png diff --git a/src/vitis/vas/doc/images/workspace.png b/vas/doc/images/workspace.png similarity index 100% rename from src/vitis/vas/doc/images/workspace.png rename to vas/doc/images/workspace.png diff --git a/src/vitis/vas/doc/index.phtml b/vas/doc/index.phtml similarity index 100% rename from src/vitis/vas/doc/index.phtml rename to vas/doc/index.phtml diff --git a/src/vitis/vas/doc/javascript/backbone-min.js b/vas/doc/javascript/backbone-min.js similarity index 100% rename from src/vitis/vas/doc/javascript/backbone-min.js rename to vas/doc/javascript/backbone-min.js diff --git a/src/vitis/vas/doc/javascript/handlebars-1.0.0.js b/vas/doc/javascript/handlebars-1.0.0.js similarity index 100% rename from src/vitis/vas/doc/javascript/handlebars-1.0.0.js rename to vas/doc/javascript/handlebars-1.0.0.js diff --git a/src/vitis/vas/doc/javascript/handlebars-2.0.0.js b/vas/doc/javascript/handlebars-2.0.0.js similarity index 100% rename from src/vitis/vas/doc/javascript/handlebars-2.0.0.js rename to vas/doc/javascript/handlebars-2.0.0.js diff --git a/src/vitis/vas/doc/javascript/highlight.7.3.pack.js b/vas/doc/javascript/highlight.7.3.pack.js similarity index 100% rename from src/vitis/vas/doc/javascript/highlight.7.3.pack.js rename to vas/doc/javascript/highlight.7.3.pack.js diff --git a/src/vitis/vas/doc/javascript/jquery-1.8.0.min.js b/vas/doc/javascript/jquery-1.8.0.min.js similarity index 100% rename from src/vitis/vas/doc/javascript/jquery-1.8.0.min.js rename to vas/doc/javascript/jquery-1.8.0.min.js diff --git a/src/vitis/vas/doc/javascript/jquery.ba-bbq.min.js b/vas/doc/javascript/jquery.ba-bbq.min.js similarity index 100% rename from src/vitis/vas/doc/javascript/jquery.ba-bbq.min.js rename to vas/doc/javascript/jquery.ba-bbq.min.js diff --git a/src/vitis/vas/doc/javascript/jquery.slideto.min.js b/vas/doc/javascript/jquery.slideto.min.js similarity index 100% rename from src/vitis/vas/doc/javascript/jquery.slideto.min.js rename to vas/doc/javascript/jquery.slideto.min.js diff --git a/src/vitis/vas/doc/javascript/jquery.wiggle.min.js b/vas/doc/javascript/jquery.wiggle.min.js similarity index 100% rename from src/vitis/vas/doc/javascript/jquery.wiggle.min.js rename to vas/doc/javascript/jquery.wiggle.min.js diff --git a/src/vitis/vas/doc/javascript/marked.js b/vas/doc/javascript/marked.js similarity index 100% rename from src/vitis/vas/doc/javascript/marked.js rename to vas/doc/javascript/marked.js diff --git a/src/vitis/vas/doc/javascript/shred.bundle.js b/vas/doc/javascript/shred.bundle.js similarity index 100% rename from src/vitis/vas/doc/javascript/shred.bundle.js rename to vas/doc/javascript/shred.bundle.js diff --git a/src/vitis/vas/doc/javascript/shred/content.js b/vas/doc/javascript/shred/content.js similarity index 100% rename from src/vitis/vas/doc/javascript/shred/content.js rename to vas/doc/javascript/shred/content.js diff --git a/src/vitis/vas/doc/javascript/swagger-oauth.js b/vas/doc/javascript/swagger-oauth.js similarity index 100% rename from src/vitis/vas/doc/javascript/swagger-oauth.js rename to vas/doc/javascript/swagger-oauth.js diff --git a/src/vitis/vas/doc/javascript/swagger-ui.js b/vas/doc/javascript/swagger-ui.js similarity index 100% rename from src/vitis/vas/doc/javascript/swagger-ui.js rename to vas/doc/javascript/swagger-ui.js diff --git a/src/vitis/vas/doc/javascript/swagger-ui.min.js b/vas/doc/javascript/swagger-ui.min.js similarity index 100% rename from src/vitis/vas/doc/javascript/swagger-ui.min.js rename to vas/doc/javascript/swagger-ui.min.js diff --git a/src/vitis/vas/doc/javascript/underscore-min.js b/vas/doc/javascript/underscore-min.js similarity index 100% rename from src/vitis/vas/doc/javascript/underscore-min.js rename to vas/doc/javascript/underscore-min.js diff --git a/src/vitis/vas/doc/javascript/underscore-min.map b/vas/doc/javascript/underscore-min.map similarity index 100% rename from src/vitis/vas/doc/javascript/underscore-min.map rename to vas/doc/javascript/underscore-min.map diff --git a/src/vitis/vas/doc/swagger.php b/vas/doc/swagger.php similarity index 100% rename from src/vitis/vas/doc/swagger.php rename to vas/doc/swagger.php diff --git a/src/vitis/vas/doc/vendor/autoload.php b/vas/doc/vendor/autoload.php similarity index 100% rename from src/vitis/vas/doc/vendor/autoload.php rename to vas/doc/vendor/autoload.php diff --git a/src/vitis/vas/doc/vendor/bin/swagger b/vas/doc/vendor/bin/swagger similarity index 100% rename from src/vitis/vas/doc/vendor/bin/swagger rename to vas/doc/vendor/bin/swagger diff --git a/src/vitis/vas/doc/vendor/composer/ClassLoader.php b/vas/doc/vendor/composer/ClassLoader.php similarity index 100% rename from src/vitis/vas/doc/vendor/composer/ClassLoader.php rename to vas/doc/vendor/composer/ClassLoader.php diff --git a/src/vitis/vas/doc/vendor/composer/LICENSE b/vas/doc/vendor/composer/LICENSE similarity index 100% rename from src/vitis/vas/doc/vendor/composer/LICENSE rename to vas/doc/vendor/composer/LICENSE diff --git a/src/vitis/vas/doc/vendor/composer/autoload_classmap.php b/vas/doc/vendor/composer/autoload_classmap.php similarity index 100% rename from src/vitis/vas/doc/vendor/composer/autoload_classmap.php rename to vas/doc/vendor/composer/autoload_classmap.php diff --git a/src/vitis/vas/doc/vendor/composer/autoload_files.php b/vas/doc/vendor/composer/autoload_files.php similarity index 100% rename from src/vitis/vas/doc/vendor/composer/autoload_files.php rename to vas/doc/vendor/composer/autoload_files.php diff --git a/src/vitis/vas/doc/vendor/composer/autoload_namespaces.php b/vas/doc/vendor/composer/autoload_namespaces.php similarity index 100% rename from src/vitis/vas/doc/vendor/composer/autoload_namespaces.php rename to vas/doc/vendor/composer/autoload_namespaces.php diff --git a/src/vitis/vas/doc/vendor/composer/autoload_psr4.php b/vas/doc/vendor/composer/autoload_psr4.php similarity index 100% rename from src/vitis/vas/doc/vendor/composer/autoload_psr4.php rename to vas/doc/vendor/composer/autoload_psr4.php diff --git a/src/vitis/vas/doc/vendor/composer/autoload_real.php b/vas/doc/vendor/composer/autoload_real.php similarity index 100% rename from src/vitis/vas/doc/vendor/composer/autoload_real.php rename to vas/doc/vendor/composer/autoload_real.php diff --git a/src/vitis/vas/doc/vendor/composer/autoload_static.php b/vas/doc/vendor/composer/autoload_static.php similarity index 100% rename from src/vitis/vas/doc/vendor/composer/autoload_static.php rename to vas/doc/vendor/composer/autoload_static.php diff --git a/src/vitis/vas/doc/vendor/composer/installed.json b/vas/doc/vendor/composer/installed.json similarity index 100% rename from src/vitis/vas/doc/vendor/composer/installed.json rename to vas/doc/vendor/composer/installed.json diff --git a/src/vitis/vas/doc/vendor/doctrine/annotations/LICENSE b/vas/doc/vendor/doctrine/annotations/LICENSE similarity index 100% rename from src/vitis/vas/doc/vendor/doctrine/annotations/LICENSE rename to vas/doc/vendor/doctrine/annotations/LICENSE diff --git a/src/vitis/vas/doc/vendor/doctrine/annotations/README.md b/vas/doc/vendor/doctrine/annotations/README.md similarity index 100% rename from src/vitis/vas/doc/vendor/doctrine/annotations/README.md rename to vas/doc/vendor/doctrine/annotations/README.md diff --git a/src/vitis/vas/doc/vendor/doctrine/annotations/composer.json b/vas/doc/vendor/doctrine/annotations/composer.json similarity index 100% rename from src/vitis/vas/doc/vendor/doctrine/annotations/composer.json rename to vas/doc/vendor/doctrine/annotations/composer.json diff --git a/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation.php b/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation.php similarity index 100% rename from src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation.php rename to vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation.php diff --git a/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attribute.php b/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attribute.php similarity index 100% rename from src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attribute.php rename to vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attribute.php diff --git a/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attributes.php b/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attributes.php similarity index 100% rename from src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attributes.php rename to vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attributes.php diff --git a/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Enum.php b/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Enum.php similarity index 100% rename from src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Enum.php rename to vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Enum.php diff --git a/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/IgnoreAnnotation.php b/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/IgnoreAnnotation.php similarity index 100% rename from src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/IgnoreAnnotation.php rename to vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/IgnoreAnnotation.php diff --git a/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Required.php b/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Required.php similarity index 100% rename from src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Required.php rename to vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Required.php diff --git a/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Target.php b/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Target.php similarity index 100% rename from src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Target.php rename to vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Target.php diff --git a/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationException.php b/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationException.php similarity index 100% rename from src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationException.php rename to vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationException.php diff --git a/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationReader.php b/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationReader.php similarity index 100% rename from src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationReader.php rename to vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationReader.php diff --git a/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationRegistry.php b/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationRegistry.php similarity index 100% rename from src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationRegistry.php rename to vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationRegistry.php diff --git a/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/CachedReader.php b/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/CachedReader.php similarity index 100% rename from src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/CachedReader.php rename to vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/CachedReader.php diff --git a/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocLexer.php b/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocLexer.php similarity index 100% rename from src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocLexer.php rename to vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocLexer.php diff --git a/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocParser.php b/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocParser.php similarity index 100% rename from src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocParser.php rename to vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocParser.php diff --git a/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/FileCacheReader.php b/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/FileCacheReader.php similarity index 100% rename from src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/FileCacheReader.php rename to vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/FileCacheReader.php diff --git a/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/IndexedReader.php b/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/IndexedReader.php similarity index 100% rename from src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/IndexedReader.php rename to vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/IndexedReader.php diff --git a/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/PhpParser.php b/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/PhpParser.php similarity index 100% rename from src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/PhpParser.php rename to vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/PhpParser.php diff --git a/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Reader.php b/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Reader.php similarity index 100% rename from src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Reader.php rename to vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Reader.php diff --git a/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/SimpleAnnotationReader.php b/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/SimpleAnnotationReader.php similarity index 100% rename from src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/SimpleAnnotationReader.php rename to vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/SimpleAnnotationReader.php diff --git a/src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/TokenParser.php b/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/TokenParser.php similarity index 100% rename from src/vitis/vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/TokenParser.php rename to vas/doc/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/TokenParser.php diff --git a/src/vitis/vas/doc/vendor/doctrine/lexer/LICENSE b/vas/doc/vendor/doctrine/lexer/LICENSE similarity index 100% rename from src/vitis/vas/doc/vendor/doctrine/lexer/LICENSE rename to vas/doc/vendor/doctrine/lexer/LICENSE diff --git a/src/vitis/vas/doc/vendor/doctrine/lexer/README.md b/vas/doc/vendor/doctrine/lexer/README.md similarity index 100% rename from src/vitis/vas/doc/vendor/doctrine/lexer/README.md rename to vas/doc/vendor/doctrine/lexer/README.md diff --git a/src/vitis/vas/doc/vendor/doctrine/lexer/composer.json b/vas/doc/vendor/doctrine/lexer/composer.json similarity index 100% rename from src/vitis/vas/doc/vendor/doctrine/lexer/composer.json rename to vas/doc/vendor/doctrine/lexer/composer.json diff --git a/src/vitis/vas/doc/vendor/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php b/vas/doc/vendor/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php similarity index 100% rename from src/vitis/vas/doc/vendor/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php rename to vas/doc/vendor/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/.gitignore b/vas/doc/vendor/symfony/finder/.gitignore similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/.gitignore rename to vas/doc/vendor/symfony/finder/.gitignore diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Adapter/AbstractAdapter.php b/vas/doc/vendor/symfony/finder/Adapter/AbstractAdapter.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Adapter/AbstractAdapter.php rename to vas/doc/vendor/symfony/finder/Adapter/AbstractAdapter.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Adapter/AbstractFindAdapter.php b/vas/doc/vendor/symfony/finder/Adapter/AbstractFindAdapter.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Adapter/AbstractFindAdapter.php rename to vas/doc/vendor/symfony/finder/Adapter/AbstractFindAdapter.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Adapter/AdapterInterface.php b/vas/doc/vendor/symfony/finder/Adapter/AdapterInterface.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Adapter/AdapterInterface.php rename to vas/doc/vendor/symfony/finder/Adapter/AdapterInterface.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Adapter/BsdFindAdapter.php b/vas/doc/vendor/symfony/finder/Adapter/BsdFindAdapter.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Adapter/BsdFindAdapter.php rename to vas/doc/vendor/symfony/finder/Adapter/BsdFindAdapter.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Adapter/GnuFindAdapter.php b/vas/doc/vendor/symfony/finder/Adapter/GnuFindAdapter.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Adapter/GnuFindAdapter.php rename to vas/doc/vendor/symfony/finder/Adapter/GnuFindAdapter.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Adapter/PhpAdapter.php b/vas/doc/vendor/symfony/finder/Adapter/PhpAdapter.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Adapter/PhpAdapter.php rename to vas/doc/vendor/symfony/finder/Adapter/PhpAdapter.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/CHANGELOG.md b/vas/doc/vendor/symfony/finder/CHANGELOG.md similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/CHANGELOG.md rename to vas/doc/vendor/symfony/finder/CHANGELOG.md diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Comparator/Comparator.php b/vas/doc/vendor/symfony/finder/Comparator/Comparator.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Comparator/Comparator.php rename to vas/doc/vendor/symfony/finder/Comparator/Comparator.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Comparator/DateComparator.php b/vas/doc/vendor/symfony/finder/Comparator/DateComparator.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Comparator/DateComparator.php rename to vas/doc/vendor/symfony/finder/Comparator/DateComparator.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Comparator/NumberComparator.php b/vas/doc/vendor/symfony/finder/Comparator/NumberComparator.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Comparator/NumberComparator.php rename to vas/doc/vendor/symfony/finder/Comparator/NumberComparator.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Exception/AccessDeniedException.php b/vas/doc/vendor/symfony/finder/Exception/AccessDeniedException.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Exception/AccessDeniedException.php rename to vas/doc/vendor/symfony/finder/Exception/AccessDeniedException.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Exception/AdapterFailureException.php b/vas/doc/vendor/symfony/finder/Exception/AdapterFailureException.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Exception/AdapterFailureException.php rename to vas/doc/vendor/symfony/finder/Exception/AdapterFailureException.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Exception/ExceptionInterface.php b/vas/doc/vendor/symfony/finder/Exception/ExceptionInterface.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Exception/ExceptionInterface.php rename to vas/doc/vendor/symfony/finder/Exception/ExceptionInterface.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Exception/OperationNotPermitedException.php b/vas/doc/vendor/symfony/finder/Exception/OperationNotPermitedException.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Exception/OperationNotPermitedException.php rename to vas/doc/vendor/symfony/finder/Exception/OperationNotPermitedException.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Exception/ShellCommandFailureException.php b/vas/doc/vendor/symfony/finder/Exception/ShellCommandFailureException.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Exception/ShellCommandFailureException.php rename to vas/doc/vendor/symfony/finder/Exception/ShellCommandFailureException.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Expression/Expression.php b/vas/doc/vendor/symfony/finder/Expression/Expression.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Expression/Expression.php rename to vas/doc/vendor/symfony/finder/Expression/Expression.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Expression/Glob.php b/vas/doc/vendor/symfony/finder/Expression/Glob.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Expression/Glob.php rename to vas/doc/vendor/symfony/finder/Expression/Glob.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Expression/Regex.php b/vas/doc/vendor/symfony/finder/Expression/Regex.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Expression/Regex.php rename to vas/doc/vendor/symfony/finder/Expression/Regex.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Expression/ValueInterface.php b/vas/doc/vendor/symfony/finder/Expression/ValueInterface.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Expression/ValueInterface.php rename to vas/doc/vendor/symfony/finder/Expression/ValueInterface.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Finder.php b/vas/doc/vendor/symfony/finder/Finder.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Finder.php rename to vas/doc/vendor/symfony/finder/Finder.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Glob.php b/vas/doc/vendor/symfony/finder/Glob.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Glob.php rename to vas/doc/vendor/symfony/finder/Glob.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Iterator/CustomFilterIterator.php b/vas/doc/vendor/symfony/finder/Iterator/CustomFilterIterator.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Iterator/CustomFilterIterator.php rename to vas/doc/vendor/symfony/finder/Iterator/CustomFilterIterator.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Iterator/DateRangeFilterIterator.php b/vas/doc/vendor/symfony/finder/Iterator/DateRangeFilterIterator.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Iterator/DateRangeFilterIterator.php rename to vas/doc/vendor/symfony/finder/Iterator/DateRangeFilterIterator.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Iterator/DepthRangeFilterIterator.php b/vas/doc/vendor/symfony/finder/Iterator/DepthRangeFilterIterator.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Iterator/DepthRangeFilterIterator.php rename to vas/doc/vendor/symfony/finder/Iterator/DepthRangeFilterIterator.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php b/vas/doc/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php rename to vas/doc/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Iterator/FilePathsIterator.php b/vas/doc/vendor/symfony/finder/Iterator/FilePathsIterator.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Iterator/FilePathsIterator.php rename to vas/doc/vendor/symfony/finder/Iterator/FilePathsIterator.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Iterator/FileTypeFilterIterator.php b/vas/doc/vendor/symfony/finder/Iterator/FileTypeFilterIterator.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Iterator/FileTypeFilterIterator.php rename to vas/doc/vendor/symfony/finder/Iterator/FileTypeFilterIterator.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Iterator/FilecontentFilterIterator.php b/vas/doc/vendor/symfony/finder/Iterator/FilecontentFilterIterator.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Iterator/FilecontentFilterIterator.php rename to vas/doc/vendor/symfony/finder/Iterator/FilecontentFilterIterator.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Iterator/FilenameFilterIterator.php b/vas/doc/vendor/symfony/finder/Iterator/FilenameFilterIterator.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Iterator/FilenameFilterIterator.php rename to vas/doc/vendor/symfony/finder/Iterator/FilenameFilterIterator.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Iterator/FilterIterator.php b/vas/doc/vendor/symfony/finder/Iterator/FilterIterator.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Iterator/FilterIterator.php rename to vas/doc/vendor/symfony/finder/Iterator/FilterIterator.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php b/vas/doc/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php rename to vas/doc/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Iterator/PathFilterIterator.php b/vas/doc/vendor/symfony/finder/Iterator/PathFilterIterator.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Iterator/PathFilterIterator.php rename to vas/doc/vendor/symfony/finder/Iterator/PathFilterIterator.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php b/vas/doc/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php rename to vas/doc/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Iterator/SizeRangeFilterIterator.php b/vas/doc/vendor/symfony/finder/Iterator/SizeRangeFilterIterator.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Iterator/SizeRangeFilterIterator.php rename to vas/doc/vendor/symfony/finder/Iterator/SizeRangeFilterIterator.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Iterator/SortableIterator.php b/vas/doc/vendor/symfony/finder/Iterator/SortableIterator.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Iterator/SortableIterator.php rename to vas/doc/vendor/symfony/finder/Iterator/SortableIterator.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/LICENSE b/vas/doc/vendor/symfony/finder/LICENSE similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/LICENSE rename to vas/doc/vendor/symfony/finder/LICENSE diff --git a/src/vitis/vas/doc/vendor/symfony/finder/README.md b/vas/doc/vendor/symfony/finder/README.md similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/README.md rename to vas/doc/vendor/symfony/finder/README.md diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Shell/Command.php b/vas/doc/vendor/symfony/finder/Shell/Command.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Shell/Command.php rename to vas/doc/vendor/symfony/finder/Shell/Command.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Shell/Shell.php b/vas/doc/vendor/symfony/finder/Shell/Shell.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Shell/Shell.php rename to vas/doc/vendor/symfony/finder/Shell/Shell.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/SplFileInfo.php b/vas/doc/vendor/symfony/finder/SplFileInfo.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/SplFileInfo.php rename to vas/doc/vendor/symfony/finder/SplFileInfo.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Tests/BsdFinderTest.php b/vas/doc/vendor/symfony/finder/Tests/BsdFinderTest.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Tests/BsdFinderTest.php rename to vas/doc/vendor/symfony/finder/Tests/BsdFinderTest.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Tests/Comparator/ComparatorTest.php b/vas/doc/vendor/symfony/finder/Tests/Comparator/ComparatorTest.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Tests/Comparator/ComparatorTest.php rename to vas/doc/vendor/symfony/finder/Tests/Comparator/ComparatorTest.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Tests/Comparator/DateComparatorTest.php b/vas/doc/vendor/symfony/finder/Tests/Comparator/DateComparatorTest.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Tests/Comparator/DateComparatorTest.php rename to vas/doc/vendor/symfony/finder/Tests/Comparator/DateComparatorTest.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Tests/Comparator/NumberComparatorTest.php b/vas/doc/vendor/symfony/finder/Tests/Comparator/NumberComparatorTest.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Tests/Comparator/NumberComparatorTest.php rename to vas/doc/vendor/symfony/finder/Tests/Comparator/NumberComparatorTest.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Tests/Expression/ExpressionTest.php b/vas/doc/vendor/symfony/finder/Tests/Expression/ExpressionTest.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Tests/Expression/ExpressionTest.php rename to vas/doc/vendor/symfony/finder/Tests/Expression/ExpressionTest.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Tests/Expression/GlobTest.php b/vas/doc/vendor/symfony/finder/Tests/Expression/GlobTest.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Tests/Expression/GlobTest.php rename to vas/doc/vendor/symfony/finder/Tests/Expression/GlobTest.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Tests/Expression/RegexTest.php b/vas/doc/vendor/symfony/finder/Tests/Expression/RegexTest.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Tests/Expression/RegexTest.php rename to vas/doc/vendor/symfony/finder/Tests/Expression/RegexTest.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Tests/FakeAdapter/DummyAdapter.php b/vas/doc/vendor/symfony/finder/Tests/FakeAdapter/DummyAdapter.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Tests/FakeAdapter/DummyAdapter.php rename to vas/doc/vendor/symfony/finder/Tests/FakeAdapter/DummyAdapter.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Tests/FakeAdapter/FailingAdapter.php b/vas/doc/vendor/symfony/finder/Tests/FakeAdapter/FailingAdapter.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Tests/FakeAdapter/FailingAdapter.php rename to vas/doc/vendor/symfony/finder/Tests/FakeAdapter/FailingAdapter.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Tests/FakeAdapter/NamedAdapter.php b/vas/doc/vendor/symfony/finder/Tests/FakeAdapter/NamedAdapter.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Tests/FakeAdapter/NamedAdapter.php rename to vas/doc/vendor/symfony/finder/Tests/FakeAdapter/NamedAdapter.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Tests/FakeAdapter/UnsupportedAdapter.php b/vas/doc/vendor/symfony/finder/Tests/FakeAdapter/UnsupportedAdapter.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Tests/FakeAdapter/UnsupportedAdapter.php rename to vas/doc/vendor/symfony/finder/Tests/FakeAdapter/UnsupportedAdapter.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Tests/FinderTest.php b/vas/doc/vendor/symfony/finder/Tests/FinderTest.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Tests/FinderTest.php rename to vas/doc/vendor/symfony/finder/Tests/FinderTest.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/A/B/C/abc.dat b/vas/doc/vendor/symfony/finder/Tests/Fixtures/A/B/C/abc.dat similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/A/B/C/abc.dat rename to vas/doc/vendor/symfony/finder/Tests/Fixtures/A/B/C/abc.dat diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/A/B/ab.dat b/vas/doc/vendor/symfony/finder/Tests/Fixtures/A/B/ab.dat similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/A/B/ab.dat rename to vas/doc/vendor/symfony/finder/Tests/Fixtures/A/B/ab.dat diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/A/a.dat b/vas/doc/vendor/symfony/finder/Tests/Fixtures/A/a.dat similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/A/a.dat rename to vas/doc/vendor/symfony/finder/Tests/Fixtures/A/a.dat diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/B/C/abc.dat.copy b/vas/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/B/C/abc.dat.copy similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/B/C/abc.dat.copy rename to vas/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/B/C/abc.dat.copy diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/B/ab.dat.copy b/vas/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/B/ab.dat.copy similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/B/ab.dat.copy rename to vas/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/B/ab.dat.copy diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/a.dat.copy b/vas/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/a.dat.copy similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/a.dat.copy rename to vas/doc/vendor/symfony/finder/Tests/Fixtures/copy/A/a.dat.copy diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/dolor.txt b/vas/doc/vendor/symfony/finder/Tests/Fixtures/dolor.txt similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/dolor.txt rename to vas/doc/vendor/symfony/finder/Tests/Fixtures/dolor.txt diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/ipsum.txt b/vas/doc/vendor/symfony/finder/Tests/Fixtures/ipsum.txt similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/ipsum.txt rename to vas/doc/vendor/symfony/finder/Tests/Fixtures/ipsum.txt diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/lorem.txt b/vas/doc/vendor/symfony/finder/Tests/Fixtures/lorem.txt similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/lorem.txt rename to vas/doc/vendor/symfony/finder/Tests/Fixtures/lorem.txt diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/one/a b/vas/doc/vendor/symfony/finder/Tests/Fixtures/one/a similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/one/a rename to vas/doc/vendor/symfony/finder/Tests/Fixtures/one/a diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/one/b/c.neon b/vas/doc/vendor/symfony/finder/Tests/Fixtures/one/b/c.neon similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/one/b/c.neon rename to vas/doc/vendor/symfony/finder/Tests/Fixtures/one/b/c.neon diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/one/b/d.neon b/vas/doc/vendor/symfony/finder/Tests/Fixtures/one/b/d.neon similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/one/b/d.neon rename to vas/doc/vendor/symfony/finder/Tests/Fixtures/one/b/d.neon diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/r+e.gex[c]a(r)s/dir/bar.dat b/vas/doc/vendor/symfony/finder/Tests/Fixtures/r+e.gex[c]a(r)s/dir/bar.dat similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/r+e.gex[c]a(r)s/dir/bar.dat rename to vas/doc/vendor/symfony/finder/Tests/Fixtures/r+e.gex[c]a(r)s/dir/bar.dat diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/with space/foo.txt b/vas/doc/vendor/symfony/finder/Tests/Fixtures/with space/foo.txt similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Tests/Fixtures/with space/foo.txt rename to vas/doc/vendor/symfony/finder/Tests/Fixtures/with space/foo.txt diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Tests/GlobTest.php b/vas/doc/vendor/symfony/finder/Tests/GlobTest.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Tests/GlobTest.php rename to vas/doc/vendor/symfony/finder/Tests/GlobTest.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Tests/GnuFinderTest.php b/vas/doc/vendor/symfony/finder/Tests/GnuFinderTest.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Tests/GnuFinderTest.php rename to vas/doc/vendor/symfony/finder/Tests/GnuFinderTest.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/CustomFilterIteratorTest.php b/vas/doc/vendor/symfony/finder/Tests/Iterator/CustomFilterIteratorTest.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/CustomFilterIteratorTest.php rename to vas/doc/vendor/symfony/finder/Tests/Iterator/CustomFilterIteratorTest.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/DateRangeFilterIteratorTest.php b/vas/doc/vendor/symfony/finder/Tests/Iterator/DateRangeFilterIteratorTest.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/DateRangeFilterIteratorTest.php rename to vas/doc/vendor/symfony/finder/Tests/Iterator/DateRangeFilterIteratorTest.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/DepthRangeFilterIteratorTest.php b/vas/doc/vendor/symfony/finder/Tests/Iterator/DepthRangeFilterIteratorTest.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/DepthRangeFilterIteratorTest.php rename to vas/doc/vendor/symfony/finder/Tests/Iterator/DepthRangeFilterIteratorTest.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/ExcludeDirectoryFilterIteratorTest.php b/vas/doc/vendor/symfony/finder/Tests/Iterator/ExcludeDirectoryFilterIteratorTest.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/ExcludeDirectoryFilterIteratorTest.php rename to vas/doc/vendor/symfony/finder/Tests/Iterator/ExcludeDirectoryFilterIteratorTest.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/FilePathsIteratorTest.php b/vas/doc/vendor/symfony/finder/Tests/Iterator/FilePathsIteratorTest.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/FilePathsIteratorTest.php rename to vas/doc/vendor/symfony/finder/Tests/Iterator/FilePathsIteratorTest.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/FileTypeFilterIteratorTest.php b/vas/doc/vendor/symfony/finder/Tests/Iterator/FileTypeFilterIteratorTest.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/FileTypeFilterIteratorTest.php rename to vas/doc/vendor/symfony/finder/Tests/Iterator/FileTypeFilterIteratorTest.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/FilecontentFilterIteratorTest.php b/vas/doc/vendor/symfony/finder/Tests/Iterator/FilecontentFilterIteratorTest.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/FilecontentFilterIteratorTest.php rename to vas/doc/vendor/symfony/finder/Tests/Iterator/FilecontentFilterIteratorTest.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/FilenameFilterIteratorTest.php b/vas/doc/vendor/symfony/finder/Tests/Iterator/FilenameFilterIteratorTest.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/FilenameFilterIteratorTest.php rename to vas/doc/vendor/symfony/finder/Tests/Iterator/FilenameFilterIteratorTest.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/FilterIteratorTest.php b/vas/doc/vendor/symfony/finder/Tests/Iterator/FilterIteratorTest.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/FilterIteratorTest.php rename to vas/doc/vendor/symfony/finder/Tests/Iterator/FilterIteratorTest.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/Iterator.php b/vas/doc/vendor/symfony/finder/Tests/Iterator/Iterator.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/Iterator.php rename to vas/doc/vendor/symfony/finder/Tests/Iterator/Iterator.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/IteratorTestCase.php b/vas/doc/vendor/symfony/finder/Tests/Iterator/IteratorTestCase.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/IteratorTestCase.php rename to vas/doc/vendor/symfony/finder/Tests/Iterator/IteratorTestCase.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/MockFileListIterator.php b/vas/doc/vendor/symfony/finder/Tests/Iterator/MockFileListIterator.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/MockFileListIterator.php rename to vas/doc/vendor/symfony/finder/Tests/Iterator/MockFileListIterator.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/MockSplFileInfo.php b/vas/doc/vendor/symfony/finder/Tests/Iterator/MockSplFileInfo.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/MockSplFileInfo.php rename to vas/doc/vendor/symfony/finder/Tests/Iterator/MockSplFileInfo.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/MultiplePcreFilterIteratorTest.php b/vas/doc/vendor/symfony/finder/Tests/Iterator/MultiplePcreFilterIteratorTest.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/MultiplePcreFilterIteratorTest.php rename to vas/doc/vendor/symfony/finder/Tests/Iterator/MultiplePcreFilterIteratorTest.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/PathFilterIteratorTest.php b/vas/doc/vendor/symfony/finder/Tests/Iterator/PathFilterIteratorTest.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/PathFilterIteratorTest.php rename to vas/doc/vendor/symfony/finder/Tests/Iterator/PathFilterIteratorTest.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/RealIteratorTestCase.php b/vas/doc/vendor/symfony/finder/Tests/Iterator/RealIteratorTestCase.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/RealIteratorTestCase.php rename to vas/doc/vendor/symfony/finder/Tests/Iterator/RealIteratorTestCase.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/RecursiveDirectoryIteratorTest.php b/vas/doc/vendor/symfony/finder/Tests/Iterator/RecursiveDirectoryIteratorTest.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/RecursiveDirectoryIteratorTest.php rename to vas/doc/vendor/symfony/finder/Tests/Iterator/RecursiveDirectoryIteratorTest.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/SizeRangeFilterIteratorTest.php b/vas/doc/vendor/symfony/finder/Tests/Iterator/SizeRangeFilterIteratorTest.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/SizeRangeFilterIteratorTest.php rename to vas/doc/vendor/symfony/finder/Tests/Iterator/SizeRangeFilterIteratorTest.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/SortableIteratorTest.php b/vas/doc/vendor/symfony/finder/Tests/Iterator/SortableIteratorTest.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Tests/Iterator/SortableIteratorTest.php rename to vas/doc/vendor/symfony/finder/Tests/Iterator/SortableIteratorTest.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/Tests/Shell/CommandTest.php b/vas/doc/vendor/symfony/finder/Tests/Shell/CommandTest.php similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/Tests/Shell/CommandTest.php rename to vas/doc/vendor/symfony/finder/Tests/Shell/CommandTest.php diff --git a/src/vitis/vas/doc/vendor/symfony/finder/composer.json b/vas/doc/vendor/symfony/finder/composer.json similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/composer.json rename to vas/doc/vendor/symfony/finder/composer.json diff --git a/src/vitis/vas/doc/vendor/symfony/finder/phpunit.xml.dist b/vas/doc/vendor/symfony/finder/phpunit.xml.dist similarity index 100% rename from src/vitis/vas/doc/vendor/symfony/finder/phpunit.xml.dist rename to vas/doc/vendor/symfony/finder/phpunit.xml.dist diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/.gitignore b/vas/doc/vendor/zircote/swagger-php/.gitignore similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/.gitignore rename to vas/doc/vendor/zircote/swagger-php/.gitignore diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/.travis.yml b/vas/doc/vendor/zircote/swagger-php/.travis.yml similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/.travis.yml rename to vas/doc/vendor/zircote/swagger-php/.travis.yml diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/Changelog.md b/vas/doc/vendor/zircote/swagger-php/Changelog.md similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/Changelog.md rename to vas/doc/vendor/zircote/swagger-php/Changelog.md diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/Examples.md b/vas/doc/vendor/zircote/swagger-php/Examples/Examples.md similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/Examples.md rename to vas/doc/vendor/zircote/swagger-php/Examples/Examples.md diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/ApiResponse.php b/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/ApiResponse.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/ApiResponse.php rename to vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/ApiResponse.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/controllers/PetController.php b/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/controllers/PetController.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/controllers/PetController.php rename to vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/controllers/PetController.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/controllers/StoreController.php b/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/controllers/StoreController.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/controllers/StoreController.php rename to vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/controllers/StoreController.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/controllers/UserController.php b/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/controllers/UserController.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/controllers/UserController.php rename to vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/controllers/UserController.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Category.php b/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Category.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Category.php rename to vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Category.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Order.php b/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Order.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Order.php rename to vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Order.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Pet.php b/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Pet.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Pet.php rename to vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Pet.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Tag.php b/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Tag.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Tag.php rename to vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/Tag.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/User.php b/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/User.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/User.php rename to vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/models/User.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/security.php b/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/security.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/security.php rename to vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/security.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/swagger-v2.php b/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/swagger-v2.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/swagger-v2.php rename to vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/swagger-v2.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/tags.php b/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/tags.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/tags.php rename to vas/doc/vendor/zircote/swagger-php/Examples/petstore.swagger.io/tags.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-simple/SimplePet.php b/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-simple/SimplePet.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-simple/SimplePet.php rename to vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-simple/SimplePet.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-simple/SimplePetsController.php b/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-simple/SimplePetsController.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-simple/SimplePetsController.php rename to vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-simple/SimplePetsController.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-simple/api.php b/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-simple/api.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-simple/api.php rename to vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-simple/api.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/controllers/PetWithDocsController.php b/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/controllers/PetWithDocsController.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/controllers/PetWithDocsController.php rename to vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/controllers/PetWithDocsController.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/docs.php b/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/docs.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/docs.php rename to vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/docs.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/models/ErrorModel.php b/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/models/ErrorModel.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/models/ErrorModel.php rename to vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/models/ErrorModel.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/models/Pet.php b/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/models/Pet.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/models/Pet.php rename to vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore-with-external-docs/models/Pet.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore/Pet.php b/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore/Pet.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore/Pet.php rename to vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore/Pet.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore/PetsController.php b/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore/PetsController.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore/PetsController.php rename to vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore/PetsController.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore/api.php b/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore/api.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore/api.php rename to vas/doc/vendor/zircote/swagger-php/Examples/swagger-spec/petstore/api.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/LICENSE-2.0.txt b/vas/doc/vendor/zircote/swagger-php/LICENSE-2.0.txt similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/LICENSE-2.0.txt rename to vas/doc/vendor/zircote/swagger-php/LICENSE-2.0.txt diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/README.md b/vas/doc/vendor/zircote/swagger-php/README.md similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/README.md rename to vas/doc/vendor/zircote/swagger-php/README.md diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/VERSION b/vas/doc/vendor/zircote/swagger-php/VERSION similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/VERSION rename to vas/doc/vendor/zircote/swagger-php/VERSION diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/bin/swagger b/vas/doc/vendor/zircote/swagger-php/bin/swagger similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/bin/swagger rename to vas/doc/vendor/zircote/swagger-php/bin/swagger diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/composer.json b/vas/doc/vendor/zircote/swagger-php/composer.json similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/composer.json rename to vas/doc/vendor/zircote/swagger-php/composer.json diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/docs/Advanced.md b/vas/doc/vendor/zircote/swagger-php/docs/Advanced.md similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/docs/Advanced.md rename to vas/doc/vendor/zircote/swagger-php/docs/Advanced.md diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/docs/Getting-started.md b/vas/doc/vendor/zircote/swagger-php/docs/Getting-started.md similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/docs/Getting-started.md rename to vas/doc/vendor/zircote/swagger-php/docs/Getting-started.md diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/docs/Migrating-to-v2.md b/vas/doc/vendor/zircote/swagger-php/docs/Migrating-to-v2.md similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/docs/Migrating-to-v2.md rename to vas/doc/vendor/zircote/swagger-php/docs/Migrating-to-v2.md diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/docs/Related-projects.md b/vas/doc/vendor/zircote/swagger-php/docs/Related-projects.md similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/docs/Related-projects.md rename to vas/doc/vendor/zircote/swagger-php/docs/Related-projects.md diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/phpunit.xml.dist b/vas/doc/vendor/zircote/swagger-php/phpunit.xml.dist similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/phpunit.xml.dist rename to vas/doc/vendor/zircote/swagger-php/phpunit.xml.dist diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Analyser.php b/vas/doc/vendor/zircote/swagger-php/src/Analyser.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/src/Analyser.php rename to vas/doc/vendor/zircote/swagger-php/src/Analyser.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Analysis.php b/vas/doc/vendor/zircote/swagger-php/src/Analysis.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/src/Analysis.php rename to vas/doc/vendor/zircote/swagger-php/src/Analysis.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/AbstractAnnotation.php b/vas/doc/vendor/zircote/swagger-php/src/Annotations/AbstractAnnotation.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/AbstractAnnotation.php rename to vas/doc/vendor/zircote/swagger-php/src/Annotations/AbstractAnnotation.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Contact.php b/vas/doc/vendor/zircote/swagger-php/src/Annotations/Contact.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Contact.php rename to vas/doc/vendor/zircote/swagger-php/src/Annotations/Contact.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Definition.php b/vas/doc/vendor/zircote/swagger-php/src/Annotations/Definition.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Definition.php rename to vas/doc/vendor/zircote/swagger-php/src/Annotations/Definition.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Delete.php b/vas/doc/vendor/zircote/swagger-php/src/Annotations/Delete.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Delete.php rename to vas/doc/vendor/zircote/swagger-php/src/Annotations/Delete.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/ExternalDocumentation.php b/vas/doc/vendor/zircote/swagger-php/src/Annotations/ExternalDocumentation.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/ExternalDocumentation.php rename to vas/doc/vendor/zircote/swagger-php/src/Annotations/ExternalDocumentation.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Get.php b/vas/doc/vendor/zircote/swagger-php/src/Annotations/Get.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Get.php rename to vas/doc/vendor/zircote/swagger-php/src/Annotations/Get.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Head.php b/vas/doc/vendor/zircote/swagger-php/src/Annotations/Head.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Head.php rename to vas/doc/vendor/zircote/swagger-php/src/Annotations/Head.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Header.php b/vas/doc/vendor/zircote/swagger-php/src/Annotations/Header.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Header.php rename to vas/doc/vendor/zircote/swagger-php/src/Annotations/Header.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Info.php b/vas/doc/vendor/zircote/swagger-php/src/Annotations/Info.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Info.php rename to vas/doc/vendor/zircote/swagger-php/src/Annotations/Info.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Items.php b/vas/doc/vendor/zircote/swagger-php/src/Annotations/Items.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Items.php rename to vas/doc/vendor/zircote/swagger-php/src/Annotations/Items.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/License.php b/vas/doc/vendor/zircote/swagger-php/src/Annotations/License.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/License.php rename to vas/doc/vendor/zircote/swagger-php/src/Annotations/License.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Operation.php b/vas/doc/vendor/zircote/swagger-php/src/Annotations/Operation.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Operation.php rename to vas/doc/vendor/zircote/swagger-php/src/Annotations/Operation.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Options.php b/vas/doc/vendor/zircote/swagger-php/src/Annotations/Options.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Options.php rename to vas/doc/vendor/zircote/swagger-php/src/Annotations/Options.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Parameter.php b/vas/doc/vendor/zircote/swagger-php/src/Annotations/Parameter.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Parameter.php rename to vas/doc/vendor/zircote/swagger-php/src/Annotations/Parameter.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Patch.php b/vas/doc/vendor/zircote/swagger-php/src/Annotations/Patch.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Patch.php rename to vas/doc/vendor/zircote/swagger-php/src/Annotations/Patch.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Path.php b/vas/doc/vendor/zircote/swagger-php/src/Annotations/Path.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Path.php rename to vas/doc/vendor/zircote/swagger-php/src/Annotations/Path.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Post.php b/vas/doc/vendor/zircote/swagger-php/src/Annotations/Post.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Post.php rename to vas/doc/vendor/zircote/swagger-php/src/Annotations/Post.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Property.php b/vas/doc/vendor/zircote/swagger-php/src/Annotations/Property.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Property.php rename to vas/doc/vendor/zircote/swagger-php/src/Annotations/Property.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Put.php b/vas/doc/vendor/zircote/swagger-php/src/Annotations/Put.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Put.php rename to vas/doc/vendor/zircote/swagger-php/src/Annotations/Put.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Response.php b/vas/doc/vendor/zircote/swagger-php/src/Annotations/Response.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Response.php rename to vas/doc/vendor/zircote/swagger-php/src/Annotations/Response.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Schema.php b/vas/doc/vendor/zircote/swagger-php/src/Annotations/Schema.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Schema.php rename to vas/doc/vendor/zircote/swagger-php/src/Annotations/Schema.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/SecurityScheme.php b/vas/doc/vendor/zircote/swagger-php/src/Annotations/SecurityScheme.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/SecurityScheme.php rename to vas/doc/vendor/zircote/swagger-php/src/Annotations/SecurityScheme.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Swagger.php b/vas/doc/vendor/zircote/swagger-php/src/Annotations/Swagger.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Swagger.php rename to vas/doc/vendor/zircote/swagger-php/src/Annotations/Swagger.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Tag.php b/vas/doc/vendor/zircote/swagger-php/src/Annotations/Tag.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Tag.php rename to vas/doc/vendor/zircote/swagger-php/src/Annotations/Tag.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Xml.php b/vas/doc/vendor/zircote/swagger-php/src/Annotations/Xml.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/src/Annotations/Xml.php rename to vas/doc/vendor/zircote/swagger-php/src/Annotations/Xml.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Context.php b/vas/doc/vendor/zircote/swagger-php/src/Context.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/src/Context.php rename to vas/doc/vendor/zircote/swagger-php/src/Context.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Logger.php b/vas/doc/vendor/zircote/swagger-php/src/Logger.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/src/Logger.php rename to vas/doc/vendor/zircote/swagger-php/src/Logger.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentDefinitions.php b/vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentDefinitions.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentDefinitions.php rename to vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentDefinitions.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentOperations.php b/vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentOperations.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentOperations.php rename to vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentOperations.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentParameters.php b/vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentParameters.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentParameters.php rename to vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentParameters.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentProperties.php b/vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentProperties.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentProperties.php rename to vas/doc/vendor/zircote/swagger-php/src/Processors/AugmentProperties.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/BuildPaths.php b/vas/doc/vendor/zircote/swagger-php/src/Processors/BuildPaths.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/BuildPaths.php rename to vas/doc/vendor/zircote/swagger-php/src/Processors/BuildPaths.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/CleanUnmerged.php b/vas/doc/vendor/zircote/swagger-php/src/Processors/CleanUnmerged.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/CleanUnmerged.php rename to vas/doc/vendor/zircote/swagger-php/src/Processors/CleanUnmerged.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/HandleReferences.php b/vas/doc/vendor/zircote/swagger-php/src/Processors/HandleReferences.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/HandleReferences.php rename to vas/doc/vendor/zircote/swagger-php/src/Processors/HandleReferences.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/InheritProperties.php b/vas/doc/vendor/zircote/swagger-php/src/Processors/InheritProperties.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/InheritProperties.php rename to vas/doc/vendor/zircote/swagger-php/src/Processors/InheritProperties.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/MergeIntoSwagger.php b/vas/doc/vendor/zircote/swagger-php/src/Processors/MergeIntoSwagger.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/src/Processors/MergeIntoSwagger.php rename to vas/doc/vendor/zircote/swagger-php/src/Processors/MergeIntoSwagger.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Serializer.php b/vas/doc/vendor/zircote/swagger-php/src/Serializer.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/src/Serializer.php rename to vas/doc/vendor/zircote/swagger-php/src/Serializer.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/src/StaticAnalyser.php b/vas/doc/vendor/zircote/swagger-php/src/StaticAnalyser.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/src/StaticAnalyser.php rename to vas/doc/vendor/zircote/swagger-php/src/StaticAnalyser.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/src/Util.php b/vas/doc/vendor/zircote/swagger-php/src/Util.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/src/Util.php rename to vas/doc/vendor/zircote/swagger-php/src/Util.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/src/functions.php b/vas/doc/vendor/zircote/swagger-php/src/functions.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/src/functions.php rename to vas/doc/vendor/zircote/swagger-php/src/functions.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AbstractAnnotationTest.php b/vas/doc/vendor/zircote/swagger-php/tests/AbstractAnnotationTest.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AbstractAnnotationTest.php rename to vas/doc/vendor/zircote/swagger-php/tests/AbstractAnnotationTest.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AnalyserTest.php b/vas/doc/vendor/zircote/swagger-php/tests/AnalyserTest.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AnalyserTest.php rename to vas/doc/vendor/zircote/swagger-php/tests/AnalyserTest.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AnalysisTest.php b/vas/doc/vendor/zircote/swagger-php/tests/AnalysisTest.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AnalysisTest.php rename to vas/doc/vendor/zircote/swagger-php/tests/AnalysisTest.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AugmentDefinitionsTest.php b/vas/doc/vendor/zircote/swagger-php/tests/AugmentDefinitionsTest.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AugmentDefinitionsTest.php rename to vas/doc/vendor/zircote/swagger-php/tests/AugmentDefinitionsTest.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AugmentOperationTest.php b/vas/doc/vendor/zircote/swagger-php/tests/AugmentOperationTest.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AugmentOperationTest.php rename to vas/doc/vendor/zircote/swagger-php/tests/AugmentOperationTest.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AugmentParameterTest.php b/vas/doc/vendor/zircote/swagger-php/tests/AugmentParameterTest.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AugmentParameterTest.php rename to vas/doc/vendor/zircote/swagger-php/tests/AugmentParameterTest.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AugmentPropertiesTest.php b/vas/doc/vendor/zircote/swagger-php/tests/AugmentPropertiesTest.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/tests/AugmentPropertiesTest.php rename to vas/doc/vendor/zircote/swagger-php/tests/AugmentPropertiesTest.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/BuildPathsTest.php b/vas/doc/vendor/zircote/swagger-php/tests/BuildPathsTest.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/tests/BuildPathsTest.php rename to vas/doc/vendor/zircote/swagger-php/tests/BuildPathsTest.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/CleanUnmergedTest.php b/vas/doc/vendor/zircote/swagger-php/tests/CleanUnmergedTest.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/tests/CleanUnmergedTest.php rename to vas/doc/vendor/zircote/swagger-php/tests/CleanUnmergedTest.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/CommandlineInterfaceTest.php b/vas/doc/vendor/zircote/swagger-php/tests/CommandlineInterfaceTest.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/tests/CommandlineInterfaceTest.php rename to vas/doc/vendor/zircote/swagger-php/tests/CommandlineInterfaceTest.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ConstantsTest.php b/vas/doc/vendor/zircote/swagger-php/tests/ConstantsTest.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ConstantsTest.php rename to vas/doc/vendor/zircote/swagger-php/tests/ConstantsTest.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ContextTest.php b/vas/doc/vendor/zircote/swagger-php/tests/ContextTest.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ContextTest.php rename to vas/doc/vendor/zircote/swagger-php/tests/ContextTest.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore-simple.json b/vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore-simple.json similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore-simple.json rename to vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore-simple.json diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore-with-external-docs.json b/vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore-with-external-docs.json similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore-with-external-docs.json rename to vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore-with-external-docs.json diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore.json b/vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore.json similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore.json rename to vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore.json diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore.swagger.io.json b/vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore.swagger.io.json similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore.swagger.io.json rename to vas/doc/vendor/zircote/swagger-php/tests/ExamplesOutput/petstore.swagger.io.json diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ExamplesTest.php b/vas/doc/vendor/zircote/swagger-php/tests/ExamplesTest.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ExamplesTest.php rename to vas/doc/vendor/zircote/swagger-php/tests/ExamplesTest.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/Ancestor.php b/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/Ancestor.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/Ancestor.php rename to vas/doc/vendor/zircote/swagger-php/tests/Fixtures/Ancestor.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/AncestorWithoutDocBlocks.php b/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/AncestorWithoutDocBlocks.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/AncestorWithoutDocBlocks.php rename to vas/doc/vendor/zircote/swagger-php/tests/Fixtures/AncestorWithoutDocBlocks.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/Child.php b/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/Child.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/Child.php rename to vas/doc/vendor/zircote/swagger-php/tests/Fixtures/Child.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/ChildWithDocBlocks.php b/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/ChildWithDocBlocks.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/ChildWithDocBlocks.php rename to vas/doc/vendor/zircote/swagger-php/tests/Fixtures/ChildWithDocBlocks.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/Customer.php b/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/Customer.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/Customer.php rename to vas/doc/vendor/zircote/swagger-php/tests/Fixtures/Customer.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/GrandAncestor.php b/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/GrandAncestor.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/GrandAncestor.php rename to vas/doc/vendor/zircote/swagger-php/tests/Fixtures/GrandAncestor.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/HelloTrait.php b/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/HelloTrait.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/HelloTrait.php rename to vas/doc/vendor/zircote/swagger-php/tests/Fixtures/HelloTrait.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/NestedProperty.php b/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/NestedProperty.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/NestedProperty.php rename to vas/doc/vendor/zircote/swagger-php/tests/Fixtures/NestedProperty.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/ThirdPartyAnnotations.php b/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/ThirdPartyAnnotations.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/ThirdPartyAnnotations.php rename to vas/doc/vendor/zircote/swagger-php/tests/Fixtures/ThirdPartyAnnotations.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/UsingPhpDoc.php b/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/UsingPhpDoc.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/UsingPhpDoc.php rename to vas/doc/vendor/zircote/swagger-php/tests/Fixtures/UsingPhpDoc.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/UsingRefs.php b/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/UsingRefs.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/UsingRefs.php rename to vas/doc/vendor/zircote/swagger-php/tests/Fixtures/UsingRefs.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/routes.php b/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/routes.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/tests/Fixtures/routes.php rename to vas/doc/vendor/zircote/swagger-php/tests/Fixtures/routes.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/InheritPropertiesTest.php b/vas/doc/vendor/zircote/swagger-php/tests/InheritPropertiesTest.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/tests/InheritPropertiesTest.php rename to vas/doc/vendor/zircote/swagger-php/tests/InheritPropertiesTest.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ItemsTest.php b/vas/doc/vendor/zircote/swagger-php/tests/ItemsTest.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ItemsTest.php rename to vas/doc/vendor/zircote/swagger-php/tests/ItemsTest.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/MergeIntoSwaggerTest.php b/vas/doc/vendor/zircote/swagger-php/tests/MergeIntoSwaggerTest.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/tests/MergeIntoSwaggerTest.php rename to vas/doc/vendor/zircote/swagger-php/tests/MergeIntoSwaggerTest.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/NestedPropertyTest.php b/vas/doc/vendor/zircote/swagger-php/tests/NestedPropertyTest.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/tests/NestedPropertyTest.php rename to vas/doc/vendor/zircote/swagger-php/tests/NestedPropertyTest.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ResponseTest.php b/vas/doc/vendor/zircote/swagger-php/tests/ResponseTest.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ResponseTest.php rename to vas/doc/vendor/zircote/swagger-php/tests/ResponseTest.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/SerializerTest.php b/vas/doc/vendor/zircote/swagger-php/tests/SerializerTest.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/tests/SerializerTest.php rename to vas/doc/vendor/zircote/swagger-php/tests/SerializerTest.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/StaticAnalyserTest.php b/vas/doc/vendor/zircote/swagger-php/tests/StaticAnalyserTest.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/tests/StaticAnalyserTest.php rename to vas/doc/vendor/zircote/swagger-php/tests/StaticAnalyserTest.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/SwaggerTestCase.php b/vas/doc/vendor/zircote/swagger-php/tests/SwaggerTestCase.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/tests/SwaggerTestCase.php rename to vas/doc/vendor/zircote/swagger-php/tests/SwaggerTestCase.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/UtilTest.php b/vas/doc/vendor/zircote/swagger-php/tests/UtilTest.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/tests/UtilTest.php rename to vas/doc/vendor/zircote/swagger-php/tests/UtilTest.php diff --git a/src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ValidateRelationsTest.php b/vas/doc/vendor/zircote/swagger-php/tests/ValidateRelationsTest.php similarity index 100% rename from src/vitis/vas/doc/vendor/zircote/swagger-php/tests/ValidateRelationsTest.php rename to vas/doc/vendor/zircote/swagger-php/tests/ValidateRelationsTest.php diff --git a/src/vitis/vas/public/studio/default.js b/vas/public/studio/default.js similarity index 100% rename from src/vitis/vas/public/studio/default.js rename to vas/public/studio/default.js diff --git a/src/vitis/vas/rest/.htaccess b/vas/rest/.htaccess similarity index 100% rename from src/vitis/vas/rest/.htaccess rename to vas/rest/.htaccess diff --git a/src/vitis/vas/rest/conf/constants.inc b/vas/rest/conf/constants.inc similarity index 100% rename from src/vitis/vas/rest/conf/constants.inc rename to vas/rest/conf/constants.inc diff --git a/src/vitis/vas/rest/conf/php_conf.inc b/vas/rest/conf/php_conf.inc similarity index 100% rename from src/vitis/vas/rest/conf/php_conf.inc rename to vas/rest/conf/php_conf.inc diff --git a/src/vitis/vas/rest/conf/properties.inc b/vas/rest/conf/properties.inc similarity index 100% rename from src/vitis/vas/rest/conf/properties.inc rename to vas/rest/conf/properties.inc diff --git a/src/vitis/vas/rest/conf/properties_domain.inc b/vas/rest/conf/properties_domain.inc similarity index 100% rename from src/vitis/vas/rest/conf/properties_domain.inc rename to vas/rest/conf/properties_domain.inc diff --git a/src/vitis/vas/rest/conf/properties_post.inc b/vas/rest/conf/properties_post.inc similarity index 100% rename from src/vitis/vas/rest/conf/properties_post.inc rename to vas/rest/conf/properties_post.inc diff --git a/src/vitis/vas/rest/conf/properties_server.inc b/vas/rest/conf/properties_server.inc similarity index 100% rename from src/vitis/vas/rest/conf/properties_server.inc rename to vas/rest/conf/properties_server.inc diff --git a/src/vitis/vas/rest/conf/selected_properties.inc b/vas/rest/conf/selected_properties.inc similarity index 100% rename from src/vitis/vas/rest/conf/selected_properties.inc rename to vas/rest/conf/selected_properties.inc diff --git a/src/vitis/vas/rest/conf/version.inc b/vas/rest/conf/version.inc similarity index 100% rename from src/vitis/vas/rest/conf/version.inc rename to vas/rest/conf/version.inc diff --git a/src/vitis/vas/rest/inc/MetadataAccess.class.inc b/vas/rest/inc/MetadataAccess.class.inc similarity index 100% rename from src/vitis/vas/rest/inc/MetadataAccess.class.inc rename to vas/rest/inc/MetadataAccess.class.inc diff --git a/src/vitis/vas/rest/inc/MetadataAccess.sql.inc b/vas/rest/inc/MetadataAccess.sql.inc similarity index 100% rename from src/vitis/vas/rest/inc/MetadataAccess.sql.inc rename to vas/rest/inc/MetadataAccess.sql.inc diff --git a/src/vitis/vas/rest/index.phtml b/vas/rest/index.phtml similarity index 100% rename from src/vitis/vas/rest/index.phtml rename to vas/rest/index.phtml diff --git a/src/vitis/vas/rest/index.vhtml b/vas/rest/index.vhtml similarity index 100% rename from src/vitis/vas/rest/index.vhtml rename to vas/rest/index.vhtml diff --git a/src/vitis/vas/rest/ws/vitis/Accounts.class.inc b/vas/rest/ws/vitis/Accounts.class.inc similarity index 100% rename from src/vitis/vas/rest/ws/vitis/Accounts.class.inc rename to vas/rest/ws/vitis/Accounts.class.inc diff --git a/src/module_extraction/storage/Accounts.class.mail.inc b/vas/rest/ws/vitis/Accounts.class.mail.inc old mode 100644 new mode 100755 similarity index 98% rename from src/module_extraction/storage/Accounts.class.mail.inc rename to vas/rest/ws/vitis/Accounts.class.mail.inc index bb977fdd..ff03a074 --- a/src/module_extraction/storage/Accounts.class.mail.inc +++ b/vas/rest/ws/vitis/Accounts.class.mail.inc @@ -1,622 +1,617 @@ -<?php - -$aMail["newUserTitle"] = "Un nouvel utilisateur vient juste de s'inscrire"; -$aMail["newUserTitleAutomated"] = "Vérification de votre adresse mail"; -$aMail["newUserBody"] = '<!-- 1 Column Text + Button : BEGIN --> - <tr> - <td bgcolor="#ffffff" style="padding: 0px; text-align: center;background-color:#8c8c8c; height:50px; margin-bottom:10px;"> - <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #FFFFFF; font-weight: normal;">[TITLE]</h1> - </td> - </tr> - <tr> - <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; font-size: 15px; line-height: 20px; color: #000000; text-align: center;"> - <p style="width:100%; font-weight:bold; text-align: justify; font-size: 20px;">Bonjour [FULLNAME],</p> - <p style="width:100%; text-align: left;font-size: 18px;">Nous vous remercions d\'avoir créé votre compte sur <b>[HOSTNAME]</b>.</p> - <p style="width:100%; text-align: left;font-size: 18px;"><b>Informations sur votre compte :</b></p> - <p style="width:100%; text-align: left;font-size: 18px;">Identifiant : [USERNAME]</p> - <p style="width:100%; text-align: left;font-size: 18px;">Organisme : [COMPANY] </p> - <p style="width:100%; text-align: left;font-size: 18px;">Mail : [MAIL]</p> - <p style="width:100%; text-align: left;font-size: 18px;">Téléphone : [PHONE] </p> - <p style="width:100%; text-align: left;font-size: 18px;">Ip publique fixe : [PUBLIC_IP] </p> - <p style="width:100%; text-align: left;font-size: 18px;">Nom du demandeur : [DEMANDEUR] </p> - <p style="width:100%; text-align: left;font-size: 18px;">Adresse mail du demandeur : [MAIL_DEMANDEUR] </p> - <p style="width:100%; text-align: left;font-size: 18px;">Objet de l\'étude : [STUDY_OBJECT] </p> - <p style="width:100%; text-align: left;font-size: 18px;margin-top: 20px;">Cliquez sur le bouton ci-dessous pour finaliser votre inscription :</p> - </td> - </tr> - <tr> - <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; font-size: 20px; line-height: 20px; color: #555555;"> - <table role="presentation" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" style="margin: auto"> - <tr> - <td style="border-radius: 3px; background: #5cb85c; text-align: center;" class="button-td"> - <a href="[URL]" style="background: #5cb85c; border: 15px solid #5cb85c; font-family: sans-serif; font-size: 18px; line-height: 1.1; text-align: center; text-decoration: none; display: block; border-radius: 0px; font-weight: bold;" class="button-a"> - <span style="color:#ffffff;">Je confirme mon adresse mail</span> - </a> - </td> - </tr> - </table> - <!-- Button : END --> - </td> - </tr> - <tr> - <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; line-height: 20px; color: #000000; text-align: center;"> - <p style="width:100%; text-align: justify;font-size: 18px;">Si vous ne vous êtes pas inscrit(e) sur notre application <b>[HOSTNAME]</b>, ignorez simplement ce message.</p> - </td> - </tr> - <!-- 1 Column Text + Button : END -->'; - -$aMail["confirmationSignUpTitle"] = "Confirmation d'inscription"; -$aMail["genericBody"] = ' - <tr> - <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;"> - <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">[MESSAGE]</h1> - </td> - </tr>'; - -$aMail["SignUpOk"] = '<tr> - <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;"> - <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">L\'utilisateur a été ajouté, connectez vous sur la base de données pour lui donner des droits (Defaut: [ROLES])</h1> - </td> - </tr>'; -$aMail["SignUpError"] = '<tr> - <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;"> - <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">L\'utilisateur n\'a pas pu être ajouté consultez les fichiers de log pour plus d\'informations</h1> - </td> - </tr>'; - -$aMail["signUpConfirmation"] = '<tr> - <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;"> - <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal; margin-bottom: 15px;">Votre compte est maintenant activé, vous pouvez vous connecter. Pour avoir accès à plus de fonctionnalités contactez l\'administrateur</h1> - <a style="margin: 0; font-family: sans-serif; font-size: 22px; font-weight: normal;" href="[REDIRECTION]"> Retourner vers l\'application </a> - </td> - </tr>'; -$aMail["fpwdTitle"] = "Changez votre mot de passe"; -$aMail["fpwdUpdateOk"] = '<tr> - <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;"> - <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">Le mot de passe a été mis à jour</h1> - </td> - </tr>'; -$aMail["fpwdUpdateError"] = '<tr> - <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;"> - <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">Le mot de passe n\'a pas pu être mis à jour</h1> - </td> - </tr>'; -$aMail["alreadyUpdate"] = '<tr> - <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;"> - <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">Le mot de passe à déjà été changé</h1> - </td> - </tr>'; - -$aMail["fpwdBody"] = '<!-- 1 Column Text + Button : BEGIN --> - <tr> - <td bgcolor="#ffffff" style="padding: 0px; text-align: center;background-color:#8c8c8c; height:50px; margin-bottom:10px;"> - <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #FFFFFF; font-weight: normal;">Changez votre mot de passe</h1> - </td> - </tr> - <tr> - <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; font-size: 15px; line-height: 20px; color: #000000; text-align: center;"> - <p style="width:100%; font-weight:bold; text-align: left; font-size: 20px;">Bonjour [LOGIN],</p> - <p style="width:100%; text-align: left;font-size: 18px;">Une tentative de récupération de votre compte à été effectué sur le site <b>[HOSTNAME]</b>.</p> - <p style="width:100%; text-align: left;font-size: 18px;margin-top: 10px;">Cliquez sur le bouton ci-dessous pour changer votre mot de passe :</p> - </td> - </tr> - <tr> - <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; font-size: 15px; line-height: 20px; color: #555555;"> - <table role="presentation" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" style="margin: auto"> - <tr> - <td style="border-radius: 3px; background: #5cb85c; text-align: center;" class="button-td"> - <a href="[URL]" style="background: #5cb85c; border: 15px solid #5cb85c; font-family: sans-serif; font-size: 18px; line-height: 1.1; text-align: center; text-decoration: none; display: block; border-radius: 0px; font-weight: bold;" class="button-a"> - <span style="color:#ffffff;">Changer mon mot de passe</span> - </a> - </td> - </tr> - </table> - <!-- Button : END --> - </td> - </tr> - <tr> - <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; line-height: 20px; color: #000000; text-align: center;"> - <p style="width:100%; text-align: justify;font-size: 18px;">Si vous n\'avez pas perdu votre mot de passe pour vous connecter à notre application <b>[HOSTNAME]</b>, ignorez simplement ce message.</p> - </td> - </tr> - <!-- 1 Column Text + Button : END -->'; - -$aMail["fpwdForm"] = '<!-- 1 Column Text + Button : BEGIN --> - <tr> - <td bgcolor="#ffffff" style="padding: 0px; text-align: center;background-color:#8c8c8c; height:50px; margin-bottom:10px;"> - <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #FFFFFF; font-weight: normal;">Saisissez votre nouveau mot de passe</h1> - </td> - </tr> - <tr> - <td bgcolor="#ffffff" style="padding: 20px 40px 40px; font-family: sans-serif; font-size: 15px; line-height: 20px; color: #555555; text-align: center;"> - <form style="text-align:-webkit-right;"> - <div style="text-align:left;"> - <label for="password" style="font-weight: bold;">Nouveau mot de passe</label> - <input type="password" id="password" name="password" class="input-text-control" required/> - </div> - <div style="text-align:left;margin-top:10px;"> - <label for="password_confirm" style="font-weight: bold;">Confirmer votre nouveau mot de passe</label> - <input type="password" id="password_confirm" name="password_confirm" class="input-text-control" required/> - </div> - <div style="margin-top:20px;"> - <input type="hidden" name="token" value="[TOKEN]"/> - <input type="hidden" name="output" value="text/html"/> - <button style="background: #5cb85c; border: 15px solid #5cb85c; font-family: sans-serif; font-size: 15px; line-height: 1.1; text-align: center; text-decoration: none; display: block; border-radius: 0px; font-weight: bold;" class="button-a" type="button" onclick="sendRequest(\'[URL]\')"><span style="color:#ffffff;">Envoi</span></button> - </div> - </form> - </td> - </tr>'; - -$aMail["passwordScript"] = '<script> - var password = document.getElementById("password"), confirm_password = document.getElementById("password_confirm"); - - function validatePassword(){ - if(password.value != confirm_password.value) { - confirm_password.setCustomValidity("Les deux mots de passe doivent être identique"); - } else { - confirm_password.setCustomValidity(\'\'); - } - } - - password.onchange = validatePassword; - confirm_password.onkeyup = validatePassword; - - function sendRequest (sUrl){ - if(typeof(password.value)!== "undefined"){ - if(password.value != ""){ - var xhr = new XMLHttpRequest(); - xhr.open("PUT", sUrl); - sParams = JSON.stringify({"password": password.value}); - xhr.onreadystatechange = function (aEvt) { - if (xhr.readyState == 4) { - if (xhr.status == 200) { - var oJson = JSON.parse(xhr.responseText); - window.location.replace(oJson.sUrl); - } else { - //xhr.responseText; - } - } - } - xhr.send(sParams); - }else{console.log("saisissez un mot de passe2")} - }else{console.log("saisissez un mot de passe")} - } - </script>'; - -$aMail["mainBody"] = '<!DOCTYPE html> -<html lang="en"> -<head> - <meta charset="utf-8"> <!-- utf-8 works for most cases --> - <meta name="viewport" content="width=device-width"> <!-- Forcing initial-scale shouldn\'t be necessary --> - <meta http-equiv="X-UA-Compatible" content="IE=edge"> <!-- Use the latest (edge) version of IE rendering engine --> - <meta name="x-apple-disable-message-reformatting"> <!-- Disable auto-scale in iOS 10 Mail entirely --> - <title>VAM</title> <!-- The title tag shows in email notifications, like Android 4.4. --> - <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"> - <!-- Web Font / @font-face : BEGIN --> - <!-- NOTE: If web fonts are not required, lines 10 - 27 can be safely removed. --> - - <!-- Desktop Outlook chokes on web font references and defaults to Times New Roman, so we force a safe fallback font. --> - <!--[if mso]> - <style> - * { - font-family: sans-serif !important; - } - </style> - <![endif]--> - - <!-- All other clients get the webfont reference; some will render the font and others will silently fail to the fallbacks. More on that here: http://stylecampaign.com/blog/2015/02/webfont-support-in-email/ --> - <!--[if !mso]><!--> - <!-- insert web font reference, eg: <link href="https://fonts.googleapis.com/css?family=Roboto:400,700" rel="stylesheet" type="text/css"> --> - <!--<![endif]--> - - <!-- Web Font / @font-face : END --> - - <!-- CSS Reset --> - <style> - - /* What it does: Remove spaces around the email design added by some email clients. */ - /* Beware: It can remove the padding / margin and add a background color to the compose a reply window. */ - html, - body { - margin: 0 auto !important; - padding: 0 !important; - height: 100% !important; - width: 100% !important; - /*min-width: 600px;*/ - } - - /* What it does: Stops email clients resizing small text. */ - * { - -ms-text-size-adjust: 100%; - -webkit-text-size-adjust: 100%; -} - -/* What it does: Centers email on Android 4.4 */ -div[style*="margin: 16px 0"] { - margin:0 !important; -} - -/* What it does: Stops Outlook from adding extra spacing to tables. */ -table, -td { - mso-table-lspace: 0pt !important; - mso-table-rspace: 0pt !important; -} - -/* What it does: Fixes webkit padding issue. Fix for Yahoo mail table alignment bug. Applies table-layout to the first 2 tables then removes for anything nested deeper. */ -table { - border-spacing: 0 !important; - border-collapse: collapse !important; - table-layout: fixed !important; - margin: 0 auto !important; -} -table table table { - table-layout: auto; -} - -/* What it does: Uses a better rendering method when resizing images in IE. */ -img { - -ms-interpolation-mode:bicubic; -} - -/* What it does: A work-around for iOS meddling in triggered links. */ -*[x-apple-data-detectors] { - color: inherit !important; - text-decoration: none !important; -} - -/* What it does: A work-around for Gmail meddling in triggered links. */ -.x-gmail-data-detectors, -.x-gmail-data-detectors *, -.aBn { - border-bottom: 0 !important; - //cursor: default !important; -} - -/* What it does: Prevents Gmail from displaying an download button on large, non-linked images. */ -.a6S { - display: none !important; - opacity: 0.01 !important; -} -/* If the above doesn\'t work, add a .g-img class to any image in question. */ -img.g-img + div { - display:none !important; -} - -/* What it does: Prevents underlining the button text in Windows 10 */ -.button-link { - text-decoration: none !important; -} - -blockquote { - font-style:normal; - text-align:left; - //margin-left: 32px!important; - margin: 5px 5px 0px 32px!important; - //padding-top:10px; - //font-family:"Segoe Print","Times New Roman", Verdana; - padding-left: 7px; - min-height: 30px; - //background-color: #EFEFEF; - border-left: 2px solid #8c8c8c; -} - -blockquote > p { - margin:4.5px; -} - -.input-text-control{ - display: block; - width: 100%; - height: 14px; - padding: 4px 5px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; - color: #555; - background-color: #fff; - background-image: none; - border: 1px solid #ccc; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075); - box-shadow: inset 0 1px 1px rgba(0,0,0,.075); - -webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s; - -o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; - transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; -} - -/* What it does: Removes right gutter in Gmail iOS app: https://github.com/TedGoas/Cerberus/issues/89 */ -/* Create one of these media queries for each additional viewport size you\'d like to fix */ -/* Thanks to Eric Lepetit (@ericlepetitsf) for help troubleshooting */ -@media only screen and (min-device-width: 375px) and (max-device-width: 413px) { /* iPhone 6 and 6+ */ - .email-container { - min-width: 375px !important; - } -} - -</style> - -<!-- What it does: Makes background images in 72ppi Outlook render at correct size. --> - <!--[if gte mso 9]> - <xml> - <o:OfficeDocumentSettings> - <o:AllowPNG/> - <o:PixelsPerInch>96</o:PixelsPerInch> - </o:OfficeDocumentSettings> - </xml> -<![endif]--> - -<!-- Progressive Enhancements --> -<style> - -/* What it does: Hover styles for buttons */ -.button-td, -.button-a { - transition: all 100ms ease-in; -} -.button-td:hover, -.button-a:hover { - background: #449D44 !important; - border-color: #449D44 !important; -} - -.bottom-strip{ - width: 120px !important; - height: 10px !important; - float: left !important; -} - -.square-logo-layout{ - width: 40px; - float: left !important; - background-color: #FFF;//#24292E; - border-radius: 50%; - font-size: 30px; - padding: 7.5px; - margin-right: 0px; - //color: #FFF; - cursor:pointer !important; -} - -.square-logo-layout > svg{ - cursor:pointer!important; -} - - -/* Media Queries */ -@media screen and (max-width: 600px) { - - .email-container { - width: 100% !important; - margin: auto !important; - } - - /* What it does: Forces elements to resize to the full width of their container. Useful for resizing images beyond their max-width. */ - .fluid { - max-width: 100% !important; - height: auto !important; - margin-left: auto !important; - margin-right: auto !important; - } - - /* What it does: Forces table cells into full-width rows. */ - .stack-column, - .stack-column-center { - display: block !important; - width: 100% !important; - max-width: 100% !important; - direction: ltr !important; - } - /* And center justify these ones. */ - .stack-column-center { - text-align: center !important; - } - - /* What it does: Generic utility class for centering. Useful for images, buttons, and nested tables. */ - .center-on-narrow { - text-align: center !important; - display: block !important; - margin-left: auto !important; - margin-right: auto !important; - float: none !important; - } - table.center-on-narrow { - display: inline-block !important; - } - - .input-text-control{ - display: block; - width: 100%; - height: 14px; - padding: 4px 5px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; - color: #555; - background-color: #fff; - background-image: none; - border: 1px solid #ccc; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075); - box-shadow: inset 0 1px 1px rgba(0,0,0,.075); - -webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s; - -o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; - transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; - } - - /* What it does: Adjust typography on small screens to improve readability */ - .email-container p { - font-size: 17px !important; - line-height: 22px !important; - } - -} - -</style> - -</head> -<body width="100%" bgcolor="#E5E5E5" style="margin: 0px; mso-line-height-rule: exactly;"> - <center style="width: 600px; margin: auto; background: #FFFFFF; text-align: left;"> - <!-- Email Header : BEGIN --> - <table role="presentation" aria-hidden="true" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" width="600" style="margin: auto;" class="email-container"> - <tr> - <td style="padding: 20px 0px; text-align: center"> - <a href="http://www.veremes.com/" target="_blank"> - <svg version="1.1" id="Calque_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="335px" height="100px" viewBox="0 0 335 100" enable-background="new 0 0 335 100" xml:space="preserve"> - <g> - <rect fill="#FFFFFF" width="335" height="100"/> - <g> - <path fill="#1A171B" d="M308.774,60.788c-0.99-1.493-2.537-2.688-4.64-3.589c-0.533-0.224-1.577-0.57-3.142-1.042 - c-1.563-0.47-2.75-0.959-3.567-1.472c-0.893-0.547-1.532-1.161-1.916-1.841c-0.386-0.682-0.577-1.517-0.577-2.511 - c0-1.4,0.466-2.572,1.398-3.516c0.933-0.944,2.098-1.417,3.498-1.417c1.561,0,2.793,0.437,3.695,1.308 - c0.901,0.873,1.402,2.1,1.505,3.681h4.622c-0.12-2.909-1.026-5.178-2.72-6.806c-1.69-1.626-3.972-2.439-6.845-2.439 - c-2.71,0-5.016,0.916-6.921,2.744c-1.904,1.831-2.856,4.057-2.856,6.678c0,2.319,0.569,4.168,1.714,5.551 - c1.143,1.383,3.582,2.734,7.318,4.056c2.334,0.858,3.947,1.775,4.838,2.754c0.891,0.98,1.336,2.274,1.336,3.884 - c0,1.612-0.561,2.947-1.682,4.007c-1.121,1.063-2.526,1.592-4.219,1.592c-1.772,0-3.262-0.69-4.463-2.071 - c-1.202-1.379-1.802-3.12-1.802-5.228v-0.122h-4.502c0.103,3.535,1.114,6.344,3.039,8.431c1.922,2.085,4.466,3.127,7.637,3.127 - c3.108,0,5.674-0.952,7.698-2.853c2.025-1.899,3.038-4.301,3.038-7.205C310.261,64.182,309.764,62.279,308.774,60.788z - M118.462,41.021c-5.17,0-9.417,1.679-12.739,5.035c-3.32,3.357-4.979,7.607-4.979,12.742c0,4.912,1.693,9.118,5.084,12.617 - c3.389,3.502,7.535,5.252,12.438,5.252c3.694,0,6.947-0.998,9.756-2.988c2.808-1.994,4.988-4.849,6.542-8.569h-4.866 - c-1.103,2.332-2.666,4.151-4.688,5.459c-2.023,1.308-4.302,1.962-6.834,1.962c-3.575,0-6.558-1.131-8.947-3.394 - c-2.391-2.263-3.718-5.226-3.983-8.894h30.413v-0.318c0-5.604-1.601-10.154-4.797-13.655 - C127.662,42.771,123.529,41.021,118.462,41.021z M105.366,56.472c0.509-3.468,1.901-6.219,4.17-8.258 - c2.27-2.037,5.04-3.056,8.313-3.056c3.517,0,6.368,0.948,8.556,2.844c2.188,1.897,3.692,4.719,4.509,8.47H105.366z M99.054,31.046 - L84.898,69.101L72.402,35.38l0.007-0.047l-0.079-0.217c-0.401-1.095-0.841-2.3-1.34-3.546l-0.194-0.523h-0.021 - c-2.108-5.143-5.249-10.879-10.817-12.957c-5.541-2.069-12.762-0.675-17.169,3.314c-3.422,3.096-5.471,7.843-6.089,14.111 - c0-0.002-0.117,1.154-0.117,1.154c-0.239,2.31-0.481,4.665-0.354,7.034l0.047,0.874l0.875-0.048l2.31-0.124l0.876-0.046 - l-0.049-0.876c-0.113-2.069,0.115-4.268,0.335-6.396c0-0.001,0.12-1.172,0.12-1.172c0.517-5.235,2.121-9.103,4.771-11.499 - c3.349-3.03,8.825-4.09,13.024-2.522c4.294,1.604,6.994,6.964,8.88,11.717l1.387,3.688l0.208,0.57l0.005-0.004L83.24,75.692h3.407 - l16.788-44.646H99.054z M268.755,41.021c-5.171,0-9.418,1.679-12.738,5.035c-3.32,3.357-4.979,7.607-4.979,12.742 - c0,4.912,1.692,9.118,5.084,12.617c3.389,3.502,7.535,5.252,12.438,5.252c3.695,0,6.947-0.998,9.758-2.988 - c2.807-1.994,4.986-4.849,6.54-8.569h-4.866c-1.102,2.332-2.666,4.151-4.688,5.459c-2.022,1.308-4.302,1.962-6.835,1.962 - c-3.574,0-6.557-1.131-8.945-3.394c-2.392-2.263-3.72-5.226-3.984-8.894h30.415v-0.318c0-5.604-1.603-10.154-4.8-13.655 - C277.955,42.771,273.821,41.021,268.755,41.021z M255.658,56.472c0.51-3.468,1.901-6.219,4.171-8.258 - c2.27-2.037,5.039-3.056,8.314-3.056c3.516,0,6.367,0.948,8.555,2.844c2.187,1.897,3.692,4.719,4.509,8.47H255.658z - M148.164,42.625c-1.253,0.705-2.409,1.808-3.465,3.315v-3.946h-4.074v33.698h4.379V55.395c0-3.099,0.583-5.334,1.754-6.711 - c1.17-1.376,3.11-2.187,5.821-2.431l-0.032-4.744C150.878,41.549,149.417,41.922,148.164,42.625z M172.22,41.021 - c-5.171,0-9.418,1.679-12.738,5.035c-3.321,3.357-4.981,7.607-4.981,12.742c0,4.912,1.694,9.118,5.085,12.617 - c3.389,3.502,7.535,5.252,12.438,5.252c3.695,0,6.947-0.998,9.757-2.988c2.808-1.994,4.988-4.849,6.541-8.569h-4.866 - c-1.102,2.332-2.665,4.151-4.688,5.459c-2.023,1.308-4.303,1.962-6.834,1.962c-3.574,0-6.557-1.131-8.947-3.394 - c-2.391-2.263-3.718-5.226-3.984-8.894h30.414v-0.318c0-5.604-1.6-10.154-4.799-13.655 - C181.419,42.771,177.286,41.021,172.22,41.021z M159.124,56.472c0.51-3.468,1.901-6.219,4.17-8.258 - c2.271-2.037,5.04-3.056,8.313-3.056c3.517,0,6.369,0.948,8.556,2.844c2.188,1.897,3.692,4.719,4.51,8.47H159.124z - M232.864,41.264c-2.51,0-4.779,0.509-6.809,1.518c-2.03,1.012-3.73,2.49-5.097,4.43c-1.106-1.818-2.712-3.264-4.82-4.338 - c-2.108-1.072-4.441-1.61-7-1.61c-2.212,0-4.191,0.379-5.941,1.134c-1.748,0.756-3.27,1.88-4.558,3.372v-3.776h-4.258v33.698 - h4.258V59.274c0-2.927,0.105-4.978,0.321-6.154c0.215-1.177,0.586-2.227,1.119-3.147c0.856-1.473,2.026-2.604,3.509-3.391 - c1.481-0.787,3.203-1.182,5.165-1.182c3.248,0,5.66,0.926,7.233,2.777c1.573,1.852,2.36,4.722,2.36,8.61v18.905h4.136V59.274 - c0-2.927,0.112-4.978,0.338-6.154c0.223-1.177,0.59-2.227,1.1-3.147c0.854-1.473,2.012-2.604,3.467-3.391 - c1.457-0.787,3.143-1.182,5.06-1.182c3.318,0,5.711,0.947,7.178,2.84c1.469,1.894,2.202,5.07,2.202,9.529v17.923h4.137V58.658 - c0-6.093-1.043-10.516-3.122-13.268C240.76,42.64,237.436,41.264,232.864,41.264z"/> - <g> - <path fill="#1A171B" d="M36.791,43.727c4.5,3.508,3.856-8.518,5.095-10.445c-0.251,0.39,1.045-0.227,1.359-0.68 - c0.714-1.033,0.78-1.304,1.783-0.467c0.685,0.57,4.073-2.156,5.011-2.76c-0.206-0.223,0.68,1.338,0.68,0.764 - c0,4.354-0.253,0.671,2.42,1.401c1.206,0.329,2.179-0.847,3.269,0.893c-0.283,0.31-0.566,0.621-0.849,0.933 - c4.111,1.071,3.139,4.072,7.134,6.029c-1.239,0.545-2.304,1.363-2.463,2.803c1.169,0.267,2.366,0.422,3.566,0.424 - c-0.34,0.311-0.679,0.622-1.02,0.934c2.158,0.346,2.307,2.235,4.671,1.699c-0.891,1.669-4.83,4.51-1.274,5.094 - c-0.198,0.085-0.396,0.171-0.594,0.255c0.745,0.477,1.172,1.362,1.868,1.868c-0.946,0.11-1.794,0.679-2.802,0.68 - c0.04,1.611,1.581,1.87,2.717,2.124c-2.577,1.72,0.311,0.894,0.722,2.122c-0.165-0.493,1.154,1.254,0.807,0.977 - c-0.173-0.139-1.318,0.596-0.807,1.062c0.174,0.158,4.875,0.583,1.98,1.482c-1.714,0.534-4.447,0.456-3.679,2.763 - c-1.174-0.126-1.886,0.235-2.845-0.083c0.154,0.687-0.067,0.846,0.213,1.442c-1.335,0.382-2.595-0.269-3.695-1.061 - c-0.042,0.268-0.084,0.537-0.127,0.806c-0.368-0.325-0.736-0.649-1.104-0.976c0.016,0.536-0.255,1.096-0.212,1.656 - c-0.877-0.677-5.258-4.209-2.972-1.189c0.905,1.195,1.842,1.439,2.93,2.463c-1.363,0.366-0.2,5.027,1.91,4.627 - c-1.045,1.709-3.151-0.414-4.289,1.828c1.419,0.304,0.683,0.515,1.826,1.146c-0.596-0.139-1.35,0.109-1.996-0.043 - c0.058,0.606,1.302,2.911,1.104,3.185c-0.761,1.05-2.778-1.146-3.949-1.146c-0.209,0.18-0.252,0.392-0.126,0.636 - c1.264,0.254,0.742,0.52,0.976,1.698c-2.448-0.878-0.467,0.231-0.467,1.104c0,3.686-2.677-0.092-2.548,2.505 - c-0.269-0.014-0.537-0.027-0.806-0.041c0.263,2.893-2.243-0.257-2.845,3.056c0.048,0.018-3.298-0.522-3.333-0.488 - c-1.136,1.135-1.402-0.027-2.174,0.598c-1.87,1.514-1.024-1.807-1.552-1.998c-0.694-0.253-2.246,1.984-2.455,0.573 - c-0.207-1.396-0.55-3.131-1.463-1.656c-0.954-0.37-3.546,0.314-3.842-0.572c-0.223-0.67-2.252-3.619-0.871-4.078 - c-0.407,0.137-1.347,0.543-1.719,0.765c0.857-2.833-1.515-2.188-3.185-1.146c0.104-1.69,0.899-3.521-1.083-3.247 - c0.293-0.662,0.337-1.645,0.828-2.356c-0.382,0.084-0.764,0.17-1.146,0.254c0.059-0.477,4.984-10.382,5.223-10.382 - c-0.199-0.062-0.369-0.169-0.51-0.318c-1.236,3.129-3.048,5.804-5.095,8.534c0.046-0.52-0.061-1.008-0.318-1.464 - c-0.23,0-1.983,2.339-2.548,2.61c0-0.253,0-0.509,0-0.763c-0.231,0.366-1.444,2.675-1.783,2.675c-0.329,0,0.481-1.796-0.51-1.467 - c-0.944,0.315-1.458,0.54-2.292,0.701c0.99-1.181,1.719-2.432-0.446-1.783c0.204-0.955-0.191-1.231-0.191-1.974 - c-0.159,0.41-0.393,0.771-0.7,1.084c-0.23-1.254-0.242-6.138-0.383-6.138c-1.46,0,0.123-2.937,0.341-3.312 - c-0.17-0.142-0.341-0.282-0.51-0.425c0.05,1.16-0.433,1.305-0.764,2.293c-1.08-1.767,1.521-3.314-0.764-3.99 - c0.311-0.256,0.623-0.51,0.934-0.765c-0.199-0.198-0.396-0.396-0.595-0.595c-0.269,0.61-0.729,1.216-1.02,1.783 - c-0.154-0.479,0.034-2.888,0.51-2.888c-0.313-0.017-0.624-0.044-0.935-0.084c0.723-0.973,0.495-1.264,1.444-1.699 - c-0.17-0.51-0.339-1.019-0.509-1.529c0.17,0.058,0.339,0.114,0.509,0.171c0.149,0.083-0.41-0.829-0.68-0.424 - c0.503-0.754,1.123-1.223,1.868-1.614c-0.283-0.17-0.566-0.34-0.849-0.51c0.664-0.432,1.176-1.357,2.038-1.698 - c-0.566-1.104-0.674-1.464-1.868-1.784c-0.033-2.104,1.163-9.234,2.717-8.407c-0.049-0.578-0.062-0.699,0.509-0.765 - c-0.087-1.145-0.637-0.797,0.595-1.104c-0.979-4.102,1.847-2.083,3.651-1.104c0-0.341,0-0.68,0-1.02 - c0.534,0.116,1.853,0.641,2.177,0.085c0.109-0.188-0.92-0.513-1.073-0.594c1.126-0.569,0.975-1.844,0.17-3.143 - c1.503,0.075,3.008,0.738,3.482-0.594c0.613,0.591,1.188,0.584,1.697,1.358c0.284-0.481,0.566-0.963,0.85-1.443 - c0.53,0.646,1.549,2.504,2.59,1.983c0.223-0.111,1.486,0.661,1.486,0.394c0-1.159,0.588-2.121,1.529-2.717 - C35.584,34.716,35.005,38.027,36.791,43.727"/> - </g> - </g> - </g> - </svg> - </a> - </td> - </tr> -</table> -<!-- Email Header : END --> - -<!-- Email Body : BEGIN --> -<table role="presentation" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" width="600" style="margin: auto;" class="email-container"> - - [CONTENT] - -</table> -<!-- Email Body : END --> - -<!-- Email Footer : BEGIN --> -<table role="presentation" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" width="600" style="margin: auto;" class="email-container"> - <tr> - <td style="padding: 0px;width: 100%;" class="x-gmail-data-detectors"> - <div class="bottom-strip" style="background-color: #39468A;"></div> - <div class="bottom-strip" style="background-color: #E74F23;"></div> - <div class="bottom-strip" style="background-color: #923288;"></div> - <div class="bottom-strip" style="background-color: #1C9DB2;"></div> - <div class="bottom-strip" style="background-color: #E10759;"></div> - </td> - </tr> -</table> -<table role="presentation" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" width="600" style="margin: auto;" class="email-container"> - <tr> - <td style="padding: 10px;width: 50%;font-size: 12px; font-family: sans-serif; line-height:18px; text-align: center; color: #888888; cursor:pointer;" class="x-gmail-data-detectors"> - <a class="square-logo-layout" href="https://twitter.com/Veremes_Info" target="_blank" style="color: #24292E; cursor:pointer;"> - <!--<i class="fa fa-twitter" style=""></i>--> - <svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" style="fill: currentColor; cursor:pointer;"> - <title>Twitter</title> - <path d="M50,0a50,50,0,1,0,50,50A50,50,0,0,0,50,0ZM75.28,37c0,.56,0,1.12,0,1.68C75.32,56,62.2,75.83,38.21,75.83h0a37,37,0,0,1-20-5.86,24.62,24.62,0,0,0,3.11.18,26.13,26.13,0,0,0,16.2-5.58,13,13,0,0,1-12.18-9.06,12.34,12.34,0,0,0,2.45.24,13,13,0,0,0,3.44-.46A13,13,0,0,1,20.77,42.5v-.16A13.11,13.11,0,0,0,26.68,44a13.05,13.05,0,0,1-4-17.42A37,37,0,0,0,49.52,40.18a13.19,13.19,0,0,1-.34-3,13.05,13.05,0,0,1,22.57-8.92A26.11,26.11,0,0,0,80,25.12a13.08,13.08,0,0,1-5.73,7.22,26.23,26.23,0,0,0,7.49-2.06A26.49,26.49,0,0,1,75.28,37Z"/> - </svg> - </a> - <a class="square-logo-layout" href="https://www.linkedin.com/company/veremes/" target="_blank" style="color: #24292E; cursor:pointer;"> - <!--<i class="fa fa-linkedin" style=""></i>--> - <svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" style="fill: currentColor; cursor:pointer;"> - <title>LinkedIn</title> - <path d="M50,0a50,50,0,1,0,50,50A50,50,0,0,0,50,0ZM60.71,51a6.48,6.48,0,0,0-6.33,6.32V79.68H41.74V41.74H54.38v5a13.63,13.63,0,0,1,10.54-5.9A15,15,0,0,1,79.68,55.65v24H67V57.33A6.48,6.48,0,0,0,60.71,51ZM27,34.57A7.59,7.59,0,1,1,34.57,27,7.55,7.55,0,0,1,27,34.57Zm6.32,7.17V79.68H20.66V41.74Z"/> - </svg> - </a> - <a class="square-logo-layout" href="http://vm09.veremes.net/" target="_blank" style="color: #24292E; cursor:pointer;"> - <!--<i class="fa fa-github" style=""></i>--> - <svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" style="fill: currentColor; cursor:pointer;"> - <title>GitLab</title> - <path d="M50,0a50,50,0,1,0,50,50A50,50,0,0,0,50,0ZM75.18,15.1a1,1,0,0,1,2,0l9,27.81h-20Zm-52.34,0a1,1,0,0,1,2,0l9,27.81h-20ZM9.85,61A2.63,2.63,0,0,1,8.9,58l4.35-13.4L47.16,88.07Zm4.33-17h20l14.3,44Zm21.19,0H64.63L50,89Zm30.42,0h20L51.49,88ZM90.15,61,52.84,88.07,86.75,44.62,91.1,58A2.63,2.63,0,0,1,90.15,61Z"/> - </svg> - </a> - <a class="square-logo-layout" href="http://www.veremes.com/" target="_blank" style="color: #24292E; cursor:pointer;"> - <!--<i class="fa fa-globe" style=""></i>--> - <svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" style="fill: currentColor; cursor:pointer;"> - <defs> - <style>.cls-1{fill:none;}</style> - </defs> - <title>Veremes</title> - <path class="cls-1" d="M60.17,18.09h0S60.15,18.05,60.17,18.09Z"/> - <path class="cls-1" d="M48.39,26.38c.66-6.65,2.7-11.56,6.06-14.6a11.45,11.45,0,0,1,1.82-1.29A40.5,40.5,0,0,0,50,10l-1,0c-3.18,3.87-5.13,9.17-5.79,15.85l-.15,1.47c-.21,2.06-.42,4.16-.47,6.28-1.35-5.7-.83-9.69-1.1-15.87A4,4,0,0,0,39.6,21.2c0,.34-1.6-.64-1.88-.5-1.33.67-2.62-1.69-3.29-2.51L33.35,20c-.65-1-1.38-1-2.16-1.73-.6,1.69-2.51.85-4.42.76,1,1.65,1.21,3.26-.21,4,.19.1,1.5.51,1.36.75-.41.71-2.09,0-2.77-.11V25c-2.29-1.25-5.88-3.81-4.63,1.4-1.57.39-.87-.05-.76,1.4-.72.09-.71.24-.64,1-2-1.05-3.5,8-3.45,10.68,1.51.4,1.65.86,2.37,2.26-1.1.43-1.75,1.61-2.59,2.16l1.08.64a6,6,0,0,0-2.37,2c.34-.51,1.05.65.86.54l-.65-.22c.22.65.43,1.3.65,2-1.21.55-.92.92-1.83,2.15.39,0,.78.09,1.18.11-.6,0-.84,3.06-.65,3.67.37-.72,1-1.49,1.3-2.27l.75.76-1.18,1c2.9.86-.4,2.82,1,5.06.42-1.25,1-1.43,1-2.91l.65.54c-.28.48-2.29,4.21-.44,4.21.18,0,.2,6.2.49,7.79a4,4,0,0,0,.89-1.38c0,.95.5,1.3.24,2.51,2.75-.82,1.82.76.57,2.26a20.92,20.92,0,0,0,2.91-.89c1.26-.41.23,1.86.64,1.86s2-2.93,2.27-3.39v1c.72-.35,2.94-3.32,3.23-3.32a3.11,3.11,0,0,1,.41,1.86,46.51,46.51,0,0,0,6.47-10.83,1.46,1.46,0,0,0,.65.4c-.31,0-6.56,12.58-6.64,13.18l1.46-.32c-.63.9-.68,2.15-1,3,2.51-.35,1.5,2,1.37,4.13,2.12-1.33,5.14-2.15,4.05,1.45a15.73,15.73,0,0,1,2.18-1c-1.76.58.82,4.33,1.11,5.17.37,1.13,3.66.26,4.87.73,1.16-1.87,1.6.33,1.86,2.11s2.24-1,3.12-.73c.67.24-.4,4.46,2,2.53,1-.79,1.32.68,2.76-.75,0,0,4.29.64,4.23.62.77-4.21,3.94-.21,3.61-3.88l1,0c-.16-3.3,3.24,1.5,3.24-3.18,0-1.11-2.52-2.52.59-1.4-.29-1.5.37-1.84-1.24-2.16a.62.62,0,0,1,.16-.81c1.49,0,4,2.79,5,1.46.25-.35-1.33-3.28-1.4-4,.82.2,1.77-.12,2.53.06-1.45-.8-.52-1.07-2.32-1.46,1.45-2.84,4.12-.15,5.45-2.32C70.78,71.9,69.3,66,71,65.52c-1.38-1.3-2.57-1.61-3.72-3.13-2.9-3.83,2.66.65,3.78,1.51-.06-.71.28-1.42.27-2.1L72.76,63c0-.34.11-.69.16-1,1.4,1,3,1.83,4.69,1.35-.35-.76-.08-1-.27-1.83,1.22.4,2.12-.06,3.61.11-1-2.93,2.5-2.84,4.67-3.51,3.68-1.15-2.29-1.68-2.51-1.88-.65-.6.8-1.53,1-1.35.44.35-1.23-1.87-1-1.24-.52-1.56-4.19-.51-.92-2.7-1.44-.32-3.4-.65-3.45-2.69,1.28,0,2.36-.73,3.56-.87-.89-.64-1.43-1.76-2.37-2.37l.75-.32c-4.51-.74.49-4.35,1.62-6.47-3,.68-3.19-1.72-5.93-2.16l1.29-1.18a20.84,20.84,0,0,1-4.52-.54c.19-1.83,1.55-2.87,3.12-3.56-5.07-2.49-3.84-6.3-9.06-7.66L68.28,22c-1.38-2.21-2.62-.72-4.15-1.13-3.39-.93-3.07,3.75-3.07-1.78,0,.62-.81-.72-.89-1-1.22.8-5.47,4.21-6.34,3.49-1.27-1.06-1.35-.72-2.26.59-.4.58-2,1.36-1.73.87-.9,1.41-1,7.1-2.05,10.79,0-2,.25-4,.45-6Z"/> - <path d="M99.94,47.71l0-.64c0-.61-.08-1.23-.14-1.84,0-.16,0-.31,0-.46-.08-.74-.17-1.47-.28-2.2,0-.19-.06-.38-.1-.57q-.13-.86-.3-1.68l-.12-.64c-.15-.7-.31-1.39-.48-2.08,0-.15-.09-.3-.13-.45-.14-.56-.3-1.11-.46-1.65-.08-.24-.15-.49-.23-.73-.16-.51-.34-1-.52-1.54-.06-.17-.12-.35-.19-.53-.23-.62-.47-1.24-.73-1.85-.11-.27-.22-.53-.34-.8s-.35-.78-.53-1.17l-.38-.81c-.27-.56-.56-1.11-.85-1.66-.16-.3-.33-.59-.49-.88s-.35-.61-.53-.92-.37-.63-.57-.94L92,22.86q-.55-.86-1.14-1.68l-.45-.62c-.25-.35-.51-.69-.77-1-.13-.18-.27-.35-.41-.52q-1.36-1.74-2.9-3.35L86,15.35q-1.66-1.72-3.48-3.29L82.46,12a51.79,51.79,0,0,0-5.4-4h0a49.56,49.56,0,0,0-4.42-2.54h0A49.59,49.59,0,0,0,63.94,2h0c-1.56-.45-3.16-.83-4.78-1.13L58.49.73,57.21.52C56.59.43,56,.35,55.33.29L54.54.21,53,.1l-.73,0C51.51,0,50.76,0,50,0a50,50,0,1,0,50,50C100,49.23,100,48.47,99.94,47.71ZM49.84,23c-.31.49,1.33-.29,1.73-.87.91-1.31,1-1.65,2.26-.59.87.72,5.12-2.69,6.34-3.49,0,0,0-.06,0,0h0c.08.24.89,1.58.89,1,0,5.53-.32.85,3.07,1.78,1.53.41,2.77-1.08,4.15,1.13L67.2,23.14c5.22,1.36,4,5.17,9.06,7.66-1.57.69-2.93,1.73-3.12,3.56a20.84,20.84,0,0,0,4.52.54l-1.29,1.18c2.74.44,2.92,2.84,5.93,2.16-1.13,2.12-6.13,5.73-1.62,6.47l-.75.32c.94.61,1.48,1.73,2.37,2.37-1.2.14-2.28.86-3.56.87.05,2,2,2.37,3.45,2.69-3.27,2.19.4,1.14.92,2.7-.21-.63,1.46,1.59,1,1.24-.22-.18-1.67.75-1,1.35.22.2,6.19.73,2.51,1.88-2.17.67-5.64.58-4.67,3.51-1.49-.17-2.39.29-3.61-.11.19.87-.08,1.07.27,1.83-1.7.48-3.29-.34-4.69-1.35,0,.34-.11.69-.16,1l-1.4-1.24c0,.68-.33,1.39-.27,2.1C70,63,64.41,58.56,67.31,62.39c1.15,1.52,2.34,1.83,3.72,3.13-1.73.46-.25,6.38,2.43,5.87-1.33,2.17-4-.52-5.45,2.32,1.8.39.87.66,2.32,1.46-.76-.18-1.71.14-2.53-.06.07.77,1.65,3.7,1.4,4-1,1.33-3.53-1.46-5-1.46a.62.62,0,0,0-.16.81c1.61.32,1,.66,1.24,2.16-3.11-1.12-.59.29-.59,1.4,0,4.68-3.4-.12-3.24,3.18l-1,0c.33,3.67-2.84-.33-3.61,3.88.06,0-4.19-.67-4.23-.62-1.44,1.43-1.78,0-2.76.75-2.37,1.93-1.3-2.29-2-2.53-.88-.32-2.86,2.52-3.12.73s-.7-4-1.86-2.11c-1.21-.47-4.5.4-4.87-.73-.29-.84-2.87-4.59-1.11-5.17a15.73,15.73,0,0,0-2.18,1c1.09-3.6-1.93-2.78-4.05-1.45.13-2.15,1.14-4.48-1.37-4.13.37-.84.42-2.09,1-3l-1.46.32c.08-.6,6.33-13.18,6.64-13.18a1.46,1.46,0,0,1-.65-.4,46.51,46.51,0,0,1-6.47,10.83A3.11,3.11,0,0,0,28,67.51c-.29,0-2.51,3-3.23,3.32v-1c-.3.46-1.83,3.39-2.27,3.39s.62-2.27-.64-1.86a20.92,20.92,0,0,1-2.91.89c1.25-1.5,2.18-3.08-.57-2.26.26-1.21-.24-1.56-.24-2.51a4,4,0,0,1-.89,1.38c-.29-1.59-.31-7.79-.49-7.79-1.85,0,.16-3.73.44-4.21l-.65-.54c.06,1.48-.55,1.66-1,2.91-1.37-2.24,1.93-4.2-1-5.06l1.18-1L15,52.47c-.34.78-.93,1.55-1.3,2.27-.19-.61,0-3.67.65-3.67-.4,0-.79-.06-1.18-.11.91-1.23.62-1.6,1.83-2.15-.22-.65-.43-1.3-.65-2l.65.22c.19.11-.52-1-.86-.54a6,6,0,0,1,2.37-2l-1.08-.64c.84-.55,1.49-1.73,2.59-2.16-.72-1.4-.86-1.86-2.37-2.26-.05-2.68,1.47-11.73,3.45-10.68-.07-.73-.08-.88.64-1-.11-1.45-.81-1,.76-1.4-1.25-5.21,2.34-2.65,4.63-1.4v-1.3c.68.15,2.36.82,2.77.11.14-.24-1.17-.65-1.36-.75,1.42-.73,1.23-2.34.21-4,1.91.09,3.82.93,4.42-.76C32,19,32.7,19,33.35,20l1.08-1.83c.67.82,2,3.18,3.29,2.51.28-.14,1.88.84,1.88.5a4,4,0,0,1,1.94-3.45c.27,6.18-.25,10.17,1.1,15.87,0-2.12.26-4.22.47-6.28l.15-1.47c.66-6.68,2.61-12,5.79-15.85l1,0a40.5,40.5,0,0,1,6.27.49,11.45,11.45,0,0,0-1.82,1.29c-3.36,3-5.4,8-6.06,14.6l-.15,1.49c-.2,2-.41,4-.45,6C48.82,30.14,48.94,24.45,49.84,23Z"/> - </svg> - </a> - </td> - <td style="padding: 10px;width: 50%;font-size: 20px; font-family: sans-serif; line-height:18px; text-align: center; color: #000000;" class="x-gmail-data-detectors"> - <div style="margin-bottom:10px;">Pour toute question :</div> - <div>support@veremes.com</div> - </td> - </tr> -</table> -<!-- Email Footer : END --> - -</center> -[SCRIPT] -</body> -</html>'; +<?php + +$aMail["newUserTitle"] = "Un nouvel utilisateur vient juste de s'inscrire"; +$aMail["newUserTitleAutomated"] = "Vérification de votre adresse mail"; +$aMail["newUserBody"] = '<!-- 1 Column Text + Button : BEGIN --> + <tr> + <td bgcolor="#ffffff" style="padding: 0px; text-align: center;background-color:#8c8c8c; height:50px; margin-bottom:10px;"> + <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #FFFFFF; font-weight: normal;">[TITLE]</h1> + </td> + </tr> + <tr> + <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; font-size: 15px; line-height: 20px; color: #000000; text-align: center;"> + <p style="width:100%; font-weight:bold; text-align: justify; font-size: 20px;">Bonjour [FULLNAME],</p> + <p style="width:100%; text-align: left;font-size: 18px;">Nous vous remercions d\'avoir créé votre compte sur <b>[HOSTNAME]</b>.</p> + <p style="width:100%; text-align: left;font-size: 18px;"><b>Informations sur votre compte :</b></p> + <p style="width:100%; text-align: left;font-size: 18px;">Identifiant : [USERNAME]</p> + <p style="width:100%; text-align: left;font-size: 18px;">Mail : [MAIL]</p> + <p style="width:100%; text-align: left;font-size: 18px;">Organisme : [COMPANY] </p> + <p style="width:100%; text-align: left;font-size: 18px;margin-top: 20px;">Cliquez sur le bouton ci-dessous pour finaliser votre inscription :</p> + </td> + </tr> + <tr> + <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; font-size: 20px; line-height: 20px; color: #555555;"> + <table role="presentation" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" style="margin: auto"> + <tr> + <td style="border-radius: 3px; background: #5cb85c; text-align: center;" class="button-td"> + <a href="[URL]" style="background: #5cb85c; border: 15px solid #5cb85c; font-family: sans-serif; font-size: 18px; line-height: 1.1; text-align: center; text-decoration: none; display: block; border-radius: 0px; font-weight: bold;" class="button-a"> + <span style="color:#ffffff;">Je confirme mon adresse mail</span> + </a> + </td> + </tr> + </table> + <!-- Button : END --> + </td> + </tr> + <tr> + <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; line-height: 20px; color: #000000; text-align: center;"> + <p style="width:100%; text-align: justify;font-size: 18px;">Si vous ne vous êtes pas inscrit(e) sur notre application <b>[HOSTNAME]</b>, ignorez simplement ce message.</p> + </td> + </tr> + <!-- 1 Column Text + Button : END -->'; + +$aMail["confirmationSignUpTitle"] = "Confirmation d'inscription"; +$aMail["genericBody"] = ' + <tr> + <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;"> + <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">[MESSAGE]</h1> + </td> + </tr>'; + +$aMail["SignUpOk"] = '<tr> + <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;"> + <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">L\'utilisateur a été ajouté, connectez vous sur la base de données pour lui donner des droits (Defaut: [ROLES])</h1> + </td> + </tr>'; +$aMail["SignUpError"] = '<tr> + <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;"> + <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">L\'utilisateur n\'a pas pu être ajouté consultez les fichiers de log pour plus d\'informations</h1> + </td> + </tr>'; + +$aMail["signUpConfirmation"] = '<tr> + <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;"> + <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal; margin-bottom: 15px;">Votre compte est maintenant activé, vous pouvez vous connecter. Pour avoir accès à plus de fonctionnalités contactez l\'administrateur</h1> + <a style="margin: 0; font-family: sans-serif; font-size: 22px; font-weight: normal;" href="[REDIRECTION]"> Retourner vers l\'application </a> + </td> + </tr>'; +$aMail["fpwdTitle"] = "Changez votre mot de passe"; +$aMail["fpwdUpdateOk"] = '<tr> + <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;"> + <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">Le mot de passe a été mis à jour</h1> + </td> + </tr>'; +$aMail["fpwdUpdateError"] = '<tr> + <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;"> + <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">Le mot de passe n\'a pas pu être mis à jour</h1> + </td> + </tr>'; +$aMail["alreadyUpdate"] = '<tr> + <td bgcolor="#ffffff" style="padding: 40px 40px 20px; text-align: center;"> + <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #333333; font-weight: normal;">Le mot de passe à déjà été changé</h1> + </td> + </tr>'; + +$aMail["fpwdBody"] = '<!-- 1 Column Text + Button : BEGIN --> + <tr> + <td bgcolor="#ffffff" style="padding: 0px; text-align: center;background-color:#8c8c8c; height:50px; margin-bottom:10px;"> + <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #FFFFFF; font-weight: normal;">Changez votre mot de passe</h1> + </td> + </tr> + <tr> + <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; font-size: 15px; line-height: 20px; color: #000000; text-align: center;"> + <p style="width:100%; font-weight:bold; text-align: left; font-size: 20px;">Bonjour [LOGIN],</p> + <p style="width:100%; text-align: left;font-size: 18px;">Une tentative de récupération de votre compte à été effectué sur le site <b>[HOSTNAME]</b>.</p> + <p style="width:100%; text-align: left;font-size: 18px;margin-top: 10px;">Cliquez sur le bouton ci-dessous pour changer votre mot de passe :</p> + </td> + </tr> + <tr> + <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; font-size: 15px; line-height: 20px; color: #555555;"> + <table role="presentation" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" style="margin: auto"> + <tr> + <td style="border-radius: 3px; background: #5cb85c; text-align: center;" class="button-td"> + <a href="[URL]" style="background: #5cb85c; border: 15px solid #5cb85c; font-family: sans-serif; font-size: 18px; line-height: 1.1; text-align: center; text-decoration: none; display: block; border-radius: 0px; font-weight: bold;" class="button-a"> + <span style="color:#ffffff;">Changer mon mot de passe</span> + </a> + </td> + </tr> + </table> + <!-- Button : END --> + </td> + </tr> + <tr> + <td bgcolor="#ffffff" style="padding: 10px 20px; font-family: sans-serif; line-height: 20px; color: #000000; text-align: center;"> + <p style="width:100%; text-align: justify;font-size: 18px;">Si vous n\'avez pas perdu votre mot de passe pour vous connecter à notre application <b>[HOSTNAME]</b>, ignorez simplement ce message.</p> + </td> + </tr> + <!-- 1 Column Text + Button : END -->'; + +$aMail["fpwdForm"] = '<!-- 1 Column Text + Button : BEGIN --> + <tr> + <td bgcolor="#ffffff" style="padding: 0px; text-align: center;background-color:#8c8c8c; height:50px; margin-bottom:10px;"> + <h1 style="margin: 0; font-family: sans-serif; font-size: 24px; line-height: 27px; color: #FFFFFF; font-weight: normal;">Saisissez votre nouveau mot de passe</h1> + </td> + </tr> + <tr> + <td bgcolor="#ffffff" style="padding: 20px 40px 40px; font-family: sans-serif; font-size: 15px; line-height: 20px; color: #555555; text-align: center;"> + <form style="text-align:-webkit-right;"> + <div style="text-align:left;"> + <label for="password" style="font-weight: bold;">Nouveau mot de passe</label> + <input type="password" id="password" name="password" class="input-text-control" required/> + </div> + <div style="text-align:left;margin-top:10px;"> + <label for="password_confirm" style="font-weight: bold;">Confirmer votre nouveau mot de passe</label> + <input type="password" id="password_confirm" name="password_confirm" class="input-text-control" required/> + </div> + <div style="margin-top:20px;"> + <input type="hidden" name="token" value="[TOKEN]"/> + <input type="hidden" name="output" value="text/html"/> + <button style="background: #5cb85c; border: 15px solid #5cb85c; font-family: sans-serif; font-size: 15px; line-height: 1.1; text-align: center; text-decoration: none; display: block; border-radius: 0px; font-weight: bold;" class="button-a" type="button" onclick="sendRequest(\'[URL]\')"><span style="color:#ffffff;">Envoi</span></button> + </div> + </form> + </td> + </tr>'; + +$aMail["passwordScript"] = '<script> + var password = document.getElementById("password"), confirm_password = document.getElementById("password_confirm"); + + function validatePassword(){ + if(password.value != confirm_password.value) { + confirm_password.setCustomValidity("Les deux mots de passe doivent être identique"); + } else { + confirm_password.setCustomValidity(\'\'); + } + } + + password.onchange = validatePassword; + confirm_password.onkeyup = validatePassword; + + function sendRequest (sUrl){ + if(typeof(password.value)!== "undefined"){ + if(password.value != ""){ + var xhr = new XMLHttpRequest(); + xhr.open("PUT", sUrl); + sParams = JSON.stringify({"password": password.value}); + xhr.onreadystatechange = function (aEvt) { + if (xhr.readyState == 4) { + if (xhr.status == 200) { + var oJson = JSON.parse(xhr.responseText); + window.location.replace(oJson.sUrl); + } else { + //xhr.responseText; + } + } + } + xhr.send(sParams); + }else{console.log("saisissez un mot de passe2")} + }else{console.log("saisissez un mot de passe")} + } + </script>'; + +$aMail["mainBody"] = '<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="utf-8"> <!-- utf-8 works for most cases --> + <meta name="viewport" content="width=device-width"> <!-- Forcing initial-scale shouldn\'t be necessary --> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> <!-- Use the latest (edge) version of IE rendering engine --> + <meta name="x-apple-disable-message-reformatting"> <!-- Disable auto-scale in iOS 10 Mail entirely --> + <title>VAM</title> <!-- The title tag shows in email notifications, like Android 4.4. --> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"> + <!-- Web Font / @font-face : BEGIN --> + <!-- NOTE: If web fonts are not required, lines 10 - 27 can be safely removed. --> + + <!-- Desktop Outlook chokes on web font references and defaults to Times New Roman, so we force a safe fallback font. --> + <!--[if mso]> + <style> + * { + font-family: sans-serif !important; + } + </style> + <![endif]--> + + <!-- All other clients get the webfont reference; some will render the font and others will silently fail to the fallbacks. More on that here: http://stylecampaign.com/blog/2015/02/webfont-support-in-email/ --> + <!--[if !mso]><!--> + <!-- insert web font reference, eg: <link href="https://fonts.googleapis.com/css?family=Roboto:400,700" rel="stylesheet" type="text/css"> --> + <!--<![endif]--> + + <!-- Web Font / @font-face : END --> + + <!-- CSS Reset --> + <style> + + /* What it does: Remove spaces around the email design added by some email clients. */ + /* Beware: It can remove the padding / margin and add a background color to the compose a reply window. */ + html, + body { + margin: 0 auto !important; + padding: 0 !important; + height: 100% !important; + width: 100% !important; + /*min-width: 600px;*/ + } + + /* What it does: Stops email clients resizing small text. */ + * { + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; +} + +/* What it does: Centers email on Android 4.4 */ +div[style*="margin: 16px 0"] { + margin:0 !important; +} + +/* What it does: Stops Outlook from adding extra spacing to tables. */ +table, +td { + mso-table-lspace: 0pt !important; + mso-table-rspace: 0pt !important; +} + +/* What it does: Fixes webkit padding issue. Fix for Yahoo mail table alignment bug. Applies table-layout to the first 2 tables then removes for anything nested deeper. */ +table { + border-spacing: 0 !important; + border-collapse: collapse !important; + table-layout: fixed !important; + margin: 0 auto !important; +} +table table table { + table-layout: auto; +} + +/* What it does: Uses a better rendering method when resizing images in IE. */ +img { + -ms-interpolation-mode:bicubic; +} + +/* What it does: A work-around for iOS meddling in triggered links. */ +*[x-apple-data-detectors] { + color: inherit !important; + text-decoration: none !important; +} + +/* What it does: A work-around for Gmail meddling in triggered links. */ +.x-gmail-data-detectors, +.x-gmail-data-detectors *, +.aBn { + border-bottom: 0 !important; + //cursor: default !important; +} + +/* What it does: Prevents Gmail from displaying an download button on large, non-linked images. */ +.a6S { + display: none !important; + opacity: 0.01 !important; +} +/* If the above doesn\'t work, add a .g-img class to any image in question. */ +img.g-img + div { + display:none !important; +} + +/* What it does: Prevents underlining the button text in Windows 10 */ +.button-link { + text-decoration: none !important; +} + +blockquote { + font-style:normal; + text-align:left; + //margin-left: 32px!important; + margin: 5px 5px 0px 32px!important; + //padding-top:10px; + //font-family:"Segoe Print","Times New Roman", Verdana; + padding-left: 7px; + min-height: 30px; + //background-color: #EFEFEF; + border-left: 2px solid #8c8c8c; +} + +blockquote > p { + margin:4.5px; +} + +.input-text-control{ + display: block; + width: 100%; + height: 14px; + padding: 4px 5px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; + color: #555; + background-color: #fff; + background-image: none; + border: 1px solid #ccc; + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + -webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s; + -o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; +} + +/* What it does: Removes right gutter in Gmail iOS app: https://github.com/TedGoas/Cerberus/issues/89 */ +/* Create one of these media queries for each additional viewport size you\'d like to fix */ +/* Thanks to Eric Lepetit (@ericlepetitsf) for help troubleshooting */ +@media only screen and (min-device-width: 375px) and (max-device-width: 413px) { /* iPhone 6 and 6+ */ + .email-container { + min-width: 375px !important; + } +} + +</style> + +<!-- What it does: Makes background images in 72ppi Outlook render at correct size. --> + <!--[if gte mso 9]> + <xml> + <o:OfficeDocumentSettings> + <o:AllowPNG/> + <o:PixelsPerInch>96</o:PixelsPerInch> + </o:OfficeDocumentSettings> + </xml> +<![endif]--> + +<!-- Progressive Enhancements --> +<style> + +/* What it does: Hover styles for buttons */ +.button-td, +.button-a { + transition: all 100ms ease-in; +} +.button-td:hover, +.button-a:hover { + background: #449D44 !important; + border-color: #449D44 !important; +} + +.bottom-strip{ + width: 120px !important; + height: 10px !important; + float: left !important; +} + +.square-logo-layout{ + width: 40px; + float: left !important; + background-color: #FFF;//#24292E; + border-radius: 50%; + font-size: 30px; + padding: 7.5px; + margin-right: 0px; + //color: #FFF; + cursor:pointer !important; +} + +.square-logo-layout > svg{ + cursor:pointer!important; +} + + +/* Media Queries */ +@media screen and (max-width: 600px) { + + .email-container { + width: 100% !important; + margin: auto !important; + } + + /* What it does: Forces elements to resize to the full width of their container. Useful for resizing images beyond their max-width. */ + .fluid { + max-width: 100% !important; + height: auto !important; + margin-left: auto !important; + margin-right: auto !important; + } + + /* What it does: Forces table cells into full-width rows. */ + .stack-column, + .stack-column-center { + display: block !important; + width: 100% !important; + max-width: 100% !important; + direction: ltr !important; + } + /* And center justify these ones. */ + .stack-column-center { + text-align: center !important; + } + + /* What it does: Generic utility class for centering. Useful for images, buttons, and nested tables. */ + .center-on-narrow { + text-align: center !important; + display: block !important; + margin-left: auto !important; + margin-right: auto !important; + float: none !important; + } + table.center-on-narrow { + display: inline-block !important; + } + + .input-text-control{ + display: block; + width: 100%; + height: 14px; + padding: 4px 5px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; + color: #555; + background-color: #fff; + background-image: none; + border: 1px solid #ccc; + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + -webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s; + -o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; + } + + /* What it does: Adjust typography on small screens to improve readability */ + .email-container p { + font-size: 17px !important; + line-height: 22px !important; + } + +} + +</style> + +</head> +<body width="100%" bgcolor="#E5E5E5" style="margin: 0px; mso-line-height-rule: exactly;"> + <center style="width: 600px; margin: auto; background: #FFFFFF; text-align: left;"> + <!-- Email Header : BEGIN --> + <table role="presentation" aria-hidden="true" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" width="600" style="margin: auto;" class="email-container"> + <tr> + <td style="padding: 20px 0px; text-align: center"> + <a href="http://www.veremes.com/" target="_blank"> + <svg version="1.1" id="Calque_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="335px" height="100px" viewBox="0 0 335 100" enable-background="new 0 0 335 100" xml:space="preserve"> + <g> + <rect fill="#FFFFFF" width="335" height="100"/> + <g> + <path fill="#1A171B" d="M308.774,60.788c-0.99-1.493-2.537-2.688-4.64-3.589c-0.533-0.224-1.577-0.57-3.142-1.042 + c-1.563-0.47-2.75-0.959-3.567-1.472c-0.893-0.547-1.532-1.161-1.916-1.841c-0.386-0.682-0.577-1.517-0.577-2.511 + c0-1.4,0.466-2.572,1.398-3.516c0.933-0.944,2.098-1.417,3.498-1.417c1.561,0,2.793,0.437,3.695,1.308 + c0.901,0.873,1.402,2.1,1.505,3.681h4.622c-0.12-2.909-1.026-5.178-2.72-6.806c-1.69-1.626-3.972-2.439-6.845-2.439 + c-2.71,0-5.016,0.916-6.921,2.744c-1.904,1.831-2.856,4.057-2.856,6.678c0,2.319,0.569,4.168,1.714,5.551 + c1.143,1.383,3.582,2.734,7.318,4.056c2.334,0.858,3.947,1.775,4.838,2.754c0.891,0.98,1.336,2.274,1.336,3.884 + c0,1.612-0.561,2.947-1.682,4.007c-1.121,1.063-2.526,1.592-4.219,1.592c-1.772,0-3.262-0.69-4.463-2.071 + c-1.202-1.379-1.802-3.12-1.802-5.228v-0.122h-4.502c0.103,3.535,1.114,6.344,3.039,8.431c1.922,2.085,4.466,3.127,7.637,3.127 + c3.108,0,5.674-0.952,7.698-2.853c2.025-1.899,3.038-4.301,3.038-7.205C310.261,64.182,309.764,62.279,308.774,60.788z + M118.462,41.021c-5.17,0-9.417,1.679-12.739,5.035c-3.32,3.357-4.979,7.607-4.979,12.742c0,4.912,1.693,9.118,5.084,12.617 + c3.389,3.502,7.535,5.252,12.438,5.252c3.694,0,6.947-0.998,9.756-2.988c2.808-1.994,4.988-4.849,6.542-8.569h-4.866 + c-1.103,2.332-2.666,4.151-4.688,5.459c-2.023,1.308-4.302,1.962-6.834,1.962c-3.575,0-6.558-1.131-8.947-3.394 + c-2.391-2.263-3.718-5.226-3.983-8.894h30.413v-0.318c0-5.604-1.601-10.154-4.797-13.655 + C127.662,42.771,123.529,41.021,118.462,41.021z M105.366,56.472c0.509-3.468,1.901-6.219,4.17-8.258 + c2.27-2.037,5.04-3.056,8.313-3.056c3.517,0,6.368,0.948,8.556,2.844c2.188,1.897,3.692,4.719,4.509,8.47H105.366z M99.054,31.046 + L84.898,69.101L72.402,35.38l0.007-0.047l-0.079-0.217c-0.401-1.095-0.841-2.3-1.34-3.546l-0.194-0.523h-0.021 + c-2.108-5.143-5.249-10.879-10.817-12.957c-5.541-2.069-12.762-0.675-17.169,3.314c-3.422,3.096-5.471,7.843-6.089,14.111 + c0-0.002-0.117,1.154-0.117,1.154c-0.239,2.31-0.481,4.665-0.354,7.034l0.047,0.874l0.875-0.048l2.31-0.124l0.876-0.046 + l-0.049-0.876c-0.113-2.069,0.115-4.268,0.335-6.396c0-0.001,0.12-1.172,0.12-1.172c0.517-5.235,2.121-9.103,4.771-11.499 + c3.349-3.03,8.825-4.09,13.024-2.522c4.294,1.604,6.994,6.964,8.88,11.717l1.387,3.688l0.208,0.57l0.005-0.004L83.24,75.692h3.407 + l16.788-44.646H99.054z M268.755,41.021c-5.171,0-9.418,1.679-12.738,5.035c-3.32,3.357-4.979,7.607-4.979,12.742 + c0,4.912,1.692,9.118,5.084,12.617c3.389,3.502,7.535,5.252,12.438,5.252c3.695,0,6.947-0.998,9.758-2.988 + c2.807-1.994,4.986-4.849,6.54-8.569h-4.866c-1.102,2.332-2.666,4.151-4.688,5.459c-2.022,1.308-4.302,1.962-6.835,1.962 + c-3.574,0-6.557-1.131-8.945-3.394c-2.392-2.263-3.72-5.226-3.984-8.894h30.415v-0.318c0-5.604-1.603-10.154-4.8-13.655 + C277.955,42.771,273.821,41.021,268.755,41.021z M255.658,56.472c0.51-3.468,1.901-6.219,4.171-8.258 + c2.27-2.037,5.039-3.056,8.314-3.056c3.516,0,6.367,0.948,8.555,2.844c2.187,1.897,3.692,4.719,4.509,8.47H255.658z + M148.164,42.625c-1.253,0.705-2.409,1.808-3.465,3.315v-3.946h-4.074v33.698h4.379V55.395c0-3.099,0.583-5.334,1.754-6.711 + c1.17-1.376,3.11-2.187,5.821-2.431l-0.032-4.744C150.878,41.549,149.417,41.922,148.164,42.625z M172.22,41.021 + c-5.171,0-9.418,1.679-12.738,5.035c-3.321,3.357-4.981,7.607-4.981,12.742c0,4.912,1.694,9.118,5.085,12.617 + c3.389,3.502,7.535,5.252,12.438,5.252c3.695,0,6.947-0.998,9.757-2.988c2.808-1.994,4.988-4.849,6.541-8.569h-4.866 + c-1.102,2.332-2.665,4.151-4.688,5.459c-2.023,1.308-4.303,1.962-6.834,1.962c-3.574,0-6.557-1.131-8.947-3.394 + c-2.391-2.263-3.718-5.226-3.984-8.894h30.414v-0.318c0-5.604-1.6-10.154-4.799-13.655 + C181.419,42.771,177.286,41.021,172.22,41.021z M159.124,56.472c0.51-3.468,1.901-6.219,4.17-8.258 + c2.271-2.037,5.04-3.056,8.313-3.056c3.517,0,6.369,0.948,8.556,2.844c2.188,1.897,3.692,4.719,4.51,8.47H159.124z + M232.864,41.264c-2.51,0-4.779,0.509-6.809,1.518c-2.03,1.012-3.73,2.49-5.097,4.43c-1.106-1.818-2.712-3.264-4.82-4.338 + c-2.108-1.072-4.441-1.61-7-1.61c-2.212,0-4.191,0.379-5.941,1.134c-1.748,0.756-3.27,1.88-4.558,3.372v-3.776h-4.258v33.698 + h4.258V59.274c0-2.927,0.105-4.978,0.321-6.154c0.215-1.177,0.586-2.227,1.119-3.147c0.856-1.473,2.026-2.604,3.509-3.391 + c1.481-0.787,3.203-1.182,5.165-1.182c3.248,0,5.66,0.926,7.233,2.777c1.573,1.852,2.36,4.722,2.36,8.61v18.905h4.136V59.274 + c0-2.927,0.112-4.978,0.338-6.154c0.223-1.177,0.59-2.227,1.1-3.147c0.854-1.473,2.012-2.604,3.467-3.391 + c1.457-0.787,3.143-1.182,5.06-1.182c3.318,0,5.711,0.947,7.178,2.84c1.469,1.894,2.202,5.07,2.202,9.529v17.923h4.137V58.658 + c0-6.093-1.043-10.516-3.122-13.268C240.76,42.64,237.436,41.264,232.864,41.264z"/> + <g> + <path fill="#1A171B" d="M36.791,43.727c4.5,3.508,3.856-8.518,5.095-10.445c-0.251,0.39,1.045-0.227,1.359-0.68 + c0.714-1.033,0.78-1.304,1.783-0.467c0.685,0.57,4.073-2.156,5.011-2.76c-0.206-0.223,0.68,1.338,0.68,0.764 + c0,4.354-0.253,0.671,2.42,1.401c1.206,0.329,2.179-0.847,3.269,0.893c-0.283,0.31-0.566,0.621-0.849,0.933 + c4.111,1.071,3.139,4.072,7.134,6.029c-1.239,0.545-2.304,1.363-2.463,2.803c1.169,0.267,2.366,0.422,3.566,0.424 + c-0.34,0.311-0.679,0.622-1.02,0.934c2.158,0.346,2.307,2.235,4.671,1.699c-0.891,1.669-4.83,4.51-1.274,5.094 + c-0.198,0.085-0.396,0.171-0.594,0.255c0.745,0.477,1.172,1.362,1.868,1.868c-0.946,0.11-1.794,0.679-2.802,0.68 + c0.04,1.611,1.581,1.87,2.717,2.124c-2.577,1.72,0.311,0.894,0.722,2.122c-0.165-0.493,1.154,1.254,0.807,0.977 + c-0.173-0.139-1.318,0.596-0.807,1.062c0.174,0.158,4.875,0.583,1.98,1.482c-1.714,0.534-4.447,0.456-3.679,2.763 + c-1.174-0.126-1.886,0.235-2.845-0.083c0.154,0.687-0.067,0.846,0.213,1.442c-1.335,0.382-2.595-0.269-3.695-1.061 + c-0.042,0.268-0.084,0.537-0.127,0.806c-0.368-0.325-0.736-0.649-1.104-0.976c0.016,0.536-0.255,1.096-0.212,1.656 + c-0.877-0.677-5.258-4.209-2.972-1.189c0.905,1.195,1.842,1.439,2.93,2.463c-1.363,0.366-0.2,5.027,1.91,4.627 + c-1.045,1.709-3.151-0.414-4.289,1.828c1.419,0.304,0.683,0.515,1.826,1.146c-0.596-0.139-1.35,0.109-1.996-0.043 + c0.058,0.606,1.302,2.911,1.104,3.185c-0.761,1.05-2.778-1.146-3.949-1.146c-0.209,0.18-0.252,0.392-0.126,0.636 + c1.264,0.254,0.742,0.52,0.976,1.698c-2.448-0.878-0.467,0.231-0.467,1.104c0,3.686-2.677-0.092-2.548,2.505 + c-0.269-0.014-0.537-0.027-0.806-0.041c0.263,2.893-2.243-0.257-2.845,3.056c0.048,0.018-3.298-0.522-3.333-0.488 + c-1.136,1.135-1.402-0.027-2.174,0.598c-1.87,1.514-1.024-1.807-1.552-1.998c-0.694-0.253-2.246,1.984-2.455,0.573 + c-0.207-1.396-0.55-3.131-1.463-1.656c-0.954-0.37-3.546,0.314-3.842-0.572c-0.223-0.67-2.252-3.619-0.871-4.078 + c-0.407,0.137-1.347,0.543-1.719,0.765c0.857-2.833-1.515-2.188-3.185-1.146c0.104-1.69,0.899-3.521-1.083-3.247 + c0.293-0.662,0.337-1.645,0.828-2.356c-0.382,0.084-0.764,0.17-1.146,0.254c0.059-0.477,4.984-10.382,5.223-10.382 + c-0.199-0.062-0.369-0.169-0.51-0.318c-1.236,3.129-3.048,5.804-5.095,8.534c0.046-0.52-0.061-1.008-0.318-1.464 + c-0.23,0-1.983,2.339-2.548,2.61c0-0.253,0-0.509,0-0.763c-0.231,0.366-1.444,2.675-1.783,2.675c-0.329,0,0.481-1.796-0.51-1.467 + c-0.944,0.315-1.458,0.54-2.292,0.701c0.99-1.181,1.719-2.432-0.446-1.783c0.204-0.955-0.191-1.231-0.191-1.974 + c-0.159,0.41-0.393,0.771-0.7,1.084c-0.23-1.254-0.242-6.138-0.383-6.138c-1.46,0,0.123-2.937,0.341-3.312 + c-0.17-0.142-0.341-0.282-0.51-0.425c0.05,1.16-0.433,1.305-0.764,2.293c-1.08-1.767,1.521-3.314-0.764-3.99 + c0.311-0.256,0.623-0.51,0.934-0.765c-0.199-0.198-0.396-0.396-0.595-0.595c-0.269,0.61-0.729,1.216-1.02,1.783 + c-0.154-0.479,0.034-2.888,0.51-2.888c-0.313-0.017-0.624-0.044-0.935-0.084c0.723-0.973,0.495-1.264,1.444-1.699 + c-0.17-0.51-0.339-1.019-0.509-1.529c0.17,0.058,0.339,0.114,0.509,0.171c0.149,0.083-0.41-0.829-0.68-0.424 + c0.503-0.754,1.123-1.223,1.868-1.614c-0.283-0.17-0.566-0.34-0.849-0.51c0.664-0.432,1.176-1.357,2.038-1.698 + c-0.566-1.104-0.674-1.464-1.868-1.784c-0.033-2.104,1.163-9.234,2.717-8.407c-0.049-0.578-0.062-0.699,0.509-0.765 + c-0.087-1.145-0.637-0.797,0.595-1.104c-0.979-4.102,1.847-2.083,3.651-1.104c0-0.341,0-0.68,0-1.02 + c0.534,0.116,1.853,0.641,2.177,0.085c0.109-0.188-0.92-0.513-1.073-0.594c1.126-0.569,0.975-1.844,0.17-3.143 + c1.503,0.075,3.008,0.738,3.482-0.594c0.613,0.591,1.188,0.584,1.697,1.358c0.284-0.481,0.566-0.963,0.85-1.443 + c0.53,0.646,1.549,2.504,2.59,1.983c0.223-0.111,1.486,0.661,1.486,0.394c0-1.159,0.588-2.121,1.529-2.717 + C35.584,34.716,35.005,38.027,36.791,43.727"/> + </g> + </g> + </g> + </svg> + </a> + </td> + </tr> +</table> +<!-- Email Header : END --> + +<!-- Email Body : BEGIN --> +<table role="presentation" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" width="600" style="margin: auto;" class="email-container"> + + [CONTENT] + +</table> +<!-- Email Body : END --> + +<!-- Email Footer : BEGIN --> +<table role="presentation" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" width="600" style="margin: auto;" class="email-container"> + <tr> + <td style="padding: 0px;width: 100%;" class="x-gmail-data-detectors"> + <div class="bottom-strip" style="background-color: #39468A;"></div> + <div class="bottom-strip" style="background-color: #E74F23;"></div> + <div class="bottom-strip" style="background-color: #923288;"></div> + <div class="bottom-strip" style="background-color: #1C9DB2;"></div> + <div class="bottom-strip" style="background-color: #E10759;"></div> + </td> + </tr> +</table> +<table role="presentation" aria-hidden="true" cellspacing="0" cellpadding="0" border="0" align="center" width="600" style="margin: auto;" class="email-container"> + <tr> + <td style="padding: 10px;width: 50%;font-size: 12px; font-family: sans-serif; line-height:18px; text-align: center; color: #888888; cursor:pointer;" class="x-gmail-data-detectors"> + <a class="square-logo-layout" href="https://twitter.com/Veremes_Info" target="_blank" style="color: #24292E; cursor:pointer;"> + <!--<i class="fa fa-twitter" style=""></i>--> + <svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" style="fill: currentColor; cursor:pointer;"> + <title>Twitter</title> + <path d="M50,0a50,50,0,1,0,50,50A50,50,0,0,0,50,0ZM75.28,37c0,.56,0,1.12,0,1.68C75.32,56,62.2,75.83,38.21,75.83h0a37,37,0,0,1-20-5.86,24.62,24.62,0,0,0,3.11.18,26.13,26.13,0,0,0,16.2-5.58,13,13,0,0,1-12.18-9.06,12.34,12.34,0,0,0,2.45.24,13,13,0,0,0,3.44-.46A13,13,0,0,1,20.77,42.5v-.16A13.11,13.11,0,0,0,26.68,44a13.05,13.05,0,0,1-4-17.42A37,37,0,0,0,49.52,40.18a13.19,13.19,0,0,1-.34-3,13.05,13.05,0,0,1,22.57-8.92A26.11,26.11,0,0,0,80,25.12a13.08,13.08,0,0,1-5.73,7.22,26.23,26.23,0,0,0,7.49-2.06A26.49,26.49,0,0,1,75.28,37Z"/> + </svg> + </a> + <a class="square-logo-layout" href="https://www.linkedin.com/company/veremes/" target="_blank" style="color: #24292E; cursor:pointer;"> + <!--<i class="fa fa-linkedin" style=""></i>--> + <svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" style="fill: currentColor; cursor:pointer;"> + <title>LinkedIn</title> + <path d="M50,0a50,50,0,1,0,50,50A50,50,0,0,0,50,0ZM60.71,51a6.48,6.48,0,0,0-6.33,6.32V79.68H41.74V41.74H54.38v5a13.63,13.63,0,0,1,10.54-5.9A15,15,0,0,1,79.68,55.65v24H67V57.33A6.48,6.48,0,0,0,60.71,51ZM27,34.57A7.59,7.59,0,1,1,34.57,27,7.55,7.55,0,0,1,27,34.57Zm6.32,7.17V79.68H20.66V41.74Z"/> + </svg> + </a> + <a class="square-logo-layout" href="http://vm09.veremes.net/" target="_blank" style="color: #24292E; cursor:pointer;"> + <!--<i class="fa fa-github" style=""></i>--> + <svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" style="fill: currentColor; cursor:pointer;"> + <title>GitLab</title> + <path d="M50,0a50,50,0,1,0,50,50A50,50,0,0,0,50,0ZM75.18,15.1a1,1,0,0,1,2,0l9,27.81h-20Zm-52.34,0a1,1,0,0,1,2,0l9,27.81h-20ZM9.85,61A2.63,2.63,0,0,1,8.9,58l4.35-13.4L47.16,88.07Zm4.33-17h20l14.3,44Zm21.19,0H64.63L50,89Zm30.42,0h20L51.49,88ZM90.15,61,52.84,88.07,86.75,44.62,91.1,58A2.63,2.63,0,0,1,90.15,61Z"/> + </svg> + </a> + <a class="square-logo-layout" href="http://www.veremes.com/" target="_blank" style="color: #24292E; cursor:pointer;"> + <!--<i class="fa fa-globe" style=""></i>--> + <svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" style="fill: currentColor; cursor:pointer;"> + <defs> + <style>.cls-1{fill:none;}</style> + </defs> + <title>Veremes</title> + <path class="cls-1" d="M60.17,18.09h0S60.15,18.05,60.17,18.09Z"/> + <path class="cls-1" d="M48.39,26.38c.66-6.65,2.7-11.56,6.06-14.6a11.45,11.45,0,0,1,1.82-1.29A40.5,40.5,0,0,0,50,10l-1,0c-3.18,3.87-5.13,9.17-5.79,15.85l-.15,1.47c-.21,2.06-.42,4.16-.47,6.28-1.35-5.7-.83-9.69-1.1-15.87A4,4,0,0,0,39.6,21.2c0,.34-1.6-.64-1.88-.5-1.33.67-2.62-1.69-3.29-2.51L33.35,20c-.65-1-1.38-1-2.16-1.73-.6,1.69-2.51.85-4.42.76,1,1.65,1.21,3.26-.21,4,.19.1,1.5.51,1.36.75-.41.71-2.09,0-2.77-.11V25c-2.29-1.25-5.88-3.81-4.63,1.4-1.57.39-.87-.05-.76,1.4-.72.09-.71.24-.64,1-2-1.05-3.5,8-3.45,10.68,1.51.4,1.65.86,2.37,2.26-1.1.43-1.75,1.61-2.59,2.16l1.08.64a6,6,0,0,0-2.37,2c.34-.51,1.05.65.86.54l-.65-.22c.22.65.43,1.3.65,2-1.21.55-.92.92-1.83,2.15.39,0,.78.09,1.18.11-.6,0-.84,3.06-.65,3.67.37-.72,1-1.49,1.3-2.27l.75.76-1.18,1c2.9.86-.4,2.82,1,5.06.42-1.25,1-1.43,1-2.91l.65.54c-.28.48-2.29,4.21-.44,4.21.18,0,.2,6.2.49,7.79a4,4,0,0,0,.89-1.38c0,.95.5,1.3.24,2.51,2.75-.82,1.82.76.57,2.26a20.92,20.92,0,0,0,2.91-.89c1.26-.41.23,1.86.64,1.86s2-2.93,2.27-3.39v1c.72-.35,2.94-3.32,3.23-3.32a3.11,3.11,0,0,1,.41,1.86,46.51,46.51,0,0,0,6.47-10.83,1.46,1.46,0,0,0,.65.4c-.31,0-6.56,12.58-6.64,13.18l1.46-.32c-.63.9-.68,2.15-1,3,2.51-.35,1.5,2,1.37,4.13,2.12-1.33,5.14-2.15,4.05,1.45a15.73,15.73,0,0,1,2.18-1c-1.76.58.82,4.33,1.11,5.17.37,1.13,3.66.26,4.87.73,1.16-1.87,1.6.33,1.86,2.11s2.24-1,3.12-.73c.67.24-.4,4.46,2,2.53,1-.79,1.32.68,2.76-.75,0,0,4.29.64,4.23.62.77-4.21,3.94-.21,3.61-3.88l1,0c-.16-3.3,3.24,1.5,3.24-3.18,0-1.11-2.52-2.52.59-1.4-.29-1.5.37-1.84-1.24-2.16a.62.62,0,0,1,.16-.81c1.49,0,4,2.79,5,1.46.25-.35-1.33-3.28-1.4-4,.82.2,1.77-.12,2.53.06-1.45-.8-.52-1.07-2.32-1.46,1.45-2.84,4.12-.15,5.45-2.32C70.78,71.9,69.3,66,71,65.52c-1.38-1.3-2.57-1.61-3.72-3.13-2.9-3.83,2.66.65,3.78,1.51-.06-.71.28-1.42.27-2.1L72.76,63c0-.34.11-.69.16-1,1.4,1,3,1.83,4.69,1.35-.35-.76-.08-1-.27-1.83,1.22.4,2.12-.06,3.61.11-1-2.93,2.5-2.84,4.67-3.51,3.68-1.15-2.29-1.68-2.51-1.88-.65-.6.8-1.53,1-1.35.44.35-1.23-1.87-1-1.24-.52-1.56-4.19-.51-.92-2.7-1.44-.32-3.4-.65-3.45-2.69,1.28,0,2.36-.73,3.56-.87-.89-.64-1.43-1.76-2.37-2.37l.75-.32c-4.51-.74.49-4.35,1.62-6.47-3,.68-3.19-1.72-5.93-2.16l1.29-1.18a20.84,20.84,0,0,1-4.52-.54c.19-1.83,1.55-2.87,3.12-3.56-5.07-2.49-3.84-6.3-9.06-7.66L68.28,22c-1.38-2.21-2.62-.72-4.15-1.13-3.39-.93-3.07,3.75-3.07-1.78,0,.62-.81-.72-.89-1-1.22.8-5.47,4.21-6.34,3.49-1.27-1.06-1.35-.72-2.26.59-.4.58-2,1.36-1.73.87-.9,1.41-1,7.1-2.05,10.79,0-2,.25-4,.45-6Z"/> + <path d="M99.94,47.71l0-.64c0-.61-.08-1.23-.14-1.84,0-.16,0-.31,0-.46-.08-.74-.17-1.47-.28-2.2,0-.19-.06-.38-.1-.57q-.13-.86-.3-1.68l-.12-.64c-.15-.7-.31-1.39-.48-2.08,0-.15-.09-.3-.13-.45-.14-.56-.3-1.11-.46-1.65-.08-.24-.15-.49-.23-.73-.16-.51-.34-1-.52-1.54-.06-.17-.12-.35-.19-.53-.23-.62-.47-1.24-.73-1.85-.11-.27-.22-.53-.34-.8s-.35-.78-.53-1.17l-.38-.81c-.27-.56-.56-1.11-.85-1.66-.16-.3-.33-.59-.49-.88s-.35-.61-.53-.92-.37-.63-.57-.94L92,22.86q-.55-.86-1.14-1.68l-.45-.62c-.25-.35-.51-.69-.77-1-.13-.18-.27-.35-.41-.52q-1.36-1.74-2.9-3.35L86,15.35q-1.66-1.72-3.48-3.29L82.46,12a51.79,51.79,0,0,0-5.4-4h0a49.56,49.56,0,0,0-4.42-2.54h0A49.59,49.59,0,0,0,63.94,2h0c-1.56-.45-3.16-.83-4.78-1.13L58.49.73,57.21.52C56.59.43,56,.35,55.33.29L54.54.21,53,.1l-.73,0C51.51,0,50.76,0,50,0a50,50,0,1,0,50,50C100,49.23,100,48.47,99.94,47.71ZM49.84,23c-.31.49,1.33-.29,1.73-.87.91-1.31,1-1.65,2.26-.59.87.72,5.12-2.69,6.34-3.49,0,0,0-.06,0,0h0c.08.24.89,1.58.89,1,0,5.53-.32.85,3.07,1.78,1.53.41,2.77-1.08,4.15,1.13L67.2,23.14c5.22,1.36,4,5.17,9.06,7.66-1.57.69-2.93,1.73-3.12,3.56a20.84,20.84,0,0,0,4.52.54l-1.29,1.18c2.74.44,2.92,2.84,5.93,2.16-1.13,2.12-6.13,5.73-1.62,6.47l-.75.32c.94.61,1.48,1.73,2.37,2.37-1.2.14-2.28.86-3.56.87.05,2,2,2.37,3.45,2.69-3.27,2.19.4,1.14.92,2.7-.21-.63,1.46,1.59,1,1.24-.22-.18-1.67.75-1,1.35.22.2,6.19.73,2.51,1.88-2.17.67-5.64.58-4.67,3.51-1.49-.17-2.39.29-3.61-.11.19.87-.08,1.07.27,1.83-1.7.48-3.29-.34-4.69-1.35,0,.34-.11.69-.16,1l-1.4-1.24c0,.68-.33,1.39-.27,2.1C70,63,64.41,58.56,67.31,62.39c1.15,1.52,2.34,1.83,3.72,3.13-1.73.46-.25,6.38,2.43,5.87-1.33,2.17-4-.52-5.45,2.32,1.8.39.87.66,2.32,1.46-.76-.18-1.71.14-2.53-.06.07.77,1.65,3.7,1.4,4-1,1.33-3.53-1.46-5-1.46a.62.62,0,0,0-.16.81c1.61.32,1,.66,1.24,2.16-3.11-1.12-.59.29-.59,1.4,0,4.68-3.4-.12-3.24,3.18l-1,0c.33,3.67-2.84-.33-3.61,3.88.06,0-4.19-.67-4.23-.62-1.44,1.43-1.78,0-2.76.75-2.37,1.93-1.3-2.29-2-2.53-.88-.32-2.86,2.52-3.12.73s-.7-4-1.86-2.11c-1.21-.47-4.5.4-4.87-.73-.29-.84-2.87-4.59-1.11-5.17a15.73,15.73,0,0,0-2.18,1c1.09-3.6-1.93-2.78-4.05-1.45.13-2.15,1.14-4.48-1.37-4.13.37-.84.42-2.09,1-3l-1.46.32c.08-.6,6.33-13.18,6.64-13.18a1.46,1.46,0,0,1-.65-.4,46.51,46.51,0,0,1-6.47,10.83A3.11,3.11,0,0,0,28,67.51c-.29,0-2.51,3-3.23,3.32v-1c-.3.46-1.83,3.39-2.27,3.39s.62-2.27-.64-1.86a20.92,20.92,0,0,1-2.91.89c1.25-1.5,2.18-3.08-.57-2.26.26-1.21-.24-1.56-.24-2.51a4,4,0,0,1-.89,1.38c-.29-1.59-.31-7.79-.49-7.79-1.85,0,.16-3.73.44-4.21l-.65-.54c.06,1.48-.55,1.66-1,2.91-1.37-2.24,1.93-4.2-1-5.06l1.18-1L15,52.47c-.34.78-.93,1.55-1.3,2.27-.19-.61,0-3.67.65-3.67-.4,0-.79-.06-1.18-.11.91-1.23.62-1.6,1.83-2.15-.22-.65-.43-1.3-.65-2l.65.22c.19.11-.52-1-.86-.54a6,6,0,0,1,2.37-2l-1.08-.64c.84-.55,1.49-1.73,2.59-2.16-.72-1.4-.86-1.86-2.37-2.26-.05-2.68,1.47-11.73,3.45-10.68-.07-.73-.08-.88.64-1-.11-1.45-.81-1,.76-1.4-1.25-5.21,2.34-2.65,4.63-1.4v-1.3c.68.15,2.36.82,2.77.11.14-.24-1.17-.65-1.36-.75,1.42-.73,1.23-2.34.21-4,1.91.09,3.82.93,4.42-.76C32,19,32.7,19,33.35,20l1.08-1.83c.67.82,2,3.18,3.29,2.51.28-.14,1.88.84,1.88.5a4,4,0,0,1,1.94-3.45c.27,6.18-.25,10.17,1.1,15.87,0-2.12.26-4.22.47-6.28l.15-1.47c.66-6.68,2.61-12,5.79-15.85l1,0a40.5,40.5,0,0,1,6.27.49,11.45,11.45,0,0,0-1.82,1.29c-3.36,3-5.4,8-6.06,14.6l-.15,1.49c-.2,2-.41,4-.45,6C48.82,30.14,48.94,24.45,49.84,23Z"/> + </svg> + </a> + </td> + <td style="padding: 10px;width: 50%;font-size: 20px; font-family: sans-serif; line-height:18px; text-align: center; color: #000000;" class="x-gmail-data-detectors"> + <div style="margin-bottom:10px;">Pour toute question :</div> + <div>support@veremes.com</div> + </td> + </tr> +</table> +<!-- Email Footer : END --> + +</center> +[SCRIPT] +</body> +</html>'; ?> \ No newline at end of file diff --git a/src/vitis/vas/rest/ws/vitis/Accounts.class.sql.inc b/vas/rest/ws/vitis/Accounts.class.sql.inc similarity index 100% rename from src/vitis/vas/rest/ws/vitis/Accounts.class.sql.inc rename to vas/rest/ws/vitis/Accounts.class.sql.inc diff --git a/src/vitis/vas/rest/ws/vitis/Action.class.inc b/vas/rest/ws/vitis/Action.class.inc similarity index 100% rename from src/vitis/vas/rest/ws/vitis/Action.class.inc rename to vas/rest/ws/vitis/Action.class.inc diff --git a/src/vitis/vas/rest/ws/vitis/Actions.class.inc b/vas/rest/ws/vitis/Actions.class.inc similarity index 100% rename from src/vitis/vas/rest/ws/vitis/Actions.class.inc rename to vas/rest/ws/vitis/Actions.class.inc diff --git a/src/vitis/vas/rest/ws/vitis/ActiveDirectory.class.inc b/vas/rest/ws/vitis/ActiveDirectory.class.inc similarity index 100% rename from src/vitis/vas/rest/ws/vitis/ActiveDirectory.class.inc rename to vas/rest/ws/vitis/ActiveDirectory.class.inc diff --git a/src/vitis/vas/rest/ws/vitis/BillingGroup.class.inc b/vas/rest/ws/vitis/BillingGroup.class.inc similarity index 100% rename from src/vitis/vas/rest/ws/vitis/BillingGroup.class.inc rename to vas/rest/ws/vitis/BillingGroup.class.inc diff --git a/src/vitis/vas/rest/ws/vitis/BillingGroups.class.inc b/vas/rest/ws/vitis/BillingGroups.class.inc similarity index 100% rename from src/vitis/vas/rest/ws/vitis/BillingGroups.class.inc rename to vas/rest/ws/vitis/BillingGroups.class.inc diff --git a/src/vitis/vas/rest/ws/vitis/Column.class.inc b/vas/rest/ws/vitis/Column.class.inc similarity index 100% rename from src/vitis/vas/rest/ws/vitis/Column.class.inc rename to vas/rest/ws/vitis/Column.class.inc diff --git a/src/vitis/vas/rest/ws/vitis/Columns.class.inc b/vas/rest/ws/vitis/Columns.class.inc similarity index 100% rename from src/vitis/vas/rest/ws/vitis/Columns.class.inc rename to vas/rest/ws/vitis/Columns.class.inc diff --git a/src/vitis/vas/rest/ws/vitis/Database.class.inc b/vas/rest/ws/vitis/Database.class.inc similarity index 100% rename from src/vitis/vas/rest/ws/vitis/Database.class.inc rename to vas/rest/ws/vitis/Database.class.inc diff --git a/src/vitis/vas/rest/ws/vitis/Domain.class.inc b/vas/rest/ws/vitis/Domain.class.inc similarity index 100% rename from src/vitis/vas/rest/ws/vitis/Domain.class.inc rename to vas/rest/ws/vitis/Domain.class.inc diff --git a/src/vitis/vas/rest/ws/vitis/Domains.class.inc b/vas/rest/ws/vitis/Domains.class.inc similarity index 100% rename from src/vitis/vas/rest/ws/vitis/Domains.class.inc rename to vas/rest/ws/vitis/Domains.class.inc diff --git a/src/vitis/vas/rest/ws/vitis/Exploitations.class.inc b/vas/rest/ws/vitis/Exploitations.class.inc similarity index 100% rename from src/vitis/vas/rest/ws/vitis/Exploitations.class.inc rename to vas/rest/ws/vitis/Exploitations.class.inc diff --git a/src/vitis/vas/rest/ws/vitis/FormatDate.class.inc b/vas/rest/ws/vitis/FormatDate.class.inc similarity index 100% rename from src/vitis/vas/rest/ws/vitis/FormatDate.class.inc rename to vas/rest/ws/vitis/FormatDate.class.inc diff --git a/src/vitis/vas/rest/ws/vitis/FormatDates.class.inc b/vas/rest/ws/vitis/FormatDates.class.inc similarity index 100% rename from src/vitis/vas/rest/ws/vitis/FormatDates.class.inc rename to vas/rest/ws/vitis/FormatDates.class.inc diff --git a/src/vitis/vas/rest/ws/vitis/GenericQuery.class.inc b/vas/rest/ws/vitis/GenericQuery.class.inc similarity index 100% rename from src/vitis/vas/rest/ws/vitis/GenericQuery.class.inc rename to vas/rest/ws/vitis/GenericQuery.class.inc diff --git a/src/vitis/vas/rest/ws/vitis/GenericQuerys.class.inc b/vas/rest/ws/vitis/GenericQuerys.class.inc similarity index 100% rename from src/vitis/vas/rest/ws/vitis/GenericQuerys.class.inc rename to vas/rest/ws/vitis/GenericQuerys.class.inc diff --git a/src/vitis/vas/rest/ws/vitis/GenericQuerys.class.sql.inc b/vas/rest/ws/vitis/GenericQuerys.class.sql.inc similarity index 100% rename from src/vitis/vas/rest/ws/vitis/GenericQuerys.class.sql.inc rename to vas/rest/ws/vitis/GenericQuerys.class.sql.inc diff --git a/src/vitis/vas/rest/ws/vitis/Group.class.inc b/vas/rest/ws/vitis/Group.class.inc similarity index 100% rename from src/vitis/vas/rest/ws/vitis/Group.class.inc rename to vas/rest/ws/vitis/Group.class.inc diff --git a/src/vitis/vas/rest/ws/vitis/Groups.class.inc b/vas/rest/ws/vitis/Groups.class.inc similarity index 100% rename from src/vitis/vas/rest/ws/vitis/Groups.class.inc rename to vas/rest/ws/vitis/Groups.class.inc diff --git a/src/vitis/vas/rest/ws/vitis/Logs.class.inc b/vas/rest/ws/vitis/Logs.class.inc similarity index 100% rename from src/vitis/vas/rest/ws/vitis/Logs.class.inc rename to vas/rest/ws/vitis/Logs.class.inc diff --git a/src/vitis/vas/rest/ws/vitis/Mode.class.inc b/vas/rest/ws/vitis/Mode.class.inc similarity index 100% rename from src/vitis/vas/rest/ws/vitis/Mode.class.inc rename to vas/rest/ws/vitis/Mode.class.inc diff --git a/src/vitis/vas/rest/ws/vitis/Modes.class.inc b/vas/rest/ws/vitis/Modes.class.inc similarity index 100% rename from src/vitis/vas/rest/ws/vitis/Modes.class.inc rename to vas/rest/ws/vitis/Modes.class.inc diff --git a/src/vitis/vas/rest/ws/vitis/PhpInfo.class.inc b/vas/rest/ws/vitis/PhpInfo.class.inc similarity index 100% rename from src/vitis/vas/rest/ws/vitis/PhpInfo.class.inc rename to vas/rest/ws/vitis/PhpInfo.class.inc diff --git a/src/vitis/vas/rest/ws/vitis/PrivateToken.class.inc b/vas/rest/ws/vitis/PrivateToken.class.inc similarity index 100% rename from src/vitis/vas/rest/ws/vitis/PrivateToken.class.inc rename to vas/rest/ws/vitis/PrivateToken.class.inc diff --git a/src/vitis/vas/rest/ws/vitis/Privilege.class.inc b/vas/rest/ws/vitis/Privilege.class.inc similarity index 100% rename from src/vitis/vas/rest/ws/vitis/Privilege.class.inc rename to vas/rest/ws/vitis/Privilege.class.inc diff --git a/src/vitis/vas/rest/ws/vitis/Privileges.class.inc b/vas/rest/ws/vitis/Privileges.class.inc similarity index 100% rename from src/vitis/vas/rest/ws/vitis/Privileges.class.inc rename to vas/rest/ws/vitis/Privileges.class.inc diff --git a/src/vitis/vas/rest/ws/vitis/Properties.class.inc b/vas/rest/ws/vitis/Properties.class.inc similarity index 100% rename from src/vitis/vas/rest/ws/vitis/Properties.class.inc rename to vas/rest/ws/vitis/Properties.class.inc diff --git a/src/vitis/vas/rest/ws/vitis/PublicToken.class.inc b/vas/rest/ws/vitis/PublicToken.class.inc similarity index 100% rename from src/vitis/vas/rest/ws/vitis/PublicToken.class.inc rename to vas/rest/ws/vitis/PublicToken.class.inc diff --git a/src/vitis/vas/rest/ws/vitis/Ressources.class.inc b/vas/rest/ws/vitis/Ressources.class.inc similarity index 100% rename from src/vitis/vas/rest/ws/vitis/Ressources.class.inc rename to vas/rest/ws/vitis/Ressources.class.inc diff --git a/src/vitis/vas/rest/ws/vitis/Schema.class.inc b/vas/rest/ws/vitis/Schema.class.inc similarity index 100% rename from src/vitis/vas/rest/ws/vitis/Schema.class.inc rename to vas/rest/ws/vitis/Schema.class.inc diff --git a/src/vitis/vas/rest/ws/vitis/SmtpServer.class.inc b/vas/rest/ws/vitis/SmtpServer.class.inc similarity index 100% rename from src/vitis/vas/rest/ws/vitis/SmtpServer.class.inc rename to vas/rest/ws/vitis/SmtpServer.class.inc diff --git a/src/vitis/vas/rest/ws/vitis/Tab.class.inc b/vas/rest/ws/vitis/Tab.class.inc similarity index 100% rename from src/vitis/vas/rest/ws/vitis/Tab.class.inc rename to vas/rest/ws/vitis/Tab.class.inc diff --git a/src/vitis/vas/rest/ws/vitis/Table.class.inc b/vas/rest/ws/vitis/Table.class.inc similarity index 100% rename from src/vitis/vas/rest/ws/vitis/Table.class.inc rename to vas/rest/ws/vitis/Table.class.inc diff --git a/src/vitis/vas/rest/ws/vitis/Tabs.class.inc b/vas/rest/ws/vitis/Tabs.class.inc similarity index 100% rename from src/vitis/vas/rest/ws/vitis/Tabs.class.inc rename to vas/rest/ws/vitis/Tabs.class.inc diff --git a/src/vitis/vas/rest/ws/vitis/TimeZone.class.inc b/vas/rest/ws/vitis/TimeZone.class.inc similarity index 100% rename from src/vitis/vas/rest/ws/vitis/TimeZone.class.inc rename to vas/rest/ws/vitis/TimeZone.class.inc diff --git a/src/vitis/vas/rest/ws/vitis/TimeZones.class.inc b/vas/rest/ws/vitis/TimeZones.class.inc similarity index 100% rename from src/vitis/vas/rest/ws/vitis/TimeZones.class.inc rename to vas/rest/ws/vitis/TimeZones.class.inc diff --git a/src/vitis/vas/rest/ws/vitis/User.class.inc b/vas/rest/ws/vitis/User.class.inc similarity index 100% rename from src/vitis/vas/rest/ws/vitis/User.class.inc rename to vas/rest/ws/vitis/User.class.inc diff --git a/src/vitis/vas/rest/ws/vitis/Users.class.inc b/vas/rest/ws/vitis/Users.class.inc similarity index 100% rename from src/vitis/vas/rest/ws/vitis/Users.class.inc rename to vas/rest/ws/vitis/Users.class.inc diff --git a/src/vitis/vas/rest/ws/vitis/Versions.class.inc b/vas/rest/ws/vitis/Versions.class.inc similarity index 100% rename from src/vitis/vas/rest/ws/vitis/Versions.class.inc rename to vas/rest/ws/vitis/Versions.class.inc diff --git a/src/vitis/vas/rest/ws/vitis/Vitis.class.inc b/vas/rest/ws/vitis/Vitis.class.inc similarity index 100% rename from src/vitis/vas/rest/ws/vitis/Vitis.class.inc rename to vas/rest/ws/vitis/Vitis.class.inc diff --git a/src/vitis/vas/rest/ws/vitis/Vitis.class.sql.inc b/vas/rest/ws/vitis/Vitis.class.sql.inc similarity index 100% rename from src/vitis/vas/rest/ws/vitis/Vitis.class.sql.inc rename to vas/rest/ws/vitis/Vitis.class.sql.inc diff --git a/src/vitis/vas/rest/ws/vitis/VitisSection.class.inc b/vas/rest/ws/vitis/VitisSection.class.inc similarity index 100% rename from src/vitis/vas/rest/ws/vitis/VitisSection.class.inc rename to vas/rest/ws/vitis/VitisSection.class.inc diff --git a/src/vitis/vas/rest/ws/vitis/VitisSections.class.inc b/vas/rest/ws/vitis/VitisSections.class.inc similarity index 100% rename from src/vitis/vas/rest/ws/vitis/VitisSections.class.inc rename to vas/rest/ws/vitis/VitisSections.class.inc diff --git a/src/vitis/vas/rest/ws/vitis/WebServices.class.inc b/vas/rest/ws/vitis/WebServices.class.inc similarity index 100% rename from src/vitis/vas/rest/ws/vitis/WebServices.class.inc rename to vas/rest/ws/vitis/WebServices.class.inc diff --git a/src/vitis/vas/rest/ws/vitis/overview.phtml b/vas/rest/ws/vitis/overview.phtml similarity index 100% rename from src/vitis/vas/rest/ws/vitis/overview.phtml rename to vas/rest/ws/vitis/overview.phtml diff --git a/src/vitis/vas/tmp/file_to_delete.txt b/vas/tmp/file_to_delete.txt similarity index 100% rename from src/vitis/vas/tmp/file_to_delete.txt rename to vas/tmp/file_to_delete.txt diff --git a/src/vitis/vas/util/coordsys.txt b/vas/util/coordsys.txt similarity index 100% rename from src/vitis/vas/util/coordsys.txt rename to vas/util/coordsys.txt diff --git a/src/vitis/vas/util/migration/anc/SplitAddress.fmx b/vas/util/migration/anc/SplitAddress.fmx similarity index 100% rename from src/vitis/vas/util/migration/anc/SplitAddress.fmx rename to vas/util/migration/anc/SplitAddress.fmx diff --git a/src/vitis/vas/util/migration/anc/lisez-moi.txt b/vas/util/migration/anc/lisez-moi.txt similarity index 100% rename from src/vitis/vas/util/migration/anc/lisez-moi.txt rename to vas/util/migration/anc/lisez-moi.txt diff --git a/src/vitis/vas/util/migration/anc/migration_anc_veremap__vmap.fmw b/vas/util/migration/anc/migration_anc_veremap__vmap.fmw similarity index 100% rename from src/vitis/vas/util/migration/anc/migration_anc_veremap__vmap.fmw rename to vas/util/migration/anc/migration_anc_veremap__vmap.fmw diff --git a/src/vitis/vas/util/migration/migration_user_and_group.fmw b/vas/util/migration/migration_user_and_group.fmw similarity index 100% rename from src/vitis/vas/util/migration/migration_user_and_group.fmw rename to vas/util/migration/migration_user_and_group.fmw diff --git a/src/vitis/vas/util/migration/migration_veremap_layer.fmw b/vas/util/migration/migration_veremap_layer.fmw similarity index 100% rename from src/vitis/vas/util/migration/migration_veremap_layer.fmw rename to vas/util/migration/migration_veremap_layer.fmw diff --git a/src/vitis/vas/util/printserver/client/lib/angular/LICENSE b/vas/util/printserver/client/lib/angular/LICENSE similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/angular/LICENSE rename to vas/util/printserver/client/lib/angular/LICENSE diff --git a/src/vitis/vas/util/printserver/client/lib/angular/angular.js b/vas/util/printserver/client/lib/angular/angular.js similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/angular/angular.js rename to vas/util/printserver/client/lib/angular/angular.js diff --git a/src/vitis/vas/util/printserver/client/lib/angular/angular.min.js b/vas/util/printserver/client/lib/angular/angular.min.js similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/angular/angular.min.js rename to vas/util/printserver/client/lib/angular/angular.min.js diff --git a/src/vitis/vas/util/printserver/client/lib/angular/angular.min.js.map b/vas/util/printserver/client/lib/angular/angular.min.js.map similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/angular/angular.min.js.map rename to vas/util/printserver/client/lib/angular/angular.min.js.map diff --git a/src/vitis/vas/util/printserver/client/lib/angular/modules/angular-route/angular-route.js b/vas/util/printserver/client/lib/angular/modules/angular-route/angular-route.js similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/angular/modules/angular-route/angular-route.js rename to vas/util/printserver/client/lib/angular/modules/angular-route/angular-route.js diff --git a/src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/LICENSE b/vas/util/printserver/client/lib/angular/modules/angular-translate/LICENSE similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/LICENSE rename to vas/util/printserver/client/lib/angular/modules/angular-translate/LICENSE diff --git a/src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-partial.js b/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-partial.js similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-partial.js rename to vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-partial.js diff --git a/src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-partial.min.js b/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-partial.min.js similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-partial.min.js rename to vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-partial.min.js diff --git a/src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-static-files.js b/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-static-files.js similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-static-files.js rename to vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-static-files.js diff --git a/src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-static-files.min.js b/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-static-files.min.js similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-static-files.min.js rename to vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate-loader-static-files.min.js diff --git a/src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate.js b/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate.js similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate.js rename to vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate.js diff --git a/src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate.min.js b/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate.min.js similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate.min.js rename to vas/util/printserver/client/lib/angular/modules/angular-translate/angular-translate.min.js diff --git a/src/vitis/vas/util/printserver/client/lib/angular/modules/sanitize/angular-sanitize.js b/vas/util/printserver/client/lib/angular/modules/sanitize/angular-sanitize.js similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/angular/modules/sanitize/angular-sanitize.js rename to vas/util/printserver/client/lib/angular/modules/sanitize/angular-sanitize.js diff --git a/src/vitis/vas/util/printserver/client/lib/angular/modules/sanitize/angular-sanitize.min.js b/vas/util/printserver/client/lib/angular/modules/sanitize/angular-sanitize.min.js similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/angular/modules/sanitize/angular-sanitize.min.js rename to vas/util/printserver/client/lib/angular/modules/sanitize/angular-sanitize.min.js diff --git a/src/vitis/vas/util/printserver/client/lib/angular/modules/sanitize/angular-sanitize.min.js.map b/vas/util/printserver/client/lib/angular/modules/sanitize/angular-sanitize.min.js.map similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/angular/modules/sanitize/angular-sanitize.min.js.map rename to vas/util/printserver/client/lib/angular/modules/sanitize/angular-sanitize.min.js.map diff --git a/src/vitis/vas/util/printserver/client/lib/angular/modules/ui-codemirror/LICENSE b/vas/util/printserver/client/lib/angular/modules/ui-codemirror/LICENSE similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/angular/modules/ui-codemirror/LICENSE rename to vas/util/printserver/client/lib/angular/modules/ui-codemirror/LICENSE diff --git a/src/vitis/vas/util/printserver/client/lib/angular/modules/ui-codemirror/ui-codemirror.min.js b/vas/util/printserver/client/lib/angular/modules/ui-codemirror/ui-codemirror.min.js similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/angular/modules/ui-codemirror/ui-codemirror.min.js rename to vas/util/printserver/client/lib/angular/modules/ui-codemirror/ui-codemirror.min.js diff --git a/src/vitis/vas/util/printserver/client/lib/angular/modules/ui-grid/LICENSE.md b/vas/util/printserver/client/lib/angular/modules/ui-grid/LICENSE.md similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/angular/modules/ui-grid/LICENSE.md rename to vas/util/printserver/client/lib/angular/modules/ui-grid/LICENSE.md diff --git a/src/vitis/vas/util/printserver/client/lib/angular/modules/ui-grid/plugins/draggable-rows.js b/vas/util/printserver/client/lib/angular/modules/ui-grid/plugins/draggable-rows.js similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/angular/modules/ui-grid/plugins/draggable-rows.js rename to vas/util/printserver/client/lib/angular/modules/ui-grid/plugins/draggable-rows.js diff --git a/src/vitis/vas/util/printserver/client/lib/angular/modules/ui-grid/ui-grid.js b/vas/util/printserver/client/lib/angular/modules/ui-grid/ui-grid.js similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/angular/modules/ui-grid/ui-grid.js rename to vas/util/printserver/client/lib/angular/modules/ui-grid/ui-grid.js diff --git a/src/vitis/vas/util/printserver/client/lib/angular/modules/ui-grid/ui-grid.min.js b/vas/util/printserver/client/lib/angular/modules/ui-grid/ui-grid.min.js similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/angular/modules/ui-grid/ui-grid.min.js rename to vas/util/printserver/client/lib/angular/modules/ui-grid/ui-grid.min.js diff --git a/src/vitis/vas/util/printserver/client/lib/angular/modules/ui-tinymce/LICENSE b/vas/util/printserver/client/lib/angular/modules/ui-tinymce/LICENSE similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/angular/modules/ui-tinymce/LICENSE rename to vas/util/printserver/client/lib/angular/modules/ui-tinymce/LICENSE diff --git a/src/vitis/vas/util/printserver/client/lib/angular/modules/ui-tinymce/tinymce.js b/vas/util/printserver/client/lib/angular/modules/ui-tinymce/tinymce.js similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/angular/modules/ui-tinymce/tinymce.js rename to vas/util/printserver/client/lib/angular/modules/ui-tinymce/tinymce.js diff --git a/src/vitis/vas/util/printserver/client/lib/bootstrap/LICENSE b/vas/util/printserver/client/lib/bootstrap/LICENSE similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/bootstrap/LICENSE rename to vas/util/printserver/client/lib/bootstrap/LICENSE diff --git a/src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.css b/vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.css similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.css rename to vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.css diff --git a/src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.css.map b/vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.css.map similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.css.map rename to vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.css.map diff --git a/src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.min.css b/vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.min.css similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.min.css rename to vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.min.css diff --git a/src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.min.css.map b/vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.min.css.map similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.min.css.map rename to vas/util/printserver/client/lib/bootstrap/css/bootstrap-theme.min.css.map diff --git a/src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap.css b/vas/util/printserver/client/lib/bootstrap/css/bootstrap.css similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap.css rename to vas/util/printserver/client/lib/bootstrap/css/bootstrap.css diff --git a/src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap.css.map b/vas/util/printserver/client/lib/bootstrap/css/bootstrap.css.map similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap.css.map rename to vas/util/printserver/client/lib/bootstrap/css/bootstrap.css.map diff --git a/src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap.min.css b/vas/util/printserver/client/lib/bootstrap/css/bootstrap.min.css similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap.min.css rename to vas/util/printserver/client/lib/bootstrap/css/bootstrap.min.css diff --git a/src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap.min.css.map b/vas/util/printserver/client/lib/bootstrap/css/bootstrap.min.css.map similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/bootstrap/css/bootstrap.min.css.map rename to vas/util/printserver/client/lib/bootstrap/css/bootstrap.min.css.map diff --git a/src/vitis/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.eot b/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.eot similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.eot rename to vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.eot diff --git a/src/vitis/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.svg b/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.svg similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.svg rename to vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.svg diff --git a/src/vitis/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf b/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf rename to vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf diff --git a/src/vitis/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.woff b/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.woff similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.woff rename to vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.woff diff --git a/src/vitis/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2 b/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2 similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2 rename to vas/util/printserver/client/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2 diff --git a/src/vitis/vas/util/printserver/client/lib/bootstrap/js/bootstrap.js b/vas/util/printserver/client/lib/bootstrap/js/bootstrap.js similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/bootstrap/js/bootstrap.js rename to vas/util/printserver/client/lib/bootstrap/js/bootstrap.js diff --git a/src/vitis/vas/util/printserver/client/lib/bootstrap/js/bootstrap.min.js b/vas/util/printserver/client/lib/bootstrap/js/bootstrap.min.js similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/bootstrap/js/bootstrap.min.js rename to vas/util/printserver/client/lib/bootstrap/js/bootstrap.min.js diff --git a/src/vitis/vas/util/printserver/client/lib/bootstrap/js/npm.js b/vas/util/printserver/client/lib/bootstrap/js/npm.js similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/bootstrap/js/npm.js rename to vas/util/printserver/client/lib/bootstrap/js/npm.js diff --git a/src/vitis/vas/util/printserver/client/lib/closure/goog/base.js b/vas/util/printserver/client/lib/closure/goog/base.js similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/closure/goog/base.js rename to vas/util/printserver/client/lib/closure/goog/base.js diff --git a/src/vitis/vas/util/printserver/client/lib/jquery/LICENSE.txt b/vas/util/printserver/client/lib/jquery/LICENSE.txt similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/jquery/LICENSE.txt rename to vas/util/printserver/client/lib/jquery/LICENSE.txt diff --git a/src/vitis/vas/util/printserver/client/lib/jquery/jquery-1.11.3.js b/vas/util/printserver/client/lib/jquery/jquery-1.11.3.js similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/jquery/jquery-1.11.3.js rename to vas/util/printserver/client/lib/jquery/jquery-1.11.3.js diff --git a/src/vitis/vas/util/printserver/client/lib/jquery/jquery-1.11.3.min.js b/vas/util/printserver/client/lib/jquery/jquery-1.11.3.min.js similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/jquery/jquery-1.11.3.min.js rename to vas/util/printserver/client/lib/jquery/jquery-1.11.3.min.js diff --git a/src/vitis/vas/util/printserver/client/lib/jquery/jquery-1.11.3.min.map b/vas/util/printserver/client/lib/jquery/jquery-1.11.3.min.map similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/jquery/jquery-1.11.3.min.map rename to vas/util/printserver/client/lib/jquery/jquery-1.11.3.min.map diff --git a/src/vitis/vas/util/printserver/client/lib/mapJSON/MapJSON.js b/vas/util/printserver/client/lib/mapJSON/MapJSON.js similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/mapJSON/MapJSON.js rename to vas/util/printserver/client/lib/mapJSON/MapJSON.js diff --git a/src/vitis/vas/util/printserver/client/lib/ol/ol-debug.js b/vas/util/printserver/client/lib/ol/ol-debug.js similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/ol/ol-debug.js rename to vas/util/printserver/client/lib/ol/ol-debug.js diff --git a/src/vitis/vas/util/printserver/client/lib/ol/ol.css b/vas/util/printserver/client/lib/ol/ol.css similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/ol/ol.css rename to vas/util/printserver/client/lib/ol/ol.css diff --git a/src/vitis/vas/util/printserver/client/lib/ol/ol.js b/vas/util/printserver/client/lib/ol/ol.js similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/ol/ol.js rename to vas/util/printserver/client/lib/ol/ol.js diff --git a/src/vitis/vas/util/printserver/client/lib/ol/ol3-ext/licence.txt b/vas/util/printserver/client/lib/ol/ol3-ext/licence.txt similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/ol/ol3-ext/licence.txt rename to vas/util/printserver/client/lib/ol/ol3-ext/licence.txt diff --git a/src/vitis/vas/util/printserver/client/lib/ol/ol3-ext/readme.txt b/vas/util/printserver/client/lib/ol/ol3-ext/readme.txt similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/ol/ol3-ext/readme.txt rename to vas/util/printserver/client/lib/ol/ol3-ext/readme.txt diff --git a/src/vitis/vas/util/printserver/client/lib/ol/ol3-ext/style/fonts/fontawesome.def.js b/vas/util/printserver/client/lib/ol/ol3-ext/style/fonts/fontawesome.def.js similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/ol/ol3-ext/style/fonts/fontawesome.def.js rename to vas/util/printserver/client/lib/ol/ol3-ext/style/fonts/fontawesome.def.js diff --git a/src/vitis/vas/util/printserver/client/lib/ol/ol3-ext/style/fontsymbol.js b/vas/util/printserver/client/lib/ol/ol3-ext/style/fontsymbol.js similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/ol/ol3-ext/style/fontsymbol.js rename to vas/util/printserver/client/lib/ol/ol3-ext/style/fontsymbol.js diff --git a/src/vitis/vas/util/printserver/client/lib/ol/ol3-ext/style/shadowstyle.js b/vas/util/printserver/client/lib/ol/ol3-ext/style/shadowstyle.js similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/ol/ol3-ext/style/shadowstyle.js rename to vas/util/printserver/client/lib/ol/ol3-ext/style/shadowstyle.js diff --git a/src/vitis/vas/util/printserver/client/lib/ol/ol3-ext/utils/ol.ordering.js b/vas/util/printserver/client/lib/ol/ol3-ext/utils/ol.ordering.js similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/ol/ol3-ext/utils/ol.ordering.js rename to vas/util/printserver/client/lib/ol/ol3-ext/utils/ol.ordering.js diff --git a/src/vitis/vas/util/printserver/client/lib/ol/ol3-veremes/ol.veremes.js b/vas/util/printserver/client/lib/ol/ol3-veremes/ol.veremes.js similarity index 100% rename from src/vitis/vas/util/printserver/client/lib/ol/ol3-veremes/ol.veremes.js rename to vas/util/printserver/client/lib/ol/ol3-veremes/ol.veremes.js diff --git a/src/vitis/vas/util/printserver/client/map/index.html b/vas/util/printserver/client/map/index.html similarity index 100% rename from src/vitis/vas/util/printserver/client/map/index.html rename to vas/util/printserver/client/map/index.html diff --git a/src/vitis/vas/util/printserver/client/map/index.js b/vas/util/printserver/client/map/index.js similarity index 100% rename from src/vitis/vas/util/printserver/client/map/index.js rename to vas/util/printserver/client/map/index.js diff --git a/src/vitis/vas/util/printserver/client/map/map.js b/vas/util/printserver/client/map/map.js similarity index 100% rename from src/vitis/vas/util/printserver/client/map/map.js rename to vas/util/printserver/client/map/map.js diff --git a/src/vitis/vas/util/printserver/client/map/progress.js b/vas/util/printserver/client/map/progress.js similarity index 100% rename from src/vitis/vas/util/printserver/client/map/progress.js rename to vas/util/printserver/client/map/progress.js diff --git a/src/vitis/vas/util/printserver/client/map/projections.js b/vas/util/printserver/client/map/projections.js similarity index 100% rename from src/vitis/vas/util/printserver/client/map/projections.js rename to vas/util/printserver/client/map/projections.js diff --git a/src/vitis/vas/util/printserver/client/map/scale.js b/vas/util/printserver/client/map/scale.js similarity index 100% rename from src/vitis/vas/util/printserver/client/map/scale.js rename to vas/util/printserver/client/map/scale.js diff --git a/src/vitis/vas/util/printserver/client/report/index.html b/vas/util/printserver/client/report/index.html similarity index 100% rename from src/vitis/vas/util/printserver/client/report/index.html rename to vas/util/printserver/client/report/index.html diff --git a/src/vitis/vas/util/printserver/client/report/index.js b/vas/util/printserver/client/report/index.js similarity index 100% rename from src/vitis/vas/util/printserver/client/report/index.js rename to vas/util/printserver/client/report/index.js diff --git a/src/vitis/vas/util/printserver/client/report/report.js b/vas/util/printserver/client/report/report.js similarity index 100% rename from src/vitis/vas/util/printserver/client/report/report.js rename to vas/util/printserver/client/report/report.js diff --git a/src/vitis/vas/util/printserver/client/template/index.html b/vas/util/printserver/client/template/index.html similarity index 100% rename from src/vitis/vas/util/printserver/client/template/index.html rename to vas/util/printserver/client/template/index.html diff --git a/src/vitis/vas/util/printserver/client/template/index.js b/vas/util/printserver/client/template/index.js similarity index 100% rename from src/vitis/vas/util/printserver/client/template/index.js rename to vas/util/printserver/client/template/index.js diff --git a/src/vitis/vas/util/printserver/client/template/template.js b/vas/util/printserver/client/template/template.js similarity index 100% rename from src/vitis/vas/util/printserver/client/template/template.js rename to vas/util/printserver/client/template/template.js diff --git a/src/vitis/vas/util/printserver/client/utils/http.js b/vas/util/printserver/client/utils/http.js similarity index 100% rename from src/vitis/vas/util/printserver/client/utils/http.js rename to vas/util/printserver/client/utils/http.js diff --git a/src/vitis/vas/util/printserver/client/utils/properties.js b/vas/util/printserver/client/utils/properties.js similarity index 100% rename from src/vitis/vas/util/printserver/client/utils/properties.js rename to vas/util/printserver/client/utils/properties.js diff --git a/src/vitis/vas/util/printserver/client/utils/utils.js b/vas/util/printserver/client/utils/utils.js similarity index 100% rename from src/vitis/vas/util/printserver/client/utils/utils.js rename to vas/util/printserver/client/utils/utils.js diff --git a/src/vitis/vas/util/printserver/server/printmap.js b/vas/util/printserver/server/printmap.js similarity index 100% rename from src/vitis/vas/util/printserver/server/printmap.js rename to vas/util/printserver/server/printmap.js diff --git a/src/vitis/vas/util/printserver/server/printreport.js b/vas/util/printserver/server/printreport.js similarity index 100% rename from src/vitis/vas/util/printserver/server/printreport.js rename to vas/util/printserver/server/printreport.js diff --git a/src/vitis/vas/util/printserver/server/printtemplate.js b/vas/util/printserver/server/printtemplate.js similarity index 100% rename from src/vitis/vas/util/printserver/server/printtemplate.js rename to vas/util/printserver/server/printtemplate.js diff --git a/src/vitis/vas/util/printserver/server/saveimage.js b/vas/util/printserver/server/saveimage.js similarity index 100% rename from src/vitis/vas/util/printserver/server/saveimage.js rename to vas/util/printserver/server/saveimage.js diff --git a/src/vitis/vas/util/printserver/server/targetsize.js b/vas/util/printserver/server/targetsize.js similarity index 100% rename from src/vitis/vas/util/printserver/server/targetsize.js rename to vas/util/printserver/server/targetsize.js diff --git a/src/vitis/vas/util/proxy/proxy.php b/vas/util/proxy/proxy.php similarity index 100% rename from src/vitis/vas/util/proxy/proxy.php rename to vas/util/proxy/proxy.php diff --git a/src/vitis/vas/util/webSocket/server/lib/SplClassLoader.php b/vas/util/webSocket/server/lib/SplClassLoader.php similarity index 100% rename from src/vitis/vas/util/webSocket/server/lib/SplClassLoader.php rename to vas/util/webSocket/server/lib/SplClassLoader.php diff --git a/src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/Application.php b/vas/util/webSocket/server/lib/WebSocket/Application/Application.php similarity index 100% rename from src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/Application.php rename to vas/util/webSocket/server/lib/WebSocket/Application/Application.php diff --git a/src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/DemoApplication.php b/vas/util/webSocket/server/lib/WebSocket/Application/DemoApplication.php similarity index 100% rename from src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/DemoApplication.php rename to vas/util/webSocket/server/lib/WebSocket/Application/DemoApplication.php diff --git a/src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/GtfEvents.php b/vas/util/webSocket/server/lib/WebSocket/Application/GtfEvents.php similarity index 100% rename from src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/GtfEvents.php rename to vas/util/webSocket/server/lib/WebSocket/Application/GtfEvents.php diff --git a/src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/Status.php b/vas/util/webSocket/server/lib/WebSocket/Application/Status.php similarity index 100% rename from src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/Status.php rename to vas/util/webSocket/server/lib/WebSocket/Application/Status.php diff --git a/src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/StatusApplication.php b/vas/util/webSocket/server/lib/WebSocket/Application/StatusApplication.php similarity index 100% rename from src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/StatusApplication.php rename to vas/util/webSocket/server/lib/WebSocket/Application/StatusApplication.php diff --git a/src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/VitisApplication.php b/vas/util/webSocket/server/lib/WebSocket/Application/VitisApplication.php similarity index 100% rename from src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/VitisApplication.php rename to vas/util/webSocket/server/lib/WebSocket/Application/VitisApplication.php diff --git a/src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/VmapEvents.php b/vas/util/webSocket/server/lib/WebSocket/Application/VmapEvents.php similarity index 100% rename from src/vitis/vas/util/webSocket/server/lib/WebSocket/Application/VmapEvents.php rename to vas/util/webSocket/server/lib/WebSocket/Application/VmapEvents.php diff --git a/src/vitis/vas/util/webSocket/server/lib/WebSocket/Connection.php b/vas/util/webSocket/server/lib/WebSocket/Connection.php similarity index 100% rename from src/vitis/vas/util/webSocket/server/lib/WebSocket/Connection.php rename to vas/util/webSocket/server/lib/WebSocket/Connection.php diff --git a/src/vitis/vas/util/webSocket/server/lib/WebSocket/Server.php b/vas/util/webSocket/server/lib/WebSocket/Server.php similarity index 100% rename from src/vitis/vas/util/webSocket/server/lib/WebSocket/Server.php rename to vas/util/webSocket/server/lib/WebSocket/Server.php diff --git a/src/vitis/vas/util/webSocket/server/lib/WebSocket/Socket.php b/vas/util/webSocket/server/lib/WebSocket/Socket.php similarity index 100% rename from src/vitis/vas/util/webSocket/server/lib/WebSocket/Socket.php rename to vas/util/webSocket/server/lib/WebSocket/Socket.php diff --git a/src/vitis/vas/util/webSocket/server/server.pem b/vas/util/webSocket/server/server.pem similarity index 100% rename from src/vitis/vas/util/webSocket/server/server.pem rename to vas/util/webSocket/server/server.pem diff --git a/src/vitis/vas/util/webSocket/server/server.php b/vas/util/webSocket/server/server.php similarity index 100% rename from src/vitis/vas/util/webSocket/server/server.php rename to vas/util/webSocket/server/server.php diff --git a/src/vitis/vas/util/writerpick.txt b/vas/util/writerpick.txt similarity index 100% rename from src/vitis/vas/util/writerpick.txt rename to vas/util/writerpick.txt -- GitLab